huggingface/transformers
7 articles
前提知識
- ›Python のモジュールシステムの基礎(sys.modules、__getattr__、__init__.py)
- ›Python のインポートの仕組みとパッケージ構造への理解
- ›frozenset と MutableMapping の基本的な知識
01
`import transformers` の仕組み:遅延ロードアーキテクチャ
frozenset をキーとするインポート構造、_LazyModule、そして450以上のアーキテクチャを起動時にすべてインポートせずに管理する自動モデル探索の仕組みを解説します。
02
Auto クラス:Transformers がモデル名をコードにマッピングする仕組み
Hub のモデル名から CONFIG_MAPPING_NAMES、_LazyAutoMapping、PreTrainedConfig を経て正しいモデルクラスに到達するまでの解決チェーンを追う。
03
モデルの内側:LlamaConfigからLlamaForCausalLMまで
LLaMAモデル階層の全体像を解剖する。PreTrainedModelのmixin群、AttentionInterfaceのディスパッチシステム、Hubカーネルのホットスワップ、そして1行で書けるヘッドクラスの仕組みを詳しく解説します。
04
Hub から GPU へ:重みロードのパイプライン
from_pretrained() のパイプラインを追いながら、meta デバイス初期化・safetensors シャーディング・量子化器の選択・デバイスマップへのディスパッチまでを解説します。
05
生成エンジンの内側:model.generate() がテキストを生成する仕組み
テキスト生成パイプラインを全工程にわたって解説します。GenerationConfig によるモード選択、KV キャッシュの階層構造、logits 処理、投機的デコーディング、そしてストリーミングまで。
06
Trainer:データから大規模な勾配計算まで
Trainer の train() → training_step() → compute_loss() の処理フロー、コールバックシステム、分散バックエンドとの統合、そして損失関数レジストリを詳しく解説します。
07
Pipeline、Tokenizer、そして Transformers の拡張
pipeline() API、3バックエンド構成のトークナイザシステム、マルチモーダルモデル向け ProcessorMixin、そして新しいモデルをコントリビュートするための拡張ポイント。