検証系ブログです

なんちゃら blog

検証系ブログです

ChatGPTでプロンプトエンジニアリングを深堀りする「海外の一流AI研究者が教えるプロンプト」

ChatGPTでプロンプトエンジニアリングを深堀りする


先日、YOUTUBEの「にゃんたのAI実践チャンネル」さんによる「海外の一流AI研究者が教えるプロンプトエンジニアリングをまとめてみた ChatGPT Prompt Engineering for Developers」という動画で、プロンプトエンジニアリングの概念について詳しく説明されていて、大変興味深かったため、今回ご紹介を兼ねて記事にさせていただこうかと思います。

この動画は、一流のAI研究者による講義をまとめたもので、ChatGPTを効果的に使って目的のアウトプットを得る方法について、貴重な知見を得ることができます。

ここでは、ビデオで語られた重要なポイントを包括的に紹介します。

 

プロンプトエンジニアリングとは?

プロンプトエンジニアリングとは、ChatGPTのような言語モデルの入力または「プロンプト」を、望ましい出力を提供するように設計するプロセスのことを指します。

OpenAIの元社員によるスタートアップ、Anthropicがプロンプトエンジニアの給与を4000万円以上に設定するなど、このスキルの需要は増加傾向にあります。

 

ChatGPTを使う上での大原則


動画では、ChatGPTを効果的に使用するための2つの主要な原則について説明しています。

 

明確で具体的な指示

明確で具体的な指示を与えることで、モデルはより良いパフォーマンスを発揮します。これは、デリミタを使って指示と内容を分離することで実現できます。

例えば、ある文章を要約したい場合、単に「次の文章を要約してください」と入力し、その後に文章を入力するのではなく、トリプルバッククオートやコロンなどのデリミタを使用して、指示と文章を分離することをお勧めします。

 

例 "次の文章を要約してください"

 

これにより、回答の質が向上するだけでなく、悪意のあるユーザーが言語モデルに有害なことを言わせる「プロンプト・インジェクション」を防ぐこともできます。

 

「プロンプト・インジェクション」とは?

プロンプト・インジェクションとは、言語モデルにおいて、ユーザーが意図的に入力や「プロンプト」を操作して、モデルに不適切なコンテンツや有害なコンテンツを生成させる潜在的な問題です。

例えば、ユーザーが質問をし、ChatGPTのような言語モデルがその回答を提供するサービスを考えてみましょう。

悪意のあるユーザーは、モデルの回答に有害または不適切なコンテンツが含まれるように質問を作成することができます。

これはプロンプトインジェクションとして知られています。

 

動画の中では、指示とコンテンツの間に明確な区切り文字を使用することで、プロンプト・インジェクションを防ぐことができることを説明しています。

指示とコンテンツを明確に分けることで、ユーザーがモデルを操作して有害なコンテンツを生成させることが難しくなります。

 

モデルに考える時間を与える

 

モデルは、タスクを一度に解決するのではなく、段階的に解決することで、より正確な答えを提供することができます。例えば、ある文章を英語から日本語に翻訳し、それを要約する場合、まず翻訳し、次に要約するという2つのステップで行うのがよいでしょう。このような段階的なアプローチは、テキストから特定の情報を抽出するような他のタスクにも適用できます。

 

構造化された出力


ビデオで説明されたもう一つの重要な点は、構造化された出力の要件です。

言語モデルの出力形式を指定することで、結果をより使いやすいものにすることができます。

例えば、3冊の本のタイトル、著者、ジャンルを検討するようモデルに依頼する場合、出力形式をJSONに指定することができます。

これにより、さまざまなプログラミング言語で出力を扱いやすくなり、分析のためのデータ集計が容易になります。

 

モデルに考えさせる


動画では、一度モデルに答えを出させることの重要性も強調されています。ある答えが正しいか間違っているかの評価を直接モデルに求めるのではなく、まずモデルに質問に対する答えを生成させ、その生成された答えと評価したい答えを比較することが推奨されています。このアプローチは、タスクを段階的に分解することで、より正確な結果を導くことができます。

 

プロンプトエンジニアリングの未来

プロンプトエンジニアリングは、AIモデルの性能向上に伴って陳腐化する可能性があるとしばしば議論されますが、動画は、将来もプロンプトエンジニアリングの必要性があることを示唆しています。

ビデオの説明によると、モデルに段階的に考えさせるという問題は、性能の向上で解決するかもしれませんが、明確で具体的な指示を与えるという問題は依然として残っています。

そのため、プロンプトエンジニアリング、特にサービスに組み込むためのプロンプトテンプレートの設計という点では、今後も関連性があると思われます。

 

このビデオでは、プロンプトエンジニアリングに関する豊富な情報を提供しており、この分野に興味のある方には最適な資料となっています。

プロンプトエンジニアリングについてもっと知りたい方は、こちらの動画で全編をご覧ください。