Skip to content

LLMブループリントの構築

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

To create an LLM blueprint, select that action from either the LLM blueprints tab or, if it is your first blueprint, the playground welcome screen.

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

  要素 説明
1 設定パネル LLMブループリントの作成から使用可能な設定の選択へのアクセスを提供します。
2 LLMブループリントカードサマリー LLMブループリント設定、指標、およびタイムスタンプのサマリーを表示します。
3 チャットの履歴 このLLMブループリントに送信されたプロンプトのレコードへのアクセスに加えて、新規チャットを開始するオプションを提供します。
4 プロンプトエントリー LLMブループリントとのチャットを開始するプロンプトを受け入れます。エントリーをアクティブにする前に設定を保存する必要があります。

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

設定を行う

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

LLMの選択と設定

DataRobotには LLMの選択機能があります。実際に何が利用可能となるかはクラスターとアカウントタイプによって異なります。

備考

LLMブループリントを作成する際には、使用非推奨またはサポート終了バッジの付いたLLMに注意してください。 これらのバッジは、今後または現時点でのサポート終了の通知を示します。 詳細についてはこちらを参照してください。使用非推奨のLLMとサポートが終了したLLMのリストについては、利用可能なLLMのページを参照してください。

または、プレイグラウンドにデプロイされたLLMを追加することもできます。このLLMは、検証されるとユースケースに追加され、関連付けられているすべてのプレイグラウンドで使用できます。 In either case, selecting a base LLM exposes some or all of the following configuration options, dependent on the selection:

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

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

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

各ベース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

急速に進化するGenAIの状況において、LLMは常に改善されており、古いモデルは新しいバージョンで置き換えられ、無効になっています。 これに対処するため、DataRobotのLLM使用非推奨プロセスでは、LLMにバッジを付けて今後の変更を示しています。 その目的は、ベンダーの予期せぬサポート打ち切りからエクスペリメントやデプロイを守ることにあります。

使用非推奨のLLMのためのバッジは、LLMブループリントの作成パネルに表示されます。

あるいは、作成済みの場合、影響を受けるLLMブループリントには警告や通知が示され、カーソルを合わせると日付が表示されます。

  • LLMが使用非推奨プロセスにある場合、そのLLMのサポートは2か月後に終了します。 バッジと警告が表示されますが、機能は制限されません。

  • サポートが終了すると、そのモデルから作成されたアセットは引き続き表示できますが、新しいアセットは作成できません。 サポートが終了したLLMは、単一のプロンプトや比較プロンプトでは使用できません。

一部の評価指標、たとえば忠実度や正確性などは、その設定でLLMを使用します。 それらの場合、指標の表示または設定時、およびプロンプトの回答にメッセージが表示されます。

LLMがデプロイされている場合、DataRobotはベースとなるLLMに使用されている資格情報を制御できないため、デプロイは予測を返すことができません。 このような場合は、デプロイ済みのLLMを新しいモデルに置き換えてください。

使用非推奨のLLMとサポートが終了した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メソッドと連携してどのように機能するかを考慮します。

See context-aware chatting for more information.

Deep dive: How context is allocated

If some combination of the user prompt, vector database chunks, or conversation history are too long to fit into the context window, DataRobot must apply some form of truncation to work within the confines of the assigned context size. Context management is applied in the playground because chat history and citations often compete for the limited context window, which is particularly relevant for small context models. The calculation is as follows:

  1. Model context size is determined. If this information is not available (e.g., a BYO LLM with no context metadata available and the context size was not indicated in the BYO LLM configuration), DataRobot assumes the context to be 4096 tokens.

  2. The number of user-requested output tokens is determined.

  3. From the initially determined context size (step 1), DataRobot subtracts output tokens (step 2), the system prompt, and the user prompt. That value results in the available context budget that can be filled with either chat history or citations.

  4. If there are only citations but no chat history to consider, DataRobot adds citations in the order of most relevant to least relevant, until the context window is filled.

  5. If there are no citations but only chat history, DataRobot adds chat history in the order of newest to oldest messages until the context window is filled.

  6. If there are both citations and chat history, DataRobot fills the available context using a heuristically chosen ratio of 4:1, citations:history. (This is based on the assumption that citations are 4x more important than history.) That is, it fills 80% of the context using the citation rules (from step 4) and 20% of the context using the history rules in (from step 5).

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

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

See an example of system prompt application in the LLM blueprint comparison documentation.

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

The actions available for an LLM blueprint can be accessed from the actions menu next to the name in the left-hand LLM blueprints tab or from LLM blueprint actions in a selected LLM blueprint.

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

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

既存のLLMブループリントをコピーして、設定を継承できます。 Using this approach makes sense when you want to compare slightly different blueprints, duplicate a blueprint for which you are not the owner in a shared playground, or replace a soon-to-expire LLM.

Make a copy in one of two ways:

In the left-hand panel, click the Actions menu and select Copy to new LLM blueprint to create a copy that inherits the settings of the parent blueprint.

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

Choose LLM blueprint actions and choose Copy to new LLM blueprint.

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

To change the configuration of an LLM blueprint, choose Configure LLM blueprint from the actions menu in the LLM blueprints tab. LLMブループリント設定とチャット履歴が表示されます。 設定を変更し、設定を保存します。

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

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

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