0 / 0
資料の 英語版 に戻る
再利用可能なプロンプトの作成
最終更新: 2024年9月11日
再利用可能なプロンプトの作成

モデルに効果的なプロンプトを見つけるプロンプト・エンジニアリングには、時間と労力がかかる。 再利用したり、他の人と共有したりできるプロンプトを作ることで、あなたの仕事の利点を伸ばそう。

プロンプトに柔軟性を持たせる素晴らしい方法は、プロンプト変数を追加することである。 プロンプト変数とは、作成時にプロンプトの静的テキストに含め、実行時に動的にテキストに置き換えるプレースホルダーキーワードのことである。

注意: チャットモードではプロンプト変数を定義することはできません。

変数を使用してプロンプト・テキストを動的に変更する

ファウンデーションモデルの入力変数は、プロンプトをより簡単に再利用できるように一般化するのに役立つ。

例えば、生成タスクのプロンプトには次のような静的テキストが含まれるかもしれない:

Write a story about a dog.

というテキストを{animal}という変数で置き換えると、プロンプトに動的コンテンツのサポートが追加される。

Write a story about a {animal}.

{animal}という変数があれば、テキストはまだ犬の話をモデルに促すのに使える。 しかし今では、{animal}変数に指定された値を入れ替えるだけで、猫やネズミ、あるいは別の動物についての話を求めるために再利用することができる。

プロンプト変数の作成

プロンプト変数を作成するには、以下の手順を実行する:

  1. プロンプトラボから、プロンプトのテキストを見直し、変数に変換するとプロンプトを再利用しやすくなる単語やフレーズを探します。

  2. ページの最初にあるプロンプト変数アイコンparameter.svgをクリックします。

    プロンプト変数パネルが表示され、変数名と値のペアを追加できます。

    注意: プロンプト変数パネルはチャットモードでは使用できません。

  3. 新しい変数」をクリックします。

  4. クリックして変数名を追加し、タブで次のフィールドに移動し、デフォルト値を追加する。

    変数名には英数字やアンダースコア_を含めることができますが、数字で始めることはできません。

    変数のデフォルト値はフォールバック値であり、誰かが変数に新しい値を指定して デフォルト値を上書きしない限り、プロンプトが送信されるたびに使用される。

  5. 前のステップを繰り返して、さらに変数を追加する。

    次の表は、追加したい変数のタイプの例をいくつか示したものです。

    表 1. 変数名と値のペアの例
    変数名 デフォルト値
    国別 アイルランド
    都市 ボストン
    プロジェクト プロジェクトX
    会社 IBM
  6. プロンプトの静的テキストを変数に置き換える。

    置換したいプロンプトの語句を選択し、テキストボックス内のプロンプト変数アイコンparameter.svgをクリックすると、使用可能な変数のリストが表示されます。 リストから使用したい変数をクリックする。

    変数は選択されたテキストを置き換える。 {variable name}という構文でフォーマットされ、変数名は中括弧で囲まれる。

    静的テキストに中括弧でフォーマットされた変数がすでに含まれている場合、同じ名前のプロンプト変数が存在しない限り、それらは無視される。

    テキストアイコン完全なプロンプト・テキストを表示をクリックすると、変数を値に置き換えた完全なプロンプトテキストを見ることができる。

  7. 実行時に変数の値を指定するには、Prompt variablesパネルを開き、Previewをクリックして、変数の値を追加します。

    プロンプト変数パネルの編集ビューから変数値を変更することもできますが、指定した値が新しいデフォルト値になります。

モデルから必要な結果を生成するプロンプト静的テキスト、プロンプト変数、プロンプトエンジニアリングパラメータのセットが見つかったら、プロンプトをプロンプトテンプレートアセットとして保存します。 プロンプト テンプレート アセットを保存すると、プロンプトを再利用したり、現在のプロジェクトで共同作業者と共有したりできます。 詳細については、プロンプトの保存を参照してください。

プロンプトの再利用例

以下の例は、プロンプト変数を使用してプロンプトに多様性を持たせる方法を説明するのに役立つ。

お礼状の例

Thank you note generation 組み込みサンプル プロンプトの静的テキストを変数に置き換えて、プロンプトを再利用可能にします。

内蔵プロンプトに汎用性を追加するには、以下の手順を実行する:

  1. プロンプトラボから、サンプルプロンプトをクリックすると、組み込みのサンプルプロンプトが一覧表示されます。 世代セクションから、感謝状世代をクリックします。

    内蔵サンプルプロンプトの入力がプロンプトエディタに追加され、flan-ul2-20b モデルが選択される。

    Write a thank you note for attending a workshop.
    
    Attendees: interns
    Topic: codefest, AI
    Tone: energetic
    
  2. 文章を見直し、変数の候補となる単語やフレーズを探す。

    この例では、以下の単語を置き換えると、プロンプトの意味が変わる:

    • ワークショップ
    • インターン
    • コードフェスト
    • AI
    • 精力的
  3. プロンプト変数アイコンparameter.svgをクリックし、リストの各単語を表す変数を作成します。 現在の値を変数のデフォルト値として追加する。

    表 2. お礼状サンプルの変数
    変数名
    イベント ワークショップ
    出席者 インターン
    topic1 コードフェスト
    topic2 AI
    トーン 精力的
  4. プレビューをクリックして、追加した変数を確認します。

  5. 静的プロンプトテキストを更新し、単語の代わりに変数を使用する。

    Write a thank you note for attending a {event}.
    
    Attendees: {attendees}
    Topic: {topic1}, {topic2}
    Tone: {tone}
    

    プロンプト・エディターの静的テキストが変数に置き換えられていることを示すスクリーンショット。

    プロンプトの本来の意味は維持される。

  6. では、変数の値を変えてプロンプトの意味を変えてみよう。

    プロンプト変数パネルのプロンプト変数の記入ビューから、変数に値を追加する。

    表 3. 変数の新しい値
    変数名
    イベント 人事プレゼンテーション
    出席者 妊産婦
    topic1 新しい両親のためのリソース
    topic2 育児休暇
    トーン 支持的

    あなたは元のプロンプトを次のプロンプトに効果的に変換した:

    Write a thank you note for attending a human resources presentation.
    
    Attendees: expecting parents
    Topic: resources for new parents, parental leave
    Tone: supportive
    

    Generateをクリックして、モデルの反応を確認する。

  7. 変数の値を入れ替えて同じプロンプトを再利用し、ユーザビリティ・テスト参加者へのお礼状を作成します。

    表 4. 変数の別の値
    変数名
    イベント ユーザビリティー・テスト
    出席者 ユーザーボランティア
    topic1 新機能のテスト
    topic2 初期フィードバックの共有
    トーン 幸甚

    Generateをクリックして、モデルの反応を確認する。

悪魔の代弁者の例

プロンプト変数を使用して、プロンプト用に考案した効果的な例を再利用する。

モデルが従うべきパターンを確立するために、いくつかの例を追加することで、基礎モデルが予想される方法で答えるように導くことができます。 この種のプロンプトは数発プロンプトと呼ばれる。 プロンプトに適した例を考案するには想像力とテストが必要で、時間がかかることもある。 数発のプロンプトをうまく作成し、それが効果的であることが証明された場合、プロンプト変数を追加することで再利用可能にすることができる。

もしかしたら、granite-13b-instruct-v1 モデルを使って、検討中の行動や計画から生じるかもしれないリスクや問題を検討したいかもしれません。

例えば、プロンプトには次のような指示と例がある:

You are playing the role of devil's advocate. Argue against the proposed plans. List 3 detailed, unique, compelling reasons why moving forward with the plan would be a bad choice. Consider all types of risks.

Plan we are considering:
Extend our store hours.
Three problems with this plan are:
1. We'll have to pay more for staffing.
2. Risk of theft increases late at night.
3. Clerks might not want to work later hours.

Plan we are considering:
Open a second location for our business.
Three problems with this plan are:
1. Managing two locations will be more than twice as time-consuming than managed just one.
2. Creating a new location doesn't guarantee twice as many customers.
3. A new location means added real estate, utility, and personnel expenses.

Plan we are considering:
Refreshing our brand image by creating a new logo.
Three problems with this plan are:

プロンプトを再利用するには、次の手順を実行します:

  1. 検討しているアクションを説明するテキストを変数に置き換える。

    例えば、次のような変数を追加することができる:

    表 5. 可能なアクションを表す変数
    変数名 デフォルト値
    プラン 新しいロゴを作成し、ブランドイメージを一新。
  2. 計画を定義する静的テキストを{plan}変数で置き換えます。

    You are playing the role of devil's advocate. Argue against the proposed plans. List 3 detailed, unique, compelling reasons why moving forward with the plan would be a bad choice. Consider all types of risks.
    
    Plan we are considering:
    Extend our store hours.
    Three problems with this plan are:
    1. We'll have to pay more for staffing.
    2. Risk of theft increases late at night.
    3. Clerks might not want to work later hours.
    
    Plan we are considering:
    Open a second location for our business.
    Three problems with this plan are:
    1. Managing two locations will be more than twice as time-consuming than managed just one.
    2. Creating a new location doesn't guarantee twice as many customers.
    3. A new location means added real estate, utility, and personnel expenses.
    
    Plan we are considering:
    {plan}
    Three problems with this plan are:
    
    

    今度は同じプロンプトを使って、モデルに他の行動についてブレインストーミングをさせることができる。

  3. {plan} 変数のテキストを変更して別のプランを記述し、Generate をクリックして新しい入力をモデルに送信します。

親トピック プロンプト・ラボ

生成 AI の検索と回答
これらの回答は、製品資料の内容に基づいて、 watsonx.ai のラージ言語モデルによって生成されます。 詳細