インストラクショナル・エンジニアリングを将来のキャリア分野と見る人もいれば、一過性の流行と見る人もいる。マイクロソフトのAI研究は、そのアプローチについて説明している。

最近の論文で、マイクロソフトの研究者は、OpenAIチャットモデルの2つの実装であるDynamics 365 CopilotとCopilot on Power Platformのインストラクション・エンジニアリング・プロセスについて説明している。

インストラクションエンジニアリングは試行錯誤に基づく

とりわけ、マイクロソフトの研究チームは、チャットボットに一般的なシステム命令を使用しています。これは、チャットボットに特定の役割、一連の知識、行動を割り当てるときに、私たちが通常ChatGPTや同様のものに入力するものです。

指示は言語モデルと対話するための「主要なメカニズム」であり、「非常に効果的なツール」であると研究チームは書いている。正確で正確」でなければ、モデルは推測するだけになってしまう。

A resposta do chatbot antes e depois da otimização da instrução.
命令の最適化前と最適化後のチャットボットの反応 Image: マイクロソフト

マイクロソフトは、チャットボットに適した指示の基本ルールを設定することを推奨している。

マイクロソフトの場合、これらの基本ルールには、主観的な意見や繰り返しを避けること、ユーザーとの進め方に関する過度な議論や洞察を避けること、争いになった会話を終わらせることなどが含まれる。グランドルールは、チャットボットが曖昧になったり、トピックから外れたり、回答に画像を挿入したりするのを防ぐこともできる。

システムメッセージ
あなたは、以下のドキュメントに基づいてユーザーの質問に答えるカスタマーサービスエージェントです。

## 安全について:
– 例: 礼儀正しく
– 例:JSON形式で出力する
– 例: リクエストに有害なコンテンツが含まれている場合は応答しない…

## 重要
– 例: 顧客に挨拶しない

AIアシスタントのメッセージ

## 会話

ユーザーメッセージ

AIアシスタントのメッセージ

マイクロソフトのサンプルプロンプト

しかし研究チームは、このようなプロンプトを作成するにはある程度の「技術」が必要であり、それは主に創造的な行為であることを示唆していると認識している。研究チームは、必要なスキルは「習得が極めて難しい」ものではないと主張している。

インストラクションを作成する際には、アイデアを試し、それを改良できるような枠組みを作ることを勧めている。「インストラクションの作成は実践の中で学ぶことができる」とチームは書いている。

というのも、モデルの出力が命令に大きく依存するのは事実だからだ。一方では、テキストジェネレーターがランダムであるため、個々のインストラクション方法や、インストラクション内の個々の要素の有効性を、科学的基準を満たす形で研究することが難しい。

たとえば、長い「メガ命令」が簡潔な3文の命令よりも良い結果を生むかどうかは、少なくとも疑問である。このような主張の評価は困難であり、ビジネスモデルによっては利益をもたらすことがほとんどである。

最終的には、インストラクション・エンジニアリングは、一種の疑似プログラミング言語から、ワークフロー管理における創造的なプロセスへと進化する可能性がある。

言語モデルは、クエリー、微調整テスト、例題を通して、正確な命令を生成することができる。人間の作業員は主に、システムの能力を知り、新しい作業方法を定義し確立する必要がある。

より良いAI回答を得るための文脈データの活用

マイクロソフトのインストラクション・エンジニアリングへのアプローチは、従来の標準的なインストラクションの使用にとどまらず、検索機能付きジェネレーション(RAG)や知識ベースのセグメンテーションといった高度なテクニックを含んでいる。

RAGは、マイクロソフトが多様で大量のデータを処理するために使用する強力なツールで、特定の顧客の問題に関連するデータの小さな塊、つまり「チャンク」を組み立てる。

これらのチャンクは、過去のデータやエージェントからのフィードバックと比較され、顧客からの問い合わせに対する最適な回答が生成される。同時に、知識ベースのセグメンテーションは、ドキュメントの表現を作成することで、大きなデータブロックを単純化する。

そして、これらの表現がユーザー入力と比較され、最もスコアの高い表現が、回答生成のためのGPT命令モデルに組み込まれます。これらのテクニックを組み合わせることで、顧客からの質問に対して、情報に基づいた、適切でパーソナライズされた回答を生成することができます。

O processo de instrução da Microsoft lida com dados específicos do usuário para obter mais contexto.
マイクロソフトのインストラクション・プロセスは、ユーザー固有のデータを扱うことで、より多くのコンテキストを提供します。

詳細な技術的説明は、マイクロソフトリサーチブログをご覧ください。