Agent Bricksの使用: 情報抽出
ベータ版
この機能は ベータ版です。
この記事では、Agent Bricks: 情報抽出を使用して情報抽出用の生成AI エージェントを作成する方法について説明します。
Agent Bricks は、一般的なAIユースケース向けに、ドメイン固有の高品質のAIエージェントシステムを構築および最適化するためのシンプルなアプローチを提供します。
Agent Bricks: 情報抽出とは?
Agent Bricks は、情報抽出をサポートし、ラベルのない大量のテキスト ドキュメントを、各ドキュメントの抽出された情報を含む構造化テーブルに変換するプロセスを簡素化します。
情報抽出の例を次に示します。
- 契約から価格とリース情報を抽出します。
- 顧客メモからのデータの整理。
- ニュース記事から重要な詳細を取得します。
Agent Bricks: 情報抽出は、 MLflow や エージェント評価などの自動評価機能を活用して、特定の抽出タスクのコストと品質のトレードオフを迅速に評価できるようにします。 この評価により、精度とリソース投資のバランスについて、十分な情報に基づいた決定を下すことができます。
必要条件
-
次のものを含むワークスペース。
- Mosaic AI Agent Bricks Preview (Beta) が有効になりました。Databricks プレビューの管理を参照してください。
- サーバレス コンピュートが有効になりました。 サーバレス コンピュートの要件を参照してください。
- Unity Catalog が有効になっている。「Unity Catalog のワークスペースを有効にする」を参照してください。
system.ai
スキーマを使用した Unity Catalog の基盤モデルへのアクセス。- 非ゼロの 予算を持つサーバレス 予算ポリシー へのアクセス。
-
サポートされているリージョン (
us-east-1
またはus-west-2
のいずれかのリージョンのワークスペース。 -
ai_query
SQL関数を使用する機能。 -
データの抽出元となるファイル。ファイルは、Unity Catalog ボリュームまたはテーブルに存在する必要があります。
- PDF を使用する場合は、まず Unity Catalog テーブルに変換します。Agent Bricks での PDF の使用を参照してください。
- エージェントをビルドするには、Unity Catalog ボリュームに少なくとも 1 つのラベル付けされていないドキュメント、またはテーブルに 1 行が必要です。
- エージェントを最適化するには ((オプション) ステップ 4: 最適化されたエージェントを確認してデプロイする)、Unity Catalog ボリュームに少なくとも 75 個のラベル付けされていないドキュメントがあるか、テーブルに少なくとも 75 行ある必要があります。
情報抽出エージェントを作成する
ワークスペースの左側のナビゲーション ウィンドウで エージェント に移動し、 情報抽出 をクリックします。
ステップ 1: エージェントを構成する
構成 タブで、 >例を表示 をクリックして、情報抽出エージェントの入力およびモデル応答の例を展開します。
下のペインで、エージェントを設定します。
-
名前 フィールドに、エージェントの名前を入力します。
-
提供するデータの種類を選択します。[ ラベルなしデータセット ] または [ラベル付きデータセット] のいずれかを選択できます。
-
提供するデータセットを選択します。
- Unlabeled dataset
- Labeled dataset
[ ラベルなしデータセット ] を選択した場合:
-
[ データセットの場所] フィールドで、Unity Catalog ボリュームから使用するフォルダーまたはテーブルを選択します。フォルダを選択する場合、そのフォルダには 、サポートされているドキュメント形式のドキュメントが含まれている必要があります。
-
表を指定する場合は、テキスト データを含む列をドロップダウンから選択します。テーブル列には、 サポートされているデータ形式のデータが含まれている必要があります。
PDF を使用する場合は、まず Unity Catalog テーブルに変換します。Agent Bricks での PDF の使用を参照してください。
次に、ボリュームの例を示します。
/Volumes/main/info-extraction/bbc_articles/
[ラベル付きデータセット] を選択した場合:
-
[ ラベル付きトレーニング データセット] フィールドで、使用する Unity Catalog テーブルを選択します。
-
[ 入力列] フィールドで、エージェントに処理するテキストを含む列を選択します。この列のデータは、
str
形式である必要があります。 -
[ ラベル付き応答列] フィールドで、エージェントに生成するラベル付き応答を含む列を選択します。この列のデータは JSON 文字列である必要があります。この列の各行は、同じ JSON 形式に従う必要があります。追加または欠落しているキーを含む行は受け入れられません。
最適化では、Agent Bricks はラベル付けされたデータを使用して、情報抽出エンドポイントの品質を向上させます。
-
ラベル付けされていないデータセットを指定した場合、Agent Bricks は [ サンプル JSON 出力 ] フィールドのデータセットから抽出されたデータを含むサンプル JSON 出力を自動的に推測して生成します。サンプル出力を受け入れたり、編集したり、目的の JSON 出力の例に置き換えたりすることができます。エージェントは、この形式を使用して抽出された情報を返します。
ラベル付きデータセットを指定した場合、[ サンプル JSON 出力 ] フィールドには、ラベル付き応答列のデータの最初の行が表示されます。この JSON 出力が予期される形式と一致していることを確認します。
たとえば、次のサンプル JSON 出力を使用して、一連のニュース記事から情報を抽出できます。
JSON{
"title": "Economy Slides to Recession",
"category": "Politics",
"paragraphs": [
{
"summary": "GDP fell by 0.1% in the last three months of 2004.",
"word_count": 38
},
{
"summary": "Consumer spending had been depressed by one-off factors such as the unseasonably mild winter.",
"word_count": 42
}
],
"tags": ["Recession", "Economy", "Consumer Spending"],
"estimate_time_to_read_min": 1,
"published_date": "2005-01-15",
"needs_review": false
} -
エージェントの作成 をクリックします。
サポートされているドキュメント形式
次の表は、Unity Catalog ボリュームを提供した場合にソースドキュメントでサポートされているドキュメントファイルの種類を示しています。
コードファイル | ドキュメントファイル | ログファイル |
---|---|---|
|
|
|
サポートされているデータ形式
Agent Bricks: 情報抽出は、Unity Catalog テーブルを提供する場合、ソース ドキュメントの次のデータ型とスキーマをサポートします。Agent Bricks は、各ドキュメントからこれらのデータ型を抽出することもできます。
str
int
float
boolean
- カスタムネストされたフィールド
- 上記のデータ型の配列
ステップ 2: エージェントを構築して改善する
ビルド タブの エージェント構成 ウィンドウで、より良い結果が得られるようにスキーマ定義を絞り込みます。
-
(オプション)エージェントのグローバル指示 (すべてのフィールドに適用できるプロンプトなど) を追加します。
-
エージェントが出力応答に使用するスキーマフィールドの説明を調整します。これらの説明は、エージェントが抽出したいものを理解するために依存しているものです。
-
エージェントの更新 をクリックします。
ビルド タブの左側で、推奨事項とサンプル出力を確認します。
-
各フィールドに用意されている仕様に基づいて、モデルの出力例を確認します。
-
エージェントのパフォーマンスを最適化するための Databricks の推奨事項を確認します。
-
推奨事項を適用し、必要に応じて エージェント構成 ペインの説明と指示を調整します。
-
変更と推奨事項を適用した後、 エージェントの更新 を選択して、それらの変更をエージェントに保存します。 エージェントの改善 ペインが更新され、新しいモデル例の出力が表示されます。このペインの推奨事項は更新されません。
これで、情報抽出のエージェントができました。
ステップ 3: エージェントを使用する
エージェントは、Databricks 全体のワークフローで使用できます。デフォルトでは、Agent Bricks エンドポイントは 3 日間非アクティブになるとゼロにスケーリングされるため、稼働時間に対してのみ請求されます。
使用 タブで、
-
[ 抽出の開始 ] を選択して SQL エディターを開き、
ai_query
を使用して新しい情報抽出エージェントに要求を送信します。 -
(オプション)エージェントのコストを最適化する場合は、 最適化 を選択します。
- 最適化には少なくとも 75 個のファイルが必要です。
- 最適化には約 1 時間かかる場合があります。
- 最適化が進行中の場合、現在アクティブなエージェントへの変更がブロックされます。
最適化が完了すると、[ レビュー ] タブに移動し、現在アクティブなエージェントとコストに最適化されたエージェントの比較が表示されます。(オプション) ステップ 4: 最適化されたエージェントを確認してデプロイするを参照してください。
- (オプション) パイプラインの作成 を選択して、スケジュールされた間隔で実行されるパイプラインをデプロイし、新しいデータでエージェントを使用します。パイプラインの詳細については Lakeflow 宣言型 パイプライン を参照してください。
(オプション)ステップ 4: 最適化されたエージェントを確認してデプロイする
使用 タブで 最適化 を選択すると、Databricks は複数の異なる最適化戦略を比較して、最適化されたエージェントを構築して推奨します。これらの戦略には、 Databricks Geosを使用する基盤モデル ファインチューニングが含まれます。
レビュー タブで、
-
評価結果 では、最適化されたエージェントとアクティブなエージェントを視覚的に比較できます。評価を実行するために、 Databricks は各フィールドのデータタイプに基づいてメトリクスを選択し、評価データセットを使用してアクティブなエージェントとコストに最適化されたエージェントを比較します。 この評価セットは、元のエージェントの作成に使用したデータのサブセットに基づいています。
- メトリクスは、フィールドごとに MLflow 実行に記録されます (最上位のフィールドに集約されます)。
- 列 ドロップダウンから
overall_score
列とis_schema_match
列を選択します。
-
これらの結果を確認した後、現在アクティブなエージェントの代わりにこの最適化されたエージェントをデプロイする場合は、 デプロイ をクリックします。
エージェント エンドポイントをクエリする
作成したナレッジアシスタントエンドポイントをクエリするには、複数の方法があります。AI Playground で提供されているコード例を出発点として使用します。
- [ 構成] タブで、[ プレイグラウンドで開く ] をクリックします。
- Playground から [ コードを取得] をクリックします。
- エンドポイントの使用方法を選択します。
- [ データに適用] を選択して、エージェントを特定のテーブル列に適用する SQL クエリを作成します。
- curl を使用してエンドポイントをクエリするコード例として、 [Curl API ] を選択します。
- Python を使用してエンドポイントと対話するためのコード例として、 Python API を選択します。
Agent Bricks での PDF の使用
PDF は、Agent Bricks: 情報抽出とカスタムLLMではまだネイティブにサポートされていません。ただし、Agent Brick の UI ワークフローを使用して、PDF ファイルのフォルダをマークダウンに変換し、エージェントを構築するときに結果の Unity Catalog テーブルを入力として使用できます。 このワークフローでは、変換に ai_parse_document
を使用します。以下の手順に従います。
-
左側のナビゲーション ウィンドウで [エージェント] をクリックして、Databricks で Agent Bricks を開きます。
-
情報抽出またはカスタムLLMのユースケース内で、[ PDFの使用 ]をクリックします。
-
開いたサイドパネルで、次のフィールドを入力して、PDF を変換するための新しいワークフローを作成します。
- PDFを含むフォルダーを選択 :使用するPDFを含むUnity Catalogフォルダーを選択します。
- 宛先テーブルの選択 : 変換されたマークダウン テーブルの宛先スキーマを選択し、必要に応じて、下のフィールドのテーブル名を調整します。
- アクティブな SQLウェアハウスの選択 : ワークフローを実行する SQLウェアハウスを選択します。
-
インポートの開始 をクリックします。
-
[ すべてのワークフロー ] タブにリダイレクトされ、すべての PDF ワークフローが一覧表示されます。このタブを使用して、ジョブのステータスを監視します。
ワークフローが失敗した場合は、ジョブ名をクリックして開き、デバッグに役立つエラーメッセージを表示します。
-
ワークフローが正常に完了したら、ジョブ名をクリックしてカタログエクスプローラーでテーブルを開き、列を探索して理解します。
-
エージェントを設定するときは、 Unity Catalog テーブルをAgent Bricksの入力データとして使用します。
制限
- Databricks では、エージェントを最適化するために少なくとも 75 個のドキュメントが必要です。より良い最適化結果を得るには、少なくとも 1000 個のドキュメントをお勧めします。ドキュメントを追加すると、エージェントが学習できるナレッジ ベースが増え、エージェントの品質と抽出精度が向上します。
- 情報抽出エージェントのトークンの最大コンテキスト長は 128k です。
- セキュリティとコンプライアンスの強化が有効になっているワークスペースはサポートされていません。
- サーバレス出力制御ネットワークポリシーが制限されたアクセスモードでは、最適化が失敗する可能性があります。
- ユニオン スキーマの種類はサポートされていません。