このプロジェクトについて

tiny-llm は、LLM 推論をエンドツーエンドで理解したいシステムズエンジニア向けの実践的なコースです。CMU の Needle プロジェクトに対応する LLM サービング版と位置づけられており、学習者は Qwen3 モデルを読み込み、トークンを logits に変換し、テキストを生成する経路を構築します。 コースは配列と行列の操作から始まり、実行中のモデルが必要とするタイミングでカーネルとサービング機構を導入します。実装はエンドツーエンドで読める程度に小さく保たれ、数式をメモリトラフィック、カーネル占有率、KV キャッシュの増加、バッチ処理、リクエストスケジューリングに結びつけます。 高水準のニューラルネットワークレイヤーを使わず、MLX 配列と MLX 拡張ランタイム上に構築されます。章で演算子を教えるとき、学習者は対応する最適化済み MLX 演算を呼び出すのではなく、Python、C++、または Metal でその演算子を実装します。MLX は正しさのオラクルおよびパフォーマンスベースラインとして機能します。 4 週間の学習経路では以下を扱います: - 第 1 週: attention、RoPE、GQA、RMSNorm、MLP、サンプリング、自己回帰ループを含め、mlx.core の配列演算から Qwen3 モデルを構築します。 - 第 2 週: kv-cache、capacity-cache、packed W4 weights、SIMD matrix prefill、fused primitives、tiled prefill により、単一リクエストを高速化します。 - 第 3 週: continuous batching、chunked admission、paged KV cache、direct paged attention、paged FlashAttention を備えたミニ vLLM を構築します。 - 第 4 週: 検証済みエージェントループ、ワークスペース検査、承認済み編集、検証コマンド、チェックポイントと再開、コンテキスト圧縮、inspect-and-steer 一時停止、結果評価、フォークされた誘導分岐、制限付きツール証拠を備えたコーディングエージェントを構築します。 このプロジェクトは、単一の共有メモリ空間と Metal カーネルへの直接アクセスを備えた実用的なローカル環境を提供するため、Apple Silicon を対象としています。Qwen3-4B は、ローカルでの反復に十分小さいまま、実際の重み帯域幅、アテンション、キャッシュのコストを明らかにするのに十分な大きさです。 書籍は skyzh.github.io/tiny-llm で公開されています。リポジトリには、学生が実装するための tiny_llm パッケージと、参考解答の tiny_llm_ref が含まれています。ロードマップ表は、各章の実装、テスト、ドキュメント、編集監査の状況を追跡します。