從分類法產生資料,用於 Red Hat AI 推論

資料生成是指根據您在 QNA 檔案中包含的問題與答案,自動產生合成問題與答案的過程。 Red Hat AI Inference 用於生成資料的流程,著重於內容品質與相關性。

進一步了解資料生成流程,請參閱 Red Hat.

Red Hat AI Inference 模型對齊、合成資料生成及分類法管理功能已標記為過時,並將於 2026 年 9 月 25 日移除。 若要繼續進行模型自訂與對齊工作流程,請遷移至 Red Hat® OpenShift® AI On OpenShift。 進一步了解 Red Hat® OpenShift® 的人工智慧

必要條件

  1. 安裝 ilab CLI 外掛程式
  2. 請準備您的分類體系
  3. 將分類法「tar.gz」新增至您的「Object Storage」儲存桶中

使用控制台產生資料

  1. 在控制台中,開啟「Red Hat AI Inference」服務

  2. 點選 Red Hat AI 推論 專案 > 您的專案 > 訓練資料 > 產生

  3. 請為訓練資料輸入一個包含字母和數字的名稱,並選擇要使用的分類體系。

  4. (可選):在開始資料產生程序之前,請先檢視所提供的預估成本。

  5. 按一下產生。 狀態為 queued,接著是 running

  6. 請等待狀態變為 completed。 資料產生完成後,系統會在 Object Storage 儲存桶中建立一個名為 synthetic_data 的目錄,其中包含日誌檔案。 您可以檢視這些日誌,以進行疑難排解或驗證。

在控制台中匯入您自己的訓練資料

您可以匯入先前自行生成的資料,以補充《 Red Hat AI 推論 》中的資料生成功能。 如果您需要執行以下一項或多項操作,您可能需要匯入自己的資料。

  • 在產生資料時,匯入一份或多份知識與技能文件。
  • 將多個訓練資料批次合併為一個。
  • 產生資料、下載資料,接著對資料的一部分進行處理,然後重新產生資料。
  • 將您先前生成的資料與新匯入的資料合併。
  • 匯入資料、產生訓練資料,然後將該資料與另一輪資料生成結果結合。
  • 將重播緩衝區與從分類法匯入的資料結合。 此功能僅可透過 API 或 CLI 使用。
  • 匯入資料,並根據您的分類法產生訓練資料。 此功能僅可透過 API 或 CLI 使用。

若要匯入您自己的資料,您可以參考先前執行的資料產生作業、從您的 Object Storage 儲存桶匯入檔案,或從您的本地端電腦上傳檔案。

請按照以下步驟匯入您自己的訓練資料。

  1. 在控制台中,開啟「Red Hat AI Inference」服務

  2. 點選 Red Hat AI 推論 專案 > 您的專案 > 訓練資料 > 匯入

  3. 請為您的資料輸入一個包含字母和數字的名稱。

  4. 請從以下選項中選擇一項。

    • Object Storage: 選取您在「Object Storage」儲存桶中的現有檔案。

      1. 請選擇儲存您現有資料的執行個體和儲存桶。
      2. 下一步
      3. 請選取您要匯入的檔案。
    • 上傳檔案:從您的本機電腦中選取檔案。 請注意,上傳檔案的大小上限為 40 Mb。

      1. 請選擇一個 Object Storage 執行個體和儲存桶,或建立新的執行個體和儲存桶來儲存您的資料。
      2. 授予 Red Hat AI 推論 對該儲存桶的寫入權限。
      3. 可選:儲存設定。 請針對資料的儲存方式,提供以下額外詳細資訊。
        • 桶檔路徑。
        • 儲存桶內的目錄。
        • Object Storage 實例名稱。
        • 資源群組。
        • Object Storage 儲存桶名稱。
        • 儲存桶的彈性。
      4. 下一步
      5. 請從您的本機電腦中選取要上傳的知識與技能檔案。
  5. 按一下匯入

在控制台中合併訓練資料

您可以將資料分成較小且易於管理的區塊來產生,藉此避免超時或觸及系統限制。 接著,您可以將這些較小的資料集合併成單一資料集,用於訓練。

請依照以下步驟,在主控台中合併資料。

  1. 在控制台中,開啟「Red Hat AI Inference」服務

  2. 點選 Red Hat AI 推論 專案 > 您的專案 > 訓練資料

  3. 請從清單中選取最多 20 筆您的訓練資料條目,然後點擊「合併」。

  4. 請為您的資料輸入一個包含字母和數字的名稱。

  5. 請選取您要儲存合併資料的 Object Storage 執行個體及儲存桶。

  6. 按一下建立

使用 CLI 產生資料

  1. 請列出您的分類法,並註明您想要使用的分類法。

    ibmcloud ilab taxonomy list
    

    輸出範例。

    id                         name       taxonomy_path
    669a88c9488ee7b95ce8fe05   test-tax   taxonomy.tar.gz
    
  2. 根據您的分類法產生資料。 請記下該資料的 ID,以便在下一步中使用。 名稱中請使用英數字元。

    ibmcloud ilab data generate [--name NAME] [--taxonomy-id TAXONOMY-ID]
    

    範例指令。

    ibmcloud ilab data generate --name testdata --taxonomy-id 669a88c9488ee7b95ce8fe05
    

    輸出範例。

    id            66a268c170dcb21150050e8e
    name          test-data
    state         queued
    status
    created_at    2024-07-19T15:40:29.000Z
    taxonomy_id   669a88c9488ee7b95ce8fe05
    
  3. 請檢查您的資料產生詳情。 請包含該資料的 ID。 狀態為 queued,接著是 running。 請等待狀態變為 completed。 當狀態為「completed」時,會在「Object Storage」資料夾中建立一個 名為「synthetic_data」的目錄,其中包含用於疑難排解的日誌。

    ibmcloud ilab data get --id DATA_ID
    

    data get 指令的範例。

    ibmcloud ilab data get --id 66a268c170dcb21150050e8e
    

    輸出範例。

    id            66a268c170dcb21150050e8e
    name          test-data
    state         running
    status        Generating data for taxonomy path compositional_skills->STEM->math->area: 12% 12/100 (total qna processed 1/147)
    created_at    2024-07-19T15:40:29.000Z
    taxonomy_id   669a88c9488ee7b95ce8fe05
    
  4. 可選:當狀態為「completed」時,您可以檢視相關指標,例如 使用代幣估算值來計算預估成本

    data get 指令搭配 --output json 選項的範例

    ibmcloud ilab data get --id 66a268c170dcb21150050e8e --output json
    

    JSON 輸出範例

    {
      "created_at": "2026-08-04T15:40:29.000Z",
      "data_metrics": {
        "samples": {
          "knowledge": 30,
          "skills": 70,
          "total": 100
        },
        "tokens": {
          "data_leaf_nodes": {
            "compositional_<taxonomy_path>": 26196,
            "knowledge_<taxonomy_path>": 1228930,
            },
          "data_tokens_total": 5993486,
          "training_estimated": 411435913,
          "training_phases": {
            "phase_1_knowledge": 1389992,
            "phase_2_skills": 410045921
            }
        }
      },
      "id": "66a268c170dcb21150050e8e",
      "last_signal_at": "2026-08-04T17:20:32.000Z",
      "name": "test-data",
      "state": "completed",
      "status": "completed",
      "taxonomy_id": "669a88c9488ee7b95ce8fe05"
    }
    

使用 CLI 匯入您自己的訓練資料

您可能基於以下一項或多項原因,希望匯入自己的資料。

  • 在產生資料時,匯入一份或多份知識與技能文件。
  • 將多個訓練資料批次合併為一個。
  • 產生資料、下載資料,接著對資料的一部分進行處理,然後重新產生資料。
  • 將您先前生成的資料與新匯入的資料合併。
  • 匯入資料、產生訓練資料,然後將該資料與另一輪資料生成結果結合。
  • 將重播緩衝區與從分類法匯入的資料結合。 此功能僅可透過 API 或 CLI 使用。
  • 匯入資料,並根據您的分類法產生訓練資料。 此功能僅可透過 API 或 CLI 使用。

您可以匯入自己的訓練資料,以補充《 Red Hat AI 推論 》中的資料生成功能。 若要匯入您先前自行產生的資料,請指定以下一項或多項:

  • 先前執行任務的資料產生識別碼。
  • 一個包含「.jsonl」知識與技能檔案的 Object Storage 儲存桶。

請依照以下步驟匯入您的資料。

  1. 請列出您的分類法,並註明您想要使用的分類法。
    ibmcloud ilab taxonomy list
    
    輸出範例。
    id                         name       taxonomy_path
    669a88c9488ee7b95ce8fe05   test-tax   taxonomy.tar.gz
    
  2. 若您先前已產生欲使用的資料,請列出這些資料,並記錄下您欲使用的 UUID。 您最多可加入 20 個資料來源。
    ibmcloud ilab data list
    
  3. 根據您的分類法產生資料。 請記下該資料的 ID,以便在下一步中使用。 名稱中請使用英數字元。
    ibmcloud ilab data generate [--name NAME] [--taxonomy-id TAXONOMY-ID] [--internal-ids INTERNAL-IDs]
    
    用於在資料生成時包含多個內部 ID(資料來源)的範例指令。
    ibmcloud ilab data generate --name testdata --taxonomy-id 65005b67-7de4-4216-b23c-ed4342f99c88 --internal-ids 8c6b9224-a4f1-4649-907c-0f11d14cfc59,299ee20c-0b04-4d8e-ad12-a3d98feece40
    

如需更多範例,請參閱下一節:「匯入您自己的訓練資料的範例指令」。

匯入您自己的訓練資料的範例指令

請參閱以下範例指令,了解如何匯入您自己的訓練資料,或將知識與技能檔案新增至資料生成工作。

包含多個內部 ID 的範例指令。

ibmcloud ilab data generate --name testdata --taxonomy-id 65005b67-7de4-4216-b23c-ed4342f99c88 --internal-ids 8c6b9224-a4f1-4649-907c-0f11d14cfc59,299ee20c-0b04-4d8e-ad12-a3d98feece40

以下為範例指令,用於合併多個先前已產生之資料來源(內部 ID)以及來自 Object Storage 儲存桶的 .jsonl 檔案。

ibmcloud ilab data generate \
  --name testdata \
  --taxonomy-id 669a88c9488ee7b95ce8fe05 \
  --internal-ids 8c6b9224-a4f1-4649-907c-0f11d14cfc59,299ee20c-0b04-4d8e-ad12-a3d98feece40 \
  --knowledge-paths PATH \
  --skills-paths PATH \
  --skills-knowledge-cos-bucket STRING \
  --skills-knowledge-cos-bucket-endpoint ENDPOINT

以下為範例指令,用於將先前生成的資料與儲存於 Object Storage 儲存桶中的「.jsonl」知識與技能檔案進行整合。 您也可以選擇指定一個 Object Storage 儲存桶,用來儲存生成的資料 (SDG) 輸出。

ibmcloud ilab data generate \
  --name testdata \
  --taxonomy-id 669a88c9488ee7b95ce8fe05 \
  --internal-ids 8c6b9224-a4f1-4649-907c-0f11d14cfc59 \
  --knowledge-paths PATH \
  --skills-paths PATH \
  --skills-knowledge-cos-bucket STRING \
  --skills-knowledge-cos-bucket-endpoint ENDPOINT
  --output-cos-bucket-string STRING \
  --output-cos-bucket-endpoint ENDPOINT

透過指定內部 ID 來合併資料的範例指令。

ibmcloud ilab data generate \
  --name testdata \
  --internal-ids 8c6b9224-a4f1-4649-907c-0f11d14cfc59,299ee20c-0b04-4d8e-ad12-a3d98feece40 \
  --output-cos-bucket-string STRING \
  --output-cos-bucket-endpoint ENDPOINT

範例指令,用於透過指定內部 ID 來合併先前生成的資料,並納入來自 Object Storage 儲存桶中的技能與知識。

ibmcloud ilab data generate \
  --name testdata \
  --internal-ids 8c6b9224-a4f1-4649-907c-0f11d14cfc59 \
  --knowledge-paths PATH \
  --skills-paths PATH \
  --skills-knowledge-cos-bucket STRING \
  --skills-knowledge-cos-bucket-endpoint ENDPOINT
  --output-cos-bucket-string STRING \
  --output-cos-bucket-endpoint ENDPOINT

以下為從 Object Storage 儲存桶匯入技能與知識的範例指令。

ibmcloud ilab data generate \
  --name testdata \
  --knowledge-paths PATH \
  --skills-paths PATH \
  --skills-knowledge-cos-bucket STRING \
  --skills-knowledge-cos-bucket-endpoint ENDPOINT
  --output-cos-bucket-string STRING \
  --output-cos-bucket-endpoint ENDPOINT

使用 API 產生資料

  1. 請列出您的分類法,並註明您想要使用的分類法。

    範例指令。

    curl -X 'GET' \
    'https://us-east.instructlab.ibm.com/v1/taxonomies' \
    -H 'accept: application/json`
    

    輸出範例。

    {
      "taxonomies": [
        {
          "id": "202a03c4-dcf1-432a-82b7-abecb2e019f7",
          "name": "example-taxonomy-name-1",
          "taxonomy_path_cos": "taxonomies/taxonomy.tar.gz",
          "created_at": "2024-10-23T02:58:50.000Z"
        }
      ]
    }
    
  2. 根據您的分類法產生資料。 請記下該資料的 ID,以便在下一步中使用。 名稱中請使用英數字元。

    範例指令。

    curl -X 'POST' \
      'https://us-east.instructlab.ibm.com/v1/data' \
      -H 'accept: application/json' \
      -H 'Content-Type: application/json' \
      -d '{
      "name": "example-data-1",
      "taxonomy_id": "202a03c4-dcf1-432a-82b7-abecb2e019f7"
    }'
    

    輸出範例。

    {
      "id": "add785e6-a8c3-4f5f-ab89-c506a3f115da",
      "name": "example-data-1",
      "state": "",
      "status": "queued",
      "created_at": "2024-10-23T02:58:50.000Z",
      "last_signal_at": "2026-08-04T17:20:32.000Z",
      "taxonomy_id": "202a03c4-dcf1-432a-82b7-abecb2e019f7",
      "data_metrics": {
        "samples": {
          "additionalProp1": 1,
          "additionalProp2": 2,
          "additionalProp3": 3
        }
      }
    }
    
  3. 請檢查您的資料產生詳情。 請包含該資料的 ID。 狀態為 queued,接著是 running。 請等待狀態變為 completed

    範例指令。

    curl -X 'GET' \
      'https://us-east.instructlab.ibm.com/v1/data/add785e6-a8c3-4f5f-ab89-c506a3f115da' \
      -H 'accept: application/json'
    

    輸出範例。

    {
      "id": "add785e6-a8c3-4f5f-ab89-c506a3f115da",
      "name": "example-data-1",
      "state": "",
      "status": "queued",
      "created_at": "2024-10-23T02:58:50.000Z",
      "last_signal_at": "2026-08-04T17:20:32.000Z",
      "taxonomy_id": "202a03c4-dcf1-432a-82b7-abecb2e019f7",
      "data_metrics": {
        "samples": {
          "additionalProp1": 1,
          "additionalProp2": 2,
          "additionalProp3": 3
        }
      }
    }
    

當狀態為「completed」時,會在「Object Storage」資料夾中建立一個 名為「synthetic_data」的目錄,其中包含用於疑難排解的日誌。

生成資料後,我的 Object Storage 儲存桶中會有哪些內容?

產生資料後,您的 Object Storage 儲存桶中會包含一個名為 synthetic_data 的目錄,其中包含以下檔案。

Artifacts
這些檔案包含每個葉節點上的樣本。 這些資料並非用於訓練模型,而是為了提高可讀性而提供,並可用於檢查 QNA 是否產生了預期的樣本數量。
Logs
這些檔案包含 Red Hat AI Inference 的執行日誌及系統詳細資訊。
knowledge_train_msgs.jsonlskills_train_msgs.jsonl
這些是第一階段和第二階段的訓練檔案,其中包含用於訓練模型的樣本。

若要了解您的資料為何以及如何產生,請參閱 SDG 常見問題解答的社群文件。

.jsonl 格式的範例

請參閱以下關於技能與知識的「.jsonl」結構範例。

{
  "messages": [
    {
      "content": "string",   // The text of the message
      "role": "string"       // The role of the sender (e.g., "system", "user", "assistant")
    }
  ],
  "metadata": "string",      // A JSON-encoded string containing additional info (e.g., num_turns, group, dataset)
  "id": "string"             // A unique identifier for the conversation
}

下一步

從分類法中產生資料後,您即可開始 訓練模型