GPT-3の真価を引き出す方法 : Promptプログラミング
3つの要点
✔️ GPT-3におけるfew-shotの問題点
✔️ GPT-3は本当は何を学習しているのか?
✔️ GPT-3が学習した機能を本当に引き出す方法を提示
Prompt Programming for Large Language Models: Beyond the Few-Shot Paradigm
written by Laria Reynolds, Kyle McDonell
(Submitted on 15 Feb 2021)
Comments: Accepted to arXiv.
Subjects: Computation and Language (cs.CL); Artificial Intelligence (cs.AI)
code:
はじめに
GPT-3は少数サンプル(Few-shot)のpromptを使う事で、様々な言語タスクに対して最高水準の結果を達成しました。しかし、自己教師学習型言語モデルから特定の学習結果を抽出する際には、fine-tuningや Few-shot形式よりも、promptの方が効果的である可能性があります。
GPT-3の論文タイトル(Language models are few-shot learners)が示すFew-shot形式の有効性に反して、GPT-3は実行時に実際にはタスクを学習していないと考えられます。
Few-shotの主な機能は、メタ学習をしているのではなく、すでに学習されたタスクをモデル内から見つける事なのです。
サンプル無しで、Few-shot形式以上のパフォーマンスを引き出す事が出来るpromptを示す事によって、これを証明します。
Few-shot prompt の精査
GPT-3の精度は、0-shot(自然言語による説明のみ)、1-shot(1つの正解例)、n-shot(n個の正解例)、それぞれのpromptタスクで評価されました。その結果、GPT-3は例が多いほどパフォーマンスが向上する事が判明しました。0-shotの場合は、ほとんどn-shotの半分未満の精度である事が分かりました。
一般的に解釈すれば、GPT-3はサンプルが無いより多い方が優れた精度を出すので、GPT-3はn-shotサンプルを学習している事になります。
しかし、別の解釈も出来ます。GPT-3はFew-shotからタスクを実行する方法を学ぶのではなく、Few-shotはGPT-3に解くべきタスクを指示し、prompt構造に従うように促しているのではないか?
例えば翻訳等、特定のタスクの場合、タスクについて実質的な事を学習するには、少数のサンプルではとても不十分です。
Prompt programming
自己回帰型言語モデルを理解するためにはまず、学習されたコンテキストと、それが近似する関数を考える必要があります。GPT-3は、数百Gバイトの自然言語で自己教師設定で学習します。これは教師なし学習の一形態であり、ground-truthラベルは、元の文章の次のトークンであり、データ自体から導出されます。
したがってGPT-3が近似する関数は、元の文章で次に来るトークンを決定するダイナミクスです。それは、人間が使用する言語の機能そのものであり、手に負えないほど途方もなく複雑です。
言語のダイナミクスには、言葉が実際にどのように使用されるかを予測する必要があります。「言語のダイナミクス」は、文化的、心理的、物理的な文脈から解放されません。それは単に文法や意味論の理論に留まらないからです。このため、言語モデリングは言葉の流れに影響を与える現実のあらゆる可能性をモデリングするのと同じくらい困難です。この意味でGPT-3は明らかにground-truth関数を学習していません。
しかし、文化的な参照や比喩を学習し、複雑な心理的および物理的文脈をモデル化する能力によって証明されるように、注目に値する程度には近似する事を示しました。人間が書いた文章の特定の箇所からどのように続くかを予測する場合、その作家の意図をモデル化し、対象に関する世俗的な知識を組み込む必要があります。Promptを探索する逆問題にも、トーン、含意、連想、ミーム、スタイル、もっともらしさ、曖昧さのような高レベルの精神的な概念を伴い、困難な問題です。
Promptを書き直すと、タスクに対する言語モデルのパフォーマンスが大幅に変わる可能性がありますが、Promptプログラミングを正確に定式化する事は非常に難しい問題です。しかし人間は目の前のダイナミクスに関するヒューリスティックを学びながら過ごしているため、Promptプログラミングで効果的であるという利点があります。
入力と出力が自然言語であるPromptプログラミングは自然言語プログラミングと考えることができます。それは、人間がよく知っているが、名前が付いていない無数の関数を利用します。
"Simple Colon"Prompt形式 太字のテキストは、ソース言語またはターゲット言語のテキストに置き換えられます。
"Master Translator"Prompt形式 source_phraseは、ソース言語またはターゲット言語のテキストに置き換えられます。
GPT-3モデル(Babbage、Curieモデル)のBLEUスコアを比較します。 GPT-3の論文に示されている数値と、提案手法(Simple Colon、Master Translator)の結果を比較します。以下に、効果的なプロンプトを作成するのに役立つ方法を示します。
Direct task specification: constructing the signifier
signifierは、意図する動作の鍵となるパターンです。これは、translate等のタスク名や、「2年生が理解できるようにこの段落を言い換えて、実社会での応用を強調せよ」などの複合的な説明です。
これは言語モデルが既に学んだと考えられる関数を明示的または暗黙的に呼び出す、非常に強力でコンパクトな機能です。例えば、"translate french to english"というフレーズは、可能なすべてのフランス語句から英語へのマッピングのリストに重ねられています。
Task specification by demonstration
Fine-tuningとは異なり、few-shotは全体として処理され、必ずしも並列かつ独立と解釈されるとは限りません。
Task specification by memetic
人間のコミュニケーションで使用されるproxyまたはアナロジーは、性格や特徴的な状況などのミーム的概念が意図の代用として使用され、非常に複雑または微妙な場合があります。
例えば、道徳的質問に対する回答を考える代わりに、マハトマ・ガンジー、アイン・ランド、ユドコフスキーに質問することが出来ます。GPT-3は、物語の文脈の埋め込みに適しているため、物語の自由度を利用して、行動をさらに作ることもできます。効果的なproxyのもう1つの例は、教師と生徒の間の対話です。
Prompt programming as constraining behavior
GPT-3が失敗する理由はこうです。Promptに反応して生成される確率分布は、ある人がPromptを継続する方法の分布ではなく、どんな人でもそのPromptを継続できる方法の分布だからです。文脈的に曖昧なPromptは、一貫性のない方法で継続される可能性があり、色々な人が、尤もらしいコンテキストを想像して継続した可能性があります。例えばこのような例です。
Translate French to English: Mon corps est un transformateur de soi, mais aussi un transformateur pour cette cire de langage.
フランス語から英語への翻訳が期待されるのですが、この入力文に続くフランス語の文章が返ってくる可能性があります。
Serializing reasoning for closed-ended questions
推論が必要なタスクでは、Promptが言語モデルの計算を指示することが重要です。
一部のタスクは単一パスで計算するには難しすぎるかもしれませんが、個別に扱いやすいサブタスクに分割すると解決できると予想するのは合理的です。人間の場合は、メモ用紙で計算をする場合がありますが、GPT-3のような言語モデルでもスクラッチスペースを活用する必要があります。
Metaprompt programming
Promptプログラミングの最大の欠点は、特定のタスクのPromptを設計するのが難しい事、それを行うための自動的な方法がないことです。Metapromptは、「This problem asks us to」などのような短いフレーズで、一見無害なフラグメントです。
これによって問題の意図の説明を求めることにより、問題を解決するための手順の説明を設定します。あるいは、モデルが問題に特有の詳細を入力できる fill-in-the-blank 形式をとることができます。
まとめ
本研究は、Promptプログラミング理論と手法の創出の、今後の研究を呼び起こすものです。自然言語を利用してのプログラミングが出来る、人間とコンピュータの相互作用の新しいパラダイムに入りつつあります。
GPT-3の様に巨大で様々な機能を持った言語モデルの評価手法として、テキストベースのゲームが考えられます。洗練された言語モデルには仮想世界のモデルを記述する能力があるため、問題解決、情報収集、社会的知能(欺瞞を含む)など、世界のモデリングとエージェントの複雑な機能をテストできます。
レシピ
AxrossレシピにGPT-3を用いた実践レシピが公開されています。
この記事に関するカテゴリー