ML day 3: Hugging Face course 1-4 Transformer の歴史とコンセプト
モチベーション
前回 Hugging Face Course 1-1 ~ 1-3 にて Transformers の pipeline の使い方を学んだ。今回は Transformer の歴史とコンセプトを学ぶ
Chapter 1-4: How do Transformers work?
from How do Transformers work? - Hugging Face Course
A bit of Transformer history
2017年にAttention Is All You Needという論文が発表されてから、Transformer モデルは急激に進化を遂げたようだ。上の年表から毎年のように新しいモデルが発表されていることがわかる。
NOTE: 画像はHow do Transformers work? - Hugging Face Courseより引用。
Transformers are language models
結局 Transformer ってなんなの?というのが素人にはわからないのだけど、Language Model の一種とのこと。Language Model というのは大量の raw text に対して自己教師あり学習を行ったことを意味していて、人間がラベル付きのデータを用意することなく、入力データから自動的に学習の目的を算出するとのこと。
学習済みのモデルはこのままだとタスクには使えないため、transfer learning(転移学習)を経て特定のタスクに対してチューニングする。transfer learning は人手でラベル付けされてデータが用いられる。
Transformers are big models
よりよいパフォーマンスを発揮するための一般的な戦略はモデルサイズは大きくして、学習には大量のデータを使うこと。モデルの学習に大量のデータが必要という特性上、計算資源や環境面(CO2排出量)のコストが非常に高いため、学習済みの言語モデル重みやモデル自体の共有を意識的に行っているとのこと。なるほどな・・・ LLM という言葉を最近聞くけど Large Language Models のことだとここで気づいた。
Transfer Learning (転移学習)
転移学習のコンセプトはゼロからのモデルの学習をなるべく避けるためにあるとのこと。モデルの学習は大量のデータと時間が必要になる。だから、既に学習済みのモデルがある場合そのモデルに対して追加で目的に応じてファインチューニングすることで多くの時間と資源を節約できる。学習済みのモデルの知識を転移するから転移学習というらしい。日本語で”知識を転移”ってあまり言わないよね。英語で仕事していると”Knowledge transfer”って普通に使うし、素直に Transfer Learning で覚えるのがいいと思った。
General architecture
Introduction
モデルは Encoder と Decoder の2つのブロックで構成される。それぞれ役割が異なり、
- Encoder は入力を受けて、特徴量を生成する。モデルは入力からの知識の習得に最適化されている。
- DecoderはEncoderが生成した特徴量に加えて他の入力を受け取って目的となる sequence を生成する。 sequence が何なのかはわからない。モデルは出力の生成に最適化されている。
これらはやりたいタスクに応じて、独立して使ったり、組み合わせて使ったりするらしい。例えば、文の分類は入力の理解が必要なので Encoderのみのモデルを利用、文章生成は Decoderのみのモデルを利用、入力と生成が必要な文章の翻訳や要約は EncoderとDecoder (sequence-to-sequence modelsという?)を使う。
Attention layers
Transformer の鍵となる特徴は Attention layerがあること。モデルが各単語の特徴量を扱う際に、入力されたテキストのどの単語に注目すべきか((あるいはどの単語を無視するべきか))をアテンション層が教える役割を担う。
The original architecture
最初の Transformer は翻訳のためにデザインしてあったことやそのための Encoder と Decoder (Architecture)が書かれていたが今見てもあまりわからないので飛ばした。
Architectures vs. checkpoints
以下の言葉は本コースでは異なる意味を持つため理解しておく。
- Architecture: モデルの骨格。モデル内のレイヤーとそれぞれのオペレーションの定義
- Checkpoint: アーキテクチャに対して読み込まれる重み
- Model: 結構曖昧な言葉らしい。Architercture とCheckpointの両方を指すこともあるが、このコースでは明示的に Architecture と Checkpoint という言葉を使うとのこと
例
For example, BERT is an architecture while bert-base-cased, a set of weights trained by the Google team for the first release of BERT, is a checkpoint. However, one can say “the BERT model” and “the bert-base-cased model.”
所感
Transformer は転移学習とAttention Layer が肝ということはわかった。
読んでいる書籍
以下の本の”2.3 ADALINEと学習の収束”まで読んだ。