0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

入門書通りにCNNから学ぶ必要はない。いま生成AIへ最短で到達するための学習ロードマップ

0
Posted at

はじめに

AIを学ぼうとして入門書を開くと、CNNから始まることが多いです。

畳み込み、プーリング、画像分類。

もちろん大事です。
ただ、いまLLMや画像・動画の生成AIを使い、その仕組みを理解したい人にとって、最初の山がCNNである必要はないと私は考えています。

自分なら、基礎的な学習の仕組みを押さえた後、Transformer、LLM、拡散モデルの順に進みます。

私はAI研究に携わってきた立場から、いまAIを学ぶなら何を優先するかを整理します。
研究を網羅するための順番ではなく、現在のAIへ早く到達するための順番です。

なお、これはAIを研究していた元修士の勝手な意見です。

記事の要点

  • 最初に、損失関数・最適化手法・評価指標を学ぶ
  • LLMを理解する入口はTransformerである
  • 画像・動画ではViTやTransformerバックボーンの生成モデルが大きな位置を占める
  • 画像生成は、次に拡散モデルを学ぶとつながりやすい

学習の土台

AIの学習が何をしているかを理解してほしいです。

ニューラルネットワークは、入力から予測を作り、予測と正解のずれを数値にして、そのずれが小さくなるように重みを更新します。
この一連の流れが分かっていないと、Transformerも拡散モデルも名前だけを覚えることになります。

損失関数

損失関数は、予測の悪さを一つの数値にする関数です。

分類ならCross Entropy、連続値の予測ならMSEが代表例です。
画像生成の拡散モデルでも、ノイズ予測の誤差をMSEとして最小化する形がよく出てきます。

大事なのは式を暗記することではありません。
モデルが何を正解として扱い、どの誤差を減らそうとしているのかを読めることです。

最適化手法

損失を小さくするために重みを動かす規則が最適化手法です。

まずは勾配降下法、ミニバッチ、学習率を理解します。
その後にAdamAdamWを見れば十分です。
学習率が大きすぎると不安定になり、小さすぎると進みません。

この感覚は、LLMの微調整でも画像モデルの学習でも変わりません。

評価指標

損失が下がっただけでは、よいモデルとは限りません。

分類ならAccuracyだけでなく、クラスの偏りがある場合はPrecisionRecallF1-scoreを見る必要があります。
生成モデルなら、学習損失だけで画像の自然さやプロンプトへの従いやすさを決め切れません。

何を成功と呼ぶのかを、モデルより先に決める習慣が必要です。

Transformer

LLMを学びたいなら、まずTransformerです。

Transformerは、入力中の各要素がほかの要素を参照するSelf-Attentionを中心にした構造です。
文章ならトークン同士、画像ならパッチ同士の関係を扱えます。

Self-Attentionでは、各トークンからQueryKeyValueという3種類のベクトルを作ります。
あるトークンのQueryと、ほかのトークンのKeyの近さから参照の強さを決め、その重みでValueを混ぜます。
これにより、単語や画像パッチが、離れた位置にある要素との関係を取り込めます。

LLMは、一般にTransformerを基盤として作られます。
次のトークンを予測する学習を繰り返すと、文章の続き、要約、コード補完のような処理へつながります。

まずは、次の語を自分の言葉で説明できればよいと思います。

  • Tokenization
  • 埋め込みベクトル
  • 位置エンコーディング
  • Self-Attention
  • 残差接続とLayer Normalization
  • 次トークン予測とCross Entropy

ここを飛ばしてLLMだけ使うのは、少しもったいないです。
一方、巨大なLLMをゼロから学習する必要はありません。
小さなTransformerを動かし、既存モデルを微調整する方が学べることは多いです。

Attentionだけで、ここまで来てしまった

Attention Is All You Needは、Google BrainとGoogle Researchを中心とする著者らが2017年に発表し、Transformerを提案した論文です。

AI研究の側から見ていて、少し嘆きもあります。

拡散モデル、RLHF、選好最適化のように、モデルをどう学習させるかという枠組みには新しい提案が次々に出ます。
量子化、蒸留も含め、既存モデルを軽く、速く、安く動かす工夫も増えました。

Attention自体にも改良が入っています。
通常のSelf-Attentionは、トークン数をnとすると、トークン同士の組を扱うため計算量やメモリ使用量が概ねに増えます。
長い文脈を扱うために、局所的なAttention、疎なAttention、線形Transformerのように、比較する組を減らす提案が続いています。
FlashAttentionのように、計算する内容は保ちながらGPUメモリへの読み書きを減らす実装上の改良も重要です。

KVキャッシュもこの流れにあります。
LLMが1トークンずつ文章を生成するときに、過去のトークンのKeyValueを保存する仕組みです。
過去全体のKeyValueを毎回計算し直さずに済むため、生成を大きく高速化できます。
一方で、文脈が長くなるほどキャッシュも増え、GPUメモリを圧迫します。
KVキャッシュも新しいモデルではなく、Transformerを実用的に推論するための工夫です。

LoRAも同じ流れにあります。
基盤モデルの重みを丸ごと更新せず、低ランクの小さな行列だけを学習して微調整する方法です。
Transformerというモデルを別物に置き換えるのではなく、Transformerを安く用途別に使い回せるようにした技術だと言えます。

一方で、LLMや大規模な画像・動画モデルの中心には、いまもTransformerがいます。
新しいモデルの種類がまったく出ていないわけではありません。
それでも実務で大きく使われるモデルを見ると、Transformerを置き換えるより、Transformerを大きくする、効率化する、性能を落とさず小さくするという方向が目立ちます。

この状況を見ると、Attention Is All You Needという論文タイトルが、そのまま現実になってしまったようにも感じます。

もちろん原論文は、Attention以外の発想が不要だと証明したものではありません。
Transformer以外を探る研究も続いています。

Transformerを改良する研究が止まるべきだと言いたいわけではありません。
その上で、次に広く使われる新しいモデルのパラダイムが始まることも、研究を見てきたものとして勝手に期待しています。

画像と動画

画像処理にCNNが使われなくなったわけではありません。
外観検査、医用画像、軽量なエッジ端末、既存の実装を読む場面では、CNNを知っていると助かります。

深層学習をがっつり学ぶなら、CNNも必要です。
畳み込みが持つ局所性や重み共有の考え方は、画像モデルの設計を理解する基礎になります。

ただし、画像と動画を扱う現代のAIを手早く追う入口としては、Vision Transformer(ViT)や生成モデルへ進む方がつながりやすいと感じます。

ViTは画像を小さなパッチに分け、それをトークン列のようにTransformerへ渡します。
画像を扱うために、Transformerの考え方をそのまま広げられます。

動画も、フレームや時空間パッチをトークンとして扱うTransformer系の方法や、生成モデルが重要です。
画像・動画のすべてがTransformerになったわけではありません。
ただ、ViTやTransformer系の生成モデルが使われることは多く、最初の入口としては十分だと思います。

拡散モデル

次に学ぶなら拡散モデルです。

学習時にはデータへ少しずつノイズを加えます。
モデルは、ある時点のノイズが混じったデータから、加えたノイズや元データへ戻る方向を予測します。

生成時には、ノイズから始めて、その予測を何度も使いながら画像へ近づけます。

この流れを理解すると、テキストから画像を作るモデルで、条件付けやClassifier-Free Guidanceが何のためにあるかを追いやすくなります。

Transformerとの関係

ここは混同しやすいところです。

拡散モデルは生成の枠組みであり、Transformerというネットワーク構造ではありません。
古くからある拡散モデルの多くはU-Netを使います。

一方でDiT(Diffusion Transformer)は、画像の潜在表現をパッチとして扱うTransformerを拡散モデルのバックボーンに使いました。
大規模な画像生成を考えるとき、Transformerを理解している価値はここにも出ます。

拡散モデルは「生成の考え方・枠組み」であり、TransformerやU-Netなどのネットワークはその実装として組み合わせて使われます。

拡散モデルはTransformerそのものではない。だが、現在の有力な拡散モデルにはTransformerをバックボーンにするものがあり、Transformerの知識がそのまま役立つ。

LLMの学習、量子化、蒸留

モデルの構造を読めても、学習と運用の知識がなければ実務では使いにくいです。

LLMの学習

LLMでは、事前学習、継続事前学習、ファインチューニング、選好データを使った調整を区別します。

個人が最初から巨大モデルを学習する場面は、ほとんどありません。
まず既存のモデルを推論し、小規模データでLoRAなどの効率的な微調整を試し、評価セットで変化を確認する方が現実的です。

ここでも損失関数、最適化、評価指標が必要です。

量子化

量子化は、重みや活性値をより少ないビット数で表し、必要なメモリや計算量を減らす方法です。

たとえばFP16からINT8や4ビット表現へ変えると、限られたGPUメモリでも大きめのモデルを動かせる場合があります。
ただし精度、速度、対応するハードウェアの条件は一緒に確認します。

量子化は、モデルを学習する前に必ず学ぶものではありません。
手元でモデルが載らない、推論が遅い、といった制約にぶつかったときに効く知識です。

蒸留

蒸留は、大きな教師モデルの出力を手本にして、小さな生徒モデルを学習させる方法です。

量子化が表現の精度を落として軽くするのに対し、蒸留は別の小型モデルを育てます。
目的は似ていますが、作業はまったく違います。

レイテンシやコストを厳しく抑えたいなら、蒸留が重要です。

学習の進め方

私なら、次の順に進めます。

  1. Python、行列計算、微分、確率の最低限
  2. 損失関数、逆伝播、最適化手法、評価指標
  3. 小さなニューラルネットワークをPyTorchで学習させる
  4. Transformerと小さなLLM
  5. 既存LLMの推論、微調整、評価
  6. 量子化と蒸留
  7. 拡散モデル

この順番は、あくまで生成AIを中心に置いた場合です。

基本は、ネットで調べて、ChatGPTなどのAIへ質問する進め方で十分です。

分からない用語、論文の一節、エラー、コードの挙動を、その場で質問します。
ただし、AIの説明をそのまま信じ切らず、短いコードを実際に動かして確かめることを勧めます。
AIには、答えを代わりに書かせるだけでなく、前提の説明、数式の読み解き、コードレビュー、理解の確認問題を頼むと使いやすいです。

本や動画も、まとまった理解を作るには有効です。
本を最初から最後まで通読する必要はありません。
今の関心に合う章を読み、詰まった箇所はAIへ質問し、また本へ戻る読み方でよいと思います。

おすすめの本

大規模言語モデルは新たな知能か

岡野原大輔『大規模言語モデルは新たな知能か――ChatGPTが変えた世界』。

LLMの仕組みと、その登場が社会へ与えた影響を説明する一般書です。
専門書に入る前に、LLMが何をでき、どこに課題があるのかをつかむ入口として勧めます。

最短コースでわかる PyTorch &深層学習プログラミング

最短コースでわかる PyTorch &深層学習プログラミング。

CNNを題材にしていますが、PyTorchを使って深層学習の基本を理解しやすい本です。
損失関数、最適化、学習ループを実際に動かしたい段階で役に立ちます。

仕組みからわかる大規模言語モデル

奥田勝己『仕組みからわかる大規模言語モデル 生成AI時代のソフトウェア開発入門』。

数学的な説明に偏りすぎず、実践に重きを置いたLLM解説書です。
第4章あたりから具体的な内容に入るため、そこから先は関心に合わせて読めばよいと思います。

ゼロから作るDeep Learning ❺ 生成モデル編

斎藤康毅『ゼロから作るDeep Learning ❺ 生成モデル編』。

拡散モデルまでを詳しく扱う良書です。
数学的な難度は少しありますが、PyTorchの学習コードもあり、手を動かして理解しやすい構成です。

深層ニューラルネットワークの高速化

佐藤竜馬『深層ニューラルネットワークの高速化』。

量子化、蒸留、低ランク近似など、モデルを速く小さくする手法を説明しています。
数学的な難度はやや高いため、最初から読み切る本というより、資料集のように使い、分からないところをAIへ質問する読み方を勧めます。

まとめ

AIを早く学びたい人が、最初に手を伸ばすモデルはCNNでなくてもよいと思います。

損失関数、最適化手法、評価指標を理解したうえでTransformerへ進む。
するとLLM、ViT、Transformerを使う生成モデルへ知識を広げやすくなります。

画像生成は拡散モデルまで学ぶと、いま触れる機会の多い生成AIにつながります。

参考文献

Vaswani, A., et al.
Attention Is All You Need.
Advances in Neural Information Processing Systems 30, 2017.

Dosovitskiy, A., et al.
An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale.
International Conference on Learning Representations, 2021.

Peebles, W. and Xie, S.
Scalable Diffusion Models with Transformers.
IEEE/CVF International Conference on Computer Vision, 2023.

Ho, J., Jain, A. and Abbeel, P.
Denoising Diffusion Probabilistic Models.
Advances in Neural Information Processing Systems 33, 2020.

Kingma, D. P. and Ba, J.
Adam: A Method for Stochastic Optimization.
International Conference on Learning Representations, 2015.

Hinton, G., Vinyals, O. and Dean, J.
Distilling the Knowledge in a Neural Network.
arXiv preprint arXiv:1503.02531, 2015.

Hu, E. J., et al.
LoRA: Low-Rank Adaptation of Large Language Models.
International Conference on Learning Representations, 2022.

Dao, T., et al.
FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness.
Advances in Neural Information Processing Systems 35, 2022.

Pope, R., et al.
Efficiently Scaling Transformer Inference.
Proceedings of Machine Learning and Systems 5, 2023.

Tay, Y., Dehghani, M., Bahri, D. and Metzler, D.
Efficient Transformers: A Survey.
ACM Computing Surveys 55(6), 2022.

Frantar, E., Ashkboos, S., Hoefler, T. and Alistarh, D.
GPTQ: Accurate Post-Training Quantization for Generative Pre-trained Transformers.
International Conference on Learning Representations, 2023.

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?