お問い合わせ
  • AI

2023年10月13日

2024年10月04日

生成AIを効果的に活用する「プロンプトエンジニアリング」最前線

皆さん、はじめまして。JBCCでAIサービスを担当しているイノベースの山﨑です。
これまでの記事ではイノベースの取り組みやサービスに関する紹介をしてきましたが、今回は少し技術的な内容を共有できればと思います。
この記事ではChatGPTなどのテキスト生成AIを効果的に活用するために欠かせないプロンプトエンジニアリングについて紹介します。一般的に推奨されている内容だけではなく、比較的新しい論文で提案されている一歩踏み込んだテクニックを紹介します。

生成AIを効果的に活用する「プロンプトエンジニアリング」最前線

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

プロンプトエンジニアリングを簡単に表すと、「ChatGPTなどの生成AIが特定の目的を達成できるように指示を工夫すること」です。
一般的によく言われている内容としては「目的を明確にする」や「出力の要件を詳しく指定する」などがあると思います。プロンプトエンジニアリングに力を入れている方は「Prompt Engineering Guide[1]」やMicrosoft社が公開している「プロンプト エンジニアリングの手法[2]」、OpenAI関係者のブログ記事などで学ばれていると思います。この記事ではそれらの内容を前提としつつ、プロンプトエンジニアリングに関する比較的新しい提案を行っている研究内容を共有します。

プロンプトエンジニアリングの最新テクニック

プロンプトエンジニアリングに関する論文は、プロンプトエンジニアリング全般に通用する汎用的な提案から感情分析などの特定のタスクに特化した提案まで様々あります。今回は汎用的なテクニックを2つ紹介します。

1つ目に紹介するのはSkills-in-Contex(SKiC)プロンプティングです。
この手法は「SKILLS-IN-CONTEXT PROMPTING: UNLOCKING COMPOSITIONALITY IN LARGE LANGUAGE MODELS[3]」というテンセントAIラボが発表した論文で提案されています。SKiCは問題を解くために必要なスキルと、そのスキルを用いた模範解答でプロンプトが構成されています。質問と回答の例示をプロンプトに埋め込むChain-of-Thought (CoT)プロンプティングの拡張と捉えてもよいかもしれません。

図1. 論文中で示されている、文字列操作を対象としたSKiCプロンプトの例
図1. 論文中で示されている、文字列操作を対象としたSKiCプロンプトの例

SKiCプロンプトを作成する2つのアプローチが提案されています。
1つ目のアプローチは人手でスキルと例題を作成する方法です。
2つ目のアプローチはChatGPTなどを用いて作成する方法です。このアプローチではChatGPTなどでスキルの抽出を行わせ、その結果を人間が調整しながら例題を作成し、SKiCプロンプトを作成します。

図2. SKiCプロンプトを作成するための2つのアプローチ
図2. SKiCプロンプトを作成するための2つのアプローチ

論文によるとSKiC プロンプトを用いることで、ChatGPTなどが苦手とする計算問題の正解率が改善した他、質問応答や推論に対しても有効であることが示されています。

2つ目に紹介するのはEchoPromptです。この手法は「EchoPrompt: Instructing the Model to Rephrase Queries for Improved In-context Learning」というカリフォルニア大学アーバイン校が発表した論文で提案されている手法です。EchoPromptは非常にシンプルで、ChatGPTなどが問いに対する回答を作成する前に問いを言い換えるようにプロンプトに指示を盛り込みます。

図3.EchoPromptの例
図3.EchoPromptの例

このテクニックは人間の思考方法に触発されて考え出された手法で、問いを言い換えさせることによって問いの理解度を向上させ、その結果、ChatGPTなどの回答が改善するというものです。単体で用いても良いのですが、CoTなどの既存のテクニックと組み合わせても効果を発揮するそうです。既存のテクニックとEchoPromptを組み合わせることによって、推論や読解などのタスクで有効であることが示されています。

まとめ

今回はプロンプトエンジニアリングの最前線ということで、比較的新しく、かつ、汎用的なテクニックを2つ紹介しました。最近ブームが落ち着きつつある生成AIですが、新しいサービスが登場したり、機能が拡張されたりとまだまだ発展している最中ですので今後も動向を追っていきたいと思います。

執筆者

イノベース JBCC株式会社 山﨑 拓己

山﨑 拓己

JBCC株式会社 サービス事業 SI事業部 イノベース システムエンジニア(SE)

食品製造業や塾業界のシステム構築において、複数のプロジェクトに開発者として参画。
その後、AIを活用した製造業向けの検品システムの構築に従事し、AIエンジニアとして活躍中。新規事業「イノベース」立ち上げメンバー。

企業のIT活用をトータルサービスで全国各地よりサポートします。

JBCC株式会社は、クラウド・セキュリティ・超高速開発を中心に、システムの設計から構築・運用までを一貫して手掛けるITサービス企業です。DXを最速で実現させ、変革を支援するために、技術と熱い想いで、お客様と共に挑みます。