「LLMの力を活用する:ゼロショットとフューショットのプロンプティング」

Utilizing the power of LLM Zero-shot and few-shot prompting.

はじめに

LLMのパワーはAIコミュニティで新たなブームとなりました。GPT 3.5、GPT 4、BARDなどのさまざまな生成型AIソリューションが異なるユースケースで早期採用されています。これらは質問応答タスク、クリエイティブなテキストの執筆、批判的分析などに使用されています。これらのモデルは、さまざまなコーパス上で次の文予測などのタスクにトレーニングされているため、テキスト生成に優れていると期待されています。

頑健なトランスフォーマーベースのニューラルネットワークにより、モデルは分類、翻訳、予測、エンティティの認識などの言語に基づく機械学習タスクにも適応することができます。したがって、適切な指示を与えることで、データサイエンティストは生成型AIプラットフォームをより実践的で産業的な言語ベースのMLユースケースに活用することが容易になりました。本記事では、プロンプティングを使用した普及した言語ベースのMLタスクに対する生成型LLMの使用方法を示し、ゼロショットとフューショットのプロンプティングの利点と制限を厳密に分析することを目指します。

学習目標

  • ゼロショットとフューショットのプロンプティングについて学ぶ。
  • 例として機械学習タスクのパフォーマンスを分析する。
  • フューショットのプロンプティングをファインチューニングなどのより高度な技術と比較評価する。
  • プロンプティング技術の利点と欠点を理解する。

この記事はData Science Blogathonの一部として公開されました。

プロンプティングとは?

まず、LLMを定義しましょう。大規模言語モデル(LLM)とは、数億から数十億のパラメータを持つ、複数のトランスフォーマーとフィードフォワードニューラルネットワークの層で構築されたディープラーニングシステムです。これらはさまざまなソースの大規模なデータセットでトレーニングされ、テキストを理解し生成するために構築されています。言語翻訳、テキスト要約、質問応答、コンテンツ生成などが例です。LLMにはさまざまなタイプがあります:エンコーダのみ(BERT)、エンコーダ+デコーダ(BART、T5)、デコーダのみ(PALM、GPTなど)。デコーダコンポーネントを持つLLMは生成型LLMと呼ばれ、これがほとんどのモダンなLLMの場合です。

生成型LLMに特定のタスクを実行させるには、適切な指示を与えます。LLMは、プロンプトとも呼ばれる指示に基づいてエンドユーザーに応答するように設計されています。ChatGPTなどのLLMと対話したことがある場合、プロンプトを使用したことがあります。プロンプティングは、モデルが望ましい応答を返すための自然言語のクエリで私たちの意図をパッケージングすることです(例:図1、出典:Chat GPT)。

以下のセクションでは、ゼロショットとフューショットの2つの主要なプロンプティング技術を詳しく見ていきます。それぞれの詳細と基本的な例を見ていきましょう。

ゼロショットプロンプティング

ゼロショットプロンプティングは、生成型LLMに特有のゼロショット学習の特定のシナリオです。ゼロショットでは、モデルにラベル付きのデータを提供せず、完全に新しい問題に取り組むことを期待します。例えば、適切な指示を提供することにより、新しいタスクに対してChatGPTをゼロショットプロンプティングに使用します。LLMは多くのリソースからコンテンツを理解しているため、未知の問題に適応することができます。いくつかの例を見てみましょう。

以下は、テキストをポジティブ、ニュートラル、ネガティブの感情クラスに分類するための例です。

ツイートの例

ツイートの例は、Twitter US Airline Sentimentデータセットから取得されています。このデータセットには、異なる航空会社へのフィードバックツイートがポジティブ、ニュートラル、またはネガティブにラベル付けされています。図2(出典:ChatGPT)では、タスク名(Sentiment Classification)、クラス(positive、neutral、negative)、テキスト、および分類するためのプロンプトを提供しました。図2の航空会社へのフィードバックはポジティブであり、航空会社とのフライト体験を称賛しています。ChatGPTはレビューの感情を正しくポジティブと分類し、新しいタスクにおけるChatGPTの汎化能力を示しました。

上記の図3は、Chat GPTが別の例でネガティブな感情を持つゼロショットであることを示しています。Chat GPTは再びツイートの感情を正しく予測しています。モデルがレビューテキストを正しく分類する成功した2つの例を示しましたが、最先端のLLMでもいくつかの曖昧なケースがあります。例えば、図4の以下の例を見てみましょう。ユーザーは航空会社の食品の品質について不満を述べていますが、Chat GPTは感情を中立と誤って識別しています。

以下の表では、ゼロショットのパフォーマンスをBERTモデル(ソース)のTwitter Sentimentデータセットでのパフォーマンスと比較しています。精度、F1スコア、精度、再現率のメトリクスを見ていきます。各ケースで航空会社の感情データセットからランダムに選択されたデータのゼロショットプロンプティングのパフォーマンスを評価し、パフォーマンスの数値を最も近い整数に丸めます。ゼロショットはすべての評価メトリックスで低いですが、まあまあのパフォーマンスを示しており、プロンプティングの力を示しています。パフォーマンスの数値は最も近い整数に丸められています。

Few-shot Prompting

ゼロショットとは異なり、few-shotプロンプティングではプロンプトにいくつかのラベル付きの例を提供します。これは、従来のfew-shot学習とは異なり、少数のサンプルを用いてLLMを新しい問題に対して微調整することを意味します。このアプローチは、大規模なラベル付きデータセットへの依存を減らし、モデルが少数のラベル付きサンプルで新しいクラスの正確な予測を迅速に行うことを可能にします。新しいクラスのためのラベル付きデータを収集するのに時間と労力がかかる場合に、この方法は有益です。以下はfew-shotの例(図5)です。

Few Shot vs Zero Shot

few-shotはパフォーマンスをどれだけ改善するのでしょうか?few-shotとゼロショットの技術は、個別の例で良いパフォーマンスを示していますが、few-shotの方が全体的なパフォーマンスがゼロショットよりも高いです。以下の表に示すように、数個の高品質な例と境界線や重要な例のサンプルを提供することで、タスクの精度を向上させることができます。few-shot学習(10、20、50の例)を使用することでパフォーマンスが向上します。few-shotプロンプティングのパフォーマンスは、航空会社の感情データセットからランダムに選択されたデータのサブセットで評価され、パフォーマンスの数値は最も近い整数に丸められています。

上記の表の評価メトリクスに基づいて、few-shotは正確度で10%、F1スコアで7%向上し、fine-tuned BERTモデルと同等のパフォーマンスを達成しています。また、20の例を超えると、改善が停滞することも重要な観察です。私たちの分析でカバーした例は、Twitter US Airlines Sentimentデータセット上のChat GPTの特定のユースケースです。他のタスクや生成AIモデルにわたる観察結果を理解するために、別の例を見てみましょう。

Language Models: Few Shot Learners

以下(図6)は、「Language Models are Few-Shot Learners」という論文で説明されている研究の例で、few-shot、one-shot、ゼロショットモデルとGPT-3のパフォーマンスをLAMBADAベンチマーク(ターゲットワードの予測)で比較しています。パフォーマンスは、異なるfew-shot設定で測定されます。LAMBADAの特異性は、テキスト内の情報とその関連コンテキストとの間に大きな距離がある状況、つまり長距離依存関係をモデルの処理能力を評価することにあります。few-shot学習は正確度で12.2ppの notable marginでゼロショット学習を上回ります。

上記の論文でカバーされている別の例では、SuperGLUEベンチマーク上でプロンプトで提供される例の数によってGPT-3のパフォーマンスが微調整されたBERTモデルと比較されています。SuperGLUEは、言語理解のMLタスクのパフォーマンス評価における重要なベンチマークとされています。グラフ(図7)では、最初の8つの例が最も影響を与えていることがわかります。few-shotプロンプトにさらに例を追加すると、顕著な改善を見るために例を指数関数的に増やさなければならない壁にぶつかります。私たちは、感情分類の例と同じ観察結果が複製されているのを非常に明確に見ることができます。

ゼロショットは、ラベル付きデータが不足している場合にのみ考慮すべきです。いくつかのラベル付きの例があれば、ゼロショットに比べてfew-shotを使用して大きなパフォーマンスの向上を達成することができます。未調整のモデルと比較した場合、これらの技術がどれほど優れたパフォーマンスを発揮するかは、より洗練された技術(例:微調整)と比較した場合でも疑問です。最近、いくつかのよく開発されたLLMの微調整技術があり、その使用コストも大幅に削減されています。なぜモデルを微調整しないのでしょうか?今後のセクションでは、プロンプティング技術と微調整モデルを比較するためにさらに深く掘り下げます。

Few-shotプロンプティングと微調整

生成型LLMを使用したfew-shotの主な利点は、アプローチの実装の簡単さです。数個のラベル付きの例を収集し、プロンプトを準備し、推論を実行すれば完成です。いくつかの最新のイノベーションがあるにもかかわらず、微調整は実装が非常に重く、多くのトレーニング時間とリソースを必要とします。特定のインスタンスに対して、異なる生成型LLM UIを使用して結果を得ることができます。大規模なデータセットでの推論では、コードは次のように非常にシンプルになります:

import os
import openai

messages = []


# Chat GPT labeled examples
few_shot_message = ""

# タスクを指定
few_shot_message = "タスク:感情分類 \n"

# クラスを指定
few_shot_message += "クラス:positive、negative \n"

# コンテキストを追加
few_shot_message += "コンテキスト:ホテルのレビューの感情を分類したい \n"

# ラベル付きの例を追加
few_shot_message += "ラベル付きの例:\n"

for labeled_data in labeled_dataset:
    few_shot_message += "テキスト:" + labeled_data["text"] + "\n";
    few_shot_message += "ラベル:" + labeled_data["label"] + "\n"

# few-shotの例を提供してChatGPTのOpenAI APIを呼び出す
messages.append({"role": "user", "content": few_shot_message})
chat = openai.ChatCompletion.create(
            model="gpt-3.5-turbo", messages=messages
        )

for data in unlabeled_dataset:
    # 分類するテキストを追加
    message = "テキスト:" + data + "、"
    
    # プロンプトを追加
    message += "プロンプト:与えられたテキストを感情カテゴリの1つに分類します。"
    messages.append({"role": "user", "content": message})
    
    # 分類のためにChatGPTのOpenAI APIを呼び出す
    chat = openai.ChatCompletion.create(
            model="gpt-3.5-turbo", messages=messages
        )
    reply = chat.choices[0].message.content
    print(f"ChatGPT:{reply}")
    messages.append({"role": "assistant", "content": reply})

few-shotと微調整のもう1つの主な利点は、データの量です。Twitter US Airlinesの感情分類タスクでは、BERTの微調整には1万以上の例が必要でしたが、few-shotプロンプティングでは20〜50の例で同様のパフォーマンスを得るのに十分です。ただし、これらのパフォーマンスの向上が他の言語ベースのMLタスクにも一般化されるのかは疑問です。私たちがカバーした感情分類の例は非常に具体的なユースケースです。few-shotプロンプティングのパフォーマンスは、すべてのユースケースにおいて微調整モデルの基準を満たすことはありません。ただし、多様な言語タスクにわたる類似/優れた機能を示しています。few-shotプロンプティングの力を示すために、以下のセクションで標準化された言語理解、翻訳、およびQAベンチマークのタスクにおいてSOTAや微調整された言語モデル(BERTなど)とのパフォーマンスを比較しました。(出典:Language Models are Few-Shot Learners)

言語理解

few-shotと微調整のパフォーマンスを言語理解タスクで比較するために、SuperGLUEベンチマークを見てみましょう。SuperGLUEは、分類、テキストの類似度、自然言語推論のタスクからなる言語理解ベンチマークです。比較に使用される微調整モデルは、微調整されたBERT largeと微調整されたBERT++モデルであり、生成型LLMはGPT-3です。以下の図(図8および図9)のチャートは、十分に大きなサイズの生成型LLMによるfew-shotプロンプティングで、およそ32のfew-shot例が微調整されたBERT++および微調整されたBERT Largeを上回るのに十分であることを示しています。BERT largeに対する精度の向上は約2.8パーセンテージポイントであり、few-shotの生成型LLMの力を示しています。

翻訳

次のタスクでは、few-shotとfine-tuningのパフォーマンスを翻訳に基づくタスクで比較します。BLUEベンチマーク(Bilingual Evaluation Understudy)とも呼ばれるBLEUは、0から1のスコアを計算し、より高いスコアがより良い翻訳品質を示します。BLEUの主なアイデアは、生成された翻訳を1つまたは複数の参照翻訳と比較し、生成された翻訳が参照翻訳と類似したn-gramを含んでいるかどうかを測定することです。比較に使用されるモデルはXLM、MASS、mBARTであり、生成モデルはGPT-3です。

図10の表に示されているように、少数の例を使用したfew-shot promptingは、XLM、MASS、多言語BART、さらには異なる翻訳タスクのSOTAをも上回る性能を発揮します。Few-shot GPT-3は、英語への翻訳時に5 BLEUで以前の非教師付きニューラル機械翻訳の作業を上回り、英語翻訳言語モデルとしての強さを反映しています。ただし、英語からルーマニア語など、特定の翻訳タスクではモデルの性能が低かったことに留意することが重要です。

質問応答

最後のタスクでは、few-shotとfine-tuningのパフォーマンスを質問応答タスクで比較します。タスク名は自明です。質問応答タスクの3つの主要なベンチマークであるPI QA(手続き情報の質問応答)、Trivia QA(事実の知識と質問に答える)、CoQA(対話型質問応答)を見ていきます。比較は、fine-tunedモデルのSOTAと行われ、生成モデルはGPT-3を使用しています。以下の図(図11、図12、図13)のグラフに示されているように、少数の例を使用したfew-shot promptingは、PIQAとTrivia QAのfine-tuned SOTAを上回る性能を発揮します。モデルはCoQAのfine-tuned SOTAを逃しましたが、かなり類似した精度を持っています。

Promptingの制限事項

上記のセクションで示されている多くの例と事例は、few-shotがいくつかの言語ベースの機械学習タスクで優れた解決策になることを明確に示しています。ほとんどの場合、few-shotの技術は、fine-tuned言語モデルよりも優れたまたは近い結果を達成しました。ただし、特定のニッチなユースケースでは、ドメイン固有のプリトレーニングがfine-tuning [出典] よりも優れたパフォーマンスを発揮することが重要であり、その結果、prompting技術も同様です。この制限事項は、promptの設計レベルでは解決できず、一般化されたLLMの開発において大きな進展が必要です。

もう一つの基本的な制限事項は、生成モデルからの幻覚です。一般的なLLMは幻覚に陥る傾向があり、創造的な文章に重点を置いています。これが、ドメイン固有のLLMがより正確で、その分野固有のベンチマークでより優れたパフォーマンスを発揮するもう一つの理由です。

最後に、Chat GPTやGPT-4などの一般的なLLMを使用する場合、独自のモデルインスタンスを構築できるfine-tunedまたはドメイン固有のモデルに比べて、プライバシーのリスクが高くなります。これは、特許や機密性の高いユーザーデータに依存するユースケースにとって特に懸念される問題です。

結論

プロンプト技術は、LLM(Language Model)と実践的な言語ベースの機械学習タスクの橋渡しとなっています。先行のラベル付きデータを必要としないゼロショットは、これらのモデルが一般化し、新しい問題に適応する潜在能力を示しています。しかし、ファインチューニングと比較して類似またはそれ以上のパフォーマンスを達成することはできません。多数の例とベンチマークのパフォーマンス比較により、フューショットプロンプティングが多様なタスクにおいてファインチューニングに対する魅力的な代替手段を提供していることが示されています。プロンプト内のいくつかのラベル付きの例を提示することで、これらの技術はモデルが少ないラベル付きデータで新しいクラスに適応することを可能にし、迅速に行うことができます。また、上記のセクションに示されているパフォーマンスデータは、既存のソリューションをジェネレーティブLLMとフューショットプロンプティングを使用するように移行することが価値のある投資であることを示唆しています。本記事で紹介されているアプローチを用いて実験を行うことにより、プロンプト技術を使用した目標の達成の可能性を向上させることができます。

重要なポイント

  1. プロンプト技術は実用的な使用を可能にする:プロンプト技術は、ジェネレーティブLLMと実践的な言語ベースの機械学習タスクの間の強力な橋渡しです。ゼロショットプロンプティングは、ラベル付きデータなしでモデルが一般化することを可能にし、フューショットプロンプティングはいくつかの例を利用してモデルを迅速に適応させます。これらの技術は展開を簡素化し、効果的な利用のための道筋を提供します。
  2. フューショットはゼロショットよりも優れたパフォーマンスを発揮:フューショットは、ラベル付きの例を通じてLLMに的確なガイダンスを提供することで、より良いパフォーマンスを発揮します。事前に学習された知識を利用しながら、最小限のタスク固有の例からメリットを得ることで、与えられたタスクに対してより正確かつ関連性のある応答を実現します。
  3. フューショットプロンプティングはファインチューニングと競合する:フューショットはファインチューニングの有望な代替手段です。フューショットは、ラベル付きの例をプロンプト内に提供することで、分類、言語理解、翻訳、質問応答のタスクにおいて同等またはそれ以上のパフォーマンスを達成します。特にラベル付きデータが不足しているシナリオで優れた結果を示します。
  4. 制約と考慮事項:ジェネレーティブLLMとプロンプト技術にはいくつかの利点がありますが、特化したタスクにはドメイン固有の事前学習が依然として重要です。また、一般化されたLLMに関連するプライバシーのリスクは、機密データを慎重に扱う必要性を強調しています。

よくある質問

参考文献

  • Tom B. Brown 他、Language models are few-shot learners, In Proceedings of the 34th International Conference on Neural Information Processing Systems (NIPS’20), 2020.
  • https://www.kaggle.com/datasets/crowdflower/twitter-airline-sentiment
  • https://www.kaggle.com/code/sdfsghdhdgresa/sentiment-analysis-using-bert-distillation
  • https://github.com/Deepanjank/OpenAI/blob/main/open_ai_sentiment_few_shot.py
  • https://www.analyticsvidhya.com/blog/2023/08/domain-specific-llms/

本記事に表示されているメディアはAnalytics Vidhyaの所有ではなく、著者の裁量により使用されています。

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

AIテクノロジー

マーケティングキャンペーンを改善する革新的なテクノロジートレンド

最新のマーケティング技術のトレンドを学び、それらがより良い結果をもたらす方法を学びましょうマーケティングキャンペーン...

AIテクノロジー

「AIとビジネス戦略:ポリッシングロボットを活用した競争上の優位性の確保」

画像の出典:Pexels AIとロボティクスの急速な進歩により、磨きロボットが急増していますこれらの機械は、最新のテクノロジー...

AIテクノロジー

「AIが医療におけるケースの結果を向上させるのに役立っている方法」

人工知能(AI)は、多くの産業において変革の力として現れており、医療業界も例外ではありません機械学習とデータ分析の進歩...

データサイエンス

Spotifyで学んだ初心者データサイエンティストのための5つの重要なレッスン(パート2)

この記事は「データサイエンティストの新入生クロニクル」シリーズの第2部ですまずは第1部をチェックしてください!これによ...

AIテクノロジー

「金融業界におけるAIの進出:自動取引からパーソナライズドバンキングへ」

財界は、人工知能(AI)の出現と統合によって、革命的な変化を目撃していますこの技術は、単なる付加要素ではなく、金融サー...

AIテクノロジー

AIの台頭が犬食い犬のテック産業を牽引している

「テクノロジー業界が根本的な変革を遂げていることについては、私と同意していただけると思いますあなたもそれを見ることが...