![見出し画像](https://assets.st-note.com/production/uploads/images/147069485/rectangle_large_type_2_ae0ca1bf99f7458bbdc96f02009f2aca.png?width=1200)
Google DeepMindによる新しいプロンプト・エンジニアリング手法 "Many-Shot In-Context Learning" って凄い!
最近プロンプト・エンジニアリングを調査していて面白いリサーチペーパー"Many-Shot In-Context Learning"(1)を見つけましたので簡単にご紹介したいと思います。Google DeepMindによる本格的なものですが、私たちがプロンプトを書く際にも応用が効く、大変示唆に富む内容になってます。早速みてみましょう。
1.コンテクストをうまく使う
皆さんがChatGTPのような言語モデル・生成AIにプロンプトを書く際は、検索エンジンのように「日本の首都はどこですか?」と自分が欲しい情報を入力することがほとんどかと思います。ただ、生成AIはもっと大きな情報を入力することができます。例えば以下のチャートようにPDFの資料を読みこんで、そのあとで「要約して下さい」とプロンプトと書けば、PDFの内容を要約して出力してくれます。ここでプロンプトとは「生成AIに対する指示」と考えれば良いかと思います。また、追加で入れる情報をコンテクストと呼びます。
![](https://assets.st-note.com/img/1720830740541-tQizCRQ3BQ.png?width=1200)
2.会社で生成AIを使うために必要なこと
大まかな生成AIの使い方がわかったところで、会社やビジネスで生成AIを使う際に何が必要かを考えてみたいと思います。当たり前ですが、皆さん会社を代表してお客様と接しているわけですから、お客様に「個人的な考えや感想」を述べることはないと思います。新商品が出れば「これは個人的には売れないと思います」とは言わないわけです。具体的に言うと、会社には従業員が従うべき決まりが「規程・マニュアル」として定められています。この決まりに反することは通常、従業員はできないことになっています。従って生成AIを会社で使うためには一般的な答えを出力するのではなく、個々の会社の「規程・マニュアル」に則った答えを出力しなくてはなりません。さてその決まりを生成AIにどうやって伝えれば良いでしょうか?一つは上のチャートのように「規程・マニュアル」をそのまま生成AIにプロンプトと一緒に入力してしまう方法があります。最近の生成AIは10万token以上の"context window"を持つものが多くなりました。これは一度に入出力できる情報量を表していて、10万tokenは英語で約7万単語程度とのことです。かなりの分量の「規程・マニュアル」を入れることができますね。中にはGoogleのGemini 1.5 Proのように200万tokenまで入力できるものもあり、これぐらいあれば英文マニュアル3000ページ程度まで大丈夫そうです。すごいですね。ちなみにこのようなcontext windowを"Long context window"と呼ぶことがあります。
3."Many-Shot In-Context Learning"
"Long context window"をさらにうまく使う手法が、今回提示された"Many-Shot In-Context Learning"です。Many-Shotと書いてありますが、似た用語で"Few-Shot"という言葉は皆さん聞いたことがあるかもしれません。"Few-Shot Learning"とはいくつかの「問いと答えのペア」を最初に生成AIに例示して、そのあとで聞きたい問いを出すという手法です。例えば「米国の首都はワシントンです。」や「中国の首都は北京です。」を最初に例示して、それから「日本の首都はどこですか?」という問いを生成AIに出すといった手法です。"Many-Shot In-Context Learning"はこの「問いと答えのペア」の数を10~10000個に増やします。そうすれば精度が上がるとのことです。以下のグラフは機械翻訳と要約タスクにおいて、例示の数を500~1000個に増やすことによって精度が向上することを示しています。2の10乗は1024です。たくさんの例示を"Long context window"は難無く取り込むので、どんどん入れてみましょうという訳ですね。
![](https://assets.st-note.com/img/1720931384696-l0WszuFBOI.png?width=1200)
いかがでしたでしょうか? 例示をたくさん入れるだけで精度が上がるのであれば、挑戦する価値があるかも知れません。「そんなにたくさんの例示を自分で作れない」と言う方のために、"Many-Shot In-Context Learning"では合成データをLLM(言語モデル)で作成する方法も提示してくれています。興味のある方はペーパーをぜひご覧ください。でも10個程度であれば自分でも作れそうですね。私も挑戦して、良い結果が出たらここでアップデートしたいと思います。それでは今日はこのへんで。Stay tuned!
1) "Many-Shot In-Context Learning", Rishabh Agarwal, Avi Singh, Lei M. Zhang, Bernd Bohnet, Luis Rosias, Stephanie Chan, Biao Zhang, Ankesh Anand, Zaheer Abbas, Azade Nova, John D. Co-Reyes, Eric Chu, Feryal Behbahani, Aleksandra Faust, Hugo Larochelle, Google DeepMind, 22 May 2024, https://arxiv.org/abs/2404.11018
Copyright © 2024 Toshifumi Kuga. All right reserved
Notice: ToshiStats Co., Ltd. and I do not accept any responsibility or liability for loss or damage occasioned to any person or property through using materials, instructions, methods, algorithms or ideas contained herein, or acting or refraining from acting as a result of such use. ToshiStats Co., Ltd. and I expressly disclaim all implied warranties, including merchantability or fitness for any particular purpose. There will be no duty on ToshiStats Co., Ltd. and me to correct any errors or defects in the codes and the software.