極小データセットを用いたテキスト分類チャレンジ:ファインチューニング対ChatGPT

極小データセットでのテキスト分類チャレンジ ChatGPTのファインチューニング

LLMsは超小規模データセットに優れており、データセットが増えるにつれて古典的なアプローチが輝きます

Debby Hudsonによる写真Unsplash

Toloka MLチームは、さまざまな条件下でのテキスト分類の異なるアプローチを継続的に研究・比較しています。ここでは、超小規模データセットでNLPモデルのパフォーマンスをトレーニングした実験の1つを紹介します。

以前、特定のテキスト分類タスクにおいて、古典的なモデルと大規模言語モデル(LLMs)を比較し、潜在的な解決策の概要を提供しました。しかし、これらの比較は、信頼性のある分類器を構築するのに十分なデータポイントを含む「通常」のデータセットに基づいています。実世界のシナリオでは、データが制限されたり、人間のラベリングが行われていない場合もあります。

直感的には、GPT-3やChatGPTなどのLLMsは、その広範な「知識」のために、より小さなモデルよりも優れたパフォーマンスを発揮する可能性があります。この仮説を調査するために、大規模なデータセットから一部を抽出して人工的に小さなデータセットを作成し、いくつかのアプローチを比較しました。RoBERTaベースモデルを微調整し、few-shot分類にChatGPTを使用し、GPT-3 Babbageモデルを微調整しました。

データセット

さまざまなモデルの理解能力を評価するために、科学論文の要約からなるマルチクラスデータセットを選択しました。タスクは各記事のドメインを判別することです。

分析対象としてWOS-11967 [1] データセットを選択しました。このデータセットには、7つの親カテゴリ(医学、心理学、コンピューターサイエンス、生化学、電気工学、土木科学、機械工学を含む)を含む35のカテゴリが11,967件のドキュメントに含まれています。私たちは10,000のデータポイントをサンプリングし、分析のために親カテゴリに焦点を絞りました。

データセットは完全にバランスが取れているわけではありませんが、クラスの分布は相当比例しています。したがって、すべてのクラスで満足のいく結果が得られる可能性があります。クラスの分布は以下の通りです。

WOS-11967データセットのサンプルのクラス分布

手動での分析により、一部の要約のドメインを判別することは比較的簡単であり、他の場合はタスクがより困難になることがわかりました。例えば、コンピューターサイエンスの記事は数学的なトピックを議論する場合があり、心理学の記事には医療や生化学の用語や略語が含まれることがあり、それらを生化学や医学のドメインと区別するのは難しいです。要約はまた、平均274トークン(ChatGPTトークン)と標準偏差115トークンで著しく異なりました。

超小規模データセットを想定したシナリオをシミュレートするために、コーパスをトレーニングセットとテストセットに分割し、トレーニングセットに少数のサンプルを割り当てました。このプロセスを3回繰り返し、利用可能なトレーニングデータに基づいてモデルのパフォーマンスの変化を評価しました。以下の3つのスプリットを実験のために作成しました:WOS-11967-s200(トレーニングセット200サンプル、テストセット9,800サンプル)、WOS-11967-s500(500 / 9,500)、およびWOS-11967-s2000(2,000 / 8,000)。

では、さまざまなモデルを使用してこれらの問題に取り組んだ結果を見てみましょう。

RoBERTaを用いた通常のファインチューニング

ベースラインとして、RoBERTaベースモデル[2]を選択し、前述の3つのデータセットで微調整しました。各ランで同じハイパーパラメータ設定(バッチサイズ32、学習率3e-5、ウォームアップを行う線形スケジューラ、256トークンのウィンドウ)、オーバーフィッティングを防ぐための早期停止を使用しました。

以下の結果が得られました:

データは、要約を正確に分類するために必要なすべてのパターンと情報を抽出するには、200のサンプルでは不十分であることを示しています。低いマクロ平均F1スコアは、機械工学などのクラスの数が少ない場合にモデルの性能が低下することを示しています。これは、特定のクラスからのわずかなサンプルだけでは十分ではないことを示しています。

予想通り、利用可能なデータの量が増えるにつれて、モデルのパフォーマンスが向上し、結果的に7つのクラスにわたるマルチクラス分類で堅牢なパフォーマンスが得られるようになりました。

ChatGPTを用いたフューショット

私たちが試した2つ目のアプローチは、ChatGPTを用いたフューショット分類です。この方法は従来の分類とは大きく異なり、モデルのトレーニングそのものは行いません。代わりに、最適なパフォーマンスを得るために入力プロンプトを設計しました。

ただし、モデルの4096トークンのコンテキストサイズ制限のため、すべての200のサンプルをモデルに供給することは不可能でした。上記の計測結果から、モデルにはおよそ14の要約を提示することができました。これには指示や区切り文字に使用されるトークンも含まれるため、この数はさらに減少しました。

最初に、指示のために「system」の役割を使用し、モデルの応答をガイドするために各クラスごとに1つの例を提供しました。クラス名を単一のトークンに簡略化しながら意味を保持するようにしました。これにより、モデルが適切なカテゴリを選択し、出力を単一のトークンに制限するのが容易になりました。たとえば、「Biochemistry」は「Bio」になり、「Computer Science」は「Computer」になりました。さらに、モデルに迷った場合には「Unknown」トークンを返すように、選択肢のリストを提供し、クラスの数を制限しました。

全体的に、この方法によるパフォーマンスは、わずか200のサンプルでトレーニングされたRoBERTaモデルと比較して劣っていました。モデルの分類能力は、供給されたプロンプトに大きく依存することに気付きました。1つの文を変更するだけで、指標が改善または悪化することがありました。いくつかの場合では、明示的な指示にもかかわらず、ChatGPTがカテゴリを見落とすことがありました(これはプロンプトの作成方法の欠点かもしれません)。

一部の端的な例では、プロンプトにリストされていないカテゴリが生成されましたが、記事のドメインを説明していました。これらの欠点はモデルに帰属すべきか、データセットに帰属すべきかは明確ではありません。ただし、検証セットによれば、これらのカテゴリは「Math」を「Computer」に変更するなどの簡単なルールで修正することができます。

指標を改善するために、できるだけ多くのデータを使用しようと試みました。200のサンプルをすべてモデルに供給することはまだできませんでしたので、次の2段階のプロセスを考案しました:

  • まず、特定のドメインの要約間の類似性を特定し、モデルに要約を生成させます。
  • 次に、これらの要約を指示に組み込み、モデル自体が最初の段階で特定したクラスと特徴についての洞察を提供します。

このアプローチにより、モデルにさらに多くのトレーニングデータのサンプルを供給することができました。そして、成功しました。指標を約10%向上させました。以下は、これらの要約を生成するために使用したプロンプトです:

記事のドメインに関する有意な情報を抽出するために使用されるChatGPTのプロンプト

各ドメインについて、7〜8つの要約を提供し、合計63の異なる要約を分類のプロンプトの準備に使用しました(7つのクラスごとに8つの要約を作成し、実際のプロンプトでは7つの要約を提供しました)。

それにもかかわらず、モデルにはクラスについて確信が持てない場合は「Unknown」と応答するよう指示しました。検証セットでは、ほとんどの「Unknown」の応答がコンピュータサイエンスの記事に対応していることが観察されました。そのため、すべての「Unknown」インスタンスを「Computer」クラスに置き換えました。

結果的な分類プロンプトは次のようになります:

記事の要約を分類するために使用されるChatGPTの最終的なプロンプト

再度、パフォーマンスはプロンプトと提供されたサンプルに大きく影響を受けました。モデルは対象リスト外のいくつかのカテゴリも生成しましたが、検証セットに基づいて手動で調整する必要がありました。このアプローチにより、次の結果が得られました:

パフォーマンスは、わずか200のサンプルでRoBERTaモデルを微調整するよりも顕著に向上しました。さらに、少ないサンプル数でした。ただし、ラベル付きデータの利用可能性が増すにつれて、RoBERTaは500のサンプルでもこのアプローチを上回るようになりました。

私たちは、適切なプロンプトエンジニアリングを通じてさらなるパフォーマンス向上が可能であると考えています。便利なヒントやトリックは、プロンプトガイドに記載されています。

GPT-3モデルのファインチューニング

最終的なアプローチでは、これらの3つのデータセットに対してGPT-3バビッジモデルをファインチューニングしました。OpenAIガイドで提案されているデータセットの準備推奨事項に従い、特定の調整は行わずにデフォルトのハイパーパラメータを選択しました。各データセットのトレーニングプロセスには約20分かかり、次の結果が得られました:

ファインチューニングされたGPT-3モデルは、最小のデータセットでも驚異的な結果を出し、RoBERTaとChatGPTの両方を上回りました。トレーニングデータの量が増えるにつれて、RoBERTaと調整されたGPT-3モデルの性能差は狭まっていきました。これにより、どちらのオプションを使用するのかについてのリソースと実現可能性に関する疑問が生じました。私たちは以前の記事で両方のアプローチの利点と欠点について議論しました。

結論

この実験は、初期の仮説が正しかったことを示しています。より大規模なモデルがより広範なデータでトレーニングされると、極小のデータセットでも大幅に優れたパフォーマンスを発揮します。適切なプロンプトエンジニアリングとフューショット技術を使用することで、好ましい結果を達成することが可能です。

ただし、データセットのサイズが増えるにつれて、パフォーマンスの差は減少します。さらに、ドメインに適応したRoBERTaモデルなどの適切に調整されたクラシカルモデルは、分類タスクにおいて一般的なLLMよりも優れる場合があります。これは、モデルが対象の内容に特化した「知識」を持つことに起因する可能性があります。さらに、これらのモデルを使用した推論は、適切な最適化により大幅に高速化されることがあります。これはオンラインサービスの開発において重要です。

写真は特記がない限り、著者によるものです。

参考文献

  1. Kowsari K, Brown DE, Heidarysafa M, Jafari Meimandi K, Gerber MS, Barnes LE. HDLTex: Hierarchical Deep Learning for Text Classification. In: Machine Learning and Applications (ICMLA), 2017 16th IEEE International Conference On . IEEE; 2017.
  2. Liu Y, Ott M, Goyal N, et al. RoBERTa: A Robustly Optimized BERT Pretraining Approach. CoRR . 2019;abs/1907.11692. http://arxiv.org/abs/1907.11692

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more