大規模言語モデル、MirrorBERT — モデルを普遍的な単語ベクトルと文エンコーダーに変換する
『大規模言語モデルMirrorBERT:モデルを普遍的な単語ベクトルと文エンコーダーに変換する』
ミラーオーグメンテーションがデータを生成し、セマンティック類似性のタスクでBERTのパフォーマンスを優れたものにする方法を発見しよう
はじめに
BERTのようなモデルが現在のNLPアプリケーションにおいて基本的な役割を果たしていることは、秘密ではありません。下流のタスクに対して驚異的なパフォーマンスを発揮するにもかかわらず、これらのモデルの多くは、ファインチューニングなしでは特定の問題において完璧ではありません。事前学習モデルからの埋め込み構築は、通常、最新の結果からは程遠いメトリクスになります。同時に、ファインチューニングは重い手続きであり、少なくとも数千の注釈付きデータサンプルを必要とします。このような場合、既に注釈付きのデータを単純に収集することができないか、高い価格がかかる場合には問題が発生します。
MirrorBERTは、前述の問題を克服するために設計されました。通常のファインチューニングアルゴリズムではなく、MirrorBERTは外部の知識を必要とせずに初期データをスマートに拡張することで、自己学習に頼っています。このアプローチにより、MirrorBERTはセマンティック類似性の問題において比較可能なパフォーマンスを発揮することができます。さらに、革新的な対比学習技術を使用することで、MirrorBERTはBERTやRoBERTaなどの事前学習モデルを1分未満で汎用レキシカルエンコーダに変換することができます!
大規模言語モデル:RoBERTa — ロバストに最適化されたBERTアプローチ
BERTの最適化に使用される主な技術について学ぶ
towardsdatascience.com
公式のMirrorBERTの論文の助けを借りて、内部の重要な詳細を理解するために掘り下げていきます。得られる知識は、同様の類似タスクを扱う他のNLPモデルにも応用することができます。
手法
簡単に言うと、MirrorBERTは学習プロセスに導入されたいくつかのステップを除いて、通常のBERTモデルと同じです。それぞれについて議論していきましょう。
1. セルフ複製
名前の通り、MirrorBERTは単純に初期データを複製します。
この複製されたデータは、同じ文字列の2つの異なる埋め込み表現をさらに構築するために使用されます。
2. データ拡張
論文の著者たちは、データセットのテキストをわずかに変更する直感的な2つのテクニックを提案しています。彼らによれば、ほとんどの場合、これらのテキストの変更は意味を変えません。
2.1. 入力拡張
文字列のペア(xᵢ、x̄ᵢ)が与えられた場合、アルゴリズムはランダムに1つを選び、テキスト内で固定長kの部分文字列を[MASK]トークンでランダムに置換するランダムスパンマスキングを適用します。
2.2. 特徴拡張
ランダムスパンマスキングは文章/フレーズレベルで操作されます。モデルが単語レベルのタスクでもうまく機能するためには、より短いテキスト断片に対して動作する別の拡張機構が必要です。特徴拡張は、ドロップアウトを使用することでこの問題を解決します。
ドロップアウトプロセスは、特定のネットワーク層内のpパーセントのニューロンをオフにすることを指します。これは、ネットワーク内の対応するニューロンを0にするのと同等です。
論文の著者は、データ拡張のためにドロップアウトを使用することを提案しています。ドロップアウトレイヤーを含むモデルに、ドロップアウトレイヤーが異なるニューロンを常に無効にする場合、ペアの文字列(xᵢ、x̄ᵢ)がネットワークに渡されると、その出力表現はわずかに異なるものになります。
特徴拡張にドロップアウトを使用する素晴らしい点は、BERT / RoBERTaアーキテクチャにすでにドロップアウトレイヤーが含まれているため、追加の実装は必要ありません!
ランダムスパンマスキングはデータセットの2番目のオブジェクトにのみ適用されますが、ドロップアウトはそれらすべてに適用されます。
3. 対照的な学習
対照的学習は、似ているオブジェクトが埋め込み空間で近くにあり、異なるオブジェクトが遠くにあるようにデータ表現を学習する機械学習の技術です。
対照的学習の実装方法の1つは、対照的損失関数の使用です。MirrorBERTで選ばれた損失関数はInfoNCELossです。その仕組みを理解しましょう。
InfoNCELoss
初めに、InfoNCELossの式は難しく見えるかもしれませんので、ステップバイステップで理解していきましょう。
- 2つのベクトル間のコサイン類似度は、それらがどれだけ近くに揃っているかを測定し、値は-1から1の範囲であり、より高い値はより高い類似性を示します。
2. 次のステップをより良く理解するためには、InfoNCELossは出力のsoftmax分布の滑らかさを制御する温度パラメータTと共にソフトマックス変換を使用することを認識する必要があります。そのため、類似性はTで割られます。
softmaxの温度についての詳細はこの記事を参照してください。
3. 標準のsoftmaxの公式と同様に、予測(類似性)は指数形式に変換されます。
4. 通常のsoftmaxの公式では、分子にはクラス確率の指数関数が含まれ、分母はすべての分布確率の指数和です。InfoNCELossの類似性の場合、式は次のように複数の例に沿って従います:
- 分子には、わずかに変更された同じ文字列(xᵢ、x̄ᵢ)の指数類似性が含まれることで、これは正例と見なすことができます。
- 分母には、xᵢと他のすべてのデータセット文字列xⱼとの指数類似性の合計が含まれ、これはすべての負例の集合と見なすことができます。
5. 理想的情况下,我们希望相同字符串(xᵢ,x̄ᵢ)之间的相似性很高,而xᵢ与其他字符串xⱼ之间的相似性很低。如果这是真的,那么上述公式的分子将增加,而分母将减少,从而使整个表达式变大。
损失函数的工作方式是相反的:在理想情况下,它们取较小的值,在更差的情况下,则对模型进行高度惩罚。为了使上述公式符合这个损失原理,让我们在整个表达式之前加上负对数。
6. 前一步中的表达式已经对应于单个字符串xᵢ的损失值。由于数据集包含许多字符串,我们需要考虑所有字符串。为此,让我们将这个表达式累加到所有字符串上。
得到的公式正好是InfoNCELoss!
InfoNCELoss试图将相似的对象收集到一起,并将不相似的对象推开到嵌入空间。
SBERT中使用的三元组损失是对比学习损失的另一个例子。
大型语言模型:SBERT – 句子BERT
学习如何使用Siamese BERT网络将句子准确转换为嵌入
towardsdatascience.com
培训资源
MirrorBERT的一个令人惊讶的事实是,它不需要大量数据进行微调。此外,这些数据不必是外部数据,因为整个培训过程是自监督的。
研究人员报告称,对于微调词汇表示,他们在每种语言中只使用前10000个最常见的单词。对于句子级任务,使用了10k个句子。
培训细节
MirrorBERT培训的具体细节如下:
- 在句子级任务中,温度设为T = 0.04,在词级任务中,温度设为T = 0.2。
- 在随机间隔蒙版中,k设为5。
- Dropout设置为p = 0.1。
- 使用AdamW优化器,学习率为2e-5。
- 批处理大小设置为200(或400个重复项)。
- 词汇模型训练2个时期,句子级模型训练1个时期。
- 与所有输出令牌表示的均值池化不同,创建[CLS]令牌表示。
单个MirrorBERT训练时期仅需10-20秒。
评估
作者通过应用镜像微调在一组基准测试中评估了指标。结果显示,MirrorBERT在词汇、句子级和跨语言任务方面的表现与其他类似BERT的微调模型相当。
结果还显示,10,000到20,000个训练样本之间的范围对于微调是最理想的。随着更多的训练样本,模型的性能逐渐降低。
结论
镜像微调就像魔法咒语一样:与BERT、SBERT或RoBERTa等其他微调模型相比,它不需要繁重的微调过程,而且时间更短,而且不需要使用外部数据,可以在语义相似性任务上达到相当的性能。
その結果、MirrorBERTはBERTのような事前学習モデルを高効率で言語知識を捉える普遍エンコーダに変換することができます。
リソース
特記されていない限り、すべての画像は筆者によるものです。
We will continue to update VoAGI; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles