世界最古のボードゲームのひとつで、人類は頂点を極めた。 しかし今、人工知能によって、私たちは人類の限界に挑戦している。
新興の囲碁AIとして、Katagoはすでに囲碁の分野で多くの注目と議論を集めている。 ディープラーニング技術とモンテカルロ木探索を組み合わせることで、Katagoは囲碁対局において前例のない高水準のパフォーマンスを示し、場合によってはAlphaGoを凌ぐことさえある。さらに、Katagoのオープンソースコードは多くの囲碁愛好家や開発者の関心を集め、彼らはKatagoを使って対局し、自らを向上させることで、Katagoのゲーム性をさらに高めている。 ゲームプレイ。
Katagoは、David Wuと彼のチームによって開発されたオープンソースの囲碁AIです。 畳み込みニューラルネットワークやモンテカルロ木探索を含むディープラーニング技術を使用し、囲碁の最先端レベルで人間を打ち負かす。Katagoのアルゴリズムとコードは一般に公開されており、囲碁の指導、トーナメント、研究に広く使用されている。 Katagoのアルゴリズムとコードは公開されており、囲碁の教育やトーナメント、研究において広く使用されています。自己再生と強化学習を使用することで、Katagoはそのゲームを改善し、強化し続けており、非常に有望なAIプロジェクトとなっています。
最近、私はKatagomoを使ってトレーニングし、新しい囲碁AIモデルを作ることに成功しました。 このブログポストでは、私の経験とプロセス、そしてKatagoを使用する際の基礎知識とヒントを紹介します。
なんとか模型はできたものの、まだまだミスが多いかもしれない。 なぜなら、私はまだ学習者だからだ。 もしこの記事に間違いを見つけたら、コメント欄で指摘してほしい。 ご理解ありがとうございました!
Katago-Github:https://github.com/lightvector/KataGo
Katagomo-Github:https://github.com/hzyhhzy/KataGo
Compiling.md:https://github.com/lightvector/KataGo/blob/master/Compiling.md
SelfplayTraining.md:https://github.com/lightvector/KataGo/blob/master/SelfplayTraining.md
CMake Download:https://cmake.org/download/
Cuda Download:https://developer.nvidia.com/cuda
Cudnn Download:https://developer.nvidia.com/cudnn
Kata1 NetWork:https://katagotraining.org/networks/
AIモデルを作成するには、まずコンピュータ上でコンパイルする必要がある。 Katagoのコンパイルに関するドキュメントはこちら:Compiling.md。
私のコンピューターではUbuntu / GPU (CUDA)を使用しています。 次に、私が行ったことを再現します。これはどのLinuxでも動作しますが、macOSで動作するかどうかはわかりません。
Ubuntuのソースに含まれているCmakeのバージョンは低すぎるので、Cmakeのウェブサイトに行く必要があります。Cmakeパッケージをダウンロード. その後、任意のディレクトリに解凍することができます。 コンパイルせずに直接使うこともできます。 PATHに追加する必要がある場合は、bashの設定ファイル(Bashの場合は~/.bashrc、Zshの場合は~/.zshrc)の最後に追加してください:
export PATH=$PATH:(Your Path)/cmake-3.26.0-linux-x86_64/bin
インストール後、cmake --versionと入力し、Cmakeのバージョン番号が返ってくれば、インストールは成功です。
次に、Compiling.mdに記載されている手順で、C++のバージョンと各BackEndの要件を確認してください。
すべての準備が整ったら、作業ディレクトリに移動してください。
git clone https://github.com/lightvector/KataGo.git
クローン後、cppフォルダに移動し、コンパイルするBackEndに合わせてCmakeする。
cmake . -DUSE_BACKEND=CUDA
もしここでlibzipがないというエラーが出たら、まずlibzipをインストールしてください。
問題がなければ同じディレクトリで実行する
make
コンパイルが成功するまで待つ。ディレクトリに実行ファイルkatagoが見つかれば成功だ。
./katago version
おめでとう、Katagoのコンパイルが完了した!
SelfPlayを始める前にお読みくださいSelfPlayTraining.md。このガイドは、自分自身を訓練し、改造を生成する方法を示すことができます。
Python3とTensorflowがまず必要なので、SelfPlayの前にインストールしておこう。
次にSelfPlay.cfgを用意してください。これはKatagoのSelfPlay時の設定ファイルです。 この設定ファイルでは、ボードの重み、CPU使用率、GPU使用率など、トレーニングに必要な設定を行うことができる。 うまく設定することで、より効率的にトレーニングを行うことができる。
SelfPlayTraining.mdによると、SelfPlay Shuffler Training ExporterとGateKeeperの5つのプロセスが同時に機能する必要がある。
私のプロセスでは最初の4つしか使っていない:
Selfplay engine (C++ - cpp/katago selfplay) - continuously plays games using the latest neural net in some directory of accepted models, writing the data to some directory.
Shuffler (python - python/shuffle.py) - scans directories of data from selfplay and shuffles it to produce TFRecord files to write to some directory.
Training (python - python/train.py) - continuously trains a neural net using TFRecord files from some directory, saving models periodically to some directory.
Exporter (python - python/export_model.py) - scans a directory of saved models and converts from Tensorflow's format to the format that all the C++ uses, exporting to some directory.
この4人を走らせる準備をしろ!
まず、SelfTraining.mdにあるコマンドの詳しい説明を読んでください。 (shuffle.shとexport_model_for_selfplay.shについては、正式にはShuffle_and_Export_loop.shにまとめられているため、SelfTraining.mdには情報がありません)
最初の命令はcppファイルの下にあり、残りはscriptsフォルダの下にある。
./katago selfplay -config ./work/config_files/selfplay1.cfg -models-dir ./work/output/acceptedmodels -output-dir ./selfplay
./shuffle.sh ../ ./TempDir 10 256 -keep-target-rows 10000 -min-rows 100
./train.sh ../ kataAda b6c96 256 main -lr-scale 1.0
./export_model_for_selfplay.sh kataAda ../ 0
私のファイル構成はこうだ:
Katago
├── cpp
│ ├── katago
│ └── selfplay
└── scripts
├── shuffle.sh
├── train.sh
└── export_model_for_selfplay.sh
まず最初の3番目と4番目のコマンドを実行し、次に2番目のコマンドを手動で実行してSelfPlay配下のデータをスクラブする。 1番目と3番目のコマンドはデフォルトでターミナルに出力され、2番目のコマンドは手動で実行されターミナルに出力され、4番目のコマンドはバックグラウンドで実行され、手動で調整できる$basedirの下のログに出力される。
最初に実行されるコマンドは、n番目のゲームがプレーされていることを出力するはずだ。
番目のコマンドを実行したときに出力されるはずのものは、スクラブされたデータの量である。
3番目のコマンドは、実行時にトレーニングプロセスを出力する必要があります。
4番目のコマンドは、ターミナルに出力したい場合、.shファイルからログへの出力を削除する。
2番目のコマンドを続けたい場合は、shuffler_loop.shを使うことができる。このshはデフォルトではターミナルに出力されないが、ログへの出力を削除してshをターミナルに出力させることもできる。
正しい結果は、最初のプロセスがゲームをプレイし、2番目のプロセスがデータをスキャンしてスクラブし、3番目のプロセスがデータをトレーニングし、最後にmodelstobetestsがcppフォルダに見つかるというものだ。
実行後のフォルダ:
Katago
├── cpp
│ ├── katago
│ ├── models
│ ├── modelstobetest
│ ├── selfplay
│ └── shuffleddata
└── scripts
├── shuffle.sh
├── train.sh
└── export_model_for_selfplay.sh
modelstobetestの中にmodel.bin.gzがあれば、モデル入手おめでとう!
その後、gatekeeperを使ってモデルをテストし、うまく機能するものをフィルタリングすることができる。
コメント