LLM、GPT界隈を追いかけていて、GPTの仕組みと限界についての考察(2.1) - conceptualizationという記事を見かけた。これを見たとき、「どういうことか全然理解できない」という気持ちになった。また、その他LLMの解説記事を理解できないことが多く、自分の機械学習知識不足が明確になった。
理解できなかったことは悔しいし、LLMやChatGPTをうまく使いこなすには最低限どのような原理で動いているか理解したいと感じた。そこで一歩目として「ゼロから作るDeep Learning」を完走した。
知識なしからはじめたので時間はかかったが、次のように進めていった。
- 自分もコードを写経しながら読む
- レポジトリは https://github.com/shibayu36/deep-learning-from-scratch
- 理解が追いつかないところは実際にPythonのdebuggerを起動して、データ構造がどのように変わっていくかなどを追いかけていった。例えば自分で https://github.com/shibayu36/deep-learning-from-scratch/blob/main/ch07/simple_conv_net.py#L73-L82 のようなコメントをまとめたのは理解が深まった
- 数学の基礎知識の不足については https://tutorials.chainer.org/ja/index.html にて学んだ
「ゼロから作るDeep Learning」は非常に良く、完走したことにより、「ディープラーニングは魔法のように見えてしまう」から「詳細は分からないけどなんとなくやっていることの方向性は分かる」くらいにはなれたかなと思う。たとえば次のようなことをイメージできるようになった。
- LLMでよく言われているパラメータ数が具体的に何を指しているか分かった
- 前述のGPTの仕組みと限界についての考察(2.1) - conceptualization のエントリのThe Transformerのmodel architectureが計算グラフの構造を表しているんだろうと思えた
- なぜGPUを使うことでディープラーニングの訓練フェーズ・推論フェーズを高速化できるのか、大規模な行列演算に変換すると何が便利なのかのイメージがついた
一旦ディープラーニングの基礎への理解は深まったと思うので、次はTransformerについても学びたいと思う。次は「作ってわかる!自然言語処理AI」かな。