ガバナンスを備えたGenAIの基本ステップ¶
この生成AIのユースケースでは、複数のRAG(検索拡張生成)パイプラインを比較します。 完了すると、評価、アセスメント、ロギングが組み込まれた複数のエンドツーエンドのパイプラインができ、ガバナンスとガードレールが提供されます。
動画を視聴する
学習リソース
DataRobotの生成AIの詳細については、ドキュメントのGenAIのセクションをご覧ください。 そこでは、ベクターデータベース、プレイグラウンド、および指標に関する概要と詳細を、UIとコードの両方について確認できます。
ダウンロードするアセット¶
以下の手順に従ってこのエクスペリメントを構築するには、まず宇宙ステーションの研究論文のZIPファイルをダウンロードして解凍します。 中にはTXTファイル、CSVファイル、別のZIPファイルがあります。 この内部のZIPアーカイブは解凍 しない でください。 こちらで説明されているように、それらをユースケースに追加します。
1. ユースケースの作成¶
ワークベンチのディレクトリから、右上のユースケースを作成をクリックし、Space research
という名前を付けます。
詳しくはこちら:ユースケースの操作
2. データのアップロード¶
表示された画面でデータを追加、アップロードの順にクリックします。 ダウンロードしたアセットから、Space_Station_Research.zip
という名前のファイルをアップロードします。 これは解凍しないでください。 これは、ダウンロードしたZIPファイルではなく、ダウンロードした元のアーカイブ内のZIPファイルです。 DataRobotがデータセットの登録を開始します。
この時間を利用して、ダウンロードしたZIPファイル内のドキュメントを確認できます。 ローカルでSpace_Station_Research.zip
を解凍し、Space_Station_Annual_Highlights
を展開します。ここには、過去数年間の国際宇宙ステーションの研究プログラムのハイライトを紹介するPDFファイルが含まれています。
詳しくはこちら:ローカルファイルのアップロード
3. ベクターデータベースの作成¶
ベクターデータベース(VDB)の作成には2つの方法があり、どちらも同じ作成ページを開きます。 右側の追加ドロップダウンを使用して、ベクターデータベース > ベクターデータベースを作成をクリックするか、ベクターデータベースタブからベクターデータベースを作成をクリックします。
-
以下の内容を設定します。
フィールド 設定 備考 名前 Jina 256/20
この名前は設定を反映するように選択されましたが、任意の名前にすることができます。 データソース Space_Station_Research.zip
ユースケースにアップロードされたすべての有効なデータセットがドロップダウンに表示されます。 埋め込みモデル jinaai/jina-embedding-t-en-v1
この演習では、推奨されるJinaを選択します。 -
テキストチャンクは、テキストドキュメントを小さなテキストチャンクに分割するプロセスで、埋め込みの生成に使用されます。 区切り規則によって、コンテンツの分割、チャンクのオーバーラップ設定、および各チャンク内のトークンの最大数の設定ができます。 この基本ステップでは、チャンクのオーバーラップ率のみを変更します。チャンクあたりの最大トークン数は推奨値の256のままにします。
チャンクオーバーラップのスライダーを20%に移動します。
-
ベクターデータベースを作成をクリックすると、ユースケースディレクトリに戻ります。 VDBの構築中に、比較用の2つ目のVDBを追加します。
今回は、
intfloat/e5-base-v2
を埋め込みモデルとして使用します。 それをJina
モデルと比較するには、チャンクオーバーラップとチャンクあたりの最大トークン数の設定を手順2で設定したものと同じにします。つまり、チャンクオーバーラップは20%で、最大トークン数は256です。
このプロセスを繰り返して、任意の数のVDBを作成します。 最適な設定は、扱うテキストのタイプとユースケースの目的によって異なります。
詳しくはこちら:
4. プレイグラウンドの追加¶
プレイグラウンドでは、デプロイの前に、LLMブループリントの作成と比較、指標の設定、LLMブループリントの回答の比較を行うことができます。 プレイグラウンドは、2つの方法のいずれかを使用して作成します。
詳しくはこちら:プレイグラウンドの概要
5. LLMブループリントの構築¶
プレイグラウンドが表示されたら、LLMブループリントを作成します。
-
設定パネルのLLMタブで、以下を設定します。
フィールド 設定 備考 LLM Azure OpenAI GPT-3.5 Turbo
または、プレイグラウンドにデプロイされたLLMを追加することもできます。このLLMは、検証されるとユースケースに追加され、関連付けられているすべてのプレイグラウンドで使用できます。 最大出力トークン数 1024
(デフォルト)完了時に許可されるトークンの最大数。 Temperature .1
モデル出力のランダム性を制御します。 これを変更して、科学研究論文の信頼性を重視するようにします。 Top P 1
(デフォルト)トークン選択での累積確率のカットオフに基づいて、回答に含まれる単語の選択を制御するしきい値を設定します。 -
ベクターデータベースタブから、最初に構築されたVDBである
Jina 256/20
を選択します。 -
プロンプティングタブでコンテキストなしを選択します。 チャット履歴をプロンプトと一緒に送信して、回答に関連するコンテキストを含めるかどうかを、コンテキストの状態によって制御します。 コンテキストなしを選択すると、各プロンプトは、チャットからの履歴なしで、独立した入力として送信されます。
次に、以下のプロンプトを入力し、設定を保存します。
Your job is to help scientists write compelling pitches to have their talks accepted by conference organizers. You'll be given a proposed title for a presentation. Use details from the documents provided to write a one paragraph persuasive pitch for the presentation. (あなたの仕事は、科学者がカンファレンスの主催者に講演を受け入れてもらえるよう、説得力のあるピッチを書くのを手伝うことです。あなたには、プレゼンテーションのタイトル案が渡されます。そのプレゼンテーションのために、提供された資料の内容を参考にして、説得力のある1段落のピッチを作成してください。)
詳しくはこちら:
6. LLMブループリントのテスト¶
設定が保存されたら、プロンプティング(「チャット」とも呼ばれます)でテストします。 プロンプティングのアイデアは、ダウンロードしたTXTファイルに記載されています。 たとえば、プロンプトを送信ダイアログで、カンファレンス用のピッチ作成を求める次の2つのプロンプトを試してみます。
- Blood flow and circulation in space.(宇宙空間における血流と血行。)
- Microgravity is weird.(微小重力は奇妙だ。)
ブループリントを編集して、よりわかりやすい名前(Azure GPT 3.5 + Jina
など)を付けて保存します。
詳しくはこちら:単一のLLMブループリントを使用したチャット
7. 比較用ブループリントの作成¶
設定を比較するには、まず追加のブループリントを作成する必要があります。 そのためには、以下の操作を実行します。
- 上記の手順に従って、新しいLLMブループリントを作成します。
- 既存のブループリントのコピーを作成し、1つ以上の設定を変更します。
どちらの操作も、ブループリントの設定領域と比較パネルの両方から行うことができます。 ここでの目的はブループリントを比較することなので、以下の手順では比較パネル からブループリントをコピーします。
備考
左端にあるアイコンを使って、プレイグラウンド内を移動することができます。
-
指定したLLMブループリントから、アクションメニュー を展開し、新しいLLMブループリントにコピーを選択します。 最初のブループリントの設定がすべて引き継がれます。
-
VDBを変更し、設定を保存して、名前を編集します(
Azure GPT 3.5 + E5
)。 -
比較パネルに戻り、3つ目のブループリントを作成します。 新しいLLMブループリント
Azure GPT 3.5 + E5
から、新しいLLMブループリントにコピーをクリックし、今度はLLMを変更します。 この基本ステップでは、Amazon Titan
を選択し、Temperatureの値を0.1
にリセットします。 ブループリントにAmazon Titan + E5
という名前を付けます。
詳しくはこちら:LLMブループリントのコピー
8. ブループリントの比較¶
比較パネルでは、1つの画面で最大3つのLLMブループリントのチャット(回答)を簡単に比較できます。 このパネルでは、比較可能なすべてのブループリントが一覧表示され、フィルター機能により、比較したいものを簡単に見つけることができるほか、チャット履歴にもすばやくアクセスできます。
比較を開始するには、名前の左側にあるボックスをチェックして、3つのブループリントをすべて選択します。 各ブループリントにサマリーが用意されていることに注目してください。 探索する新しいトピックをプロンプトを送信フィールドに入力します。 たとえば、次のように入力します:Monitoring astronaut health status.
(宇宙飛行士の健康状態の観察。)
Applications of ISS science results on earth
(ISSの科学的成果の地球への応用)など、別のプロンプトも試してみてください。 どのような回答が望ましいかは主観的なものであり、ユースケースによって異なりますが、評価に役立つ定量的な指標がいくつかあります。
詳しくはこちら:LLMの比較
9. 回答の評価¶
回答を評価する方法の1つは、各プロンプトで返される基本情報を確認することです(回答の下に要約されています)。 Jina VDBを使用したLLMブループリントの情報パネルを展開すると、回答に要した時間は5秒、トークンは167個、信頼性指標であるROUGE-1のスコアは87%であることがわかります。 ROUGE-1指標は、このLLMの回答が、回答の生成を支援するために提供された引用とどの程度類似しているかを表します。
この結果をもっとよく理解するために、引用元を見てみましょう。 LLMから生成された回答は、以下のチャンクに基づいていることがわかります。
- 2022年版レポートの7ページ目
- 2018年版レポートの7ページ目
- 2017年版レポートの4ページ目など
スクロールして、引用元をいくつか見てみましょう。 この段階では、VDBの作成時に選択したチャンクサイズの影響を確認できます。 チャンクを長くしたり短くしたりすると、より良い結果が得られる場合があり、追加のVDBを作成してテストできます。
詳しくはこちら:引用
10. 評価データセットの追加¶
上記の手順で説明した指標は、1つのLLMブループリントの回答に対応していますが、1つのプロンプト/回答の評価から学習できることは限られています。 どのLLMブループリントが総合的に最も優れているかを評価するには、集計された指標が必要です。 集計では、多くのプロンプトや回答の指標がまとめられるため、ブループリントを概要レベルで評価するのに役立ち、より包括的なアプローチでの評価が可能です。
この手順では、集計に必要な評価データセットの追加について説明します。 集計の設定は手順11で行います。
-
左上のナビゲーションでLLMの評価アイコン をクリックします。
-
LLMの評価ページから、評価データセットタブ、設定の順に選択します。
-
指標カードのページが表示されます。 評価データセットの指標カードを選択して設定します。
-
次に、使用するデータセットを選択します。これは手順2で基本ステップアセットの1つとしてアップロードされたデータセットです。
備考
正確性指標は、このユースケースでは意味のある指標ではないので、設定する必要はありません。 これは、「クリエイティブライティング」のユースケースであり、LLMの回答の比較対象として単一の「正しい」回答を返しようがないためです。したがって、これらの回答を評価データセットの(模擬)回答と比較するのは有用ではありません。
データを含める方法として評価データセットをアップロードを選択し、データセットを選択をクリックします。 データレジストリが表示されます。
-
アップロードをクリックし、
Space_research_evaluation_prompts.csv
という名前のCSVファイルを選択します。このファイルには、標準的なリファレンスセットとして使用されるカンファレンスの名称がいくつか追加されています。 登録が完了したら、一覧でファイルを選択し、データセットを選択をクリックします。評価データセットの指標の設定ページに戻ります。
詳しくはこちら:評価データセット
11. 集計された指標の設定¶
集計を設定するには:
-
設定ページで、プロンプトと回答の列名を入力します。 この例では、CSVファイルを開くと表示される以下の設定を使用します。
フィールド 設定 プロンプト列の名前 question
回答(ターゲット)列の名前 answer
-
追加をクリックし、次のページで設定を保存をクリックします。 LLMの評価ページに追加内容が表示されます。
-
左側のナビゲーション をクリックして、プレイグラウンドの比較パネルに戻ります。
-
回答の左下にある集計の設定を選択します。
-
集計された指標を生成ページが開きます。 待ち時間およびROUGE-1指標を平均に設定します。 ドロップダウンから、追加した評価データセットを選択します。 次に、指標の生成をクリックします。
右下の通知により、集計ジョブがキューに入っていることが確認できます。 集計リクエストの処理には時間がかかる場合がありますが、完了すると指標が表示されます。
詳しくはこちら:集計された指標
12. 集計された指標の解釈¶
集計ジョブが完了したら、各LLMブループリントの集計結果を展開して比較します。 これらの集計指標は、_評価データセット_内の行に基づいています。
これらの値の根拠となった行レベルの詳細を確認するには、設定をクリックします。 LLMブループリント設定ページが開きます。 左側のパネルのチャット一覧に、_Aggregated chat_という名前のエントリーがあります。これには、評価データセット内のプロンプトに対する回答がすべて含まれています。
結果をスクロールして、カンファレンスでの講演内容を確認します。 「親指」の絵文字でフィードバックができます。 たとえば、「地衣類が宇宙を好む理由は? 」という質問(プロンプト列名)で、その回答に対して、(親指を立てる)肯定的なフィードバックを返します。
13. トレース¶
LLMブループリントの実行をトレースすることは、GenAIスタックの多くの部分がどのように機能するかを理解するための強力なツールです。 トレースタブでは、プレイグラウンドでLLMの回答を生成するために使用されるすべてのコンポーネントとプロンプトアクティビティのログが提供されます。
左上のナビゲーションにあるトレースアイコン をクリックすると、LLMの回答生成に使用されたすべてのコンポーネントのログにアクセスできます。 このテーブルは、どのLLMパラメーター、どのベクターデータベース、どのシステムプロンプト、およびどのユーザープロンプトによって特定の回答が生成されたかを正確にトレースします。
ページを右端までスクロールすると、ユーザーからのフィードバックが表示されます。 この情報は、LLMの微調整に使用できます。
DataRobotのAIカタログにログをエクスポートすることもできます。 そこから、データベーステーブルへの書き込みやダウンロードなど、他の方法でログを使用できます。
詳しくはこちら:トレース
次のステップ¶
この基本ステップを完了したら、次のステップを実行することをお勧めします。
- プレイグラウンドからLLMをデプロイする
- コードでエンドツーエンドのGenAIエクスペリメントを作成する