AIに頼って推論エンジンを自作したら、地獄はトークナイザだった

📌 エグゼクティブサマリー
Redditで、AIとの対話でLLM推論エンジンを自作した報告が話題です。GGUFのQ4量子化モデルをブラウザのWebGL2で動かせた一方、トークナイザはデバッグ地獄だったといい、結論は「llama.cppをクローンしろ」。自作の価値と限界がわかる投稿です。

「自分の推論エンジンをvibecodingするのは簡単だと言われていたのに」。こんなタイトルの投稿が、Redditのr/LocalLLaMAに上がり、AGI Huntでも取り上げられて話題になっています[1][6]。vibecodingとは、AIに「雰囲気でいいから作って」と頼みながらコードを書き進めるスタイルのことです。投稿者は実際にLLMの推論エンジンをゼロから作り、その成果と後悔をあわせて報告しました。

作ったものは意外に本格的です。投稿者はGGUF形式のQ4量子化モデルを動かしました。量子化は重みを圧縮してメモリを節約する仕組みです。処理にはWebGL2を使っています。これはブラウザ上でGPU計算を動かせる仕組みです。モデルのデータを組み込みのコンピュートバッファへページングし、GPU向け言語のGLSLで計算させます[1]。つまり専用ツールを介さず、普通のHTMLページの中でLLMが動いているのです。

しかし苦労はトークナイザに集中したといいます。文章をトークンIDに分割する部分で、語彙の処理も含めて「終わらないデバッグ地獄の一部だった」と投稿者は振り返ります[1]。締めの言葉もはっきりしています。「マジでllama.cppをクローンしたほうがいい」。

一方、「ゼロから作る」を学習用に体系化する動きもあります。Vibe Enginesというサイトは、無料の学習パスを公開しました[2]。対象は、モデルをブラックボックスのまま扱うのに疲れたアプリ開発者や、画像認識系から来たMLエンジニア、Transformerの組み立てを聞かれる面接の準備をする人です。目標は、プロンプトから次のトークンまでの間で何が起きているかを追えるようになること。必要なのはPythonと、ベクトル・対数に少し慣れていることだけとしています[2]。

記事全文: Build an LLM From Scratch — A Free Learning Path | Vibe Engines
画像出典: 記事全文: Build an LLM From Scratch — A Free Learning Path | Vibe Engines

学習パスでは、1つのトークンの旅を追います。BPE(よく出る文字ペアを順にまとめていく方式)でテキストをトークンIDに変え、IDが埋め込みベクトルになります。attentionはQ・K・Vという3つの役割を通じて、位置どうしの情報を混ぜます。softmaxと層正規化が数値を安定させ、cross-entropyは「正解の次トークンにモデルがどれだけ驚いたか」を測ります[2]。トークナイザを理解すると、トークンコストや文脈長の上限、モデルがstrawberryのrを数えられない理由まで説明がつく、としています[2]。範囲には、大きいモデルほど予測よく改善するスケーリング則や、生の予測器をアシスタントへ変える選好訓練も含まれます[2]。

進め方の型も提案されています。GitHubの「Build Your Own X with Vibe Coding」は、15〜25分のマイクロループで「小さな目標→実装→実行→違和感の記録」を回すスタイルです[3]。計画やリファクタ用の10〜15行のプロンプトの型を再利用し、最小限のひな形から早く動くものを出します。各ステップの最後には自動で走るチェックを置き、プロジェクトごとにvibes.mdへ「意図→摩擦→次」を1〜3行ずつ記録します[3]。対応ツールはClaude Code、Gemini CLI、Cline、Codex、Cursor。掲げるのはファインマンの言葉「作れないものは理解していない」です[3]。

記事全文: Build Your Own X with Vibe Coding - GitHub
画像出典: 記事全文: Build Your Own X with Vibe Coding – GitHub

ここで冒頭のReddit投稿が効いてきます。ブラウザで動くデモは作れた。それでも投稿者自身が「llama.cppをクローンしろ」と締めているのです[1]。デモとして動かすのと、実用のエンジンとして使うのとでは、求められる完成度が違うようです。同じテーマの挑戦は他にもあり、Mediumには「ゼロからLLM推論エンジンを作って学んだこと」「モジュール型推論エンジンを自作した」という体験記が上がっています[4][6]。個人ブログでも「ゼロから推論エンジンを作る」「働くエンジニアのためのLLM自作ガイド」が公開されました[5][6]。内容の詳細はタイトルからは確認できませんが、自作の試みが同時期に複数行われていることはうかがえます。

vibecodingは「ゼロから作る」の敷居を確かに下げています。ただしRedditの報告が示すのは、敷居が下がってもデバッグの山は消えない、という現実です[1]。それでも作る価値があるのは、プロンプトから次のトークンまでの間で何が起きているかを、自分の手で追えるからでしょう。リポジトリでは、3DレンダラやBitTorrentクライアントなどのお題とともに、ビルド日記付きの挑戦が募集されています[3]。生の成功と失敗の記録は、今後も増えていきそうです。

関連記事

CALENDAR

2026年10月
日 月 火 水 木 金 土
 123
45678910
11121314151617
18192021222324
25262728293031

ARCHIVES

CATEGORIES