- Published on
transformers v4.13.0のリリース
- Author
- Name
- Hideki Ono
- @yellowback
株式会社イエローバックの機械学習エンジニアです
はじめに
HuggingFace transformers が 12 月に入って v4.13, v4.14, v4.15 と立て続けにリリースされています。 今回は、 リリースノートをもとに v4.13 系の変更点を確認していきます。
新モデル
Perceiver
DeepMind(現在は Google 傘下)によって開発された汎用のモデルです。 画像、自然言語処理、マルチモーダルなどのチェックポイントがリリースされています。
mLUKE
Studio Ousia などの日本人を中心に開発されたモデル LUKE の他言語対応版です。 mLUKE では他言語対応のトークナイザが追加されました。ソースコードを確認したところ、sentencepiece ベースのようです。
LUKE は質問応答タスクの SQuAD 1.1 で発表当時トップ、2021 年 12 月 23 日でも 2 位とかなり良い成績をあげています。
チェックポイントは現状では以下のみのようです。
- studio-ousia/mluke-base
このチェックポイントは XLM-RoBERTa のウェイトで初期化し、24 カ国語の Wikipedia で学習したもののようです。
ImageGPT
openai による画像用のモデルです。 言語処理用の GPT2 を画像に応用して、途中までの画像の続きを生成できるようです。
QDQBert
NVIDIA による言語処理用のモデルです。 量子化を用いて高速化を行うモデルのようです。
セマンティックセグメンテーションモデル
セマンティックセグメンテーションモデルが追加されました。 画像の各ピクセルに対してクラスラベルを予測することがゴールです。 追加されたモデルは、NVIDIA による SegFormer とマイクロソフトリサーチによる BEiT です。
画像-テキストのデュアルエンコーダ
CLIP のような画像-テキストのタスクに対して、任意の画像用事前学習モデル(ViT, DeiT, BeiT, CLIP)と任意のテキストモデル(BERT, ROBERTA)をロードできるような VisionTextDualEncoder モデルが追加されました。
CodeParrot
GPT2 ベースの python コードを生成するモデルが、examples/research_projects に追加されました。
LayoutLM 改善
LayoutLMv2 feature extractor が英語以外をサポートして、LayoutXLM が独自のプロセッサーをもつようになりました。
ASR(音声認識)への言語モデルサポート
CTC モデルに対して言語モデルのサポートが追加されました。
Flax 関連
Flax 関連で以下のモデルが追加されました。
- FlaxVisionEncoderDecoderModel
- FlaxGPTJ
TensorFlow 関連
tensorflow 向けに以下のモデルが追加されました。
- TFViTModel
- TAPAS (表形式データを用いて回答を抽出する言語モデル)
また、学習中の HuggingFace Hub へのチェックポイント保存ができるようになりました。
Auto-processors
AutoTokenizer のような形で、AutoProcessor で Processor の自動マッピングができるようになりました。
マッピングは以下のようになっています。
PROCESSOR_MAPPING_NAMES = OrderedDict(
[
("clip", "CLIPProcessor"),
("layoutlmv2", "LayoutLMv2Processor"),
("layoutxlm", "LayoutXLMProcessor"),
("speech_to_text", "Speech2TextProcessor"),
("speech_to_text_2", "Speech2Text2Processor"),
("trocr", "TrOCRProcessor"),
("wav2vec2", "Wav2Vec2Processor"),
("wav2vec2_with_lm", "Wav2Vec2ProcessorWithLM"),
("vision-text-dual-encoder", "VisionTextDualEncoderProcessor"),
]
)
新しいドキュメントのフロントエンド
ドキュメントのフロントエンドがかわりました。RST にかわってマークダウンとなりました。
Trainer 改善
RTX30 シリーズや A100 などの Ampere 世代の GPU に対応した学習/評価時のオプションが追加されました。
--bf16
bfloat16 の混合制度での学習や評価--bf16_full_eval
フル bloat16 での評価--tf32
TF32 モードを有効にする
bloat16 は FP16 にくらべ、指数部のビット数を増やし仮数部のビット数を減らしたフォーマットです。 TF32 は FP32 にくらべ、指数部はそのままで仮数部のビット数を大幅に減らしたフォーマットです。
その他
いろいろ改善や修正などがありました。
まとめ
v4.13 では 多くのモデルなどが追加されました。 個人的には、日本語の言語処理向けの mLUKE や Ampere 世代向けの bf16 オプションあたりが興味深いです。