skyzh/tiny-llm
learn LLM inference system on Apple Silicon for systems engineers: build a tiny vLLM + Qwen
解決する課題
ほとんどの LLM コースはモデルをブラックボックスとして扱うか、トレーニングに焦点を当てています。tiny-llm は、LLM 推論が実際に内部でどのように機能するかを理解したいシステムエンジニア向けの実践的なコースです。モデルのロードからテキスト生成まで、トークンをロジットに変換し、メモリを管理し、リクエストを処理する完全なパスを示します。このコースは、実装全体を読み、数式をメモリトラフィック、カーネル占有率、KV キャッシュの増加、バッチ処理、リクエストスケジューリングなどの実際の懸念事項に結び付けることができるように設計されています。
仕組み
このコースは MLX(Apple の機械学習フレームワーク)を中心に構築され、Apple シリコン上で動作します。MLX 配列と MLX 拡張ランタイムを使用しますが、高レベルのニューラルネットワーク層は意図的に避けています。各章では、最適化された組み込みバージョンを呼び出すのではなく、Python、C++、または Metal でオペレーターを自分で実装します。MLX は参照として残り、正確性をチェックし、パフォーマンスのベースラインを提供します。
学習パスは 4 週間です:
- 第 1 週:Matmul からテキストへ。 基本的な配列操作を使用して Qwen3 モデルをゼロから構築し、アテンション、RoPE、GQA、RMSNorm、MLP、サンプリング、自己回帰ループをカバーします。
- 第 2 週:より高速な単一リクエスト。 KV キャッシュ、量子化された重み、SIMD 行列乗算、融合プリミティブ、タイリングされたプリフィルなどの最適化を追加します。
- 第 3 週:ミニ vLLM。 連続バッチ処理、チャンク化されたプリフィル、ページングされた KV キャッシュ、ページを直接読み取る FlashAttention を実装します。
- 第 4 週:コーディングエージェント。 ワークスペースを検査し、承認された編集を行い、コマンドを実行し、チェックポイントと再開を行い、結果を評価できる検証済みのエージェントを構築します。すべて有界ループを通じて行います。
付属の書籍は skyzh.github.io/tiny-llm にあり、リポジトリには参照ソリューション(tiny_llm_ref)とテストが含まれています。
対象読者
プログラミングと低レベルのパフォーマンスをすでに理解しているが、LLM 推論がエンドツーエンドでどのように機能するかを把握したいシステムエンジニア。Apple Silicon Mac をお持ちで、高価な GPU サーバーを必要とせずに学習したい場合に最適です。このコースでは、コードを読め、行列、メモリ、並行性などの概念に精通していることを前提としていますが、深い ML の背景は前提としていません。
ハイライト
- エンドツーエンドの理解: 断片だけでなく推論パス全体を構築し、数学を実際のハードウェアの動作に結び付けます。
- Apple シリコン上でローカルに実行: GPU クラスターは不要。共有メモリと Metal アクセスを備えた 1 台のマシンで十分です。
- 実際の最新モデル(Qwen3-4B)を使用:グループ化クエリアテンション、QK 正規化、BF16 アクティベーション、4 ビット重みを備えています。
- 実践による学習: Python、C++、または Metal でオペレーターを自分で実装し、MLX をオラクルとして使用します。
- 4 週間の構造化パス:基本的な行列操作からミニ vLLM とコーディングエージェントへとエスカレートします。
- 自己チェック用の参照ソリューションとテストが含まれています。
- Discord によるコミュニティサポート。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト