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 行が必要です。
- エージェントを最適化するには ( (オプション) エージェントを最適化する)、 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
enum
(エージェントが定義済みのカテゴリからのみ選択する必要がある分類タスクに使用されます)- オブジェクト
- 配列
enum(エージェントが定義済みのカテゴリのセットからのみ出力するようにしたい分類タスクに適しています) オブジェクト(「カスタムネストフィールド」の代わりに) 配列
ステップ 2: エージェントを改善する
[品質の向上 ] タブでサンプル出力を確認し、スキーマ定義を調整して、より良い結果を得るための指示を追加します。
-
左側の 「品質の 向上」で、サンプル出力を確認します。これらは、現在のエージェント構成に基づいたサンプルの入力と応答です。矢印を使用して回答間を移動するか、 [すべて表示] をクリックします。
-
右側の エージェント構成 ペインの ガイドライン タブで、スキーマ フィールドの説明を調整します。これらの説明は、エージェントが抽出したいものを理解するためのものです。
-
エージェントを改善するための推奨事項を確認します。これらは色付きのボックスに表示されます。
-
これらの提案を参考にしてフィールドの説明を編集し、より良い結果を得てください。
-
推奨事項を閉じるには、 [完了] をクリックします。
-
必要に応じて他のフィールドの説明を編集します。左側のサンプル出力を使用して、スキーマ定義を調整します。
-
新しいフィールドを追加したり、フィールドを編集したり、フィールドを削除したりすることもできます。
-
(オプション) [エージェント構成] ペインで [ 指示] タブに切り替えて、エージェントのグローバル指示を入力します。これらの手順は、抽出されたすべての要素に適用されます。
-
エージェントを更新するには、 「保存して更新」を クリックします。
-
新しいサンプル応答が左側に生成されます。これらの更新された応答を確認し、応答が満足のいくものになるまでエージェント構成を継続的に調整します。
ステップ 3: エージェントを評価する
高品質のエージェントを構築できたことを確認するには、評価を実行し、結果として得られた品質レポートを確認します。
-
左側で、 品質レポート タブに切り替えます。
-
[評価を実行]を クリックします。
-
スライド表示される [新しい評価] ペインで、評価を構成します。
-
評価実行名を選択します。生成された名前を使用するか、カスタム名を指定するかを選択できます。
-
ベースライン エージェントで評価を実行するか、最適化されたエージェントで評価を実行するかを選択します。
-
評価データセットを選択します。エージェントの構築に使用したのと同じソース データセットを使用するか、ラベル付きまたはラベルなしのデータを使用してカスタム評価データセットを提供するかを選択できます。
-
[評価を開始]を クリックします。
-
評価実行が完了したら、評価スコアを含む品質レポートを確認します。
-
詳細を表示するには、リクエストをクリックしてください。
-
左側で、 [概要] 、 [詳細とタイムライン] 、 [リンクされたプロンプト] タブを確認します。
-
右側で評価を確認します。クリック
をクリックして、スコアを編集し、フィードバックを提供します。一番下までスクロールして新しい評価を追加することもできます。
結果に満足したら、 「ステップ 4: エージェントの使用」に進みます。そうでない場合は、 「(オプション) エージェントを最適化する」を参照してください。
ステップ 4: エージェントを使用する
エージェントは、Databricks 全体のワークフローで使用できます。デフォルトでは、Agent Bricks エンドポイントは 3 日間非アクティブになるとゼロにスケーリングされるため、稼働時間に対してのみ請求されます。
エージェントの使用を開始するには、 [使用] をクリックします。エージェントの使用方法はいくつかあります。
- すべてのドキュメントのデータを抽出します 。 [抽出の開始] をクリックして SQL エディターを開き、
ai_query
を使用して新しい情報抽出エージェントにリクエストを送信します。 - ETLパイプラインの作成 : [パイプラインの作成] をクリックして、スケジュールされた間隔で実行され、新しいデータに対してエージェントを使用するパイプラインをデプロイします。 パイプラインの詳細については、 LakeFlow宣言型パイプライン」を参照してください。
- エージェントをテストする : 「プレイグラウンドで開く」 をクリックして、テスト環境でエージェントを試し、どのように動作するかを確認します。AI Playground詳細については、 「LLM とチャットし、 AI Playgroundを使用してAIアプリのプロトタイプを生成する」を参照してください。
(オプション)エージェントを最適化する
Databricks を使用してエージェントを最適化すると、Databricks は複数の異なる最適化戦略を比較して、最適化されたエージェントを構築し、推奨します。これらの戦略にはDatabricks Geosを使用する基盤モデルのファインチューニングが含まれます。
エージェントを最適化するには:
- クリック
上部を 最適化します 。 最適化 タブに移動してクリックすることもできます
最適化を開始します 。最適化には少なくとも 75 個のファイルが必要です。
- 確認するには 「最適化の開始」を クリックします。最適化には数時間かかる場合があります。最適化の進行中は、エージェントへの変更がブロックされます。
- 最適化されたエージェントの準備ができたら、 品質レポート タブから評価を実行し、結果をベースライン エージェントと比較できます。「ステップ 3: エージェントを評価する」を参照してください。
- 最適化されたエージェントがニーズを満たしている場合は、使用を開始します。「ステップ 4: エージェントを使用する」を参照してください。
エージェント エンドポイントをクエリする
作成したナレッジアシスタントエンドポイントをクエリするには、複数の方法があります。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 です。
- セキュリティとコンプライアンスの強化が有効になっているワークスペースはサポートされていません。
- サーバレス出力制御ネットワークポリシーが制限されたアクセスモードでは、最適化が失敗する可能性があります。
- ユニオン スキーマの種類はサポートされていません。