大規模言語モデル(LLM)というと、数千億パラメータ・数百億円のコスト・謎めいたアーキテクチャ——そんなイメージを持つエンジニアは多い。しかし「それは思い込みだ」と静かに示す教育プロジェクトが、Hacker Newsで425ポイントを集めて話題になっている。その名もGuppyLM——金魚のような小さなLLMだ。
GuppyLMとは何か
GuppyLMは、約870万(8.7M)パラメータのトランスフォーマーモデルをゼロから実装したオープンソースの教育プロジェクトだ。学習データは6万件の合成会話、PyTorchのコードはわずか約130行。Google ColabのT4 GPU(無料枠)でわずか5分で学習が完了する。
生成されるのは「グッピー(熱帯魚)」というキャラクターの会話で、水温・えさ・泡などの話題で小さく応答する。これは意図的な設計で、「人間の抽象概念を理解しないモデル」という制約のなかで、トークナイザから学習ループ、推論まですべての仕組みが透明に見えるようになっている。
アーキテクチャの「飾らなさ」が価値
モデルの仕様はシンプルの一言に尽きる。
項目 値
パラメータ数 8.7M
レイヤー数 6
隠れ次元 384
アテンションヘッド 6
語彙サイズ 4,096(BPE)
最大シーケンス長 128トークン
GQA(Grouped-Query Attention)もRoPE(Rotary Positional Embedding)もSwiGLUも使わない。バニラトランスフォーマーそのままだ。GPT-4やClaudeが内部で使うような最適化技術は一切ない。
この「飾らなさ」こそが意図的なポイントで、最新技術のノイズを排除して「トランスフォーマーの本質的な動作」だけを学べる設計になっている。
60トピックの合成データセットで個性を作る
学習データはHuggingFaceで公開されているarman-bd/guppylm-60k-generic。挨拶・感情・温度・食べ物・光・水・孤独・夢・人生の意味など60カテゴリ、6万件の合成会話が含まれる。
データの形式は {"input": "...", "output": "...", "category": "..."} とシンプルで、自前のキャラクター設定に差し替えれば**自分だけの「個性あるミニLLM」**をほぼ同じ手順で作れる。
プロジェクト構造も明快だ。config.py(ハイパーパラメータ)、model.py(トランスフォーマー本体)、dataset.py(データローディング)、train.py(学習ループ)、generate_data.py(会話データ生成)に綺麗に分割されており、どのファイルがどの役割を担うか一目でわかる。
実務への影響——なぜエンジニアはLLMの内部を知るべきか
LLMをAPIとしてのみ使うエンジニアにとって、内部構造の理解は「趣味の話」に見えるかもしれない。しかし実際には、構造への理解がプロンプト設計の質を根本的に変える。
たとえばコンテキストウィンドウの制約、トークン化の落とし穴、温度パラメータの意味、ファインチューニングと数ショット学習の使い分け——これらはモデルがどう動くかを知らないと、「なんとなく試行錯誤」から抜け出せない。
GuppyLMを手元で動かすことで得られる実践的なヒントをまとめる。
- トークナイザを自分で実装する体験: BPE(Byte Pair Encoding)の動作を自力で追うと、なぜ日本語トークン数が英語より多くなりやすいかが腑に落ちる
- 学習ループの全体像を把握する: コサイン学習率スケジューリングやAMP(自動混合精度)の意味がコードレベルで見える
- 「どこで何が決まるか」を知る: ハイパーパラメータを変えてすぐに再学習できるため、感覚ではなくデータで設計判断できるようになる
- ファインチューニングの入門台として最適: 自社データで試したいが大規模モデルは難しい——という場合に、GuppyLMで手順を先に身につけると実際の作業がスムーズになる
筆者の見解
「LLMは魔法じゃない」——この一言に尽きると思っている。
AIエージェントや自律ループを設計する立場から言えば、モデルの挙動を予測できるかどうかは実装の品質に直結する。ブラックボックスとして扱い続ける限り、想定外の出力への対処は「プロンプトをいじる」という勘頼みになりがちだ。
GuppyLMのような小さなプロジェクトを一度手で動かすと、トークン化・アテンション・サンプリングのそれぞれが何を担っているかが体で理解できる。その感覚は、大規模モデルのAPIを呼ぶときも確実に活きる。
日本のIT現場では「とりあえずAPIを叩いてみる」層と「論文を読み込む」層に二極化しがちだが、GuppyLMはその間を埋める絶好の入口だ。5分で動くモデルを1本手元で作ったことがある人とそうでない人では、AI技術の議論の解像度が明らかに違ってくる。
情報を追い続けることよりも、一度手を動かして自分の感覚を作る——そのコストが「Colabで5分」まで下がったことの意義は、思っている以上に大きい。
出典: この記事は Show HN: I built a tiny LLM to demystify how language models work の内容をもとに、筆者の見解を加えて独自に執筆したものです。