MLエンジニアリングのオンライン書籍
(github.com/stas00)-
AI戦闘エンジニアリング - 知っておくべきこと
- 人工知能(ML)モデル、特に大規模言語モデル(LLM)とマルチモーダルモデル(VLM)を成功裏に訓練するための方法論を集めたオープンなコレクション。
- LLM/VLMの訓練エンジニアおよび運用担当者向けの技術資料で、スクリプトとコピー&ペースト用コマンドが多く含まれており、必要な作業をすばやく実行できる。
- 2022年にオープンソースのBLOOM-176Bモデル、2023年にIDEFICS-80Bマルチモーダルモデルを訓練した際に得た経験とノウハウを継続的に記録しており、現在はContextual.AIでオープンソースの検索拡張モデルを開発・訓練中。
-
目次
- レイアウトが不安定であることを詫びつつ、新しい章を執筆し、内容をより直感的に再構成している最中。
-
ハードウェア構成要素
- アクセラレータ - MLの主力であり、GPU、TPU、IPU、FPGA、HPU、QPU、RDUなどを含む。
- ネットワーク - ノード内およびノード間の接続性、帯域幅要件の計算。
- ストレージ - ローカルおよび分散ディスクとファイルシステム。
- CPU - CPUとアフィニティに関する内容。
- CPUメモリ - どれだけのCPUメモリが十分かについての最も短い章。
-
性能
- 耐障害性
- 性能
- マルチノードネットワーキング
- モデル並列性
-
運用
- SLURM
- 訓練ハイパーパラメータとモデル初期化
- 不安定性
-
開発
- ソフトウェアおよびハードウェア障害のデバッグ
- さらなるデバッグ
- 再現性
- テンソル精度 / データ型
- HF Transformersノート - 小さなモデル、トークナイザー、データセットなどに関するヒント。
-
その他
- 資料 - LLM/VLM年代記。
-
ショートカット
- 頻繁にすばやく探す必要があるツールとガイド。
- ツール:
all_reduce_bench.py,torch-distributed-gpu-test.py - ガイド:
debugging pytorch applications,slurm for users,make tiny models/datasets/tokenizers,LLM/VLM chronicles collection
-
本を作る
- PDFを作成したい、またはリンクを確認したい場合は「本を作る」セクションを参照。
-
謝辞
- このようなノウハウを学べたのは、大規模MLコンピュートクラスタを借りる費用が非常に高額であるため、ごく一部の人しか享受できない特権。
- Thom WolfとHuggingFaceに特別な感謝を表明。
-
貢献する
- バグや誤字の発見、改善提案があれば、Issueを開くかPRを送ることを推奨。
-
ライセンス
- このサイトの内容はAttribution-ShareAlike 4.0 Internationalライセンスの下で配布される。
-
自分のリポジトリマップ
- 機械学習: ML Engineering Open Book | ML ways | Porting
- ガイド: The Art of Debugging
- アプリケーション: ipyexperiments
- ツールおよびチートシート: bash | conda | git | jupyter-notebook | make | python | tensorboard | unix
GN⁺の意見
- この資料は、大規模言語モデルとマルチモーダルモデルの訓練に必要な実践的知識とツールを提供することで、MLコミュニティに大きく貢献している。
- 実際のプロジェクト経験から得たノウハウを共有することで、初級ソフトウェアエンジニアが大規模MLモデル訓練に必要な実務知識を身につける助けになる。
- オープンソースのアプローチは、ML分野における知識共有と協力を促進し、これは研究とイノベーションの加速に重要な役割を果たす。
1件のコメント
Hacker Newsのコメント
この記事は本当に価値がある。研究を支えるためにLLMのトレーニング設定をデバッグする仕事をしているが、始めるときにこういうメモがあればよかった。
私はApplied Scientistと一緒に働きながら、モデルのトレーニングやデプロイに関する作業を手伝っています。私のような人間は、最適化や性能といったより低レベルのエンジニアリング作業に、どうすれば触れられるのでしょうか? MLインフラチームはありますが、彼らの目標はプラットフォーム周辺のツールを構築することであって、必ずしもワークロードを最適に実行することではありません。
これを試してみたいのですが、まともなGPUがありません。みなさんはこういうものをどうやって動かしているのでしょうか?
AI Battlefieldセクションの"Unsolicited Advice"に書かれているすべてのことに、本当に感謝しています [1]。AI開発の急速な進歩と、それに伴う感情的な負担について、非常に現実的な見方です。
Slurmはどのくらい広く使われているのでしょうか?
何となくクリックしてrepeatabilityについて読んだのですが、分散トレーニングでこれがどう達成されるのか、まだ気になります。決定的な同期は処理を遅くしないのでしょうか? でも少なくともいくつかの大企業では、彼らのトレーニングが再現可能だと聞いたことがあります。
仕事がないとき、こうしたことの経験はどうやって積むのですか?
どこかにpdfはありますか? ビルド方法はありますが、実際のファイルはないようです。