培训模型 InstructLab

在生成的数据上训练模型,然后测试模型以验证结果。 进一步了解什么是培训。

配置信息或文件无法传递给模型进行微调。

先决条件

  1. 准备分类
  2. 将分类法 tar.gz 添加到 Object Storage 桶中。 您可以使用 CLI 或 用户界面。
  3. 从您的分类中生成数据。

使用控制台对齐模型

  1. 从 InstructLab 项目 页面,单击您的项目 > 已对齐模型 > 对齐。

  2. 输入模型的字母数字名称,并选择要使用的训练数据。

  3. 可选:在开始对齐过程之前,请查看提供的估计费用。

  4. 单击对齐。 状态为“queued,然后是”running。 等待状态为 "completed。 这个过程可能需要几分钟,也可能需要几个小时。 对齐完成后,会在 Object Storage 桶中创建一个 trained_models 目录,其中包含用于故障排除的日志。

使用 CLI 训练模型

  1. 获取要使用的数据的 ID。

    ibmcloud ilab data list
    
  2. 运行该命令,开始用生成的数据训练模型。 注意 ID。

    ibmcloud ilab model train --name testmodel --data-id <data_id>
    
  3. 检查数据生成的详细信息。 包括模型的 ID。 状态为“queued,然后是”running。 等待状态为 "completed。 这个过程可能需要几分钟,也可能需要几个小时。 当状态为 completed 时,在 Object Storage 桶中会创建一个 trained_models 目录,其中包含用于故障排除的日志。

    ibmcloud ilab model get --id <model_id>
    
  4. 可选:当状态为 completed 时,可以查看指标,如 代币估算,以计算估计成本。

    带有 --output json 选项的 model get 命令示例。

    ibmcloud ilab model get --id daef9836-631f-4686-ad18-e0e6a0910f5d --output json
    

    JSON 输出示例

    {
      "base_model": "granite-3.1-8b-starter-v2.1",
      "created_at": "2026-02-18T16:06:05.000Z",
      "data_id": "8b1433c0-e375-4b00-b36d-2ad00697014e",
      "id": "daef9836-631f-4686-ad18-e0e6a0910f5d",
      "last_signal_at": "2026-02-18T17:20:32.000Z",
      "model_metrics": {
        "mmlu": {
          "overall_average": 0.51,
          "scores": {
            "mmlu_abstract_algebra": 0.3,
            "mmlu_anatomy": 0.43,
            "mmlu_astronomy": 0.49
          }
        },
        "mt_bench": {
          "error_rate": 0.01,
          "overall_average": 6.86,
          "scores": {
            "turn_one": 7.25,
            "turn_two": 6.47
          }
        },
        "mt_bench_branch": {
          "error_rate": 0.01,
          "improvements": {
            "compositional_skills/STEM/math/time_series/qna.yaml": 8.67,
            "compositional_skills/extraction/invoice/csv/qna.yaml": 8.4
          },
          "no_change": {
            "compositional_skills/roleplay/explain_like_i_am/primary_schooler/qna.yaml": 0,
            "compositional_skills/writing/freeform/technical/proposal/qna.yaml": 0
          },
          "regressions": {
            "compositional_skills/extraction/inference/qualitative/sentiment/qna.yaml": -9,
            "compositional_skills/extraction/information/named_entities/places/qna.yaml": -9
          }
        },
        "tokens": {
          "training_phases": {}
        }
      },
      "name": "test",
      "state": "completed",
      "status": "completed",
      "taxonomy_id": "e62ccea5-97e6-4568-86bf-2f359987b115"
    }
    

使用API进行模型训练

  1. 获取要使用的数据的 ID。

    示例命令。

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

    示例输出。

    {
      "data": [
        {
          "id": "add785e6-a8c3-4f5f-ab89-c506a3f115da",
          "name": "example-data-1",
          "state": "",
          "status": "queued",
          "created_at": "2024-10-23T02:58:50.000Z",
          "taxonomy_id": "202a03c4-dcf1-432a-82b7-abecb2e019f7",
          "last_signal_at": "2026-02-18T17:20:32.000Z"
        }
      ]
    }
    
  2. 运行该命令,开始用生成的数据训练模型。 注意 ID。

    示例命令。

    curl -X 'POST' \
      'https://us-east.instructlab.ibm.com/v1/models' \
      -H 'accept: application/json' \
      -H 'Content-Type: application/json' \
      -d '{
      "name": "example-model-1",
      "data_id": "add785e6-a8c3-4f5f-ab89-c506a3f115da"
    }'
    

    示例输出。

    {
      "id": "baa8cfb5-e306-4e15-869d-735b74b1919d",
      "name": "example-model-1",
      "state": "",
      "status": "queued",
      "created_at": "2024-10-23T02:58:50.000Z",
      "last_signal_at": "2026-02-18T17:20:32.000Z",
      "data_id": "add785e6-a8c3-4f5f-ab89-c506a3f115da",
      "base_model": "granite-7b",
      "taxonomy_id": "202a03c4-dcf1-432a-82b7-abecb2e019f7",
      "model_metrics": {
        "mmlu": {
          "overall_average": 0.3,
          "scores": {
            "additionalProp1": 1,
            "additionalProp2": 2,
            "additionalProp3": 3
          }
        },
        "mmlu_branch": {
          "error_rate": 0.4,
          "improvements": {
            "additionalProp1": 1,
            "additionalProp2": 2,
            "additionalProp3": 3
          },
          "regressions": {
            "additionalProp1": 1,
            "additionalProp2": 2,
            "additionalProp3": 3
          },
          "no_change": {
            "additionalProp1": 1,
            "additionalProp2": 2,
            "additionalProp3": 3
          }
        },
        "mt_bench": {
          "overall_average": 0.8,
          "error_rate": 0.6,
          "scores": {
            "additionalProp1": 1,
            "additionalProp2": 2,
            "additionalProp3": 3
          }
        },
        "mt_bench_branch": {
          "error_rate": 0.4,
          "improvements": {
            "additionalProp1": 1,
            "additionalProp2": 2,
            "additionalProp3": 3
          },
          "regressions": {
            "additionalProp1": 1,
            "additionalProp2": 2,
            "additionalProp3": 3
          },
          "no_change": {
            "additionalProp1": 1,
            "additionalProp2": 2,
            "additionalProp3": 3
          }
        }
      }
    }
    
  3. 检查数据生成的详细信息。 包括模型的 ID。 状态为“queued,然后是”running。 等待状态为 "completed。 这个过程可能需要几分钟,也可能需要几个小时。

    示例命令。

    curl -X 'GET' \
      'https://us-east.instructlab.ibm.com/v1/models/baa8cfb5-e306-4e15-869d-735b74b1919d' \
      -H 'accept: application/json'
    

    示例输出。

    {
      "id": "baa8cfb5-e306-4e15-869d-735b74b1919d",
      "name": "example-model-1",
      "state": "",
      "status": "queued",
      "created_at": "2024-10-23T02:58:50.000Z",
      "last_signal_at": "2026-02-18T17:20:32.000Z",
      "data_id": "add785e6-a8c3-4f5f-ab89-c506a3f115da",
      "base_model": "granite-7b",
      "taxonomy_id": "202a03c4-dcf1-432a-82b7-abecb2e019f7",
      "model_metrics": {
        "mmlu": {
          "overall_average": 0.3,
          "scores": {
            "additionalProp1": 1,
            "additionalProp2": 2,
            "additionalProp3": 3
          }
        },
        "mmlu_branch": {
          "error_rate": 0.4,
          "improvements": {
            "additionalProp1": 1,
            "additionalProp2": 2,
            "additionalProp3": 3
          },
          "regressions": {
            "additionalProp1": 1,
            "additionalProp2": 2,
            "additionalProp3": 3
          },
          "no_change": {
            "additionalProp1": 1,
            "additionalProp3": 3,
            "additionalProp2": 2
          }
        },
        "mt_bench": {
          "overall_average": 0.8,
          "error_rate": 0.6,
          "scores": {
            "additionalProp1": 1,
            "additionalProp2": 2,
            "additionalProp3": 3
          }
        },
        "mt_bench_branch": {
          "error_rate": 0.4,
          "improvements": {
            "additionalProp1": 1,
            "additionalProp2": 2,
            "additionalProp3": 3
          },
          "regressions": {
            "additionalProp1": 1,
            "additionalProp2": 2,
            "additionalProp3": 3
          },
          "no_change": {
            "additionalProp1": 1,
            "additionalProp2": 2,
            "additionalProp3": 3
          }
        }
      }
    }
    

当状态为 completed 时,在 Object Storage 桶中会创建一个 trained_models 目录,其中包含用于故障排除的日志。

训练结束后,我的 Object Storage 桶里有什么?

训练完模型后,您的 Object Storage 数据桶会包含一个 trained models 目录,其中有以下文件。

Artifacts
这些文件包含第 1 阶段和第 2 阶段的检查点数据以及每个历元的模型。
Eval
这些文件包含 "mmlu、"mmlu_branch、“mt_bench 和”mt_bench_branch 基准的评估指标。
Logs
这些文件包含Red Hat AI InstructLab执行日志和系统详细信息。
Model
这些文件包含以 "safetensors 格式输出的最终模型。 模型将使用该目录的内容。

后续步骤?

可选:您可以部署模型。