(MLM)これは、論文「BERT:言語理解のためのディープ双方向トランスフォーマーの事前トレーニング」で紹介されているBERTモデルの事前トレーニングに使用されるマスク言語モデル(MLM)のPyTorch実装です。モデルはトランスモデルです。この論文では、MLMと次の文章予測を使用してモデルを事前にトレーニングしています。ここではMLMを実装しただけです。モデルが実際のテキストに続く文かどうかをバイナリ予測します。確率でランダムなペアが入力されます。この分類はMLMを適用する際に行われます。ここではこれを実装していません。マスクドLMこれにより、トークンのパーセンテージがランダムにマスクされ、マスクされたトークンを予測するようにモデルをトレーニングします。トークンの15%を特別なトークンに置き換えることでマスクします。損失は、マスクされたトークンの予測のみに基づいて計算されます。その時点ではトークンがないため、微調整や実際の使用中に問題が発生します。したがって、意味のある表現が得られない可能性があります。マスクされたトークンがランダムなトークンに置き換えられます。その位置の入力トークンがaであるかどうかに関係なく、実際のトークンについて表現するようにモデルをトレーニングします。ランダムなトークンに置き換えると、コンテキストからの情報も含む表現になります。ランダムに置き換えられたトークンを修正するにはコンテキストを使用する必要があるためです。トレーニング信号が小さいため、自己回帰モデルよりもトレーニングが困難です。サンプルごとにトレーニングされる予測の割合はごくわずかです。一つの問題は、モデルが双方向なので、どのトークンも他のトークンを見ることができるということです。これにより、「クレジットの割り当て」が難しくなります。少なくともトレーニングの初期段階では、なぜ置換が必要なのかを理解するのは非常に難しいでしょう。文章全体から何でもかまいません。モデルは予測や予測などに使用するだけで済みますe。そのため、モデルは最初に短いコンテキストで予測を開始し、後で長いコンテキストの使用方法を学習します。MLMにはこの問題があるため、最初は短いシーケンス長から始めて、後で長いシーケンス長を使用する方がトレーニングがはるかに速くなります。シンプルなMLMモデルのトレーニングコードは次のとおりです。(MLM)このクラスは、トークンシーケンスの特定のバッチのマスキングプロシージャを実装します。パディングトークンです。これを使って、損失計算に使用してはいけないラベルにマークを付けます。マスキングトークンです。マスクしてはいけないトークンのリストです。マスクしてはいけないようなトークンがある場合に便利です。入力トークンシーケンスのバッチです。形のあるタイプのテンソルです。元のトークンが変更されないトークンや、ランダムなトークンに置き換えられるトークンは含まれないことに注意してください。ラベル内の他のすべての場所にトークンを割り当てます。等しいラベルは損失には使用されません。