今年はいよいよAI真っ盛りな一年になりそうです。AlphaGoクローンの移植をきっかけに、せっかく、(学習じゃなくて)推論方面で色々ノウハウを持てたので、応用できたらと推論系調査備忘録。 プラットフォーム iOS/iPadOS macOS Android Windows フラグシップ…
Swiftプログラミング言語が発表されて今年は10年目で、私も10年近く書いてきました。 そんな私が、「今まで何勘違いしてたの?」とショックを受けたことがこれ。 SwiftのenumのrawValueは生の値じゃない まあ、StringをrawValueにできる時点でそういう気はし…
少し前まで、MPSGraphBuilderというプロジェクトを地道に開発していました。github.comCore MLの.mlmodelファイルを読み込んで、MPSGraphを構築するというものです。 対応する層が限定的なものですが、おかげで、囲碁AIのLeela ZeroやKataGoのニューラルネッ…
SwiftUIのpopover、なかなか手強いですね。iPadで「できた!」と思ってもiPhoneでポップオーバーじゃなくてシートになったり。 これはiOS 16.4+ではpopoverのコンテントにpresentationCompactAdaptation(.none)修飾子をつけることで解決します。さて、長いテ…
久しぶりの記事です。ついに?SwiftUIでUIを書き始めて思うことがあったので書きます。SwiftUIで意味のあるアプリを書こうとすると、@Stateや@Binding、@StateObject/@ObservedObject, @ObservableObject,@EnvironmentObjectと色々なプロパティラッパが出て…
どうやらMaxima 5.42.2で力尽きたようなので😅、texiファイルを公開しました。github.com奇特な方がおられましたら、forkして引き続き更新いただければ幸いです。
Android版Firefoxのリモートデバッグをしようとしたら苦労したので備忘録です。 ポイント Android版FIrefoxは2020年7月16日現在バージョン68である。 PC版Firefoxは2020年7月16日現在バージョン78である。 バージョンの違いが10あるためこの組み合わせでリモ…
Android版「囲碁の師匠」の検討の着手をしました。最初のマイルストーンは、色々なAndroid用SoCで搭載されつつあるNPUをニューラルネットワークの評価に利用できるかどうかです。 Kirin 990搭載のMatePad Proを購入して挑戦しています。 このページはその備…
iPadのサイズクラスはポートレートでもランドスケープでもwR hRなのでサイズクラスでは表題の件を実現できません。 これについてググると、traitCollectionをoverrideする方法が出てきます。wR hRのサイズクラスを縦横比に従ってwC hRもしくはhCに変えてしま…
追記(2019/02/19) 猛烈に勘違いしていました。 AlphaZeroは、バリューネットワークの出力には[-1,1]レンジを使っていますが、MCTSでは[0,1]レンジだそうです。 talkchess.com 今までのいくつかの謎が氷解しました。 これに合わせてコードのコメントとオリジ…
今日は碁盤描画周りです。間口の一番広いウェブアプリを対象にします。 JavaScriptの碁盤描画のライブラリをまずご紹介します。 eidogo: HTML5以前では事実上のデファクトスタンダードだったオープンソースのウェブアプリです。DOMで描画します。耳赤サイト…
今日はちょっと変わったところで、SGFファイルを扱う方法です。SGFというのは、様々なプラットフォーム上で販売されているSmartGoというアプリケーションのファイルフォーマットです。Smart Game Formatの略で、囲碁以外のボードゲームにも対応可能なフォー…
今日はニューラルネットワーク周りのご紹介です。 前回同様、技術的な話ではないです。どういう材料が利用可能かご紹介します。AlphaGo Zeroは、MCTS、ニューラルネットワーク、強化学習という組み合わせで、0から人類を遥かに超えて学習するAIです。 「莫大…
1日遅れですが、一人アドベントカレンダーを始めます。 (ご協力いただける方、お声がけください) 題して「囲碁AIアプリの作り方」です。 念のため、「囲碁AIの作り方」ではありません。囲碁AI自体を作りたい方はAlphaGo論文などを読んで頑張ってください。 …
[追記 2018-11-27] デフォルトの設定では中盤でのGnuGoのestimateがAmazon API Gatewayのタイムアウトである29秒以内に完了しなかったです。AWS Lambdaはメモリを増やすとCPUパワーも増える仕様なので、256MBに増やしたところ、estimateできました。メモリ最…
自作のiPadアプリ「囲碁の師匠」が11月16日に発売になりました。以下は紹介ベージです。 https://new3rs.github.io/a_master_of_go/index.ja.html ご興味お持ちいただけたら幸いです。
この度、iOSアプリを一つ申請し承認いただきました。(契約関係でトラブっていてまだApp Storeには掲載されていません) 6年ぶりのiOSアプリ申請で色々新鮮でした。 中でもすべてのアプリにプライバシーポリシーURLの掲載を求められたことがびっくりしました。…
以前、VPSサービスGPUEaterでLeela ZeroとLizzie動かす方法を紹介しました。nextliteracy.hatenablog.comVPSにVNCで繋いて、VPS側でLizzieを動かす方法でしたが、この方法だとVPS側にデスクトップ関連のインストールする必要があってその時間が比較的長く、…
github.com
maxima.osdn.jp置換用パッケージcombinatoricsと最悪ケース解析パッケージwrstcseが追加されましたね。 稚拙な訳ですがご活用ください。
AZ.jsをSwiftに移植しました。その際に、Leela ZeroのウェイトをCore ML上に移す作業があったのですが、ハマり所があったので、備忘録です。Leela Zeroのウェイトは、leela-zeroレポジトリのtraining/tfフォルダ以下のスクリプトを使って、TensorFlowに読み…
追追追追記 2019/09/23 Leela Zero 40bがV100で2219プレイアウト/秒出るそうです。20bなら雑に2倍して4438プレイアウト/秒、INT8で2倍になるとして8876プレイアウト/秒。 2枚あれば16000プレイアウト/秒以上出ますね。 V100相当のTuringカードがあれば2枚でA…
追記 2018/10/06 Leela Zeroのコンパイル手順が古くなっています。 GitHub - gcp/leela-zero at nextの記述に従ってください。 GPUEaterというGPUサーバーレンタルサービスがあります。www.gpueater.comRX Vega 56などハイエンドのPCやワークステーションに…
A9.jsとA19.jsはコードがほとんど同じだったのですが、碁盤サイズに定数を使っていたため、別のレポジトリとして作りました。 メンテの意味でもそれはあまりに残念なので、コードをマージしてリファクタリングしてドキュメンテーションを充実させたAZ.jsを公…
以前にA9.jsというブラウザ上で遊べる9路盤囲碁AIを公開しました。 今日は、これの19路盤版、A19.jsを公開しました。 FacebookのELF OpenGoのニューラルネットワークを使っています。iMac Late 2012(GTX-660M)でニューラルネットワークの評価は380ms前後でし…
2年弱前にWGoエディタというものを作りました。nextliteracy.hatenablog.com新興アプリSabakiが良さげだったので開発をやめました。見立てもよかったようで、今、Sabakiは結構人気のアプリになったようです。 SabakiはLeela/Leela Zeroを使った検討機能も拡…
AlphaGo Fan AlphaGo Lee AlphaGo Master AlphaGo Zero (20b) AlphaGo Zero (40b) AlphaZero (20b) ELF OpenGo v1 ELF OpenGo v2 PhoenixGo KataGo 評価ハードウェア 1202 CPU & 176 GPU 48 TPU v1 4 TPU v1 4 TPU v1 4 TPU v1 4 TPU v1 1 V100 1 V100 Tesla…
Meteor歴5年で今更感があるのですが。Meteorといえばリアルタイムアプリがターゲットのウェブプラットフォームです。 クライアントとサーバーのDBの同期やリアクティブなレンダリングはとても重宝しています。さて、MeteorのDBのクライアント-サーバ同期の単…
古いiMac(2012)を使っているのでGPUが馬力がないので、CPUでもIntel MKLを使って高速化をすべく、macOS(High Sierra)でTensorFlowをコンパイルしようとしたら嵌りました。TensorFlowはコンパイル時にデフォルトのApple clangを使うのですが、このclangはOpen…
表題のライブラリを作成しました。 github.com 山口さんが開発されたPyaq(https://github.com/ymgaq/Pyaq)という9路盤の囲碁AIをJavaScriptの移植(A9.js)したのですが、そのときに、 UIのレスポンスを維持するためにAIの演算はワーカーで実行したい でも、ワ…