从分类法中生成数据,用于 Red Hat AI 推理
数据生成是指根据您在QNA文件中包含的问题和答案,自动生成合成问题和答案的过程。 Red Hat AI Inference 生成数据的过程侧重于内容质量和相关性。
Red Hat AI Inference 模型对齐、合成数据生成和分类法管理功能已弃用,并将于 2026 年 9 月 25 日被移除。 若要继续进行模型定制和对齐工作流,请迁移至 Red Hat® OpenShift® AI On OpenShift。 了解有关 Red Hat® OpenShift® AI的更多信息。
先决条件
使用控制台生成数据
-
在控制台中,打开“Red Hat AI Inference”服务。
-
点击 Red Hat AI 推理 项目 > 您的项目 > 训练数据 > 生成。
-
为训练数据输入一个字母数字名称,并选择要使用的分类法。
-
可选:在开始数据生成流程之前,请查看系统提供的预估成本。
-
单击生成。 状态为
queued,然后是running。 -
等待状态变为
completed。 数据生成完成后,会在 Object Storage 存储桶中创建一个名为synthetic_data的目录,其中包含日志文件。 您可以查看这些日志以进行故障排除或验证。
在控制台中导入您自己的训练数据
您可以导入自己之前生成的数据,以补充 Red Hat AI 推理 中的数据生成。 如果您需要执行以下一项或多项操作,可能需要导入您自己的数据。
- 在生成数据时,导入一份或多份知识与技能文档。
- 将多个训练数据批次合并为一个。
- 生成数据,下载数据,然后对数据的一部分进行处理,并重新生成数据。
- 将您之前生成的数据与新导入的数据合并。
- 导入数据,生成训练数据,然后将这些数据与另一轮数据生成结果相结合。
- 将回放缓冲区与从分类法中导入的数据相结合。 此功能仅可通过 API 或 CLI 访问。
- 从您的分类法中导入数据并生成训练数据。 此功能仅可通过 API 或 CLI 访问。
要导入您自己的数据,您可以参考之前的数据生成任务、从您的 Object Storage 存储桶导入文件,或者从本地计算机上传文件。
请按照以下步骤导入您自己的训练数据。
-
在控制台中,打开“Red Hat AI Inference”服务。
-
点击 Red Hat AI 推理 项目 > 您的项目 > 训练数据 > 导入。
-
请为您的数据输入一个由字母和数字组成的名称。
-
选择以下某个选项。
-
Object Storage: 选择您在 Object Storage 存储桶中的现有文件。
- 选择存储现有数据的实例和存储桶。
- 单击下一步。
- 选择要导入的文件。
-
上传文件:从本地计算机中选择文件。 请注意,文件上传大小上限为 40 Mb。
- 选择一个 Object Storage 实例和存储桶,或创建新的实例和存储桶来存储您的数据。
- 授予“Red Hat AI 推理”对该存储桶的写入权限。
- 可选:存储设置。 请就如何存储您的数据提供以下补充信息。
- 桶的文件路径。
- 存储桶内的目录。
- Object Storage 实例名称。
- 资源组。
- Object Storage 存储桶名称。
- 存储桶的弹性。
- 单击下一步。
- 请从本地计算机中选择要上传的知识和技能文件。
-
-
单击导入。
在控制台中合并训练数据
您可以将数据分成较小、易于管理的块来生成,这样可以避免超时或受系统限制。 然后,您可以将这些较小的数据集合并为一个用于训练的数据集。
请按照以下步骤在控制台中合并数据。
-
在控制台中,打开“Red Hat AI Inference”服务。
-
点击 Red Hat AI 推理 Projects > 您的项目 > 训练数据。
-
从列表中最多选择 20 条训练数据条目,然后点击 “合并”。
-
请为您的数据输入一个由字母和数字组成的名称。
-
选择要存储合并数据的 Object Storage 实例和存储桶。
-
单击创建。
使用命令行界面 (CLI) 生成数据
-
列出您的分类法,并标注出您想要使用的分类法。
ibmcloud ilab taxonomy list示例输出。
id name taxonomy_path 669a88c9488ee7b95ce8fe05 test-tax taxonomy.tar.gz -
根据您的分类法生成数据。 请记下该数据的 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 -
请检查您的数据生成详情。 请包含该数据的ID。 状态为
queued,然后是running。 等待状态变为completed。 当状态为“completed”时,会在 Object Storage 文件夹中创建一个synthetic_data目录,其中包含用于故障排除的日志。ibmcloud ilab data get --id DATA_IDdata 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 -
可选:当状态为
completed时,您可以查看相关指标,例如 代币估算值,用于计算预计成本。带
--output json选项的data get命令示例ibmcloud ilab data get --id 66a268c170dcb21150050e8e --output jsonJSON 输出示例
{ "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 推理 中的数据生成。 若要导入您之前生成的数据,请指定以下一项或多项:
- 先前运行的数据生成ID。
- 一个 Object Storage 存储桶,其中包含
.jsonl的知识和技能文件。
请按照以下步骤导入您的数据。
- 列出您的分类法,并标注出您想要使用的分类法。
示例输出。ibmcloud ilab taxonomy listid name taxonomy_path 669a88c9488ee7b95ce8fe05 test-tax taxonomy.tar.gz - 如果您之前已生成过想要使用的数据,请列出这些数据,并记下您想要使用的 UUID。 最多可包含 20 个数据源。
ibmcloud ilab data list - 根据您的分类法生成数据。 请记下该数据的 ID,以便在下一步中使用。 名称中请使用字母数字字符。
用于在数据生成中包含多个内部 ID(数据源)的示例命令。ibmcloud ilab data generate [--name NAME] [--taxonomy-id TAXONOMY-ID] [--internal-ids INTERNAL-IDs]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 生成数据
-
列出您的分类法,并标注出您想要使用的分类法。
示例命令。
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" } ] } -
根据您的分类法生成数据。 请记下该数据的 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 } } } -
请检查您的数据生成详情。 请包含该数据的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.jsonl和skills_train_msgs.jsonl- 这些是第1阶段和第2阶段的训练文件,其中包含用于训练模型的样本。
要了解您的数据为何以及如何生成,请参阅 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
}
后续步骤
从分类法中生成数据后,您就可以开始 训练模型了。