正しい質問をすることの重要性

プロンプトエンジニアリングは、ほとんどの人にとって新しい言葉ですが、その役割と機能はかなり以前から存在していました。プロンプトエンジニアリングは自然言語処理(NLP)の分野で使われる用語で、人間の言葉を理解し生成するように機械に教えることを意味します。私にとっては、望ましい反応を得るために適切な質問をすることです。NLPで「プロンプト」といえば、機械学習モデルが特定の種類の出力を生成するように導くために与えられる一連の指示または合図を指します。プロンプトは質問や穴埋め文のようなもので、モデルが学習データに基づいて完成させるものです。

プロンプトエンジニアリングとは、このプロンプトを希望通りの出力が得られるように作成するプロセスです。これには、使用するモデルの能力と限界、およびモデルがトレーニングされたデータの特性を理解することが必要です。効果的なプロンプトエンジニアリングは、モデルが正確で関連性の高い出力を確実に生成するのに役立つため、NLPモデルのパフォーマンスに大きな違いをもたらす可能性があります。これは、研究者、開発者、データサイエンティストに至るまで、NLPの分野で働くすべての人にとって、重要なスキルです。例を挙げると、尊敬する同僚でTrellixクラウドアーキテクチャ担当副社長のJosh Stellaが述べたシンプルな考え方が参考になります。「LLM には答えがあります。私たちが理解する必要があるのは質問のほうなのです。」

ここで、「良いプロンプト」と「悪いプロンプト」をどのように定義するかを説明します。例えば、ユーザーの入力に基づき映画の推薦文を生成するように訓練されたNLPモデルがあるとします。このモデルは、映画のタイトル、あらすじ、ユーザーの評価からなるデータセットでトレーニングされています。このモデルに適したプロンプトは次のようなものです。「5000万ドル以下の興行収入で、ヘリコプターが登場するシーンがある、子供向けのカルト的な古典的アクション映画を推薦してください」。このプロンプトは、具体的で、目の前のタスクに関連し、モデルが作業するための明確なコンテキストを提供するものです。このプロンプトは、ユーザーのアクション映画への好みに基づいて推薦文を生成するようモデルを促します。この同じモデルの悪いプロンプトは、次のようなものです。「映画について教えてください。」このプロンプトはあまりにも曖昧で、モデルが意味のある応答を生成するのに十分な情報やコンテキストを提供しません。モデルが何に焦点を当てるべきか、どのような出力が期待されるかが明確ではありません。一般的に、良いプロンプトとは、モデルにとって明確で適切な情報を提供するものであり、悪いプロンプトとは、あまりにも曖昧であったり、目の前のタスクとは無関係なものです。次に、プロンプトの例を有効に活用するために、優先NLPモデルとしてChatGPTを使用することにします。


ユースケース #1: AI に 1,000件の統合を分類してもら

プロダクトマネージャーとして、私たちは様々なトピックに囲まれており、頻繁にコンテキストを切り替え、社内チームや外部顧客向けにアウトプットを作成するために最終的な作業を行う必要があるのです。LLM(大規模言語モデル)を頻繁に使用することで、プロンプトエンジニアリングがいかに私たちをスピードアップさせるだけでなく、クリエイティブなコンテンツやイノベーションをより速く顧客に提供できるかを理解することができます。

最近、私はTrellixが5年以上にわたって蓄積してきた1,000件の統合のそれぞれに対して業界カテゴリを配置する任務を与えられました。これら1,000件の統合は、ベンダー名とそのソリューション名を含む列に記入されていたため、カテゴリ列の値は空白のままでした。検索可能なカテゴリがあると、Trellix XDRのお客様は、現在導入されている導入の種類に応じてソリューションを見つけやすくなります。

図 1: ベンダーとソリューションに関するスプレッドシート図1:ベンダーとソリューションに関するスプレッドシート

単純な作業ですが、各ソリューションの製品ページから1つ1つ見ていくのは非常に時間がかかり、手間がかかります。実際、私はこれを1時間ほど手作業でやってみたのですが、15個ほどのソリューションが出たところで、これはLLMの完璧なユースケースだと気づきました。カテゴリマッピングのソリューションに1週​​間丸々かかってしまう可能性のある時間を費やすのではなく、Trellixが求めていた結果を提供できるようにChatGPTをトレーニングしました。

プロンプトエンジニアリングの最初の例として、ChatGPTにカテゴリーを定義させ、カテゴリーの数を制限して、顧客が広範な用語を検索して必要なもののほとんどを取得できるようにしようとしました。

図 2: スプレッドシートからコピー&ペーストしてカテゴリ割り当てに関する最初の応答を行う ChatGPT の質問
図2:スプレッドシートからのコピー&ペーストでカテゴリー割り当ての初期回答を行うChatGPTの質問

出力はあまり期待できないものでした。カテゴリーをリスト化し、それに最も適合するソリューションを配置しました。ここでやめてしまうと、まだスプレッドシートで各ソリューションを探し、手作業で入力しなければならないので、ほとんど達成できなかったでしょう。

図 3: ソリューションを分類するための最初の質問に対する ChatGPT の結果図3: 解決策を分類するための最初の質問に対するChatGPTの結果

そこで、結果を同じスプレッドシートに整列できるようにするため、結果をフォーマットするように ChatGPTをトレーニングしました。

図 4: 結果の出力方法に関する ChatGPT のトレーニング図4:結果の出力方法に関するChatGPTのトレーニング

ChatGPTは、私が求めているフォーマットを理解できるほど賢くなっていました。そのため、新しいベンダーとソリューションのセットで再度プロンプトを出しました。

図 5: 要求された形式でトレーニングされたことを確認する ChatGPT図5:要求されたフォーマットでトレーニングされたことを確認するChatGPT

残念ながらこれでも、結果をスプレッドシートに手入力する必要がありましたので、やはり、適切な質問をすることで、望む回答へと導いてくれます。列のタイトルを元にスプレッドシート形式で作成するよう促しました。

図 6: スプレッドシートの結果を返す方法を求めるプロンプトによる最終出力図6:スプレッドシートの結果を返す方法を求めるプロンプトによる最終出力

…と、こんな感じです!すべてのカテゴリーに意味があるのでしょうか? 全てではないので再確認が必要ですが、空白のセルよりもデータが存在する場合の方が、素早く再検証し再割り当てすることははるかに簡単です。

これで、スプレッドシートにコピーして貼り付け、担当チームに共有できる結果が得られました。XDRのお客様は、ソリューションとカテゴリーに基づいて1,000の統合をフィルタリングし、定義したリストを手に入れることができます。30分のAIトレーニングセッションにより、Trellixは顧客対応の統合リストを出力するための60時間以上の手作業と面倒な作業を省くことができました。

次回のシリーズでは、マーケティングチームがリリース発表を生成するためにユースケース#2をどのように実行しているかをご紹介します。

※本ページの内容は2023年5月22日(US時間)更新の以下のTrellix Storiesの内容です。
原文:The Importance of Asking the Right Question

著者:Rob Cappiello