Transformers
Auto Classes
AutoModel
AutoTokenizer
from_pretrained で Hugging Face Hub から取ってくる
モデル
Encoder-Decoder
T5
Encoder
BERT, RoBERTa
向き不向き
入力テキストと強く関係ある出力を生成するなら Encoder-Decoder
分類などは Encoder のみのモデルのほうが高い性能を示しがち & 軽い
シード固定
標準の random や NumPy や PyTorch の乱数シードが固定される
code:fix_seed.py
from transformers.trainer_utils import set_seed
set_seed(10)
datasets
encoder
入力から文脈化トークン embedding を出力
Positional Encoding 位置符号を付加
正弦関数で位置をベクトル化
自己注意機構 (self attention)
key-query-value attention
3種類の embedding を使う
? 入力 → クエリ埋込はどうやってる? 学習?
multi-head attention
複数の注意機構を同時に適用する
? attention について別でもうちょい読む
活性化は ReLU より GELU が LLM では経験的にいいので標準的に使われている
ドロップアウト率 10% が多い
? 残差結合もよくわかってない
encoder-decoder
encoder の出力(文脈)と入力を受け取って次のトークンを出力
交差注意機構 (cross-attention)
decoder への入力(途中まで生成しているもの)に self-attention を通して
接続している encoder の出力と cross-attention でくっつける
? 小規模な NN で使える attention 実装とかあればもっとイメージわく?
decoder
入力から次のトークンを予測
encoder-decoder から交差注意機構がないもの
TODO