jingyaogong/minimind
GPU1枚に載る大きさまで削って、モデルを作る側を一度通しでやる
どういうものか
言語モデルをゼロから学習させる工程一式を、個人の機材で最後まで走らせられる大きさに縮めた教材です。作るモデルは 64M パラメータほど。MoE(専門家混合)の構成も用意されていて、こちらは全体 198M・実際に動くのは 64M ぶん、という形になっています。NVIDIA 3090 が1枚あれば、事前学習に約1.2時間、教師ありファインチューニングに約1.1時間。合わせて約2.3時間で1周します。ただしこれは軽量版のデータを使ったときの数字で、README も概算だと断っています。本線のデータは軽量版の10倍近い量なので、同じ時間では終わりません。README にある「3元」は電気代ではなく、その時間ぶんの GPU の借り賃(1時間あたり1.3元での計算)で、日本円にすると60円ほどです。
学習の段階は、いま実際に使われているものがひととおり揃っています。事前学習、教師ありファインチューニング、LoRA、DPO による選好の学習、AI のフィードバックによる強化学習=RLAIF(PPO・GRPO・CISPO)、その一種で道具を使わせるマルチターンの Agentic RL、そして蒸留(ブラックボックス/ホワイトボックスの両方)。データは JSONL の同じ形に揃えて配布されていて、事前学習用の小さい版と全量版、道具呼び出しを含む対話データなどがあります。
この構成でいちばん効いているのは、中身が素の PyTorch で書かれていることです。README には「主要なアルゴリズムはすべて PyTorch で直接実装しており、外部ライブラリの高水準な抽象に依存しない」とあります。トークナイザ、LoRA、DPO、強化学習まで自前です。推論の側は transformers や vLLM と組み合わせられます。
どんなときに使うか
学習の中身を、コードのまま読みたいとき
DPO や GRPO の説明を読んで分かった気になっても、実装を見ると別のことが書いてある、というのはよくあります。ここでは各アルゴリズムが PyTorch で直接書かれているので、ライブラリの引数を追うのではなく、処理そのものを読めます。
手順を一度、最後まで走らせておきたいとき
事前学習からファインチューニングまで数時間で終わるので、途中でどこが詰まるか、何が効いて何が効かないかを、待たずに何周か試せます。大きなモデルで同じことをやると、1回の失敗の代償が大きすぎます。
注意点
できあがるモデルの性能には期待しないこと。 README は、この最小構成を GPT-3 の約 1/2700 の大きさだと書いています。目的は使えるモデルを手に入れることではなく、作り方を通しで確かめることにあります。
「約2.3時間・3元」は、軽量版データを1エポック回したときの数字です。 条件は 3090 が1枚、軽量版の事前学習データと教師ありデータ、1エポック。もともと借り賃としての金額なので、GPU を持っていない人もそのまま見積もりに使えますが、試行錯誤して何周も回せば、当然その回数ぶん掛かります。
主に中国語のプロジェクトです。 README には英語版もありますが、データセットも解説も中国語が中心です。日本語での学習を試したい場合は、データを自分で用意することになります。
ライセンスは Apache 2.0 で、商用利用と改変が明示的に許可されています。