メインコンテンツ

bert

事前学習済みの BERT モデル

R2023b 以降

    説明

    Bidirectional Encoder Representations from Transformer (BERT) モデルは、文書分類やセンチメント分析などの自然言語処理タスクに合わせて微調整できるトランスフォーマー ニューラル ネットワークです。このネットワークは、注意層を使用してコンテキスト内のテキストを解析し、単語間の長距離依存関係を取得します。

    [net,tokenizer] = bert は、事前学習済みの BERT-Base モデルおよび対応するトークナイザーを返します。

    ヒント

    文書分類ワークフローの場合は、trainBERTDocumentClassifier 関数とともに bertDocumentClassifier オブジェクトを使用します。

    [net,tokenizer] = bert(Name=Value) は、1 つ以上の名前と値の引数を使用して追加オプションを指定します。

    すべて折りたたむ

    bert 関数を使用して、事前学習済みの BERT-Base ニューラル ネットワークおよび対応するトークナイザーを読み込みます。Text Analytics Toolbox™ Model for BERT-Base Network サポート パッケージがインストールされていない場合、この関数は、必要なサポート パッケージへのリンクをアドオン エクスプローラーに表示します。サポート パッケージをインストールするには、リンクをクリックして、[インストール] をクリックします。

    [net,tokenizer] = bert;

    ネットワークのプロパティを表示します。

    net
    net = 
      dlnetwork with properties:
    
             Layers: [129×1 nnet.cnn.layer.Layer]
        Connections: [164×2 table]
         Learnables: [197×3 table]
              State: [0×3 table]
         InputNames: {'input_ids'  'attention_mask'  'seg_ids'}
        OutputNames: {'enc12_layernorm2'}
        Initialized: 1
    
      View summary with summary.
    
    

    トークナイザーを表示します。

    tokenizer
    tokenizer = 
      bertTokenizer with properties:
    
            IgnoreCase: 1
          StripAccents: 1
          PaddingToken: "[PAD]"
           PaddingCode: 1
            StartToken: "[CLS]"
             StartCode: 102
          UnknownToken: "[UNK]"
           UnknownCode: 101
        SeparatorToken: "[SEP]"
         SeparatorCode: 103
           ContextSize: 512
    
    

    名前と値の引数

    すべて折りたたむ

    オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

    例: [net,tokenizer] = bert(Model="tiny") は、事前学習済みの BERT-Tiny モデルおよび対応するトークナイザーを返します。

    BERT モデル。次のいずれかのオプションとして指定します。

    • "base" — BERT-Base モデル。このオプションには、Text Analytics Toolbox™ Model for BERT-Base Network サポート パッケージが必要です。このモデルには 1 億 880 万個の学習可能なパラメーターがあります。

    • "tiny" — BERT-Tiny モデル。このオプションには、Text Analytics Toolbox Model for BERT-Tiny Network サポート パッケージが必要です。このモデルには 430 万個の学習可能なパラメーターがあります。

    • "mini" — BERT-Mini モデル。このオプションには、Text Analytics Toolbox Model for BERT-Mini Network サポート パッケージが必要です。このモデルには 1,110 万個の学習可能なパラメーターがあります。

    • "small" — BERT-Small モデル。このオプションには、Text Analytics Toolbox Model for BERT-Small Network サポート パッケージが必要です。このモデルには 2,850 万個の学習可能なパラメーターがあります。

    • "large" — BERT-Large モデル。このオプションには、Text Analytics Toolbox Model for BERT-Large Network サポート パッケージが必要です。このモデルには 3 億 3,400 万個の学習可能なパラメーターがあります。

    • "multilingual" — BERT-Base 多言語モデル。このオプションには、Text Analytics Toolbox Model for BERT-Base Multilingual Cased Network サポート パッケージが必要です。このモデルには 1 億 7,720 万個の学習可能なパラメーターがあります。

    モデル ヘッド。次のいずれかの値として指定します。

    • "document-classifier" — 文書分類ヘッドをもつモデルを返します。このヘッドには、出力サイズが NumClasses である全結合層、およびソフトマックス層が含まれています。

    • "none" — ヘッドレス モデルを返します。

    文書分類ヘッドのクラスの数。正の整数として指定します。

    このオプションは、Head"document-classifier" である場合にのみ適用されます。

    ドロップアウト層で入力要素をドロップアウトする確率。範囲 [0, 1) のスカラーとして指定します。

    ドロップアウト層を使用してニューラル ネットワークに学習させる場合、この層は、ドロップアウト マスク rand(size(X)) < p を使用して入力要素をランダムにゼロに設定します。ここで、X は層の入力、p は層のドロップアウト確率です。その後、この層は残りの要素を 1/(1-p) でスケーリングします。

    この操作は、ネットワークの過適合を防ぐのに役立ちます[2][3]。大きい数値を指定するほど、ネットワークによって学習時にドロップされる要素の数が増加します。予測時には、この層の出力はその入力と等しくなります。

    データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

    注意層で入力要素をドロップアウトする確率。範囲 [0, 1) のスカラーとして指定します。

    注意層を使用してニューラル ネットワークに学習させる場合、この層は、ドロップアウト マスク rand(size(scores)) < p を使用して注意スコアをランダムにゼロに設定します。ここで、scores は層の入力、p は層のドロップアウト確率です。その後、この層は残りの要素を 1/(1-p) でスケーリングします。

    この操作は、ネットワークの過適合を防ぐのに役立ちます[2][3]。大きい数値を指定するほど、ネットワークによって学習時にドロップされる要素の数が増加します。予測時には、この層の出力はその入力と等しくなります。

    データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

    出力引数

    すべて折りたたむ

    事前学習済みの BERT モデル。dlnetwork (Deep Learning Toolbox) オブジェクトとして返されます。

    BERT トークナイザー。bertTokenizer オブジェクトとして返されます。

    参照

    [1] Devlin, Jacob, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. "BERT: Pre-Training of Deep Bidirectional Transformers for Language Understanding" Preprint, submitted May 24, 2019. https://doi.org/10.48550/arXiv.1810.04805.

    [2] Srivastava, Nitish, Geoffrey Hinton, Alex Krizhevsky, Ilya Sutskever, and Ruslan Salakhutdinov. "Dropout: A Simple Way to Prevent Neural Networks from Overfitting." The Journal of Machine Learning Research 15, no. 1 (January 1, 2014): 1929–58

    [3] Vaswani, A., N. Shazeer, N. Parmar, J. Uszkoreit, L. Jones, A. N. Gomez, L. Kaiser, I. Polosukhin et al. "Attention Is All You Need." Advances in Neural Information Processing Systems 30, 2017. https://proceedings.neurips.cc/paper_files/paper/2017/file/3f5ee243547dee91fbd053c1c4a845aa-Paper.pdf.

    バージョン履歴

    R2023b で導入