0 / 0

合成非構造化データの生成(ベータ版)

最終更新: 2025年5月08日
を作成しました:"2025-03-11 14:09:23 -0400" タイトル :"合成非構造化データの生成" fname: " synthetic\sdg-unstructured-overview.liquid.md "

を作成しました:"2025-03-11 14:09:23 -0400" タイトル :"合成非構造化データの生成" fname: " synthetic\sdg-unstructured-overview.liquid.md "

watsonx.ai 合成データ生成 API を使用すると、組織のリアルタイム・データを模倣した、大規模で高品質な非構造化テキスト・データセットを作成できます。 生成された合成データセットを使用して、特定のユースケースに対応する基盤モデルチューニングと評価を行います。

注:合成非構造化データの生成はベータ版機能として利用可能で、シドニーとトロントのリージョンのみで、 watsonx.ai APIを通じてプログラム的にアクセスできる。

概説

大規模なデータセットでトレーニングされた大規模言語モデル(LLM)を使用して、組織用にカスタマイズされた出力を生成することができます。 しかし、大量の有用で正確なトレーニングデータを使ってモデルをチューニングしなければならない。 少量または低品質のデータセットでは、特定のユースケースに関連する出力を生成するモデルのトレーニングを成功させるには不十分です。

合成データ生成APIを使用して、 基盤モデルチューニングと評価のためのデータ生成に最適化されたデータビルダーパイプラインとデータバリデータを使用して、大規模な非構造化テキストデータセットを作成します。

データ・ビルダー・パイプラインは、パイプラインへの入力として提供されたサンプル・シード・データと参照文書を模倣したさまざまな形式の合成データを生成する。 ユースケースに応じて、以下のデータビルダー・パイプラインから選択できます:

ツール呼び出し
データビルダー・パイプラインを呼び出すツールは、AIモデルを訓練するために使用できるトレーニング・データセットを作成し、外部ツール、アプリケーション・プログラミング・インターフェース(API)、またはシステムと相互作用してその能力を強化する。
テキストからSQLへ
テキストからSQLデータビルダパイプラインは、データベース操作を記述する自然言語ステートメント、データベース操作を実行する同等のSQL ステートメント、およびデータベーススキーマを含む合成SQLデータトリプレットを生成します。
知識
ナレッジ・データ・パイプラインは、ビジネス・ドメインに特化したドキュメントの例に基づいて、質問と回答( QnA )のペアを生成する。

シード・データ・フォーマットとデータ・ビルダー・パイプラインの選択についての詳細は、 データ・ビルダー・パイプラインとシード・データ・ フォーマットを参照してください。

REST API

合成データ生成(SDG)APIを使用して、合成非構造化データ生成を管理できます。 合成データは、 watsonx.ai で提供されている基盤モデル生成される。 生成されるデータの形式は、提供されるシードデータのサンプルと、使用するデータ・ビルダー・パイプラインに基づきます。 基盤モデルモデルがデータセットを生成した後、データはデータ・ビルダー・パイプラインの品質要件に対して検証され、プロジェクト資産保存されます。

注: 基盤モデルモデルが合成データを生成するために使用するトークンの料金は、ベータ期間中も適用されます。

APIメソッドの詳細については、 watsonx.ai APIリファレンス・ドキュメントを参照のこと。

APIで生成されたデータを使用して基盤モデルチューニングや評価を行う際のベストプラクティスについては、 ベストプラクティスを参照してください。

次の図は、ユースケースに適した形式のサンプル・シード・データを提供することで、合成非構造化データを生成するREST APIワークフローを示しています。

watsonx.ai 合成非構造化データ生成APIワークフロー

開始前に

合成非構造化データをプログラムで生成するには、まず以下のセットアップを完了する必要があります:

  1. プロジェクトを作成し、そのプロジェクトの Admin または Editor ロールを持つ。 プロジェクトには、関連する watsonx.ai Runtime サービスインスタンスが必要です。

  2. IBM Cloud ユーザー API キーと IBM Cloud Identity and Access Management (IAM) トークンを作成します。 詳細については、 プログラム・アクセスのための資格情報を参照のこと。

  3. タスク・クレデンシャルを作成する。

    タスク・クレデンシャルは、合成データ生成手順中に実行されるステップによって開始される長時間ジョブを認証するために使用されるAPIキーである。 APIリクエストでタスク・クレデンシャルを渡す必要はない。 詳細については、 タスク資格情報の作成を参照のこと。

  4. オプション :合成データセットの生成に使用する基盤モデルモデルを選択します。

    以下のモデルは、 Synthetic Data Generator サービスでの使用が認定されています:

    • granite-3-8b-instruct
    • mistral-large

    APIはデフォルトで granite-3-8b-instruct 。 課金情報やAPIモデルIDを含むモデルの詳細については、 対応基盤モデル を参照してください。

手順

REST APIを使用して合成非構造化テキスト・データを生成するには、以下のハイレベルな手順に従ってください:

  1. データ・ビルダー・パイプラインを選択し、入力シード・データ・ファイルをプロジェクト資産アップロードします。

    サンプル入力データの形式は、選択したデータ・ビルダー・パイプラインによって異なります。 すべてのデータビルダーについて、データ生成リクエストの入力としてシードデータを提供する必要があります。 パイプラインによっては、参考資料も提出しなければならない。 詳細はデータビルダーのパイプラインとシードデータ形式を参照。

  2. 合成非構造化データ生成ジョブ作成 REST API メソッドを使用して、合成データ生成資産 ジョブ設定を作成します。 リクエストには以下の設定を指定する必要があります:

    • データ・ビルダー・パイプライン
    • 入力されたシード・データの参照
    • 生成する QnA ペアの数

    デフォルトのモデル設定を上書きするために、 基盤モデルモデルのAPIモデルIDをオプションで指定することができます。

  3. 以下のいずれかの方法で、合成非構造化データ生成ジョブ実行する:

    ジョブ実行は、生成される出力の量、データ・ビルダー・パイプライン、モデルによって、完了までに数分から数時間かかることがある。 ジョブ実行をクリックして ジョブ実行の詳細 ページからログにアクセスすることで、合成非構造化データ生成ジョブステータスを監視できます。

    重要: 基盤モデル モデルが生成するトークンに対して料金が発生する。 詳細は 対応基盤モデル を参照。
  4. プロジェクトのデータ資産合成非構造化データを含む、生成された出力JSONLファイルをダウンロードします。 生成されたデータは、合成非構造化データ生成ジョブ作成するAPIリクエストで指定したデータビルダーパイプラインに従ってフォーマットされます。

要求の例

例えば、以下のコマンドは、合成非構造化データ生成リクエストを送信する:

curl -X POST \
  'https://api.{region}.dai.cloud.ibm.com/v1/synthetic_data/generation/unstructured?version=2025-04-17' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \'
  --header 'Authorization: Bearer eyJraWQiOi...' \'
  --data @payload.json'

以下は、デフォルトの基盤モデルオーバーライドする リクエストボディを含む、 payload.json ファイルの例です:

{
    "project_id": "<Your project ID>",
    "name": "<Name of the job that you want to create>",
    "description": "<Description of your project>",
    "pipeline": "<Data builder pipeline>",
    "model_id": "mistralai/mistral-large",
    "parameters": {
         "num_outputs_to_generate": < A value between 1 to 1000 >,
    },
    "seed_data_reference": {
         "type": "container",
         "location": {
            "path": "<Input seed data file name in project asset>"
         }
    },
    "results_reference": {
         "type": "container",
         "location": {
            "path": "<Generated data output file name in project asset>"
         }
    }
}

出力の詳細

ベータ期間中、各REST APIリクエストで最大1000 QnA ペアの合成データを生成できる。 より大きなデータセットを作成するには、 IBM Cloud サポートポータルでケースを開き、サポートチームに連絡してください。 詳細については、 IBM Cloud ドキュメントの「 サポートケースの作成 」を参照してください。

ベスト・プラクティス

合成データ生成APIを使用する際には、以下のガイドラインを使用してください:

  • ユースケースに最も適した基盤モデル選択するには、複数の認定基盤モデル少数の QnA ペアを生成して実験する。 APIリクエストの以下の設定を変更して、生成されるデータセットの量を調整してください:

    "parameters": {
      "num_outputs_to_generate": 10
    }
    

    生成された出力の品質を確認した後、認定された基盤モデル選択し、より大きなデータセットの生成を進める。

  • モデルのトレーニングにデータを使用する前に、APIで生成される合成非構造化データを必ず確認してください。

  • Tuning Studio のモデルを訓練するために合成データを使用するには、データセットに inputoutput の属性が含まれていなければならない。

    合成データの生成に使用するデータビルダーパイプラインに基づいて、データセットを Tuning Studio と互換性を持たせるために以下のステップを完了します:

    • パイプラインを呼び出すツール:変更の必要はなく、すぐに使用できます。
    • テキストからSQLへのパイプライン: utterance 属性の名前を input に変更します。 query 属性の名前を output に変更。
    • ナレッジ・パイプライン: question 属性の名前を input に変更。 answer 属性の名前を output に変更。

詳細情報

親トピック: データの準備