見出し画像

Cohere Prompt Tuner の使い方

以下の記事が面白かったので、簡単にまとめました。

Introducing Cohere Prompt Tuner: Prompt Optimization at Your Fingertips


1. Cohere Prompt Tuner

Cohere Prompt Tuner」は、「Cohere Dashboard」で利用できるプロンプト最適化ツールです。「PROmpting」(OPRO) にヒントを得たツールで、カスタマイズ可能な最適化と評価のループを使用して、プロンプトを最適化します。

2. モデル機能の強化

一般的な企業LLMワークフローでは、AIエンジニアはプロンプトのエンジニアリングに約20~30%の時間を費やしています。LLMの確率的性質により、完璧なプロンプトを作成することは、専門家にとっても困難です。プロンプトを改良し、プロンプトが正しく動作し、最近のデータ例や個別のデータ例に関連するバイアスがないことを確認するには、多くの場合、複数回のテストと評価が必要です。

「Prompt Tuner」を使用すると、より堅牢なワークフローを実現できます。このツールは、プロンプトエンジニアリングの手動部分を自動化するだけでなく、従来のプロンプトエンジニアリングでは実現が難しいモデル機能も実現できます。

Cohereの社内評価では、「Prompt Tuner」は 94% のユースケースでプロンプトの最適化に成功しました。また、新しいモデルへの移行や新しいユースケースへの拡張を容易にする上でも有益であることが証明され、プロンプトエンジニアリングに費やす時間をさらに40%増やすことができます。「Prompt Tuner」で最適化すると、開発プロセスが合理化され、全体的な効率が向上します。

下のグラフに示すように、「Prompt Tuner」はトラブルシューティング支援のQ&Aプロンプトを大幅に改善し、1回の実行で10回の反復を経て評価スコアを72%から95%に向上させました。

3. Cohere Prompt Tuner の使い方

「Prompt Tuner」の使用は、体系的かつ反復的なプロセスです。開始するには、次の手順に従います。

(1) 初期プロンプトを設定
最適化する必要のある初期プロンプトを作成し、変数またはドキュメントを含めます。
(2) 成功基準を定義
プロンプトの明確な成功基準を確立します。精度、文字数制限、JSON 出力の制限、根拠など、いくつかの指標から選択します。
(3) 最適化されたプロンプトを取得
モデルが成功基準に基づいて最適化されたプロンプトを生成する様子を確認します。これでプロンプトが使用できるようになりました。

内部的には、成功基準が定義され、ユーザーがプロンプトの最適化の実行を開始した後、「Prompt Tuner」は次の手順を実行します。

(1) 補完の生成
ターゲットモデルは、最初のプロンプトに基づいて、完全にレンダリングされたプロンプトごとに補完を生成します。
(2) 補完を評価
生成された補完を評価サービスに送信し、選択した基準全体で正規化されたスコアを取得します。
(3) Command R+ を有効化
指示生成モデルとして「Command R+」を有効にします。「Command R+」はこのデータを処理して、評価基準に従ってパフォーマンスが向上することが期待される改善されたプロンプトを生成します。
(4) 反復
修正されたプロンプトテンプレートを抽出し、変数を再挿入し、ターゲットモデルを使用して新しい補完を生成します。このサイクルが繰り返され、プロンプトが継続的に改良されます。
(5) 最適化ループの終了
プロンプトが完璧なスコアを達成するか、許可された反復の最大回数に達するまで、最適化プロセスが継続されます。この時点で、システムは最終決定を行い、最もパフォーマンスの高いプロンプトをユーザーに提供します。

下図で実際の手順を確認してください。

4. プロンプトチューニングによる品質向上

要約、顧客サポート、コード生成など、41の企業ユース ケースにわたって 「Prompt Tuner」のテストを実施しました。ユースケースごとに、そのタスクの成功を定義する一連の決定論的かつ定性的な評価基準を定義しました。

Cohere社内評価では、平均11.5%の改善、中央値 7.7% の改善が見られました。特に、自然言語から SQLおよびエンティティ抽出のユースケースで大幅な改善が見られました。SQLプロンプトの場合、平均プロンプトスコアは、初期スコアの39%から最適化スコアの100%に向上しました。エンティティ抽出の場合、平均プロンプトスコアは、初期スコアの73%から最適化スコアの93%に向上しました。

エンティティ抽出の例は、下の表で確認できます。左側に初期プロンプト、右側に最適化プロンプトが表示されています。元のプロンプトには例がありませんでしたが、最適化されたプロンプトでは、要求されたISO形式に従ってテンプレートが入力され、モデルが理解して実際の値に置き換えるためのマークされたプレースホルダーが含まれており、人間にとってのプロンプトの全体的な読みやすさも向上しています。

・最初のプロンプト (日本語訳)

${document}

スキャンされ OCR 処理された公共料金の請求書が渡されます。関連情報を抽出し、次の形式で JSON オブジェクトとして提供してください:

{
    "billDate": "",
    "dueDate": "",
    "billNo": "",
    "serviceAddress": "",
    "accountNo": "",
    "totalAmount": "",
    "previousBalance": "",
    "paymentAmount": "",
    "consumptionCharges": "",
    "otherCharges": "", "currency": "",
    "country": ""
}

抽出された各フィールドには、"key"、"format"、"content" プロパティが必要です。日付 'billDate' と 'dueDate' は、YYYY-MM-DD 形式である必要があります。すべての数値が文字列に変換されていることを確認してください。値が利用できない場合は、"content": "NotAvail" を使用します。"country" は ISO-3166 形式で、"currency" は ISO-4217 形式で提供してください。

・最適化されたプロンプト (日本語訳)

${document}

請求書から、請求日、支払期日、請求書番号、サービス アドレス、アカウント番号、支払いの詳細 (合計金額、前回の残高、支払い金額)、消費料金、その他の料金、通貨、国などのフィールドを抽出します。

上記のフィールドを使用して、応答を JSON オブジェクトとして構造化し、日付が YYYY-MM-DD 形式であること、数値が正確に抽出されていること、通貨が ISO 4217 標準に準拠していること、国が ISO 3166 準拠であることを確認します。

値を抽出できない場合は、コンテンツとして「NotAvail」を使用します。

応答の例:
{
    "billDate": "YYYY-MM-DD",
    "dueDate": "YYYY-MM-DD",
    "billNo": "BILL_NUMBER",
    "serviceAddress": "ADDRESS",
    "payments": [
        {
            "total_amount": "TOTAL_AMOUNT",
            "previous_balance": "PREVIOUS_BALANCE",
            "payment_amount": PAYMENT_AMOUNT
        }
    ],
    "consumption_charges": "CONSUMPTION_CHARGES",
    "other_charges": "OTHER_CHARGES",
    "currency": "ISO_4217_CURRENCY_CODE",
    "country": "ISO_3166_COUNTRY_CODE"
}

5. はじめる

Cohere Prompt Tuner」は、「Cohere Dashboard」でベ​​ータ版として利用できます。プロンプトを最適化する方法の詳細については、 ドキュメントを参照してください。



この記事が気に入ったらサポートをしてみませんか?