さらに学習したい場合は、Transformersライブラリの下位レベルの実装を理解し、特定のBERTologyシリーズモデルを個別にロードして使用する方法を学ぶ必要があります。
1Transformersライブラリのファイル構造
1.1Transformersライブラリの事前トレーニングモデルを詳細に説明する
Transformersライブラリには、事前トレーニングモデルファイルの3つの主要なタイプがあり、それらの特定の機能は次のとおりです。
- 語彙ファイル:モデルをトレーニングするときは、このファイルをマッピングテーブルとして使用して、入力された単語を特定の数字に変換します。(テキストとして保存)
- 構成ファイル:モデルのハイパーパラメーターを保存し、構成ファイルのハイパーパラメーターに従ってソースコードでモデルクラスをインスタンス化して、使用可能なモデルを生成します。(テキストとして保存)
- 重みファイル:使用可能なモデルのメモリ内の各変数の値に対応します。モデルのトレーニングが完了したら、これらの値を保存します。モデルの重みをロードするプロセスでは、これらの値がメモリ内のモデル変数に「上書き」されるため、トレーニング後にモデル全体が状態に復元されます。(バイナリモードで保存)
1.2BERTモデルの関連ファイル図
図3-18(a)BERTモデルの基本的な事前トレーニングモデルに関連する語彙ファイル。語彙ファイルには特定の単語が含まれており、各単語のシリアル番号は対応するインデックス値です。
図3-18(b)BERTモデルの基本的な事前トレーニングモデルに関連する構成ファイル。構成ファイルには、モデル内の関連するパラメータが表示されます。その一部は次のとおりです。スキーマ名:BertForMaskedLM。アテンションレイヤーのドロップアウトのドロップアウト率:0.1。隠れ層の活性化関数:GEL∪活性化関数。隠れ層でのドロップアウトのドロップアウト率:0.1。
1.3Transformersライブラリのファイルディレクトリ
# 目录地址
\Anaconda3\envs\python38\Lib\site-packages\transformers
1.3.1構成コードファイル
confiquratonで始まるファイルは、BERTOOQyシリーズモデルの構成コードファイルです。
1.3.2モデルコードファイル
モデリングで始まるファイルは、BERTologyシリーズモデルのモデルコードファイルです。
1.3.3語彙コードファイル
トークン化で始まるファイルは、BERToogyシリーズモデルの語彙コードファイルです。
1.4各モデルは上記の3つのファイルに対応しています
各モデルは、関連ファイルのダウンロードアドレスを格納する3つのコードファイルに対応しています。
1.4.1例:BERTモデルに対応するファイルリスト:
構成コードファイル:configuration_bert.py。
モデルコードファイル:modeling_bert、py。
語彙コードファイル:tokenization_bert.py。
1.5事前トレーニング済みモデルをロードします
トレーニングモデルの主要部分は、モデルコードファイルの3つのコードファイル、構成コードファイル、および語彙コードファイルです。これらの3つのコードファイルの場合、Transformersライブラリには対応するクラスがあります。
構成クラス:構成コードファイルで定義された、モデルの関連パラメーター。
モデルクラス:これはモデルのネットワーク構造であり、モデルコードファイルで定義されています。
TOkenizerクラス:語彙コードファイルで定義された、入力テキストの語彙前処理。
これらの3つのクラスには、from_pretrainedメソッドがあります。
1.5.1呼び出し関数の簡単な説明
from_pretrained():事前にトレーニングされたモデルまたはパラメーターを追加できます。
save_pretraining():ヒント構成ファイル、重みファイル、語彙ファイルをモデルからローカルに保存して、from_pretrainingメソッドを使用して新しくロードできるようにします。
1.5.2自動ロード
使用中は、指定されたモデルのバージョン名をfrom_pretrainedメソッドに渡すことにより、自動的にダウンロードされてメモリにロードされます。
from transformers import BertTokenizer,BertForMaskedLM
# 使用bert-base-uncased版本的BERT预训练模型,其中BertTokenizer类用于加载词表,BertForMaskedLM类会自动加载配置文件和模型文件。
tokenizer = BertTokenizer.from_pretrained('bert-base-uncased')#加载词表
model = BertForMaskedLM.frompretrained('bert-base-uncased')#加载模型
# 该代码运行后,系统会自动从指定网站加载对应的关联文件。这些文件默认会放在系统的用户目录中
1.5.3手動ロード
ソースコードで、対応するダウンロードアドレスを見つけて手動でロードしてから、frompretrainedメソッドを使用してロードします。
from transformers import BertTokenizer,BertForMaskeduM
#加载词表
tokenizer=BertTokenizer.frompretrained(r'./bert-base-uncased/bert-base-uncased-vocab.txt')
#加载模型
model=BertForMaskedLM.frompretrained('./bert-base-uncased/bert-base-uncased-pytorch_model.bin',conig='./bert-base-uncased/bert-base-uncased-conig.json')
# 手动加载与自动加载所使用的接口是一样的,手动加载需要指定加载文件的具体路径,而且在使用BertForMaskedLM类进行加载时,还需要指定配置文件的路径。
2Transformersライブラリで利用可能なモデルを検索します
モデルコードファイルに名前を付けることで、Transformersライブラリで使用できるモデルを確認できます。ただし、これは特定のクラス名ではありません。特定のクラス名を検索する場合は、次の3つの方法を使用できます。
(1)ヘルプファイルから事前トレーニングモデルの紹介を検索します。
(2)Transformersライブラリの__init__。pyファイルで事前トレーニング済みモデルを見つけます。[比較的面倒ですが、より正確です]
(3)コードメソッドを使用して、Transformersライブラリにマクロ定義を出力します。
2.1Transformersライブラリの__init__。pyファイルで事前トレーニング済みモデルを見つけます。[比較的面倒ですが、より正確です]
2.2コードを使用してTransformersライブラリにマクロ定義を出力する
from transformers import BLENDERBOT_SMALL_PRETRAINED_MODEL_ARCHIVE_LIST
print("输出全部模型:",BLENDERBOT_SMALL_PRETRAINED_MODEL_ARCHIVE_LIST)
# ['facebook/blenderbot_small-90M']