[Pytorchニューラルネットワーク理論]トランスフォーマーライブラリの39個のBERTologyシリーズモデル

さらに学習したい場合は、Transformersライブラリの下位レベルの実装を理解し、特定のBERTologyシリーズモデルを個別にロードして使用する方法を学ぶ必要があります。

1Transformersライブラリのファイル構造

1.1Transformersライブラリの事前トレーニングモデルを詳細に説明する

Transformersライブラリには、事前トレーニングモデルファイルの3つの主要なタイプがあり、それらの特定の機能は次のとおりです。

  1. 語彙ファイル:モデルをトレーニングするときは、このファイルをマッピングテーブルとして使用して、入力された単語を特定の数字に変換します。(テキストとして保存)
  2. 構成ファイル:モデルのハイパーパラメーターを保存し、構成ファイルのハイパーパラメーターに従ってソースコードでモデルクラスをインスタンス化して、使用可能なモデルを生成します。(テキストとして保存)
  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']

おすすめ

転載: blog.csdn.net/qq_39237205/article/details/124411704