見出し画像

【LLM】Few-shot推論は言語化の壁を越えられるか

こんにちは。メディア研究開発センターの川畑です。

みなさん ChatGPT 使ってますか?便利ですよね。何か訊いたら大概のことは正確に教えてくれますし、論文等の文書もわかりやすくまとめてくれたりと万能な存在です。

そんな便利な ChatGPT もとい LLM (large language model) ですが、その知識を引き出すためには質問や指示をキチンと言葉にしなければいけません。ちゃんと指示を言葉にする、というのは一見すれば簡単なことですが、何度もチャットしていると面倒さゆえに指示文が適当になったり、そもそも知識の不足ゆえに指示文として言語化するのが難しいシチュエーションもありますよね。たとえばプログラミング初心者の人が ChatGPT を使う状況を想定してみると、〇〇のようなプログラムを書きたいという漠然としたイメージはあっても具体的な処理の詳述まではできないかもしれません。そしていくら高性能な LLM といっても、そもそもの入力指示が曖昧であればそのポテンシャルを発揮できないでしょう。

ただ一方で、指示文として言葉にすることはできなくとも、いくつかの例を示すことはできるかもしれません。たとえば「こんな風な文章を書いて」という指示と共にお手本の文章を羅列したり、「コードにこんな処理を追加して」という指示と共に処理の実行例を持ってきて自分のコードに組み込んでもらったり...。

前置きが長くなりましたが、今回のテックブログではそんな「やってほしいことのイメージはあるけど正確に指示を言葉にすることが難しい」状況で LLM がどれほどの能力を発揮できるのか、という疑問を自由研究的に検証します!


何を行うか

さて、改めて今回行う検証の内容を整理します。
今回確かめたいことは、「曖昧な指示文と、その指示文を実現している例をLLMに入力として与えた時にLLMがどれほどの性能を発揮できるのか、できないのか」ということです。理想的な状況、つまり指示を正確に言語化できる状況との性能差を見ることでこの疑問に答えます。つまり曖昧な指示文 + 例をLLMに与える設定と正確な指示文のみをLLMに与える設定の性能差を比較します。

どうやって行うか

タスク

タスクとしては文章の書き換えタスクを考えます。このタスクでは、モデルに入力として元文章と、その文章をどのように書き換えるか明示した指示文を連結して与え、その指示文に基づいて書き換えられた文章をモデルに出力させます。
入力例を示します。

(書き換え指示文↓)
Rewrite this article as if it were a myth being told by ancient storytellers. (ChatGPTによる翻訳: この記事を、古代の語り部たちによって語られる神話のように書き換えてください。)
(元文章↓)
In the ancient land of Eldoria, a legend spoke of a powerful sword hidden within the Whispering Woods. Many had tried to find it, but none succeeded. One day, a brave warrior named Julia embarked on the quest. As she ventured through the enchanted forest, she encountered mystical creatures and solved riddles. Finally, Julia reached the heart of the woods and discovered the legendary sword, fulfilling the prophecy and becoming a hero in her own right.
(ChatGPTによる翻訳: 古の地エルドリアに、ささやきの森の中に隠された強力な剣についての伝説がありました。多くの者がそれを見つけようとしましたが、誰も成功しませんでした。ある日、ジュリアという名の勇敢な戦士がその探索に乗り出しました。彼女が魔法の森を進んでいくと、神秘的な生き物たちに出会い、謎を解きました。ついにジュリアは森の中心に到達し、伝説の剣を発見しました。預言を成就し、自らも英雄となったのです。)

このデータをたとえばGPT-4oに入力すると、以下のような出力が書き換え後の文章として返ってきます。

In the mythical realm of Eldoria, a tale whispered through the ages spoke of an enchanted blade, said to be hidden in the hushed confines of the Whispering Woods. Many had dared to seek it, yet none had found its secrets. One fateful day, a valiant warrior named Julia embraced the challenge, her heart ablaze with courage and determination.\n\nWith each step through the enchanted forest, she encountered wondrous creatures, their eyes alight with magic, ... (長いので省略)
(ChatGPTによる翻訳: 神話の王国エルドリアにて、時代を超えて囁かれる物語があった。それは、ささやきの森の静寂に隠された魔法の剣の話。多くの者がその探索に挑んだが、誰もその秘密を見出すことはできなかった。ある運命の日、ジュリアという名の勇敢な戦士が、勇気と決意に胸を燃やし、この挑戦を受け入れた。
魔法の森を一歩一歩進むにつれ、彼女は驚くべき生き物たちと遭遇した。その目は魔法の光で輝いていた…)

今回はこの文章書き換えタスクをケーススタディとして、指示が曖昧な状況下でのLLMの性能を評価します。なお、データはつい最近まで開催されていた kaggle の LLM Prompt Recovery というコンペで配布されていたデータを使わせていただきます。元文章データはこちらから、指示文データはこちらから拝借しています。

書き換え文章の評価

自動評価尺度で評価するのはタスクの複雑さゆえに難しい & 今回は簡単に行いたいので GPT-4o に以下のようなプロンプトを与えて10点満点で評価してもらい、その平均をスコアとします。なお、このプロンプトの書き方は MTBench のプロンプトを参考にしました。

[Instruction]
As an expert evaluator, your task is to assess the quality of the rewritten text. Focus on how accurately the rewrite follows the given prompt while maintaining the core information from the original text. Consider the following criteria:

1. Preservation of key information: Are all important details from the original text retained in the rewrite?
2. Appropriate style and tone: Does the rewrite adopt the style or format specified in the rewrite prompt?

Provide a detailed explanation of your evaluation, addressing each of the above criteria. Be objective and specific in your assessment. After your explanation, rate the rewritten text on a scale of 1 to 10, where 1 is poor and 10 is excellent. Use the following format for your rating: \"[[rating]]\", for example: \"Rating: [[5]]\".

[Original Text]
{original_text}
[Rewrite Prompt]
{prompt}
[Rewritten Text]
{rewritten_text}

(ChatGPTによる翻訳:専門の評価者として、あなたの任務は書き換えられたテキストの質を評価することです。与えられたプロンプトにどれだけ正確に従っているか、また元のテキストの核心的な情報を維持しているかに焦点を当てて評価してください。以下の基準を考慮してください:重要な情報の保持:元のテキストからの重要な詳細がすべて書き換えで保持されているか?
適切なスタイルとトーン:書き換えは、書き換えプロンプトで指定されたスタイルやフォーマットを採用しているか?
上記の各基準に対応する詳細な説明を提供してください。客観的かつ具体的に評価してください。説明の後、書き換えられたテキストを1から10の尺度で評価してください。1は劣悪、10は優秀です。評価には以下のフォーマットを使用してください:「[[評価]]」。例:「評価:[[5]]」。)

実験設定

今回は実験設定として以下の二つの状況を比較する設定を考えます。

  1. 指示文が正確な状況 (指示文正確設定)

  2. 指示文は曖昧だがいくつかの例が示せる状況 (指示文曖昧設定)

なお、今回使用するデータセットのサイズは $${N=300}$$とし、$${i ∈ {1, ..., N} }$$とします。

指示文正確設定

モデルに 指示文 $${p_i}$$ と元文章 $${o_i}$$ を与えます。シンプルですね。

指示文曖昧設定

$${p_i}$$ (e.g. "Rewrite this article as if it were a myth being told by ancient storytellers. ") の内容を曖昧にした指示文 $${p'_i}$$ と $${o_i}$$, ユーザーの書き換え意図 ($${p_i}$$) を実現している複数の例 (few-shot samples) をモデルに与えます。
$${p_i}$$ は大まかにまとめれば全て文書の書き換えを指示する文なので、$${p'_i}$$ は全ての $${i}$$ について "Rewrite" という指示文に統一します。
few-shot samples としては $${o_i}$$ 以外の他の文章 $${o_j}$$ と、$${o_j}$$ を指示文 $${p_i}$$ に基づいてGPT-4oで書き換えた文章 $${ r_j }$$ のペアを $${k}$$ ペア (i.e., $${ \{ (o_j, r_j) | j ∈ {1, ..., k}, j ≠ i \} }$$) 与えます。$${k}$$ は 1から10まで動かすことで、few-shot sample の事例数の効果を観察します。

本来であれば few-shot の例を与えるのはユーザーなので $${ r_j }$$ は人手で作成するのが理想なのですが、時間と手間との兼ね合いで (=めんどくさすぎるので) GPT-4oを採用しました。
つまりこの設定は「書き換えてほしいけどどうやって書いてほしいか言葉にできない....書き換えの例はk個出せるんだけど...」という状況を想定しています。もしかすると勘の鋭い読者の方*は 指示文曖昧設定では曖昧な指示 $${p'_i}$$しかわからないはずなのに $${p_i}$$ にアクセスできているじゃないか!と思うかもしれないのですが、$${p_i}$$ は few-shot examples を GPT-4o で作る際に便宜的に使用しているだけでモデルには直接的には与えていないので、この $${p_i}$$ のことはユーザーが例を示すときに頭の中にホワホワとあるイメージの代替物という風にお考えください。

書き換えモデルには Qwen2-7B Instructを用います。Qwen2-7Bのインストラクションチューニング済みモデルです。

結果発表

以下に指示文正確設定 (accurate instruction) と k = 1 ~ 10shot まで変化させた指示文曖昧設定 (ambiguous instruction) の結果を示します。
果たして few-shot samples を多く盛り込むことで本来の指示文と同等の効果は得られるのでしょうか!!

正確な指示文と曖昧な指示文を与えたときの性能比較

残念…!!

few-shot の事例数 (k) を増やすことでスコアも順調に改善されはしましたが、10事例入れても正確な指示文を与えた時のスコアには及びませんでした。これ以上の伸び代もスコアの推移から見るに期待できなさそうです。ただ、k=1では3ポイントの差があったにも関わらずk=10ではあと0.4ポイントというところまで迫っているところを見ると流石の in-context learning 能力の高さといえます。実際の状況で10事例入れられるかというと厳しいものがあるので、kごとのスコアの上がり幅を見るに k=3 くらいがちょうど良いラインなのかもしれません。

終わりに

今回の記事では曖昧な指示下におけるLLMの性能を、文章書き換えタスクを例に取り観察しました。その結果、

  • 指示が極めて曖昧であっても、事例数を増やせば本来の指示に沿うような生成が実現できる

  • 3つ程度の事例数がコストと生成の品質のバランスの観点から望ましい

  • 事例数を増やしても正確な指示文を与えた時の品質には追いつかなさそう

ということがわかりました。ただ、今回は単一の比較的小規模なモデルのみを対象にしているので、さらに大きいサイズのモデルになれば少数の事例からでも正確な指示文レベルの生成ができるかもしれません。
それでは、ここまで読んでいただきありがとうございました。


*この言い回し好き

(メディア研究開発センター・川畑輝)