HuggingFace Transformers 4.29 : Tutorials : AutoClass による事前訓練済みインスタンスのロード (翻訳/解説)
翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 05/24/2023 (v4.29.1)
* 本ページは、HuggingFace Transformers の以下のドキュメントを翻訳した上で適宜、補足説明したものです:
* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。
- 人工知能研究開発支援
- 人工知能研修サービス(経営者層向けオンサイト研修)
- テクニカルコンサルティングサービス
- 実証実験(プロトタイプ構築)
- アプリケーションへの実装
- 人工知能研修サービス
- PoC(概念実証)を失敗させないための支援
- お住まいの地域に関係なく Web ブラウザからご参加頂けます。事前登録 が必要ですのでご注意ください。
◆ お問合せ : 本件に関するお問い合わせ先は下記までお願いいたします。
- 株式会社クラスキャット セールス・マーケティング本部 セールス・インフォメーション
- sales-info@classcat.com ; Web: www.classcat.com ; ClassCatJP
HuggingFace Transformers 4.29 : Tutorials : AutoClass による事前訓練済みインスタンスのロード
非常に多くの様々な Transformer アーキテクチャにより、貴方のチェックポイントのために一つを作成することは難しい可能性があります。ライブラリの利用を簡単に、単純にそして柔軟にする Transformers コア哲学の一部として、AutoClass は与えられたチェックポイントから正しいアーキテクチャを自動的に推測してロードします。from_pretrained メソッドは任意のアーキテクチャに対して事前訓練済みモデルを素早くロードさせますので、貴方はゼロからモデルを訓練する時間とリソースを割く必要はありません。このタイプのチェックポイント不可知なコードを生成することは、コードが一つのチェックポイントに対して動作すれば – 類似のタスクに対して訓練された限りでは – それは (アーキテクチャが異なる場合でさえ) 別のチェックポイントでも動作することを意味します。
忘れないでください、アーキテクチャはモデルのスケルトンを参照し、チェックポイントは与えられたアーキテクチャに対する重みです。例えば、BERT はアーキテクチャですが、bert-base-uncased はチェックポイントです。モデルはアーキテクチャかチェックポイントのいずれかを意味する一般的な用語です。
このチュートリアルでは、以下を学習します :
- 事前訓練済みトークナイザーのロード。
- 事前訓練済み画像プリプロセッサのロード。
- 事前訓練済み特徴抽出器のロード。
- 事前訓練済みプロセッサのロード。
- 事前訓練済みモデルのロード。
AutoTokenizer
殆ど総ての NLP タスクはトークナイザーから始めます。トークナイザーは入力をモデルにより処理できる形式に変換します。
AutoTokenizer.from_pretrained() でトークナイザーをロードします :
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
そして以下で示されるように入力をトークン化します :
sequence = "In a hole in the ground there lived a hobbit."
print(tokenizer(sequence))
{'input_ids': [101, 1999, 1037, 4920, 1999, 1996, 2598, 2045, 2973, 1037, 7570, 10322, 4183, 1012, 102], 'token_type_ids': [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 'attention_mask': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]}
AutoImageProcessor
ビジョンタスクについては、画像プロセッサが画像を正しい入力形式に処理します。
from transformers import AutoImageProcessor
image_processor = AutoImageProcessor.from_pretrained("google/vit-base-patch16-224")
AutoFeatureExtractor
音声タスクについて、特徴抽出器は音声信号を正しい入力形式に処理します。
AutoFeatureExtractor.from_pretrained() で特徴抽出器をロードします :
from transformers import AutoFeatureExtractor
feature_extractor = AutoFeatureExtractor.from_pretrained(
"ehcalabres/wav2vec2-lg-xlsr-en-speech-emotion-recognition"
)
AutoProcessor
マルチモーダルなタスクは 2 つのタイプの前処理ツールを組み合わせるプロセッサを必要とします。例えば、LayoutLMV2 モデルは画像を処理する画像プロセッサとテキストを処理するトークナイザーを必要とします ; プロセッサはそれらの両方を連結します。
プロセッサを AutoProcessor.from_pretrained() でロードします :
from transformers import AutoProcessor
processor = AutoProcessor.from_pretrained("microsoft/layoutlmv2-base-uncased")
AutoModel
最後に、AutoModelFor クラスは与えられたタスク (利用可能なタスクの完全なリストについては ここ を参照) に対する事前訓練済みモデルをロードさせます。例えば、AutoModelForSequenceClassification.from_pretrained() でシークエンス分類用のモデルをロードします。
from transformers import AutoModelForSequenceClassification
model = AutoModelForSequenceClassification.from_pretrained("distilbert-base-uncased")
異なるタスクに対するアーキテクチャをロードするために同じチェックポイントを簡単に再利用できます :
from transformers import AutoModelForTokenClassification
model = AutoModelForTokenClassification.from_pretrained("distilbert-base-uncased")
一般に、モデルの事前訓練済みインスタンスをロードするためには AutoTokenizer クラスと AutoModelFor クラスを使用することを勧めます。これは毎回正しいアーキテクチャをロードすることを確実にします。次の チュートリアル では、再調整のためにデータセットを前処理するため新たにロードされたトークナイザー、画像プロセッサ、特徴抽出器とプロセッサを使用する方法を学習します。
最後に、TFAutoModelFor クラスは与えられたタスク (利用可能なタスクの完全なリストについては ここ を参照) に対する事前訓練済みモデルをロードさせます。例えば、TFAutoModelForSequenceClassification.from_pretrained() でシークエンス分類用のモデルをロードします。
from transformers import TFAutoModelForSequenceClassification
model = TFAutoModelForSequenceClassification.from_pretrained("distilbert-base-uncased")
異なるタスクに対するアーキテクチャをロードするために同じチェックポイントを簡単に再利用できます :
from transformers import TFAutoModelForTokenClassification
model = TFAutoModelForTokenClassification.from_pretrained("distilbert-base-uncased")
一般に、モデルの事前訓練済みインスタンスをロードするためには AutoTokenizer クラスと TFAutoModelFor クラスを使用することを勧めます。これは毎回正しいアーキテクチャをロードすることを確実にします。次の チュートリアル では、再調整のためにデータセットを前処理するため新たにロードされたトークナイザー、画像プロセッサ、特徴抽出器とプロセッサを使用する方法を学習します。
以上