ホームページ >テクノロジー周辺機器 >AI >NLP モデルは人間の言語を理解できないのでしょうか? Microsoft AdaTest により、障害発見の効率が 5 倍向上
自然言語処理 (NLP) モデルは人間の音声を読み取ることができず、テキストを逆の意味として解釈します。これは業界の慢性的な問題です。現在、Microsoft はこの問題の解決策を開発したと述べています。
さまざまなアプリケーション基盤にわたる大規模モデルとして使用できるか、プラットフォーム モデルの進歩が大幅に向上AIの自然な処理、言語能力。しかし、自然言語処理 (NLP) モデルはまだ完璧には程遠く、時には恥ずかしい形で欠陥が露呈する可能性があります。
たとえば、ポルトガル語の「この料理はお勧めしません」を英語の「この料理を強くお勧めします」に翻訳する一流の商業モデルがあります。
これらの失敗が続く理由の 1 つは、NLP モデルのバグを見つけて修正することが非常に難しく、重大なバグがほぼすべての主要なオープンソースおよび商用 NLP モデルに影響を与えるためです。現在、NLP モデルのエラーを検出して修正するには、ユーザー主導または自動の 2 つの方法があります。
ユーザー主導のアプローチは柔軟で、NLP モデルの動作のあらゆる側面をテストできます。しかし、この方法は人間の非常に変わりやすい想像力とエラーを特定する能力に依存しており、非常に労力がかかるため、実際にはテストに使用できるのは少量の入力データのみです。
一方、自動メソッドは高速であるため、入力データの大部分を処理できます。ただし、人間による制御ができないため、モデルがわずかに変化する入力文言を処理し、予測が矛盾する場合など、非常に限られた状況でのみモデルが正しいか間違っているかをテストできます。
マイクロソフトの研究者は、GPT-3 のような最新の大規模言語モデル (LLM) が、業界にユーザー主導の手法と自動化されたアプローチの利点を組み合わせようとする機会を提供すると考えています。これらを組み合わせて、ユーザーがテスト対象のモデルが何を行うべきかを定義できるようにしながら、最新の大規模言語モデルの生成機能を利用して、モデル動作の特定のカテゴリーで大規模なテストを生成します。
マイクロソフトの研究者は、この種の人間とマシンの統合パスを「適応テストとデバッグ」(AdaTest と略称) と呼んでいます。 AdaTest を使用すると、大規模な言語モデルには、テスト対象のモデル内のエラーに対する多数のテストを生成するという大きな負担がかかります。
人間の介入により、効果的なテストが選択され、意味的に関連するトピックに整理されることで、言語モデルの生成が行われます。このような人間による誘導により、言語モデルの生成パフォーマンスが大幅に向上し、言語モデルを目的のドメインに導きます。
これらのテストは実際にはラベル付きデータの形式であるため、NLP モデルのエラーを特定できるだけでなく、従来のソフトウェア開発と同様の反復的なデバッグ サイクルで NLP モデルのエラーを修正するために使用することもできます。
AdaTest は、プロのユーザーにとって効率が大幅に向上すると同時に、プログラミングの知識のない一般の人にとっても効果的に使用できるほどシンプルです。これは、プロフェッショナル ユーザーと一般ユーザーの両方が、NLP モデルの一連のシナリオにおける動作をよりよく理解して制御できることを意味します。これにより、AI システムのパフォーマンスが向上するだけでなく、AI システムがユーザーのニーズに対応できるようになります。より効果的に。
AdaTest モードは、内部テスト ループと外部デバッグ ループで構成されます。前者はエラーの検出に使用され、後者はエラーの検出に使用されます。エラーを修正します。
このタスクは簡単そうに見えますが、市販されている SOTA モデルでも間違いがよくあります。たとえば、一部の SOTA モデルは、「人生でこれほど良い時間を過ごしたとは思えません」という二重否定文を感情的に否定的な文として分類したり、「私は少数派です」という文を感情的に否定的なものとして分類します。 。
これらの状況は両方とも、市場のビジネス モデルで実際に発生した間違いです。 AdaTest がバグを見つけて修正できることを証明するために、Microsoft の研究チームは、NLP モデルにおけるテキストの公平性の欠如をテストして修正する方法を実証しました。
NLP モデルのテキストの公平性エラー、つまりテキスト内の特定の属性グループの中立的な説明は、NLP モデルのテキスト感情分析機能でエラーを引き起こし、誤って評価を下げる可能性があります。文章の感情的な重み。つまり、モデルは特定のグループの説明をより否定的に扱う可能性があります。
テスト ループでは、Microsoft 研究者はさまざまな ID に対する一連のテキスト単体テストから開始し、この一連のテストを「機密」としてマークしました。これらの最初の例では、モデル内のエラーは明らかになりませんでした。
ただし、AdaTest メソッドは GPT-3 を使用して、同様のコーパスを含む多数の示唆的なテストを生成し、テスト オブジェクト モデルの隠れたバグを強調します。
何百ものテストが生成されますが、介入する担当者は、エラーがあるか、エラーに近い最初の数個のテストをレビューするだけで済みます。その後、人間の介入により、実際には間違っていないテスト結果が無視され、他の有効なテスト結果が現在のトピックに追加され、場合によってはそれらが他のサブトピックに編成されます。これらの手動でフィルタリングされたテスト結果は、ラウンド入力の次の言語モデル プロンプトに含まれます。 、次の入力データセットの処理結果は、ユーザーの関心事とモデルエラーの間の交差点にプッシュされます。
この内部テスト サイクルを繰り返すことで、NLP モデルはエラーなしで開始され、徐々に明らかなエラーやバグが明らかになります。したがって、ユーザーがモデル内の障害を自分で見つけることができない場合でも、合格した少数のテストから始めて、NLP モデルをすばやく反復して、テスト対象のモデル内のエラーを明らかにする大規模なテストのバッチを生成できます。
内部テスト ループの例 テスターがテキスト感情分析のトピックを使用せず、否定的な文や二重否定的な文の処理など、別のトピックに焦点を当てている場合、テスターはさまざまな欠陥を発見します。
たとえば、「今ほど幸せになったことはありません」のような単純な発言は、ビジネス モデルによってポジティブなものとして正しく分類できます。ただし、AdaTest メソッドを使用すると、「これより良い都市を見たことがないと思います」のような複雑なステートメントが、NLP モデルによって誤って否定的としてマークされることがすぐにわかります。
テスターがこれらのエラーを認識すると、それらは明白でひどいものになりますが、非常に特殊な文言でのみ発生するため、人間が直接検出することは困難です。 Microsoft の研究チームは、AdaTest を使用することで専門ユーザーと一般ユーザーがより適切にテストを作成し、NLP モデルのエラーを発見できるかどうかを定量的に評価するためにユーザー調査を実施しました。研究者らはプロのユーザーに、商用テキストセンチメント分類器と次の単語のオートコンプリート用の GPT-2 という 2 つのモデルでトピック固有の機能をテストするよう依頼しました。
この機能は、入力中のメールの次の単語を予測するなどの用途に使用されます。トピックとモデルごとに、参加者は CheckList (SOTA、User-Driven Testing の略) または AdaTest を使用するようにランダムに割り当てられました。研究者らは、さまざまなモデルや専門家の参加者全体で AdaTest が 5 倍向上したことを観察しました。
研究者による非専門ユーザー向けのテスト要件は、NLP モデルにおける有害なコーパスのコンテンツ制御をテストすることです。参加者は、モデルによって有害であると判断されたコーパス内の非毒性コンテンツ、つまり、個人的に適切であると感じるコンテンツを見つけなければなりません。参加者は、モデルのテストに Dynabench クラウドソーシング インターフェイスの改良版を使用することも、AdaTest を使用することもできます。その結果、AdaTest は最大 10 倍の改善をもたらします。
さまざまな視点でテスト参加者のレンダリングをテストします
十分なエラーが見つかったら、テスターはモデルは外部デバッグ ループ (以下に示すように) を実行し、テスト ループで見つかったエラーを修正して、モデルを再テストします。このプロセスでは、デバッグ ループの「再テスト」部分 (つまり、テスト ループを再度実行する) が重要です。モデルを修正するためにテストが使用されると、それらはもはやテスト データではなくトレーニング データになるためです。バグを修正するプロセスでは、多くの場合過剰補正が行われ、デバッグ サイクルの最初の数ラウンドでショートカットやバグが導入されます。これらは、新しい「修正された」モデルに適応した一連のテストでのみ発見できます。
オープンソースの RoBERTa-Large 感情モデルでのサイクル プロセスのテスト。研究者らは、図 2 の「/sensitive/imigration」トピックのテストから開始しましたが、RoBERTa モデルでは誤ってネガティブとラベル付けされました。モデルはこれらのテスト中に微調整され (タスクのパフォーマンスを維持するために元のトレーニング データと混合されます)、その結果、失敗しなくなった新しいモデルが作成されます。しかし、テストループを再実行すると、申請書とテストシナリオに基づいて実際には陰性であったにもかかわらず、ほぼすべての移民声明が「中立」としてマークされていることが判明しました。
これらの新しいテストを使用して再度微調整すると、モデルは「すべての移民に関する声明は中立です」というショートカットを追加することなく、元のエラーを正しく修正することができます。もちろん、これは別のショートカットがモデルに存在しないことを保証するものではありませんが、研究者の経験によれば、数回のデバッグ サイクルの後、元のエラーを修正するときに発生する予期しないエラーの数が大幅に減少します。
テスターは、考えられるすべてのエラーを事前に詳細に特定する必要はありません。AdaTest は、次のテストとデバッグのラウンドで導入されたエラーを適応的に表示し、修正します。
したがって、デバッグ ループは、満足のいくモデルが生成されるまで、現在のバグ テスト仕様の限界を押し広げます。実際、AdaTest は、ソフトウェア エンジニアリングにおけるテスト、修正、再テストのサイクルを NLP に応用したものと見ることができます。
デバッグ ループの反復中に追加されたショートカットが発見され、今後の反復によって修正されました。デバッグ ループの有効性を評価するために、RoBERTa -Large 上の Quora 質問データセットを使用しました。 2 つの質問が重複しているかどうかを検出するために微調整され、ポジティブ/ニュートラル/ネガティブなセンチメント分析のために Stanford Sentiment Treebank (SST) データセットを使用して微調整も行われます。
その結果、ベースライン モデルは 53 個の QQP トピックのうち 22 個と、39 個の感情的なトピックのうち 11 個を正常に識別できなかったことがわかりました。その後、研究者はテーマを修復するためのデータを作成しました。このトピックのデータから 50 の例を抽出し、AdaTest でデバッグ ループを実行します。QQP データ セットでは平均 41.6 のテストが実行され、センチメント データ セットでは平均 55.8 のテストが実行されます。
結果によると、ほとんどの場合、AdaTest はトレーニングに使用された質問と一部の未確認の予約質問を質問を破壊することなく修復しますが、元の CheckList データには新しいエラーが発生することが多く、そのため他のテスト質問が破壊されます。研究者らは、標準的な開発環境における AdaTest の有効性も評価しました。 3 か月の開発、CheckList テスト、GPT-3 に基づくアドホック データ拡張を経た後、実際に収集された未確認データの F1 スコアは 0.66 (1.00 点中) でした。
AdaTest を使用した同じチームは、デバッグ ループを 4 時間実行した後、同じ未確認のデータセットで F1 スコア 0.77 を達成しました。これらのスコアは後に 2 番目の未確認のデータセットに複製され、AdaTest がバグ修正を実行し、従来の方法では失敗する領域でより良い結果が得られることが実証されました。
人々は言語モデルに欠けている問題の仕様を提供し、言語モデルはより大きな規模と範囲で高品質のテストを提供し、モデルのテストとデバッグを接続して効果的にエラーを修正し、モデル開発を可能にします。反復に一歩近づきます。従来のソフトウェア開発の性質。
人間と AI の協力は、機械学習の発展の将来の方向性を示しています。大規模な言語モデルの機能が成長し続けるにつれて、この協力もさらに改善されることが期待されています。
以上がNLP モデルは人間の言語を理解できないのでしょうか? Microsoft AdaTest により、障害発見の効率が 5 倍向上の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。