HuggingFace Transformers 4.29 : Tutorials : AutoClass による事前訓練済みインスタンスのロード

HuggingFace Transformers 4.29 : Tutorials : AutoClass による事前訓練済みインスタンスのロード (翻訳/解説)

翻訳 : (株)クラスキャット セールスインフォメーション
作成日時 : 05/24/2023 (v4.29.1)

* 本ページは、HuggingFace Transformers の以下のドキュメントを翻訳した上で適宜、補足説明したものです:

* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。

 

クラスキャット 人工知能 研究開発支援サービス

クラスキャット は人工知能・テレワークに関する各種サービスを提供しています。お気軽にご相談ください :

◆ 人工知能とビジネスをテーマに WEB セミナーを定期的に開催しています。スケジュール
  • お住まいの地域に関係なく 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 クラスを使用することを勧めます。これは毎回正しいアーキテクチャをロードすることを確実にします。次の チュートリアル では、再調整のためにデータセットを前処理するため新たにロードされたトークナイザー、画像プロセッサ、特徴抽出器とプロセッサを使用する方法を学習します。

 

以上