CPUのみでAIの学習をするシリーズ第6弾。
昨日の午後5時からスーパーマリオをプレーするAIを作りたくなったので、DQNをcppで作ってみました。
まだ作り始めてから3時間、しかも古いPCでCPUのみで計算をして0から学習していますが、もう1-1ゴールできました。
https://github.com/yomei-o/mario_dqn_cpp
CPUのみでAIの学習をするシリーズ第6弾。
昨日の午後5時からスーパーマリオをプレーするAIを作りたくなったので、DQNをcppで作ってみました。
まだ作り始めてから3時間、しかも古いPCでCPUのみで計算をして0から学習していますが、もう1-1ゴールできました。
https://github.com/yomei-o/mario_dqn_cpp
CPUだけで学習するシリーズの第5弾。
nano-alphazeroを作ってオセロをするAIを作ってみました。
13分で学習完了。だけどそこそこ強い。
教育研究用としてはかなりいいね。
https://github.com/yomei-o/othello_alphazero_cpp
CPUのみでAIの学習をする第4弾。
nanochatのcpp版です。
個人的にはこれが一番すげーと思っているんですが、うまく説明できないので、以下claudeの解説
依存なしの C++・CPU だけで、GPU も PyTorch も要らずに「BPE 学習 → 事前学習 → SFT → ツール使用」のフルパイプラインが数分で一周する
- だから「電卓ツールってどれくらいで学習できる?」みたいな疑問を、思いついたその場で実験して確かめられる。待ち時間が数分なので仮説→検証のループが速い
- しかも見えているのは、実際の production LLM の function calling / tool use と同じ原理(モデルは計算を学ばず、ツールに丸投げする)。それが 0.9M パラメータのおもちゃモデルで、ソースを全部追える形で動く
大きいモデルだと「学習1回で数時間〜数日」なので、こういう「サッと試す」ができない。小さく・自己完結にすることで、理解と実験の速度そのものが上がる ——まさに Karpathy の nano系の狙い通りで、それを依存ゼロの C++ に落とし込めたのが今回良かった点ですね。
https://github.com/yomei-o/nanochat-cpp
CPUのみでAIの学習をする第三弾。
今日はChatGPT2のfine-tuningを行うnanoGPTをcppに移植してnanoGPT-cppを作ってみました。ただ移植するだけだとつまらないので、高速化もしてみました。
CPUのみでAIの学習をするシリーズの第二弾lecun1989をcppに移植してlecun1989-cppを作ってみました。
lecun1989は人類が世界で一番最初にバックプロパゲーションの計算をした論文です。
MNISTの原型です。
いまやCPUで40秒で学習の計算ができる。
https://github.com/yomei-o/lecun1989-cpp
micrograd-cpp
https://github.com/yomei-o/micrograd-cpp
nano-GPT
https://github.com/yomei-o/nanoGPT-cpp
ついでに他のpythonプログラムも全部C++に移植
自動微分やLLMの学習の高速化の勉強をしてたら思ったのですが、AIの学習ってCPUのみでも行けるんじゃない?
また自分でも作れると思ってしまった。
CPUのみでAIの学習をするシリーズを作ってみようと思い作ってみました。
第一回はまだ誰も作ってないだろうmini-yolov5です。
yoloもレイヤーを減らして、画像を128x128にすればcpuでも数分で学習できます。
yoloの仕組みを学習するのに最適
https://github.com/yomei-o/mini-yolov5-cpp
https://yomei-o.github.io/wakaru-uchu-keisanki/uchu-keisanki-index.html
今日はちょっと番外編で、宇宙を計算機としてみてみます。
どうやって物理のシミュレーションをするのかっていうお話です。
宇宙って最も効率的に計算を行っている計算機なんですね。