プロンプトエンジニアリング:LLMとの対話方法を学ぶ

Built for Speed: ~10ms Latency, Even Under Load
Blazingly fast way to build, track and deploy your models!
- Handles 350+ RPS on just 1 vCPU — no tuning needed
- Production-ready with full enterprise support
ChatGPT / OpenAIやその他の大規模言語モデル(LLM)の登場は、世界に革命をもたらし、過去10年間で最も重要な技術的進歩の一つです。AIの助けを借りて、かつては退屈で時間のかかる多くの日常業務を自動化できるようになりました。しかし、このテクノロジーの可能性を最大限に活用するには、その効果的な使用方法を理解することが不可欠です。
AIが登場する以前は、機械に指示を与える唯一の手段はプログラミング言語でした。しかし、大規模言語モデル(LLM)の出現により、平易でシンプルな英語を使って多くのことを達成できるようになりました。この記事は、私がこの刺激的な分野について学ぶ中で、様々な情報源からまとめました。このブログが、皆さんが理解するのにかかる時間を短縮するのに役立つことを願っています。 プロンプトエンジニアリング。
例えば、次のように入力したとします。 OpenAI Playground:
965*590はいくつですか?
答えは毎回異なり、少し間違っています。しかし、指示を次のように変更し、温度を0に設定すると、正しい答えが得られる可能性が高くなります。
965*590はいくつですか?答えが完全に正しいことを確認してください。
AIに望むことをさせるためにプロンプトを修正するこの技術は、 プロンプトエンジニアリングです。 OpenAIから答えを得るだけでなく、私たちに代わってアクションを実行させることも可能です。そのため、現実世界で多くの行動を自動化する可能性が開かれます。
AIに作業をさせるいくつかの方法を以下に示します。
モデルに何をさせたいかを示す例を提供する(Few-shotプロンプティング)
例を挙げてモデルに明確な指示を与えます。提供する例の数に基づいて、0ショットプロンプティング、1ショットプロンプティング、またはFew-shotプロンプティングと呼ばれます。例の数が多いほど、モデルの出力は向上します。また、Few-shotプロンプティングを使用して、モデルに出力をどのような形式で返すかを指示することもできます。
0ショットプロンプティング
2+2=
1ショットプロンプティング
2+2=4
3+3=
フューショットプロンプティング
2+3=5
10+30=40
3+1=4
1+11=
フューショットプロンプトを使ってツイートをポジティブかネガティブかに分類する例です。
Twitterは、ユーザーが「ツイート」と呼ばれる短いメッセージを投稿できるソーシャルメディアプラットフォームです。ツイートはポジティブなものもネガティブなものもあり、それらをポジティブまたはネガティブに分類できるようにしたいと考えています。ポジティブなツイートとネガティブなツイートの例をいくつか示します。最後のツイートを正しく分類してください。
Q: ツイート: 「なんて素晴らしい日だ!」 このツイートはポジティブですか、それともネガティブですか?
A: ポジティブ
Q: ツイート: 「この授業は嫌いだ」 このツイートはポジティブですか、それともネガティブですか?
A: ネガティブ
Q: ツイート: 「ジーンズのポケットが大好き」
A:
例の中でモデルにあなたの推論を説明してください(思考の連鎖プロンプティング)
以下のプロンプトを提供するとします。
プロンプト:
職場へ行くより速い方法はどれですか?
選択肢1:1000分のバスに乗り、その後30分の電車に乗り、最後に10分の自転車に乗る。
選択肢2:800分のバスに乗り、その後1時間の電車に乗り、最後に30分の自転車に乗る。
出力:
選択肢1の方が通勤に速い方法です。
ご覧の通り、出力は明らかに間違っています。しかし、AIに論理を説明すれば、実際に正しい答えを導き出すことができます。
家に帰るにはどちらが速い方法ですか?
選択肢1:10分のバスに乗り、その後40分のバスに乗り、最後に10分の電車に乗る。
選択肢2:90分の電車に乗り、その後45分の自転車に乗り、最後に10分のバスに乗る。
選択肢1は10+40+10 = 60分かかります。
選択肢2は90+45+10=145分かかります。
選択肢1は60分、選択肢2は145分かかるため、選択肢1の方が速いです。
通勤するにはどちらが速い方法ですか?
選択肢1:1000分のバスに乗り、その後30分の電車に乗り、最後に10分の自転車に乗る。
選択肢2:800分のバスに乗り、その後1時間の電車に乗り、最後に30分の自転車に乗る。
出力:
選択肢1は1000+30+10 = 1040分かかります。選択肢2は800+60+30 = 890分かかります。選択肢1は1040分、選択肢2は890分かかるため、選択肢2の方が速いです。
ChatGPTに独自のナレッジベースを提供する
ChatGPTに独自のナレッジベースに関する情報を提供することで、その知識に関する質問に答えられるようになります。これは、独自のデータに基づいてチャットボットを構築する予定がある場合に特に役立ちます。 情報はコンテキストで渡すことができます。ただし、GPT-3のようなLLMには、プロンプトの最大サイズが約4kという制限があります。 トークン、そのため、コンテキストでChatGPTに直接多くの情報を与えることはできません。
これに対する解決策として、まずナレッジベース内のドキュメントをインデックス化することが考えられます。。次に、プロンプトに応じて、まずインデックスから関連ドキュメントを取得し、検索で取得した情報の一部に基づいてChatGPTが質問に回答できるようにします。これは基本的に、セマンティック検索を使用し、関連情報をコンテキストとしてモデルにプロンプトを出すというものです。多くのライブラリがこれを可能にします。例えば、 Haystack や Langchainなどが挙げられます。これらはしばしば 最高のプロンプトエンジニアリングツール として、検索ベースのLLMワークフローで利用されています。
LLMにツールを統合してアクションを実行させる(ReAct)
複数のツールをLLMに提供してアクションを実行させ、LLMにこれらのツールと適切に連携させて目的を達成させる方法を決定させることができます。
これはReason and Actパラダイム(ReAct)と呼ばれ、MRKLシステム(Modular Reasoning, Knowledge and Language、「ミラクル」と発音)のより高度なバージョンと言えます。
まず、MRKLを例を挙げて説明しましょう。Google Calculatorを呼び出して計算を実行するAPIがあるとします。Googleは数学的に正しい表現には回答できますが、自然言語でのクエリには回答できないことがわかっています。したがって、プロンプトが以下のように示されている場合:
20かける5の6乗は?
LLMに、Google Calculatorが理解できる形式で式を出力するように指示できます。この場合のプロンプトは次のようになります。
以下の数学の問題を、Google Calculatorが理解できる形式に翻訳してください。
20かける5の6乗
同様に、LLMを使用して、自然言語で記述されたアクションを、既存のAPIが理解できる表現に変換できます。ChatGPTでは、プラグインシステムを通じて、サードパーティAPIの統合やチャットインターフェースからの操作が簡単になりました。これについては こちらで詳細をご覧いただけます。
究極の体験の例
- 「ペパロニピザを作るための材料を注文して。」ChatGPTは必要な材料を自動的に特定し、オンライン食料品店に注文することができます。
- 「午後8時にカレンダーにイベントを追加して。」このプロンプトは、カレンダーアプリケーションへのCURLリクエストに変換され、プラグインまたは手動で実行することで、カレンダーアプリに実際のイベントを作成できます。
- 「このCSVファイルで動作し、モデルの予測価格を出力するモデルをトレーニングする必要がある。」このプロンプトは、MLモデルのトレーニングコードを自動的に生成し、それをコーディング環境にコピー&ペーストするか、適切なプラグインを使用することで、実際にモデルをトレーニングするために実行できます。
参考文献:
- https://learnprompting.org/docs (プロンプトエンジニアリングについて深く掘り下げたい場合に最適なリソースです。)記事内のすべての例はここから引用されています。
- https://til.simonwillison.net/llms/python-react-pattern
お話ししましょう
LLMプロジェクトからのリターンを最大化し、AIを適切に活用してビジネスを強化したいとお考えでしたら、ぜひお話しし、意見交換をさせていただければ幸いです。
コーヒーでも飲みながらお話ししませんか
TrueFoundryが5分でLLMをデプロイする方法をご覧ください:
TrueFoundry AI Gateway delivers ~3–4 ms latency, handles 350+ RPS on 1 vCPU, scales horizontally with ease, and is production-ready, while LiteLLM suffers from high latency, struggles beyond moderate RPS, lacks built-in scaling, and is best for light or prototype workloads.
The fastest way to build, govern and scale your AI
















.webp)



.png)








.webp)
.webp)








