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

힘센캥거루
2025년 11월 26일
2
14

今日は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 を完成させることができる。

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

관련 글

ゼロから作りながら学ぶ LLM 第7章 読書レビューとチャレンジの感想
ゼロから作りながら学ぶ LLM 第7章 読書レビューとチャレンジの感想
第7章の内容は、指示に従うように微調整するプロセスだ。ある質問に対して、期待する応答を返すようにすること。やはり必要なのはデータである。1. 指示微調整の手順ここでの要点は、質問と応答のデータセットを用意し、入力-出力のペアとして学習させること。これをプロンプトスタイルと呼ぶ。その他は以前のプロセス...
ゼロから作りながら学ぶ LLM 第6章 読書レビュー
ゼロから作りながら学ぶ LLM 第6章 読書レビュー
第6章は、分類のためのファインチューニングについてである。例として出てくるのは、スパム分類器の作成。スパム分類器は、あるメールなどがスパムかスパムでないかを分類するものなので、出力結果は 0 や 1 のような値になる必要がある。1. ファインチューニングの手順ファインチューニングのプロセスは、モデル...
ゼロから作りながら学ぶ LLM 第5章 読書レビュー
ゼロから作りながら学ぶ LLM 第5章 読書レビュー
今日は12月14日だ。実はチャレンジ期間はすでに2週間も過ぎてしまったが、だからといってレビューを書くのをあきらめることはできなかった。こうして残しておくTILが、あとで自分の血となり肉となるからだ。コードそのものよりも、その意味に集中して書いてみようと思う。1. モデルの損失計算GPTモデルを作っ...
ゼロから作りながら学ぶLLM第3章読書感想
ゼロから作りながら学ぶLLM第3章読書感想
MacBookに大量の水をこぼしてパニックになり、3〜4日無駄にした。今考えてみると、どうせMacBookは駄目になったし、修理に出すと思って何かをすればよかったと思う。とにかく少し遅れたけど、最後までやるべきだと思い、第3章の感想を残す。1. アテンションメカニズム3章...
ゼロから作りながら学ぶLLM第2章読書レビュー
ゼロから作りながら学ぶLLM第2章読書レビュー
すでにチャレンジ参加2週目。昨日まで2章を終えていなかったが、1泊2日の研修に来て、12時までコーディングしながらようやく進度を合わせた。1. 内容2章の内容は単語のトークン化、エンコーディング、デコーディング、埋め込みベクトルが中心だった。ワンホットエンコーダーを作ったことがあるので他のことは慣れていたが、埋め込み...
MacBookユーザー向けPython OCRのおすすめ
MacBookユーザー向けPython OCRのおすすめ
学生の診療確認書を認識するために試していないOCRはないようだ。Tesseract、EasyOCR、PaddleOCRなどさまざまなOCRを試したが、韓国語に対する満足できる性能を持ったOCRはなかった。しかし最近、MacBookにあるライブテキスト機能をラッピングしたPythonライブラリを発見した。

댓글을 불러오는 중...