Skip to content

LLMブループリントの構築

LLMブループリントは、LLMからレスポンスを生成するために必要なものの完全なコンテキストを表し、結果の出力は、その後プレイグラウンド内で比較できます。

LLMブループリントを作成するには、LLMブループリントタブ、または初めてのブループリントの場合はプレイグラウンドのようこそ画面から、該当のアクションを選択します。

作成ボタンをクリックすると、設定およびチャットツールが表示されます。

  要素 説明
1 プレイグラウンドのサマリー プレイグラウンドのオーナーと作成日の概要が表示されます。
2 チャットの履歴 このLLMブループリントに送信されたプロンプトの記録と、新しいチャットを開始するオプションが表示されます。
3 設定パネル LLMブループリントの作成に使用できる設定選択項目にアクセスできます。
4 プロンプトエントリー LLMブループリントとのチャットを開始するプロンプトを受け入れます。エントリーをアクティブにする前に設定を保存する必要があります。

既存のブループリントをコピーしてLLMブループリントを作成することもできます。

LLMを選択

設定パネルでは、LLMブループリントを定義します。 以下の操作を行います。

DataRobotには LLMの選択機能があります。実際に何が利用可能となるかはクラスターとアカウントタイプによって異なります。 または、プレイグラウンドにデプロイされたLLMを追加することもできます。このLLMは、検証されるとユースケースに追加され、関連付けられているすべてのプレイグラウンドで使用できます。

LLMを追加してLLMブループリントの設定を開始するには、LLMを選択をクリックします。 利用可能なLLMのスクロール可能なリストが、左側のパネルに表示されます。

各LLMの特徴の概要については、リファレンスドキュメントを参照してください。 フィルターツールを使うと、条件を満たすLLMのみを表示するようにリストを絞り込むことができます。

  • 複数選択フィルターオプションのいずれかを使用します。

    デプロイ済みのLLMを追加した場合、DataRobotプロバイダーフィルターの項目になります。

  • 使用非推奨のLLMの表示/非表示を切り替えることができます。 使用非推奨のバッジが付いたLLMは、サポート終了が90日以内に予定されていることを示します。 サポート終了日はプロバイダーが定めるものであり、変更される場合があります。

    選択パネルには表示されませんが、その後サポートが終了したLLMを使用して構築されたLLMブループリントには、ブループリントタブサポート終了バッジが表示されます。 利用可能なLLMのページで、使用非推奨およびサポート終了が予定されているLLMのリストをご覧ください。

  • 検索バーに文字列を入力すると、すべてのプロバイダーのすべてのLLMから、その文字列に一致するものが検索されます。

左側のパネルからLLMを選択したら、保存をクリックします。

デプロイ済みLLMの追加

DataRobotにデプロイ済みのカスタムLLMを選択するには、LLMブループリントの作成をクリックして、新しいブループリントをプレイグラウンドに追加します。 次に、プレイグラウンドのブループリントの設定パネルから、LLMを選択および デプロイ済みLLMを追加をクリックします。

デプロイ済みLLMを追加ダイアログボックスで、デプロイ済みLLMの名前を入力し、デプロイ名ドロップダウンでDataRobotのデプロイを選択します。 選択したデプロイがボルトオンのガバナンスAPIに対応している場合、以下の設定を行います。

chat関数を実装したデプロイ済みLLMを追加するする場合、プレイグラウンドは優先通信手段としてボルトオンのガバナンスAPIを使用します。 チャットモデルIDを入力して、プレイグラウンドからデプロイされたLLMへのリクエストにmodelパラメーターを設定し、検証して追加をクリックします。

チャットモデルID

デプロイされたLLMブループリントでボルトオンのガバナンスAPIを使用する場合、modelパラメーターの推奨値については利用可能なLLMを参照してください。 あるいは、予約値datarobot-deployed-llmを指定して、LLMプロバイダーのサービスを呼び出すときに、LLMブループリントが関連するモデルIDを自動的に選択するようにします。

ボルトオンのガバナンスAPIを無効にして、代わりに予測APIを使うには、カスタムモデルからchat関数(またはフック)を削除して、モデルを再デプロイします。

ボルトオンのガバナンスAPIをサポートしていないデプロイ済みLLMを追加する場合、プレイグラウンドは優先通信手段として予測APIを使用します。 ワークショップでカスタムLLMを作成したときに定義したプロンプト列の名前および回答列の名前promptTextおよびresponseTextなど)を指定して、検証して追加をクリックします。

ボルトオンのガバナンスAPIを有効にするには、カスタムモデルのコードを修正して、chat関数(またはフック)を使用するようにし、モデルを再デプロイします。

カスタムLLMを追加し、検証が正常に完了した後、ブループリントの設定パネルにあるLLMドロップダウンでデプロイ済みのLLMをクリックし、追加したカスタムモデルの検証IDを選択します。

最後に、 ベクターデータベースおよび プロンプティングの設定を行い、設定を保存をクリックしてブループリントをプレイグラウンドに追加できます。

設定を行う

ベースLLMを選択すると、次の設定オプションの一部またはすべてが表示されます(アルファベット順)。 利用可能なオプションは、選択したLLMによって異なります。 オプションのデフォルト値は、プロバイダーによって異なる場合があります。

設定 説明
最大出力トークン数 完了時に許可されるトークンの最大数。 この値とプロンプトトークンの合計数は、モデルの最大コンテキストサイズ未満である必要があります。プロンプトトークンの数は、システムプロンプト、ユーザープロンプト、最近のチャット履歴、およびベクターデータベースの引用で構成されます。
最も可能性の高いトークンの数 0から20の範囲の整数で、回答の生成時に考慮する可能性が最も高いトークンの数を指定します。 値0は、すべてのトークンが考慮されることを意味します。 このパラメーターを使用するには、対数確率を返す設定を有効にする必要があります。
ランダムシード 指定した場合、システムは確定的にサンプリングするよう最善の努力をし、シードとパラメーターが同じで繰り返されるリクエストが同じ結果を返すようにします。 確定性は保証されていません。バックエンドの変更を監視するには、system_fingerprintレスポンスパラメーターを参照する必要があります。
推論努力 OpenAI oシリーズのみ(GPT-4o モデルを除く)、推論モデルの推論努力を「低」、「中」、「高」のいずれかのレベルに設定できます。 推論努力のレベルを下げると、回答が速くなり、「費やされる」トークンも少なくなります。
対数確率を返す 有効にすると、返された各出力トークンの対数確率が回答で返されます。 この設定は、最も可能性の高いトークンの数パラメーターを使用するために必要です。
ストップシーケンス モデルによって生成されたときに生成プロセスを停止する、最大4つの文字列。 これは、出力形式を制御したり、不要なテキストが回答に含まれないようにしたりするのに便利です。 トリガーシーケンスは、返されるテキストには表示されません。
Temperature Temperatureは、モデル出力のランダム性を制御します。 値を入力します(範囲はLLM依存)。値が大きいほど出力の多様性が高くなり、値が低いほど確定的な結果が高くなります。 値を0にすると、反復的な結果をもたらす可能性があります。 Temperatureは、出力でのトークン選択を制御するためのTop Pの代替です(以下の例を参照してください)。
トークン頻度ペナルティ コンテキスト内の頻度に基づいてトークンに適用される-2.0から2.0の範囲のペナルティ。 正の値が適用されるとペナルティが大きくなり、トークンの頻繁な使用が抑制されます。負の値が適用されるとペナルティが小さくなり、トークンをより頻繁に使用することが可能になります。
トークン存在ペナルティ コンテキスト内にすでに存在するトークンに適用される-2.0から2.0の範囲のペナルティ。 正の値が適用されるとペナルティが大きくなり、繰り返しが抑制されます。負の値が適用されるとペナルティが小さくなり、より多くの繰り返しが可能になります。
トークン選択確率のカットオフ(Top P) Top Pは、トークン選択での累積確率のカットオフに基づいて、回答に含まれる単語の選択を制御するしきい値を設定します。 たとえば、0.2では、上位20%の確率のかたまりだけが考慮されます。 数値が大きいほど、多様なオプションの出力が返されます。 Top Pは、Temperatureに代わって、出力でのトークン選択を制御します(以下の「TemperatureまたはTop P?」を参照)。
TemperatureまたはTop P?

プロンプトの使用を検討してください。“完璧なアイスクリームサンデーを作るために、バニラアイスクリームを2回すくって上に乗せる...“。 推奨される次の単語の望ましいレスポンスは、ホットファッジ、パイナップルソース、ベーコンでしょう。 返されるものの確率を上げるには:

  • ベーコンの場合、Temperatureを最大値に設定し、Top Pをデフォルトのままにします。 高いTemperatureでTop Pを設定し、ファッジとパイナップルの確率を高め、ベーコンの確率を減らします。
  • ホットファッジの場合、Temperatureを0に設定します。

各ベースLLMにはデフォルト設定があります。 結果として、チャットを開始する前に必要な選択はLLMを選択することだけとなります。

ベクターデータベースを追加

ベクターデータベースタブから、オプションで ベクターデータベースを選択できます。 この選択では、非構造化テキストの チャンクおよび各チャンクの対応するテキスト埋め込み(取得しやすいようにインデックス化済み)のコレクションで構成されたデータベースが識別されます。 ベクターデータベースはプロンプティングに必要ありませんが、回答を生成するためにLLMに関連データを提供するために使用されます。 ベクターデータベースをプレイグラウンドに追加して、指標を実験し、回答をテストします。

次のテーブルは、ベクターデータベースタブのフィールドを記述したものです。

ドロップダウン

フィールド 説明
ベクターデータベース ユースケースで使用可能なすべてのベクターデータベースを一覧表示します(したがって、そのユースケースのすべてのプレイグラウンドで使用できます)。 ベクターデータベースを追加オプションを選択すると、追加した新しいベクターデータベースが他のLLMブループリントで使用可能になりますが、適用するには LLMブループリント設定を変更する必要があります。
ベクターデータベースのバージョン LLMが使用するベクターデータベースの バージョンを選択します。 フィールドには、プレイグラウンドの作成時に表示していたバージョンがあらかじめ入力されています。 ベクターデータベースバージョン をクリックすると、プレイグラウンドを離れ、ベクターデータベースの詳細ページが開きます。
情報 選択したバージョンの設定情報を報告します。
Retriever LLMがベクターデータベースからチャンクを返す際に使用する方法、隣接チャンクの含め方、および取得制限を設定します。

Retrieverのメソッド

選択したRetrieverによって、LLMブループリントがベクターデータベースから最も関連性の高いチャンクを検索して取得する方法が決まります。 それらは、言語モデルに提供される情報を指示します。 以下のいずれかのメソッドを選択します。

方法 説明
Single-Lookup Retriever クエリーごとに単一ベクターデータベースのルックアップを実行し、最も類似したドキュメントを返します。
Conversational Retriever(デフォルト) チャット履歴に基づいてクエリーを書き換え、コンテキストアウェアな回答を返します。 つまり、このRetrieverは、最初のステップとしてクエリーの書き換えを追加したSingle-Lookup Retrieverと同様に機能します。
Multi-Step Retriever 結果を返すときは、次の手順を実行します。
  1. チャット履歴を意識したクエリに書き換え、そのクエリーに対応するドキュメントを取得します。
  2. ステップ1の結果に基づいて、5つの新しいクエリーを作成します。
  3. 5つの新しいクエリーのそれぞれについて、ベクターデータベースにクエリーを実行します。
  4. 結果をマージして重複排除を行い、返されたドキュメントの1セットを作成し、クエリーに使用します。
詳細:Retrieverとコンテキスト

LLMへのプロンプトで使用されるコンテキストの状態とRetriever選択の関係性を理解することは重要です。 以下の表では、コンテキストなし(各クエリーが独立している)とコンテキスト認識(チャット履歴が考慮される)の両方について、各Retrieverに対するガイダンスと説明を提供しています。 各Retrieverについては上記を参照してください。

Retriever コンテキスト認識なし コンテキスト認識
回答を返すプロセス
なし LLMにクエリーを要求します。 LLMにクエリーとクエリー履歴を要求します。
Single-Lookup Retriever
  1. クエリーに基づいてベクターデータベースを検索します。
  2. 関連するドキュメントを取得します。
  3. LLMにクエリーとドキュメントを要求します。
  1. クエリーに基づいてベクターデータベースを検索します。
  2. 関連するドキュメントを取得します。
  3. LLMにクエリー、ドキュメント、履歴を要求します。
Conversational Retriever スタンドアロンクエリーを取得する履歴がないため、代わりにSingle-Lookup Retrieverを使用します。
  1. LLMにクエリーと履歴を要求し、書き換えられたスタンドアロンクエリーを取得します。
  2. スタンドアロンクエリーでベクターデータベースを検索し、ドキュメントを取得します。
  3. LLMにスタンドアロンクエリーとドキュメントを要求します。
Multi-Step Retriever 履歴がないため、このRetrieverは推奨されません。ただし、5つの新しい検索クエリーを使用することで、最終的な回答に最適なドキュメントを取得できる可能性があります。
  1. LLMにクエリーと履歴を要求し、書き換えられたスタンドアロンクエリーを取得します。
  2. スタンドアロンクエリーでベクターデータベースを検索し、ドキュメントを取得します。
  3. LLMにスタンドアロンクエリーとドキュメントを要求し、最初のクエリーを補完する複数の新しい検索クエリーを取得します。
  4. 新しい検索クエリーごとにベクターデータベースを検索し、取得したドキュメントをマージして重複を削除します。
  5. LLMにスタンドアロンクエリーとドキュメントを要求します。

隣接チャンクを追加を使用して、類似性検索が取得するチャンクに、ベクターデータベース内の近隣するチャンクを追加するかどうかを制御します。 有効にすると、Retrieverはii-1、およびi+1(たとえば、クエリーでチャンク番号42を取得すると、チャンク41と43も取得されます)を返します。

また、プライマリーチャンクにのみ類似度スコアが付与されている点にも注目してください。 これは、隣接チャンクが回答の一部として計算されるのではなく、追加されるためです。

「コンテキストウィンドウの拡張」または「コンテキストの強化」として知られるこの方法は、取得されたチャンクに隣接する周辺のチャンクを含めることで、より完全なコンテキストを提供します。 これを可能にする理由には、次のようなものがあります。

  • 1つのチャンクが文の途中で切れてしまったり、重要な文脈を見逃してしまったりする可能性があります。
  • 関連情報は複数のチャンクにまたがる可能性があります。
  • 回答には、周囲のチャンクからのコンテキストが必要な場合があります。

返されるドキュメントの数を制御する検索の上限を設定する値を入力します。

Top K(近傍法)に設定した値は、ベクターデータベースから取得する関連チャンクの数をLLMに指示します。 チャンクの選択は、 類似性スコアに基づいて行われます。 以下の点に注意してください。

  • 値を大きくすると、より広範囲をカバーできますが、処理のオーバーヘッドが増加し、関連性の低い結果が含まれる可能性があります。
  • 値を小さくすると、より焦点の絞られた結果が得られ、処理も速くなりますが、関連する情報を見逃す可能性があります。

最大トークン数では、以下の内容を指定します。

  • ベクターデータベースを構築するときにデータセットから抽出された各テキストチャンクの最大サイズ(トークン単位)。
  • 埋め込みの作成に使用されるテキストの長さ。
  • RAG操作で使用される引用のサイズ。

プロンプティング戦略の設定

プロンプティング戦略では、コンテキスト(チャット履歴)設定を行い、オプションでシステムプロンプトを追加します。

コンテキスト状態の設定

コンテキストには2つの状態があります。 チャット履歴をプロンプトと一緒に送信して、回答に関連するコンテキストを含めるかどうかを制御します。

状態 説明
コンテキスト認識 入力を送信する際、以前のチャット履歴がプロンプトに含まれます。 この状態がデフォルトです。
コンテキスト認識なし チャットからの履歴をコンテキストに含めない。

備考

コンテキストの状態と、その状態が選択したRetrieverメソッドと連携してどのように機能するかを考慮します。

詳細については、コンテキスト認識チャットを参照してください。

詳細:コンテキストの割り当て方法

ユーザープロンプト、ベクターデータベースのチャンク、または会話履歴の組み合わせが長すぎてコンテキストウィンドウに収まらない場合、DataRobotは、割り当てられたコンテキストサイズの範囲内で動作するように何らかの形で切り捨てを適用する必要があります。 コンテキスト管理がプレイグラウンドに適用されるのは、チャット履歴や引用が限られたコンテキストウィンドウのスペースを争うことが多く、特に小さなコンテキストモデルで問題になるからです。 計算手順は以下のとおりです。

  1. モデルのコンテキストサイズが決定されます。 この情報がない場合(たとえば、コンテキストメタデータがないBYO LLMで、BYO LLMの設定にコンテキストサイズが示されていない場合)、コンテキストは4096トークンとみなされます。

  2. ユーザーが要求した出力トークンの数が決定されます。

  3. 最初に決定されたコンテキストサイズ(手順1)から、出力トークン(手順2)、システムプロンプト、ユーザープロンプトが差し引かれます。 その値は、チャット履歴または引用のいずれかで入力できる利用可能なコンテキスト予算になります。

  4. 引用だけがあり、考慮すべきチャット履歴がない場合、コンテキストウィンドウがいっぱいになるまで、関連性の高いものから低いものの順に引用が追加されます。

  5. 引用がなく、チャット履歴だけがある場合、コンテキストウィンドウがいっぱいになるまで、新しいメッセージから古いメッセージの順にチャット履歴が追加されます。

  6. 引用とチャット履歴の両方がある場合、ヒューリスティックに選択された4:1の比率(引用:履歴)で、利用可能なコンテキストを満たします。 (これは、引用が履歴の4倍重要であるという仮定に基づいています。)つまり、(手順4の)引用ルールに従ってコンテキストの80%を、(手順5の)履歴ルールに従ってコンテキストの20%を満たします。

システムプロンプトの設定

オプションのフィールドであるシステムプロンプトは、このLLMブループリントの個々のすべてのプロンプトの先頭にある「汎用」プロンプトです。 LLMのレスポンスを指示およびフォーマットします。 システムプロンプトは、レスポンス生成中に作成される構造、トーン、形式、コンテンツに影響を与えることがあります。

LLMブループリントの比較に関するドキュメントでシステムプロンプトの適用例を参照してください。

LLMブループリントの操作

プレイグラウンドの左側のパネルは、プレイグラウンドのアセットを格納するファイルキャビネットのようなもので、設定済みのブループリントのリストや比較チャットの履歴レコードです。

この領域から、新しいLLMブループリント(上記のプロセス)を作成することもできます。

LLMブループリントタブ

LLMブループリントタブには、プレイグラウンド内の設定済みのすべてのLLMブループリントが一覧表示されます。 このパネルからLLMブループリントを選択します。比較を行う場合は、最大3つまで選択できます。 チェックボックスでLLMブループリントを選択すると、中央の比較パネルで使用できるようになります。 LLMブループリント名の横にある星 をクリックして「お気に入り」に追加すると、後でフィルターすることができます。

表示コントロール

以下のコントロールを使用すると、LLMブループリントのリストを編集できます。

フィルターオプションは、パネルにリストされるブループリントを、ベースLLMまたはステータスのいずれかで制御します。

フィルターラベルの右側の小さい番号は、フィルターが適用された結果として表示されるブループリントの数または適用されなかった結果を示します。

ソート条件は、ブループリントの順序を制御します。 このパネルは追加型です。つまり、既存のフィルターやグループ化の上に適用されます。 同じく加法的であるグループ化では、選択した条件で表示を並べ替えます。 ラベルはグループの「名前」と数字を示し、メンバーブループリントの数を示します。

LLMブループリントのアクション

LLMブループリントで使用可能なアクションは、左側のLLMブループリントタブの名前の横にあるアクションメニュー から、または選択したLLMブループリントのLLMBPのアクションからアクセスできます。

オプション 説明
LLMブループリントの設定 LLMブループリントタブからのみ。追加のチューニングを行うために、選択したブループリントの設定を開きます。
LLMブループリントの編集 LLMブループリント名を変更するためのモーダルを提供します。 名前を変更すると、新しい名前と 保存された すべての設定が保存されます。 設定が保存されていない場合は、最後に保存されたバージョンに戻ります。
新しいLLMブループリントにコピー 選択したブループリントのすべての保存済み設定から新しいLLMブループリントを作成します。
ワークショップに送信 LLMブループリントをレジストリに送信して、ワークショップに追加します。 そこからカスタムモデルとしてデプロイできます。
LLMブループリントを削除 LLMブループリントを削除します。

チャットタブ

チャットタブでは、選択したLLMブループリントに対してプレイグラウンドから行われた以前のプロンプトとその後のプロンプトにアクセスできます。 また、新しいチャットを開始することもできます。 詳細については、単一のブループリントまたは比較チャットを参照してください。

LLMブループリントをコピー

既存のLLMブループリントをコピーして、設定を継承できます。 この方法は、わずかに異なるブループリントを比較する場合、共有プレイグラウンドでオーナーではないブループリントを複製する場合、または間もなく期限切れになるLLMを置き換える場合に適しています。

2つの方法のいずれかでコピーを作成します。

左側のパネルで、アクションメニュー をクリックし、新しいLLMブループリントにコピーを選択して、親ブループリントの設定を継承したコピーを作成します。

新しいLLMブループリントが開き、追加の設定を行うことができます。

LLMBPのアクション新しいLLMブループリントにコピーの順に選択します。

LLMブループリント設定の変更

LLMブループリントの設定を変更するには、LLMブループリントタブのアクションメニュー からLLMブループリントの設定を選択します。 LLMブループリント設定とチャット履歴が表示されます。 設定を変更し、設定を保存します。

LLMブループリントを変更すると、それに関連付けられたチャット履歴も保存されます(設定がコンテキスト認識の場合)。 LLMブループリントを変更しても、チャット内のすべてのプロンプトは保持されます。

  • プロンプトを送信したときに含まれる履歴は、最新のチャットコンテキスト内のすべての要素です。
  • LLMブループリントをコンテキストなしに切り替えると、各プロンプトは独自のチャットコンテキストになります。
  • コンテキスト認識に切り替えると、チャット内で新しいチャットコンテキストが開始されます。

設定ビューのチャットは、比較ビューのチャットとは別物です。履歴が混ざり合うことはありません。