ゼロから作りながら学ぶ LLM 第4章 読書レビュー

힘센캥거루
2025년 11월 26일
6
challenge

今日は11月26日なので、毎日1章ずつ読み切ればチャレンジ成功だ。

長男と次男の妨害の中で、それが可能かどうかは分からない。

1. ダミー・トランスフォーマー

ゼロから作りながら学ぶ LLM 第4章 読書レビュー-1

GPTモデルを作りながら、PyTorchからトランスフォーマーのダミーブロックを持ってくる箇所を見た。

調べてみると、PyTorch の nn の中にはすでにいくつかのトランスフォーマーモデルが実装されていた。

このトランスフォーマーモデルをダミー(dummy)と呼ぶのは、モデルの構造は同じだが、まだ学習されていないためだ。

2. 正規化

トランスフォーマーブロックに入ってくる値のうち、ある次元だけが大きすぎると、その方向にデータが偏ってしまう。

そのため、平均が0、分散が1になるように値を変換してやる。

そして Feed Forward Network では Linear で次元を拡張したあと、非線形変換を行う。

このとき ReLU や GELU という非線形活性化関数を使う。

ゼロから作りながら学ぶ LLM 第4章 読書レビュー-2

ReLU より GELU のほうがより「なめらか」で線形的なので、パラメータがうまく調整されると言われている。

また、各ブロックでは Linear 関数を使って一度次元を増やし、再び減らす。

次元を増やすことで、より豊かな非線形探索が可能になる。

例えば、りんご・オレンジ・にんじんがあるとしたら、それぞれの食材を茹でる、焼く、刻む、混ぜるなど、さまざまな方法で調理してみるようなイメージだ。

そして完成した料理たちをまとめ、エッセンスだけを元の次元にぎゅっと詰め込む、ということになる。

ゼロから作りながら学ぶ LLM 第4章 読書レビュー-3

3. ショートカット

学習は損失が発生した場所から起こるので、そこから逆向きにたどっていく。

例えば、2階で水漏れが起きているとしよう。

そうしたら3階、4階、5階へと上りながら、水が漏れている場所を逆方向に探していくことになる。

この過程を逆伝播(バックプロパゲーション)と呼ぶ。

ゼロから作りながら学ぶ LLM 第4章 読書レビュー-4

しかし上図のように作られたモデルでは、各線形層を通るたびに勾配の消失が起きてしまう。

勾配が消失するというのは、逆伝播の過程で深い層では実質的に学習が行われないため、多層に積み重ねる意味がなくなってしまう、ということだ。

そこで各線形層で入力値と出力値を足し合わせ、勾配消失を防ぐための迂回経路(ショートカット)を提供する。

これは数学的に理解したほうが分かりやすいと思う。

Residual 과정 : y = x + F(x)
backward 과정 : dL/dx = dL/dy * (1 + dF/dx)
최종 gradient : dL/dy * (1 + dF/dx)

バックワードの過程で、各層の勾配に「1」が必ず足されるので、各層の勾配は消失しない。

これにより、効率的な学習プロセスを助けることができる。

4. GPT モデルを作る

こうして作ったダミーモデルに、今度は Attention モデルをつなげる。

最後に、この Attention モデルを何度も繰り返し適用できるようにし、出力されたトークンを再びデコードする過程を通せばよい。

ゼロから作りながら学ぶ LLM 第4章 読書レビュー-5

5. 感想

最初は軽い気持ちで始めた内容が、後ろに行けば行くほどきつくなってくる。

コードで見ると難しいが、いざ比喩やイメージを通して学んでみると、それほど難しくもなかった。

今は時代が変わり、内容そのものを暗記するよりも、理解することのほうが重要だ。

暗記しているだけでは新しいものは作れないが、理解していれば、AI の助けを借りて GPT を完成させることができる。

残された時間は多くないが、それでもできる限り理解できるように努力してみようと思う。

댓글을 불러오는 중...