LLM自作入門をE資格合格後にやってみた感想
はじめに
はじめまして、大学 4 年生のとうふです。
今回で Zenn への投稿は 11 本目になりました!
最近、インターンで LLM を用いた AI エージェント開発に取り組んでおり、
より深く LLM の仕組みを理解するために「つくりながら学ぶ!LLM 自作入門」をハンズオン形式で学習しました。
また私は E 資格を取得しており、今回ミニ GPT を自作する過程で、
E 資格で学んだ理論が「実装としてどう落とし込まれているのか」 を具体的に確認する良い経験にもなりました。
この記事では書籍内容の網羅的な解説はせず、
「LLM 自作入門をやってみて特に面白かった点」
「E 資格の知識とリンクして理解が深まった部分」
にフォーカスして簡単にまとめます。
つくりながら学ぶ!LLM 自作入門 について
「LLM 自作入門」は GPT のような LLM を
トークナイザー → Embedding → Attention → Transformer → 学習 → 推論
という流れで “実際に自分の手で実装しながら" 学ぶ技術書です。
単にコードをコピペするのではなく、
「なぜこの形状になるのか?」「この行列はどう処理されているのか?」
を丁寧に追える構成になっています。
ハンズオンで面白かったポイント
1. 一つ一つの処理を“自分の手で書く”ことで次元変化などを完全に追える
本書の最大の魅力はやはり すべての処理を一から実装すること です。
E 資格ではテンソルの次元や行列演算については触れますが、
以下のような処理を「自分で書きながら理解する」機会はあまり多くありません。
私自身、認定講座は松尾研究所の Deep Learning 基礎講座を受講しましたが、
時間の都合上、実装を詳しく追うような授業は多くありませんでした。
E 資格受験時にはコードリーディングで LLM 実装を学んだものの、
まっさらな状態から一人で実装した経験 はなかったため、
理解が曖昧な部分も残っていました。
たとえば以下の処理です:
- Embedding の shape
- Q, K, V の生成と次元変化
- causal attention の実装
- Multi-Head Attention
- 位置エンコーディング
- Transformer Block 内での residual の流れ
LLM 自作入門では、
「自分の手でコードを書き、print して shape を確認しながら進める」
という学習スタイルを徹底しています。
そのため、
「ここで (batch, seq, hidden) → (batch, head, seq, head_dim) に変換して処理しているんだ」
「この層を通過すると input の shape がこう変わるのか」
というような 次元の流れ・内部処理の理解が身体感覚として身につきます。
これは E 資格の勉強では得られなかった、“実装ならでは” の視点でした。
2. E 資格では触れない “実際の GPT モデル構築” を段階的に学べる
E 資格では Transformer の仕組みは扱うものの、
GPT モデルを一から組み上げるところまでは踏み込みません。
一方で LLM 自作入門では、
- Attention の最小例(スカラー注意)
- Scaled Dot-Product Attention
- Multi-Head Attention
- Transformer Block
- GPT モデル全体
というように 非常に小さなステップで実装を積み上げる構成 になっています。
これは本当に良くできていて、
「Attention の式は知っているけど、コードにするとどうなるの?」
という状態から
理論 → 数式 → 実装 → 挙動確認
がきれいにつながるようになっています。
E 資格の理論知識が “実際のコード” とリンクしていく感じがとても気持ちよかったです。
E 資格の勉強との繋がり
今回のハンズオンで、
E 資格で学んだ内容がどこで生きるのか がよく見えました。
Transformer / Attention Mechanism
E 資格で扱う概念:
- Self-Attention
- Multi-Head Attention
- 残差接続
- LayerNorm
これらが 実際にどうコードとして実装されているのか を確認できました。
もちろん、E 資格の勉強でも実際のコードに触れる機会は多くありましたが、ここまで詳しく LLM の実装については触れてこなかったので、より深く理解できました。
特に causal mask や Dropout の使われ方を
print や可視化で確認できたのは非常に勉強になりました。
次元の追跡
E 資格の問題では次元変化について、コードを読んで穴埋めをする問題が出題されることがあります。
コードリーディングでの勉強でも次元の変化を追う機会は多くありますが、実際にコードを自分で書き、スモールステップで次元を確認しながら進めることで計算過程が深く理解でき、
どういう次元の処理が求められているのかがより明確になりました。
まとめ
LLM を一から自作することで、
Transformer の内部処理が「自分の目で追える形」で理解できるようになりました。
また、E 資格で培った理論的知識が
実装としてどう形になるのかを再確認できた点も非常に有意義でした。
- E 資格の知識 → LLM 実装でより深く理解
- 実装 → Attention / Embedding などの構成要素を理解
- 次元の追跡 → モデル構造が腹落ち
といった学びが得られたハンズオンでした。
今後も理論と実装を行き来しながら、
技術力をさらに高めていきたいと思います。
Discussion