BERTで加速:NLP最適化モデル
公開: 2022-03-11BERTによるNLPの加速:100分の1のデータで世界クラスの結果
深層学習自然言語処理(NLP)分類モデルを構築する場合、2つの主要な問題があります。
- データ収集(数千または数百万の分類されたデータポイントを取得する)
- ディープラーニングアーキテクチャとトレーニング
言語の複雑さを理解できる複雑な深層学習モデルを構築する私たちの能力は、通常、これらのドメイン全体で長年の経験を必要としました。 問題が難しいほど、出力は多様になり、これらの各ステップに多くの時間を費やす必要があります。
データ収集は、煩わしく、時間と費用がかかり、NLPプロジェクトを成功させるための最大の制限要因です。 データの準備、回復力のあるパイプラインの構築、数百の潜在的な準備オプションの中からの選択、および「モデルの準備」の準備は、才能のある機械学習エンジニアでも簡単に数か月かかる可能性があります。 最後に、深層学習モデルのトレーニングと最適化には、直感的な理解、技術的な専門知識、および問題に取り組む能力の組み合わせが必要です。
この記事では、
- NLPのディープラーニングのトレンド:転移学習が世界クラスのモデルをオープンソースにする方法
- BERTの概要:これまでで最も強力なNLP「ツール」の概要–トランスフォーマーからの双方向エンコーダー表現(BERT)
- BERTの仕組みと、それがNLPプロジェクトでの企業の実行方法を変える理由
ディープラーニングのトレンド
当然、このプロセスの最適化は精度の向上から始まりました。 LSTM(長短期記憶)ネットワークは多くのNLPタスクに革命をもたらしましたが、それらは信じられないほどデータを大量に消費していました。 これらのモデルの最適化とトレーニングは、大型で高価なマシンでは数日から数週間かかる場合があります。 最後に、これらの大規模なモデルを本番環境にデプロイすることは、コストと手間がかかります。
これらの複雑さを生み出す要因を減らすために、コンピュータビジョンの分野では長い間転移学習を利用してきました。 転移学習とは、異なるが類似したタスク用にトレーニングされたモデルを使用して、新しいソリューションでソリューションを加速する機能です。 すでに木を分類できるモデルを再トレーニングする方が、茂みを最初から認識するように新しいモデルをトレーニングするよりもはるかに少ない労力で済みます。
誰かが茂みを見たことがないが、彼らの生活の中でたくさんの木を見たというシナリオを想像してみてください。 茂みを最初から説明するよりも、木について知っていることの観点から、茂みがどのように見えるかを説明する方がはるかに簡単です。 転移学習は非常に人間的な学習方法であるため、これが深層学習タスクで機能することは直感的に理解できます。
BERTは、必要なデータとトレーニング時間が少なくて済み、ビジネス価値が高まることを意味します。 あらゆる企業が構築できるNLP製品の品質は、世界クラスになりました。
入ってくるBERT
BERTは、トランスフォーマーと呼ばれるものを利用し、文のエンコードを生成するように設計されています。 基本的に、BERTは特定の深層学習モデルに基づく言語モデルです。 これは、文または文の文字列のコンテキスト、数値、表現を提供することを目的としています。 そのデジタル表現は、浅くて複雑でないモデルへの入力です。 それだけでなく、結果は一般的に優れており、まだ解決されていないタスクの入力データの一部を必要とします。
1年ではなく1日かけてデータを収集し、LSTMモデルを作成するのに十分なデータがないデータセットを中心にモデルを構築できると想像してみてください。 以前は開発時間と必要な専門知識を提供できなかったビジネスのために開かれるNLPタスクの数は驚異的です。
BERTの仕組み
従来のNLPでは、モデルトレーニングの開始点は単語ベクトルです。 単語ベクトルは、その単語の意味を数値で表現しようとする数字のリスト[0.55、0.24、0.90、…]です。 数値表現を使用すると、これらの単語を複雑なモデルのトレーニングに使用でき、大きな単語ベクトルを使用すると、単語に関する情報をモデルに埋め込むことができます。
BERTは同様のことを行いますが(実際、その開始点は単語ベクトルです)、入力文全体の数値表現を作成します。
LSTMモデルと比較して、BERTは多くのことを異なる方法で行います。
- 左から右または右から左ではなく、すべての単語を一度に読み取ります
- 単語の15%は、トレーニング時間中に「マスク」される(文字通り[MASK]トークンに置き換えられる)ようにランダムに選択されます
- ランダムに選択された単語の10%は変更されません
- マスクされた単語の10%がランダムな単語に置き換えられます
- (a)と(b)が連携して、モデルに文中のすべての単語を予測させる(モデルは怠惰です)
- 次に、BERTは文中のすべての単語を予測しようとしますが、マスクされた単語のみが損失関数に寄与します。これには、変更されていないランダムに置き換えられた単語も含まれます。
- 次の文の予測で微調整されたモデル。 このステップでは、モデルは、特定の文がテキスト内の次の文であるかどうかを判断しようとします
収束は遅く、BERTのトレーニングには長い時間がかかります。 ただし、テキスト内のコンテキスト関係をはるかによく学習します。 単語ベクトルは非常に浅い表現であり、モデル化できる複雑さを制限します。BERTにはこの制限はありません。

ほとんどの企業は、複数のGPUを利用し、アプリケーションのトレーニングに数日を要した事前トレーニング済みモデルを利用できます。 既存のBERTモデルをその場で使用できない、または特定のユースケースに合わせて調整できない場合はほとんどありません。 BERTを使用すると、チームはソリューションを10倍高速化できます。 ビジネスソリューションを特定し、概念実証を構築し、最終的にその概念をわずかな時間で本番環境に移行することができます。
BERTの実装とビジネス価値の比較
この記事では、実際の製品を構築するためのビジネスおよびエンジニアリングアプリケーションに焦点を当てているため、比較値をよりよく理解するために2つのモデルを作成してトレーニングします。
- BERT:最も単純なBERTパイプライン。 標準的な方法でテキストを処理し、BERTセンテンスエンコーディングを生成し、それらのセンテンスエンコーディングを浅いニューラルネットワークにフィードします
- LSTM:標準の埋め込み-エンコード-参加-予測アーキテクチャ(上の写真)
タスク? IMDBからのプロットに基づいて映画の起源を予測します。 私たちのデータセットは、アメリカ、オーストラリア、イギリス、カナダ、日本、中国、韓国、ロシアの映画に加えて、合計24の起源を持つ16の映画をカバーしています。 合計35,000弱のトレーニング例があります。
これは、プロットからのスニペットの例です。
数千年前、ステッペンウルフと彼のパラデーモンの軍団は、3つのマザーボックスのエネルギーを組み合わせて地球を乗っ取ろうとしています。 彼らは、オリンピックの神々、アマゾン、アトランティス、人類、そしてグリーンランタン隊を含む統一された軍隊によって妨害されています。 ステッペンウルフの軍隊を撃退した後、マザーボックスは分離され、惑星上の場所に隠されます。 現在、人類はスーパーマンを悼んでいます。スーパーマンの死により、マザーボックスが再びアクティブになり、ステッペンウルフがマスターであるダークサイドの支持を取り戻すために地球に戻ってきます。 ステッペンウルフは、アーティファクトを集めて「ユニティ」を形成することを目指しています。これにより、地球の生態系が破壊され、…のイメージでテラフォームされます。
あなたが推測していなかったなら、これはジャスティスリーグのプロットです—アメリカの映画。
結果
さまざまな量のデータとモデルサイズに結果がどのように反応するかを理解するために、さまざまなパラメーターのセットをトレーニングしました。 すでに述べたように、BERTの最も重要な付加価値は、必要なデータがはるかに少ないことです。
LSTMモデルでは、GPUで可能な最大のモデルをトレーニングし、語彙のサイズと単語の長さを変えて、最高のパフォーマンスを発揮するモデルを見つけました。 BERTモデルの場合、1つのレイヤーしかありませんでした。
これらすべてのサンプルでテストセットを修正したため、同じトレーニングセットを一貫してスコアリングしています。
このタスクでは、BERTセンテンスエンコーディングを使用してトレーニングされたモデルは、わずか1000サンプルで0.84の印象的なF1スコアに達します。 LSTMネットワークが0.60を超えることはありません。 さらに印象的なことに、BERTモデルのトレーニングには、LSTMモデルの準備よりも平均して1/20の時間がかかりました。
結論
いずれにせよ、これらの結果はNLPの革命を示しています。 100分の1のデータと20分の1のトレーニング時間を使用して、世界クラスの結果を達成しました。 高品質のモデルを数時間または数日ではなく数秒または数分でトレーニングできるため、以前は提供できなかった領域でNLPが開かれます。
BERTには、この投稿にあるものよりも多くの用途があります。 多言語モデルがあります。 この投稿のように個別に、または複数の出力を同時に使用して、さまざまなNLPタスクを解決するために使用できます。 BERTセンテンスエンコーディングは、今後多くのNLPプロジェクトの基礎となる予定です。
この投稿の背後にあるコードはGithubで入手できます。 また、読者には、この投稿のBERTセンテンスエンコーディングを構築するための基礎となったBert-as-a-serviceをチェックすることをお勧めします。