bert-small-uncased-whole-word-masking-squad-int8-0002

ユースケースと概要説明

これは、Transformers ライブラリーによって提供されるより大きな BERT-large モデル (bert-large-uncased-whole-word-masking) から、SQuAD v1.1 トレーニング・セットで抽出および量子化されて INT8 に量子化され、SQuAD v1.1 トレーニング・セットで調整された小さな BERT-large のようなモデルです。このモデルは英語の質問応答を実行します。入力は、前提とその前提に対する質問を連結したもので、出力は前提内の質問に対する回答の場所です。元のモデルの詳細については、BERT: 言語理解のためのディープ双方向トランスフォーマーの事前トレーニング、Hugging Face のトランスフォーマー: 最先端の自然言語処理を参照してください。

トークン化は、BERT トークナイザー (実装の詳細についてはデモコードを参照) と同梱されている vocab.txt 辞書ファイルを使用して行われます。入力はトークン化する前に小文字にする必要があります。

仕様

メトリック

GOps

23.9

MParams

41.1

ソース・フレームワーク

PyTorch*

パラメーターの数はモデルの FP32 バージョンと同じですが、FP32 の代わりに INT8 重みを使用するため、モデルが占有するメモリーは 1/4 に少なくなります。

精度

品質メトリックは、SQuAD v1.1 データセット (“dev” 分割) に基づいて計算されました。シーケンスの最大長は 384 で、入力は小文字です。

メトリック

F1

91.4%

完全一致 (EM)

84.4%

入力

  1. トークン ID、名前: input_ids、形状: 1, 384。トークン ID は、トークン化された前提と質問を表す一連の整数値です。シーケンス構造は次のとおりです ([CLS][SEP] および [PAD] は、辞書で指定されている対応するトークン ID に置き換える必要があります): [CLS] + トークン化された質問 + [SEP] + トークン化された質問の前提 + [SEP] + (最大シーケンス長 384 までパディングする [PAD] トークン)。

  2. 入力マスク、名前: attention_mask、形状: 1, 384。入力マスクは、入力内の有効な値のマスクを表す整数値です。入力の値は次と等しくなります。

    • 1 は、[CLS] + トークン化された質問 + [SEP] + トークン化された質問の前提 + input_ids[SEP] 部分に対応する位置 (つまり、[PAD] トークンを含む位置を除くすべての位置)

    • 0 は、それ以外の位置

  3. トークンタイプ、名前: token_type_ids、形状: 1, 384。トークンタイプは、input_ids を質問と前提に分割することを表す整数値です。値は次のとおりです。

    • 1 は、質問のトークン化された前提に対応する位置 + input_ids[SEP] 部分

    • 0 は、それ以外の位置

  4. 位置インデックス、名前: position_ids、形状: 1, 384。位置インデックスは、各入力トークンの位置インデックスを表す 0 ~ 383 の整数値のシーケンスです。position_ids は、どの入力トークンセットでも常に同じです

  • [CLS] は、質問の前に追加される特殊記号です。

  • [SEP] は、質問と質問の前提の間に挿入される特殊な区切り文字トークンです。

  • [PAD] は、指定された入力長 (384) を取得するために入力の残りを埋める特殊トークンです。

出力

最終出力は 2 つの 1, 384 浮動小数点値のロジットのスコアベクトルであり、ソフトマックス操作後の質問の前提における回答の開始位置と終了位置の確率になります。

  1. 開始位置: 名前: output_s、形状: 1, 384。開始位置は、開始位置の浮動小数点値のロジットスコアです。

  2. 終了位置: 名前: output_e、形状: 1, 384。終了位置は、終了位置の浮動小数点値のロジットスコアです。

デモの使い方

Open Model Zoo が提供する次のデモでこのモデルを使用して、その機能を確認できます。