@volcengine/ark-cli-darwin-x64 0.0.0-stage → 1.0.46-prerelease.dc921200a42d

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. package/LICENSE +201 -0
  2. package/bin/arkcli-darwin-amd64 +4 -0
  3. package/manifest.json +37 -0
  4. package/package.json +20 -4
  5. package/skills/arkcli-agent/SKILL.md +197 -0
  6. package/skills/arkcli-agent/references/activation.md +23 -0
  7. package/skills/arkcli-agent/references/agent.md +442 -0
  8. package/skills/arkcli-agent/references/byok.md +74 -0
  9. package/skills/arkcli-agent/references/context-management.md +61 -0
  10. package/skills/arkcli-agent/references/debug-export.md +27 -0
  11. package/skills/arkcli-agent/references/dream.md +91 -0
  12. package/skills/arkcli-agent/references/evals.md +215 -0
  13. package/skills/arkcli-agent/references/events-chat.md +192 -0
  14. package/skills/arkcli-agent/references/interfaces-gaps.md +55 -0
  15. package/skills/arkcli-agent/references/mcp-vault.md +111 -0
  16. package/skills/arkcli-agent/references/model-config.md +46 -0
  17. package/skills/arkcli-agent/references/self-hosted.md +47 -0
  18. package/skills/arkcli-agent/references/session-files.md +157 -0
  19. package/skills/arkcli-agent/references/session-upgrade.md +64 -0
  20. package/skills/arkcli-agent/references/skills.md +94 -0
  21. package/skills/arkcli-agent/references/todo-write.md +37 -0
  22. package/skills/arkcli-agent/references/vision-agent.md +92 -0
  23. package/skills/arkcli-api-explorer/SKILL.md +114 -0
  24. package/skills/arkcli-api-explorer/references/arkcli-api.md +185 -0
  25. package/skills/arkcli-api-explorer/references/evals.md +92 -0
  26. package/skills/arkcli-auth/SKILL.md +127 -0
  27. package/skills/arkcli-auth/references/api-key-query.md +74 -0
  28. package/skills/arkcli-auth/references/arkcli-auth-init-volc.md +58 -0
  29. package/skills/arkcli-auth/references/arkcli-auth-login.md +125 -0
  30. package/skills/arkcli-auth/references/arkcli-auth-status.md +41 -0
  31. package/skills/arkcli-auth/references/arkcli-auth-whoami.md +128 -0
  32. package/skills/arkcli-auth/references/auth-modes.md +101 -0
  33. package/skills/arkcli-auth/references/identity-resolution.md +74 -0
  34. package/skills/arkcli-auth/references/realname-gate.md +23 -0
  35. package/skills/arkcli-auth/scripts/key-metadata.jq +34 -0
  36. package/skills/arkcli-billing/SKILL.md +105 -0
  37. package/skills/arkcli-billing/references/arkcli-billing-list.md +247 -0
  38. package/skills/arkcli-billing/references/evals.md +50 -0
  39. package/skills/arkcli-chat/SKILL.md +229 -0
  40. package/skills/arkcli-chat/references/arkcli-chat.md +300 -0
  41. package/skills/arkcli-chat/references/caching-thinking.md +138 -0
  42. package/skills/arkcli-chat/references/chat-meta.md +77 -0
  43. package/skills/arkcli-chat/references/evals.md +60 -0
  44. package/skills/arkcli-chat/references/stream-events.md +163 -0
  45. package/skills/arkcli-chat/references/text-format.md +160 -0
  46. package/skills/arkcli-chat/references/tools.md +130 -0
  47. package/skills/arkcli-code-example/SKILL.md +73 -0
  48. package/skills/arkcli-code-example/assets/demo-code/examples.json +14 -0
  49. package/skills/arkcli-code-example/assets/demo-code/go/main.go +53 -0
  50. package/skills/arkcli-code-example/assets/demo-code/python.py +26 -0
  51. package/skills/arkcli-code-example/references/arkcli-code-example.md +146 -0
  52. package/skills/arkcli-code-example/references/evals.md +12 -0
  53. package/skills/arkcli-config/SKILL.md +129 -0
  54. package/skills/arkcli-config/references/arkcli-config-init.md +49 -0
  55. package/skills/arkcli-config/references/arkcli-config-profile.md +54 -0
  56. package/skills/arkcli-config/references/evals.md +87 -0
  57. package/skills/arkcli-connect/SKILL.md +62 -0
  58. package/skills/arkcli-connect/references/arkcli-connect.md +129 -0
  59. package/skills/arkcli-connect/references/evals.md +117 -0
  60. package/skills/arkcli-custommodel/SKILL.md +177 -0
  61. package/skills/arkcli-custommodel/references/arkcli-custommodel-available-quantizations.md +28 -0
  62. package/skills/arkcli-custommodel/references/arkcli-custommodel-delete.md +36 -0
  63. package/skills/arkcli-custommodel/references/arkcli-custommodel-get.md +45 -0
  64. package/skills/arkcli-custommodel/references/arkcli-custommodel-list.md +72 -0
  65. package/skills/arkcli-custommodel/references/arkcli-custommodel-quantize.md +58 -0
  66. package/skills/arkcli-custommodel/references/arkcli-custommodel-update.md +47 -0
  67. package/skills/arkcli-custommodel/references/arkcli-custommodel-upload.md +60 -0
  68. package/skills/arkcli-custommodel/references/evals.md +58 -0
  69. package/skills/arkcli-datasets/SKILL.md +41 -0
  70. package/skills/arkcli-datasets/references/commands.md +91 -0
  71. package/skills/arkcli-datasets/references/evals.md +30 -0
  72. package/skills/arkcli-deploy/SKILL.md +128 -0
  73. package/skills/arkcli-deploy/references/arkcli-deploy.md +138 -0
  74. package/skills/arkcli-deploy/references/evals.md +117 -0
  75. package/skills/arkcli-docs/SKILL.md +232 -0
  76. package/skills/arkcli-docs/references/commands.md +225 -0
  77. package/skills/arkcli-docs/references/evals.md +200 -0
  78. package/skills/arkcli-docs/references/failure-modes.md +77 -0
  79. package/skills/arkcli-doctor/CONTRIBUTING.md +202 -0
  80. package/skills/arkcli-doctor/SKILL.md +302 -0
  81. package/skills/arkcli-doctor/references/error-codes.md +504 -0
  82. package/skills/arkcli-doctor/references/evals.md +70 -0
  83. package/skills/arkcli-doctor/references/scope-account.md +205 -0
  84. package/skills/arkcli-doctor/references/scope-cli.md +217 -0
  85. package/skills/arkcli-doctor/references/scope-infer-endpoint.md +214 -0
  86. package/skills/arkcli-doctor/references/scope-metrics.md +197 -0
  87. package/skills/arkcli-doctor/references/scope-model.md +241 -0
  88. package/skills/arkcli-doctor/references/scope-report.md +242 -0
  89. package/skills/arkcli-doctor/references/verify-origin.md +142 -0
  90. package/skills/arkcli-gen/SKILL.md +348 -0
  91. package/skills/arkcli-gen/references/arkcli-gen-audio.md +125 -0
  92. package/skills/arkcli-gen/references/arkcli-gen.md +297 -0
  93. package/skills/arkcli-gen/references/evals.md +93 -0
  94. package/skills/arkcli-gen/references/gen-meta.md +182 -0
  95. package/skills/arkcli-gen/references/image-stream.md +105 -0
  96. package/skills/arkcli-gen/references/intent-and-validation.md +177 -0
  97. package/skills/arkcli-helper/SKILL.md +233 -0
  98. package/skills/arkcli-helper/references/arkcli-helper.md +372 -0
  99. package/skills/arkcli-helper/references/evals.md +110 -0
  100. package/skills/arkcli-infer-endpoint/SKILL.md +141 -0
  101. package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-create.md +142 -0
  102. package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-delete.md +68 -0
  103. package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-get.md +60 -0
  104. package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-list.md +142 -0
  105. package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-start.md +34 -0
  106. package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-stop.md +34 -0
  107. package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-update.md +76 -0
  108. package/skills/arkcli-infer-endpoint/references/evals.md +24 -0
  109. package/skills/arkcli-models/SKILL.md +314 -0
  110. package/skills/arkcli-models/references/arkcli-models-activate.md +110 -0
  111. package/skills/arkcli-models/references/arkcli-models-get.md +100 -0
  112. package/skills/arkcli-models/references/arkcli-models-list.md +73 -0
  113. package/skills/arkcli-models/references/arkcli-models-performance.md +32 -0
  114. package/skills/arkcli-models/references/arkcli-models-scenario-table.md +83 -0
  115. package/skills/arkcli-models/references/arkcli-models-search.md +208 -0
  116. package/skills/arkcli-models/references/evals.md +88 -0
  117. package/skills/arkcli-onboard/SKILL.md +81 -0
  118. package/skills/arkcli-onboard/references/evals.md +107 -0
  119. package/skills/arkcli-plans/SKILL.md +208 -0
  120. package/skills/arkcli-plans/references/arkcli-plans-agreement-signing.md +74 -0
  121. package/skills/arkcli-plans/references/arkcli-plans-buy.md +209 -0
  122. package/skills/arkcli-plans/references/arkcli-plans-get.md +96 -0
  123. package/skills/arkcli-plans/references/arkcli-plans-harness-status.md +149 -0
  124. package/skills/arkcli-plans/references/arkcli-plans-model-apply.md +56 -0
  125. package/skills/arkcli-plans/references/arkcli-plans-model-list.md +119 -0
  126. package/skills/arkcli-plans/references/arkcli-plans-personal-rotate-apikey.md +83 -0
  127. package/skills/arkcli-plans/references/arkcli-plans-renew.md +134 -0
  128. package/skills/arkcli-plans/references/arkcli-plans-team-rotate-apikey.md +108 -0
  129. package/skills/arkcli-plans/references/arkcli-plans-team-seat-assign.md +142 -0
  130. package/skills/arkcli-plans/references/arkcli-plans-team-seat-list.md +115 -0
  131. package/skills/arkcli-plans/references/evals.md +224 -0
  132. package/skills/arkcli-pricing/SKILL.md +125 -0
  133. package/skills/arkcli-pricing/references/arkcli-pricing-models.md +260 -0
  134. package/skills/arkcli-pricing/references/arkcli-pricing-plans.md +147 -0
  135. package/skills/arkcli-profile/SKILL.md +188 -0
  136. package/skills/arkcli-profile/references/arkcli-profile-create.md +101 -0
  137. package/skills/arkcli-profile/references/arkcli-profile-keys.md +100 -0
  138. package/skills/arkcli-profile/references/arkcli-profile-set-default.md +81 -0
  139. package/skills/arkcli-profile/references/evals.md +5 -0
  140. package/skills/arkcli-resources/SKILL.md +122 -0
  141. package/skills/arkcli-resources/references/arkcli-resources-list.md +140 -0
  142. package/skills/arkcli-shared/SKILL.md +236 -0
  143. package/skills/arkcli-shared/references/execution-context.md +108 -0
  144. package/skills/arkcli-shared/references/global-flags.md +45 -0
  145. package/skills/arkcli-shared/references/profile-defaults.md +57 -0
  146. package/skills/arkcli-shared/references/troubleshooting.md +36 -0
  147. package/skills/arkcli-shared/references/update.md +72 -0
  148. package/skills/arkcli-train-finetune/SKILL.md +123 -0
  149. package/skills/arkcli-train-finetune/references/ark-finetune-sdk.md +133 -0
  150. package/skills/arkcli-train-finetune/references/create.md +262 -0
  151. package/skills/arkcli-train-finetune/references/download.md +44 -0
  152. package/skills/arkcli-train-finetune/references/evals.md +14 -0
  153. package/skills/arkcli-train-finetune/references/export-deploy.md +177 -0
  154. package/skills/arkcli-train-finetune/references/job-configuration.md +122 -0
  155. package/skills/arkcli-train-finetune/references/list.md +78 -0
  156. package/skills/arkcli-train-finetune/references/manage.md +128 -0
  157. package/skills/arkcli-train-finetune/references/rl-plugins.md +77 -0
  158. package/skills/arkcli-train-finetune/references/testing-debug-monitoring.md +137 -0
  159. package/skills/arkcli-understand/SKILL.md +131 -0
  160. package/skills/arkcli-understand/references/arkcli-understand-asr.md +53 -0
  161. package/skills/arkcli-understand/references/arkcli-understand.md +268 -0
  162. package/skills/arkcli-understand/references/evals.md +119 -0
  163. package/skills/arkcli-understand/references/sub-skills.md +141 -0
  164. package/skills/arkcli-usage/SKILL.md +166 -0
  165. package/skills/arkcli-usage/references/arkcli-usage-balance.md +217 -0
  166. package/skills/arkcli-usage/references/arkcli-usage-plan-details.md +136 -0
  167. package/skills/arkcli-usage/references/arkcli-usage-plan.md +166 -0
  168. package/skills/arkcli-usage/references/arkcli-usage-seats.md +194 -0
  169. package/skills/arkcli-usage/references/arkcli-usage-stats.md +195 -0
  170. package/skills/arkcli-usage/references/evals.md +30 -0
  171. package/README.md +0 -3
@@ -0,0 +1,262 @@
1
+ # 创建精调任务
2
+
3
+ `--train-file` 与 `--validation-file` 都会在在线 `--estimate` 或真实提交前上传到 TOS;最终 `data.TrainingSet` / `data.ValidationSet` 使用 `TosBucket` 和 `TosPaths`,不把本地路径交给服务端。`uploaded_files` 包含两组上传记录,训练 token 预估只使用训练集。即使训练集已是 TOS 引用,本地验证集也会上传;上传失败时停止提交。`--estimate` 会上传文件,但不会创建训练任务。
4
+
5
+ > **执行面:** `train finetune create` / `--estimate` 都是控制面命令,认证走 SSO/STS;不要传
6
+ > `--api-key` / `--base-url`(控制面会 fail-fast)。`.env` 里的 API Key 只能用于数据面推理,不能用于训练创建或
7
+ > TOS 上传。本地训练/验证文件由 CLI 通过 `--train-file` / `--validation-file` 自动上传到 Ark 托管 TOS。
8
+
9
+ 创建输出仍为 `id` 和 `url`;火山链接继续使用 `console.volcengine.com`。
10
+
11
+ - 参考以下顺序完成创建;当用户提供信息不足时,查询并给出建议。
12
+ - 若参数已明确,允许直接执行 `create --estimate` 获取在线 Token 与费用估算;估算失败或信息不足时,再按错误类型补查。
13
+ - 真实 create 必须等待用户确认。
14
+
15
+ 训练数据格式、参数含义等知识缺口可转 [`arkcli-docs`](../../arkcli-docs/SKILL.md),搜索后读取返回的正文;实时能力、价格、资源权限仍以本流程的查询命令为准,文档不能代替创建确认。
16
+
17
+ ## 1. 查询模型、训练方法、价格与部署能力
18
+
19
+ | 命令 | 何时用 | 常用参数 |
20
+ | :------------------------------------- | :------------------------- | :------------------------------------------------------ |
21
+ | `arkcli models search <keyword>` | 找候选基础模型(是否支持精调的信息仅供参考) | `--modality`、`--strict-filter` |
22
+ | `arkcli models versions <model>` | 找基础模型下的模型版本(是否支持精调的信息仅供参考) | 无 |
23
+ | `arkcli train finetune capability get` | 查某模型版本支持的训练方法(以此为准) | `--model`、`--version` |
24
+ | `arkcli train finetune pricing` | 按 Token 或实例计费查询训练价格 | `--model`、`--model-version`、`--type`、`--billing-method` |
25
+ | `arkcli train finetune resource-group list` | 查询资源组权限、任务资源需求和匹配结果 | `--model`、`--model-version`、`--type`、`--only-matched` |
26
+ | `arkcli infer endpoint capability get` | 查询基础模型(model+version)、自定义模型(custom-model-id)支持的推理部署方式 | `--model`、`--version` 、`--model-id` |
27
+
28
+ 这些命令的 flags 会随 CLI 演进;常规场景可直接按本 reference 使用,遇到报错或不确定再查 `--help`
29
+
30
+ 根据用户目标搜索候选模型。选定模型后,查询:
31
+
32
+ ```bash
33
+ arkcli models versions <model>
34
+ arkcli train finetune capability get --model <model> --version <version>
35
+ arkcli train finetune pricing --model <model> --type <type>
36
+ # token 是默认计费方式;不要改用通用 arkcli pricing models
37
+ # 实例计费必须使用精确版本和训练方法;自定义超参需与后续创建保持一致
38
+ arkcli train finetune pricing --model <model> --model-version <version> --type <type> \
39
+ --billing-method instance --hyperparameters '{"epoch":"3"}'
40
+ arkcli infer endpoint capability get --model <model> --version <version>
41
+ ```
42
+
43
+ 向用户说明:
44
+
45
+ - 该版本支持哪些训练方法。
46
+ - 选定训练方法的计价单位和价格。
47
+ - `token` 返回按 Token 计费项;`instance` 会先校验该模型版本和训练方法支持 Instance,
48
+ 再返回资源模板、机型单价、角色数量对应的小时价及整体小时价范围。只有
49
+ `price_complete=true` 时价格范围才是完整的;否则必须报告 `missing_flavor_ids`,不得按 0 元解释。
50
+ - 选定版本及训练方法,训练后支持的部署方式。
51
+ - 使用`--model`、`--version`或`--model-id`查询到的是基础模型的部署能力,为精调产物的潜在部署能力,不保证具备完全相同的能力。
52
+ - 训练完成后的实际部署方式需要用 `--custom-model-id` 再查,并由部署 skill 继续处理。
53
+
54
+ 默认训练类型与训练方法:
55
+
56
+ - 用户未指定训练类型(`--type`)时,默认 SFT。
57
+ - 用户未指定 LoRA 还是全量训练等训练方法时,默认 LoRA。
58
+ - 因此,在模型支持 LoRA 时,默认选择 LoRA 对应的 `--type`;若模型不支持 LoRA,再展示可用训练类型和训练方法并请用户选择。
59
+ - 用户明确要求全量训练时,使用该训练类型对应的全量训练 `--type`,并在继续前提示:当前 ArkCLI 还不支持对全量训练产物进行部署,训练完成后的部署需要到控制台完成。
60
+
61
+ 若用户未指定模型,展示少量相关候选项并请用户选择,不要自行提交高成本任务。
62
+
63
+ ## 2. ArkCLI 能力回退
64
+
65
+ 精调 SDK 是 fallback,不是默认入口。
66
+
67
+ 先检查当前版本的 `arkcli train finetune`、`arkcli models finetune-config` 和相关 `--help`。ArkCLI 能完整表达用户配置时继续标准流程;不能表达复杂强化学习、自定义 job、grader、rollout plugin 或自定义训练代码时,暂停并询问:
68
+
69
+ > 当前配置超出 ArkCLI 标准创建能力。是否转交扩展精调流程继续处理?
70
+
71
+ 只有用户明确确认后,才读取 [`ark-finetune-sdk.md`](ark-finetune-sdk.md),并停止执行本 reference 的后续创建步骤。安装、鉴权、配置和提交均由该文档负责;用户拒绝时不要安装或提交。
72
+
73
+ ## 常用创建参数
74
+
75
+ 检查用户要求能否由当前 ArkCLI flags 完整表达:
76
+
77
+ ```bash
78
+ arkcli train finetune --help
79
+ arkcli train finetune create --help
80
+ ```
81
+
82
+ <br />
83
+
84
+ `arkcli train finetune create` 的高频参数:
85
+
86
+ | 参数 | 说明 |
87
+ | ------------------------------------------------------------ | ------------------------------------------------------------ |
88
+ | `--name` | 任务名称 |
89
+ | `--description` | 任务描述 |
90
+ | `--model` + `--model-version` | 基于基础模型训练 |
91
+ | `--model-id` | 基于已有 custom model 继续训练;与 `--model/--model-version` 互斥 |
92
+ | `--type` | 训练类型;未指定时按“默认 SFT + LoRA”处理 |
93
+ | `--train-file` | 本地训练文件,可重复 |
94
+ | `--train-tos-uri` | 已上传训练数据 TOS URI |
95
+ | `--train-dataset <dataset-id>:<version-id>` | 已有训练 Dataset;旧的独立 `--train-dataset-version` 仍兼容 |
96
+ | `--train-path <json>` | 普通训练 Dataset,可重复;每项设置 `dataset_id`、`dataset_version_id`,最多再设置 `multiplier`/`sample_count` 之一 |
97
+ | `--preset-dataset <json>` | 模型支持的预置数据集,可重复;每项设置 `dataset_version_id`,并在 `inject_multiplier`/`inject_sample_count` 中二选一 |
98
+ | `--validation-file` | 本地验证文件,可重复 |
99
+ | `--validation-tos-uri` | 已上传验证集 TOS URI |
100
+ | `--validation-dataset <dataset-id>:<version-id>` | 已有验证 Dataset;旧的独立版本参数仍兼容 |
101
+ | `--validation-percentage` | 从训练集中切分验证集;与显式验证集互斥 |
102
+ | `--hyperparameters` | JSON 字符串或 `@file`;值按后端要求传字符串 |
103
+ | `--epochs`、`--lr`、`--lora-rank`、`--beta` | 旧式快捷参数;可用时会合并进 hyperparameters,快捷参数冲突时优先 |
104
+ | `--max-invalid-records-ratio`、`--max-invalid-records-number` | 数据容错 |
105
+ | `--shuffle-random-seed` | 数据顺序控制:随机、不打乱或固定种子 |
106
+ | `--save-model-limit` | 保留训练产物数量 |
107
+ | `--enable-trajectory` | RL 轨迹日志;需要任务和项目配置支持 |
108
+ | `--pipeline` | RL pipeline 配置文件;若需要 Python plugin 且 CLI 不能表达,按“ArkCLI 能力回退”处理 |
109
+ | `--resource-group` | `resource-group list` 返回的稳定资源组 ID;按不透明字符串原样传入,CLI 会在 estimate 和真实提交前重新校验权限、任务资源需求与可用性 |
110
+ | `--yes` | 跳过 CLI 确认;Agent 只能在用户二次确认/明确表示直接创建后添加 |
111
+
112
+ ## 3. 获取并校验训练数据
113
+
114
+ 本 skill 不创建或维护平台 Dataset;只有独立 Dataset 生命周期操作或不涉及精调任务的独立校验才转 [`../../arkcli-datasets/SKILL.md`](../../arkcli-datasets/SKILL.md)。精调任务创建或预检所需的本地/TOS 数据校验继续留在本流程,直接使用下方 `arkcli dataset validate`。创建任务可接受:
115
+
116
+ - 本地训练文件
117
+ - 已上传的 TOS URL
118
+ - 平台 Dataset 的 `<dataset-id>:<version-id>` 引用
119
+ - 模型配置明确支持的 preset Dataset
120
+
121
+ 同一训练集或验证集只能选择一种普通数据来源;Dataset 与对应的 TOS/本地文件参数互斥。单个普通 Dataset 默认 `Multiplier=1`;需要重复引用、倍率或采样数时使用可重复的 `--train-path`。每项最多设置 `multiplier`/`sample_count` 之一,均不设置时仍默认 `Multiplier=1`:
122
+
123
+ ```bash
124
+ --train-path '{"dataset_id":"ds-...","dataset_version_id":"dsv-...","multiplier":2}'
125
+ --train-path '{"dataset_id":"ds-...","dataset_version_id":"dsv-...","sample_count":500}'
126
+ ```
127
+
128
+ `--train-path` 不能和 `--train-dataset`、训练 TOS 或本地文件混用。preset 使用可重复 JSON,`inject_multiplier` 与 `inject_sample_count` 也必须且只能设置一个:
129
+
130
+ ```bash
131
+ --preset-dataset '{"dataset_version_id":"dsv-...","inject_sample_count":100}'
132
+ ```
133
+
134
+ CLI 会根据精确模型版本和训练类型检查 Dataset schema,并拒绝模型配置未声明支持的 preset。
135
+
136
+ 用户未提供数据时,请其提供训练集文件或现有数据引用。
137
+
138
+ ### 使用 CLI 校验数据
139
+
140
+ 本 skill 内直接使用 `arkcli dataset validate` 校验本地文件或 TOS 数据,无需为此创建 Dataset 或切换到数据集管理流程。先确认模型、精确版本及实际训练 `--type`,与后续创建保持一致;查看当前命令支持的参数:
141
+
142
+ ```bash
143
+ arkcli dataset validate --help
144
+
145
+ # 本地 JSONL;多个文件重复 --local
146
+ arkcli dataset validate --model <model> --model-version <version> --type <type> \
147
+ --local <train.jsonl>
148
+
149
+ # 已有 TOS 数据;多个 URI 重复 --tos-uri
150
+ arkcli dataset validate --model <model> --model-version <version> --type <type> \
151
+ --tos-uri tos://<bucket>/<path>
152
+ ```
153
+
154
+ - CLI 自动读取模型配置中的 `dataset_schema`,无需 Agent 先查格式文档、维护静态 schema 映射或自写校验器。训练集和显式验证集都要覆盖;可按数据集分别执行,便于归属结果。
155
+ - `--local` 与 `--tos-uri` 二选一。本地文件会上传并触发服务端校验,不是离线检查;执行前按主 skill 的上传确认规则处理。已有上传授权时不重复询问。
156
+ - TOS URI 必须可列举且包含 `.jsonl` 对象;同一次调用的多个 URI 必须属于同一 bucket,不能使用 `ds-ds/*` 上传暂存路径。以当前 `--help` 为准。
157
+ - 当前命令不直接接收 `ds-*/dsv-*`、preset 或 `--model-id`。已有 Dataset/preset 继续走创建流程的 schema/能力检查;需要内容校验时使用可确认来源的本地文件或受支持 TOS URI。自定义模型续训不能猜测基础模型映射,未确认校验上下文时说明能力缺口。
158
+
159
+ ### 校验结果与失败处理
160
+
161
+ 以 CLI 返回的服务端校验任务结果为准,汇总实际校验的数据来源、模型/版本/训练类型、成功或失败状态,以及返回的错误摘要、行号或统计信息;未返回的字段不补造,不输出完整样本。
162
+
163
+ - 所有目标数据校验成功后,才报告数据校验通过。`--dry-run` 只预览执行计划,不访问网络、不上传、不做真实校验;参数解析成功或 `create --estimate` 成功也不能替代数据校验结果。
164
+ - 校验失败时,根据返回的错误定位;需要理解字段要求或修复数据时,再读取火山方舟[模型精调数据集格式说明](https://www.volcengine.com/docs/82379/1099461?lang=zh)对应章节。修复后对相同模型配置重新执行 `dataset validate`。
165
+ - 命令不可用、鉴权/网络失败、模型未提供 schema 或校验未完成时,明确“未完成校验”及原因,不将基础检查、文档比对或用户确认格式当作校验通过。只请求补充缺失信息,不自动安装/升级 CLI 或提交训练。
166
+
167
+ Token 数处理:
168
+
169
+ - 环境中存在与目标模型匹配的 tokenizer 时,可以给出本地估算并注明 tokenizer 和误差来源。
170
+ - 没有匹配 tokenizer 时,不要用字符数冒充精确 token 数;将 token 统计交给在线 `--estimate`。
171
+
172
+ ## 4. 查询并确认超参数
173
+
174
+ | 命令 | 何时用 | 常用参数 |
175
+ | :------------------------------ | :-------------------------------- | :--------------------------- |
176
+ | `arkcli models finetune-config` | 确定模型版本和训练方法后查支持的超参和 `dataset_schema` | `<model> <version>`、`--type` |
177
+ | `arkcli train finetune create` | 估算或创建任务 | `--estimate` 在线估算,确认后真实提交 |
178
+
179
+ 打印参数名、默认值、范围或枚举、简短说明。不要依赖记忆填写字段名。
180
+
181
+ 显式传入 `--type` 时,`models finetune-config` 会使用与 `train finetune capability get` 相同的权威 `FinetuneTypes`,校验精确的模型版本是否支持该训练方法。不支持时会在读取配置 schema 前返回 validation error;不要继续 estimate 或创建任务。
182
+
183
+ - 用户要求自定义超参时,请其确认覆盖值。
184
+ - 根据用户选择的模型、偏好、数据量、效果指标、日志等信息,分析并帮助用户配置超参;如果没有更优配置,使用默认值。
185
+ - 拒绝超出 schema 的值
186
+
187
+ 通用训练配置优先从 finetune-config 的 schema 读取默认值和范围。本 reference 只记稳定语义:
188
+
189
+ - 训练轮数、学习率、batch size、LoRA rank/alpha/dropout、DPO beta、RL 步数等字段名可能随训练方法不同而变化。
190
+ - `save_model_limit` 决定保留多少个训练产物;默认值和上限以当前 CLI/API 为准。
191
+ - 数据容错和 shuffle seed 属于数据配置,不是模型超参;预览时和超参分开展示。
192
+
193
+ ## 5. 查询并选择稳定资源组(按需)
194
+
195
+ 用户要求使用资源组时,先用与后续创建完全一致的模型、训练类型和超参数查询:
196
+
197
+ ```bash
198
+ arkcli train finetune resource-group list \
199
+ --model <model> --model-version <version> --type <type> \
200
+ --hyperparameters '<same-json-as-create>' --only-matched
201
+ ```
202
+
203
+ 基于已有自定义模型继续训练时改用 `--model-id <cm-id>`,不要同时传
204
+ `--model/--model-version`。查询结果的解释规则:
205
+
206
+ - `allowed=false` 表示当前账号或项目未开通精调资源组能力;不要给 create 添加
207
+ `--resource-group`。
208
+ - `candidate_templates` 是按精确模型、版本、训练类型和超参数解析出的任务资源需求;
209
+ 不要根据资源组名称或总容量自行猜测需求。
210
+ - 只有 `items[].matched=true` 的资源组才能用于当前任务。未匹配项的
211
+ `unmatch_reasons` 是权威原因;不要绕过或静默忽略。
212
+ - 多个资源组匹配时,展示名称、ID、命中模板和容量摘要,让用户选择;不要擅自选择。
213
+ - 选择后在 estimate 和真实创建命令中都传入 `--resource-group <resource-group-id>`。CLI 会在两次
214
+ 执行前重新查询权限、候选模板和可用性,并在资源组不再匹配时 fail-fast。
215
+ - 如果指定资源组不存在或不匹配,错误会给出权威的不匹配原因,并列出当前任务所有
216
+ `matched=true` 的资源组名称和 ID;没有可用项时会明确显示“无”。
217
+
218
+ `resource-group list` 是在线只读预检,不是 Client Preview;不要给它添加
219
+ `--dry-run`。资源组查询与 create 的超参数必须完全一致,包括 `--epochs`、`--lr`、
220
+ `--lora-rank`、`--beta` 等快捷覆盖值。
221
+
222
+ ## 6. 创建预览 校验配置、数据、Token与费用
223
+
224
+ | 命令 | 何时用 | 常用参数 |
225
+ | :----------------------------- | :------ | :--------------------- |
226
+ | `arkcli train finetune create` | 估算或创建任务 | `--estimate` 在线估算,确认后真实提交 |
227
+
228
+ 根据 `arkcli train finetune create --help` 组装命令,先执行 `--estimate`。这是在线估算而非 Client Preview;本地文件上传如需确认,先获得用户授权。
229
+
230
+ 预览至少汇总:
231
+
232
+ - job 名称、模型、版本、训练方法
233
+ - 若采用默认:说明“未指定训练类型和训练方法,默认 SFT + LoRA”
234
+ - 若采用全量训练:再次提示“当前 ArkCLI 还不支持对全量训练产物进行部署,训练完成后的部署需要到控制台完成”
235
+ - 训练和验证数据来源、`dataset validate` 的实际结果及未覆盖项
236
+ - 自定义超参、推荐超参及其余参数采用默认值的说明
237
+ - 服务端统计的样本或 token 信息
238
+ - 计价单位、单价和预估费用
239
+ - 使用资源组时:资源组名称、ID、命中的候选资源模板和预检结果
240
+ - 数据容错、随机种子、产物数量等非默认配置
241
+
242
+ 如果 estimate 没有返回某个字段,明确说明“未提供”,不要自行补造。
243
+
244
+ ## 7. 最终确认并创建
245
+
246
+ - 认证通过后生成并在本次创建流程中复用 `ARKCLI_SKILL_FLOW_ID=ftf_<ULID>`。
247
+ - 按 shared 单命令前缀,在第一条创建业务命令前执行
248
+ `arkcli train finetune _report-activity --action create_flow_enter`。
249
+ - 仅在 `dataset validate` 或其他明确的服务端数据校验覆盖本次目标数据并成功后执行 `--action data_validation_success`;普通参数解析、文档比对、Client Preview `--dry-run` 和仅有 Token/费用估算结果均不上报。
250
+
251
+ 把完整预览呈现给用户,明确询问是否创建。只有用户确认后,才执行真实创建命令;非交互执行按 CLI 要求添加 `--yes`。
252
+
253
+ 成功后返回:
254
+
255
+ - job id、名称和初始阶段
256
+ - 模型、版本、训练方法
257
+ - 关键数据与超参数摘要
258
+ - 使用资源组时返回已选择的资源组 ID,并说明提交前预检已通过
259
+ - 控制台 URL(若 CLI 返回)
260
+ - 后续查询命令,例如 `arkcli train finetune get <job-id>` 或 `watch <job-id>`
261
+
262
+ 不要在本流程中自动部署模型。
@@ -0,0 +1,44 @@
1
+ # 下载精调任务数据
2
+
3
+ 用户想找回某个精调任务实际使用的训练集 / 验证集时,使用:
4
+
5
+ ```bash
6
+ arkcli train finetune download <job-id> [--set all|train|validation] [--output-dir <dir>]
7
+ ```
8
+
9
+ 该命令从 `GetModelCustomizationJob` 的 `Data.TrainingSet` / `Data.ValidationSet` 解析数据来源,
10
+ 再从 TOS 下载到本地。默认输出目录是 `./<job-id>-data`,默认下载训练集和验证集。
11
+
12
+ ## 支持的来源
13
+
14
+ | Job Data 字段 | 行为 |
15
+ |---|---|
16
+ | `TosBucket` + `TosPaths` | 按原 TOS 对象路径下载,保留相对路径 |
17
+ | `Datasets[]`(`DatasetId` + `DatasetVersionId`) | 先查 Dataset 版本存储位置,再下载其 `Storage.Bucket` / `Storage.Prefixes` |
18
+ | `PresetDatasets[]` | 平台托管预设数据,不可下载;结果里列为 `skipped` |
19
+ | `LocalFiles[]` | 仅记录创建时的本机路径,服务端不保留文件内容;结果里列为 `skipped` |
20
+
21
+ 如果训练集/验证集同时存在多种来源,命令会分别下载到 `train/` 或 `validation/` 子目录;
22
+ 同一集合有多个来源时再追加 `01/`、`02/` 等序号目录,避免同名文件冲突。
23
+
24
+ ## 示例
25
+
26
+ ```bash
27
+ # 下载训练集和验证集
28
+ arkcli train finetune download mcj-20260722153822-jqvd
29
+
30
+ # 只下载训练集到指定目录
31
+ arkcli train finetune download mcj-20260722153822-jqvd --set train --output-dir ./mcj-data
32
+
33
+ # 只下载验证集
34
+ arkcli train finetune download mcj-20260722153822-jqvd --set validation
35
+ ```
36
+
37
+ 结果包含每个文件的 `object_key`、本地 `path`、`size_bytes`,以及每个集合的 `bucket` / `prefixes`。
38
+
39
+ ## 边界
40
+
41
+ - 这是控制面任务加 TOS 读取,不是 `--api-key` 数据面调用;不要传 `--api-key` / `--base-url`。
42
+ - 输出目录已有同名文件时命令会失败,避免静默覆盖本地文件;换一个 `--output-dir` 再试。
43
+ - 如果 job 只有 `PresetDatasets` 或 `LocalFiles`,没有可下载的 TOS 对象,命令会返回明确的无可下载数据错误。
44
+ - 不要根据任务名、模型名或历史目录猜测数据位置;以 job 返回的 `TosBucket` / `TosPaths` 或 Dataset 版本为准。
@@ -0,0 +1,14 @@
1
+ # 精调创建回归用例
2
+
3
+ 使用用户明确授权的目标模型、版本、类型和数据;以下用例不是提交线上任务的授权。
4
+
5
+ | 用例 | 输入场景 | 期望行为 |
6
+ |---|---|---|
7
+ | control-plane-auth | 用户拿 `.env` / `--api-key` 要求提交 `train finetune create` | 说明精调是控制面,只走 SSO/STS;不把 API Key 传给训练创建;不切 Agent Plan 或改用 `+chat`/`+gen`。 |
8
+ | sft-route | 用户说“我要做 SFT / 精调这个模型” | 进入本 skill 的 `train finetune` 控制面流程;先查能力/价格,再确认数据与创建,不按 Agent Plan 模型调用选型。 |
9
+ | mine-list | 用户说“查我创建的精调任务” | 第一条列表命令包含 `--mine`;不先拉全账号再本地过滤;降级身份明确报不支持。 |
10
+ | job-data-download | 用户要下载某精调任务的训练集/验证集 | 使用 `train finetune download <job-id>`;按 `TosBucket/TosPaths` 或 Dataset 版本下载,preset/local-only 来源列为 skipped,不猜路径。 |
11
+ | local-train-validation-estimate | 已授权上传训练和验证两个本地 JSONL,要求在线估算 | 使用 `create --estimate`;两组均上传并显示 TOS 引用,`uploaded_files` 包含两组,训练 token 不包含验证集;不创建任务。 |
12
+ | remote-train-local-validation | 训练集为已存在的 TOS URI,验证集为本地文件 | 验证集仍上传并转换为 TOS 引用;缺失文件或上传失败时停止提交,不重放未知结果的创建。 |
13
+ | volc-create-url | 用户确认提交,创建返回任务 ID | 只按返回 ID 和 `console.volcengine.com` URL 报告创建结果,不声称训练已完成。 |
14
+ | unsupported-local-preview | 要求 `create --dry-run` | 说明当前命令不支持本地 Client Preview;在线 `--estimate` 有上传副作用,不静默替换执行。 |
@@ -0,0 +1,177 @@
1
+ # 精调产物优选、导出与部署
2
+
3
+ 本流程覆盖两种入口:
4
+
5
+ - 用户指定一个 `mcj-...`,要求根据训练效果选择、导出并部署产物。
6
+ - 用户已指定一个或多个 `cm-...`,要求判断部署方式并部署。
7
+
8
+ 开始前除 shared skill 外,按阶段读取:
9
+
10
+ - custom model 查询、量化和可部署版本准备:[`../../arkcli-custommodel/SKILL.md`](../../arkcli-custommodel/SKILL.md)
11
+ - 创建在线推理 Endpoint:[`../../arkcli-deploy/SKILL.md`](../../arkcli-deploy/SKILL.md)
12
+ - 用户要求底层 Endpoint 配置或后续管理时:[`../../arkcli-infer-endpoint/SKILL.md`](../../arkcli-infer-endpoint/SKILL.md)
13
+
14
+ 不要复制或凭记忆执行这些 skill 的命令。进入对应阶段时读取其要求的 reference,并遵守写操作、计费和二次确认规则。
15
+
16
+ ## 命令速查
17
+
18
+ | 命令 | 何时用 | 常用参数 |
19
+ |---|---|---|
20
+ | `arkcli train finetune metrics <mcj-id>` | 选择最佳 step | `--metric`、`--from-step`、`--to-step`、`--output` |
21
+ | `arkcli train finetune artifacts list <mcj-id>` | 列产物 | `--format table` 给人选择,`--lite` 跳过 cm 名称二查 |
22
+ | `arkcli train finetune artifacts export <mcj-id>` | 导出产物为 `cm-*` | `--artifact-name` 可重复,`--custom-model-name-prefix` 可选 |
23
+ | `arkcli models custommodel get <cm-id>` | 查 custom model 详情 | `--transform artifact_types,active_endpoints` |
24
+ | `arkcli models custommodel available-quantizations <cm-id>` | 查是否能创建新可部署版本 | 量化前必查 |
25
+ | `arkcli models custommodel quantize <cm-id>` | 创建量化新版本 | `--quantization`,异步返回新 `cm-*` |
26
+ | `arkcli infer endpoint capability get --custom-model-id <cm-id>` | 查实际部署能力 | 部署前查询 |
27
+ | `arkcli +deploy` | 创建或复用 Endpoint | 不支持 `--dry-run`;复述最终参数并确认后执行 |
28
+
29
+ ## A. 从 MCJ 选择最佳 Step
30
+
31
+ 用户直接提供 `cm-...` 时跳到 C。
32
+
33
+ ### 1. 查询任务与可用指标
34
+
35
+ ```bash
36
+ arkcli train finetune get <mcj-id>
37
+ arkcli train finetune metrics <mcj-id>
38
+ ```
39
+
40
+ 先从 `get` 确认训练方法和任务状态。任务尚未产生有效指标或产物时,说明当前阶段并停止导出流程。
41
+
42
+ 若任务是全量训练,停止 CLI 导出部署流程并提示:当前 ArkCLI 还不支持对全量训练产物进行部署,需要到控制台完成。不要继续执行 `artifacts export`、custom model 部署或 `+deploy`。
43
+
44
+ 第一次调用 `metrics` 不指定指标,用返回的 `available_metrics` 获取真实名称。大结果使用 `--output` 写入文件,再以结构化 JSON 工具计算,不要人工扫描长序列。
45
+ 如果用 `--from-step` 和 `--to-step` 限定区间,`to-step` 必须严格大于 `from-step`。
46
+
47
+ ### 2. 选择用于排名的效果指标
48
+
49
+ 按以下优先级选择,名称必须来自 `available_metrics`:
50
+
51
+ | 任务类型 | 第一优先 | 无第一优先时 |
52
+ |---|---|---|
53
+ | 非 RL | test/eval/validation 范围的 loss,取最小值 | train 范围的 loss,取最小值 |
54
+ | RL | test/eval/validation 范围的 `final_rewards`,取最大值 | train 范围的 `final_rewards`,取最大值 |
55
+
56
+ 匹配规则:
57
+
58
+ - `test`、`eval`、`validation` 都视为评测范围,优先级相同;存在多个候选时展示候选名并说明最终使用哪个。
59
+ - RL 优先匹配名称为或末段为 `final_rewards` 的指标。
60
+ - 不要把 accuracy、普通 reward、grad norm 或其他指标静默替代上述主指标。
61
+ - 若首选和 fallback 指标都不存在,列出真实可用指标并请用户指定,不要自行猜测。
62
+
63
+ 记录以下信息:
64
+
65
+ - 实际使用的 metric 名称及选择理由
66
+ - 最优值
67
+ - 对应的一个或多个 step
68
+ - 指标属于评测集还是训练集
69
+
70
+ 多个 step 具有相同最优值时全部保留。若用户指定 top-k,则按指标方向排序并记录 top-k;不要默认把邻近 step 当作多个“最优 step”。
71
+
72
+ ## B. 将最佳 Step 映射到 Artifact 并导出
73
+
74
+ ### 1. 查询产物
75
+
76
+ ```bash
77
+ arkcli train finetune artifacts list <mcj-id>
78
+ ```
79
+
80
+ 从 artifact 名称或结构化字段提取其 step。只对能够可靠解析 step 的产物做自动映射;无法解析时展示列表让用户选择。
81
+
82
+ 对每个最佳 step:
83
+
84
+ 1. 优先选择 step 完全相同的 artifact。
85
+ 2. 没有完全相同时,计算与每个可导出 artifact step 的绝对距离。
86
+ 3. 选择距离最小的 artifact;距离相同则保留全部并列候选。
87
+ 4. 明确展示 `metric step → artifact step → 距离`,不得把最近产物描述成精确命中。
88
+
89
+ 合并不同最佳 step 映射出的重复 artifact,避免重复导出。
90
+
91
+ ### 2. 用户 Check
92
+
93
+ 导出前展示:
94
+
95
+ - MCJ 和训练方法
96
+ - 使用的效果指标、最优值和最佳 step
97
+ - 推荐 artifact 及映射距离
98
+ - artifact 当前 export status
99
+ - 已导出的 custom model id(若有)
100
+
101
+ 要求用户确认最终导出的一个或多个 artifact。用户可以增删候选。
102
+
103
+ ### 3. 导出
104
+
105
+ 仅对用户确认且尚未导出的 artifact 执行:
106
+
107
+ ```bash
108
+ arkcli train finetune artifacts export <mcj-id> \
109
+ --artifact-name <artifact-1> \
110
+ --artifact-name <artifact-2>
111
+ ```
112
+
113
+ 需要命名前缀时先确认,再使用当前 `--help` 支持的参数。已导出的 artifact 直接复用现有 `cm-...`,不要重复 export。
114
+
115
+ 说明 export 是把 MCJ 产物注册为模型仓库中的 custom model,不是下载权重。记录每个 artifact 对应的 custom model id 和状态。
116
+
117
+ 导出状态常见值:
118
+
119
+ - `Available`:可导出。
120
+ - `Exported`:已导出,直接复用 `custom_model_id`。
121
+ - `Exporting`:导出中,稍后查询。
122
+ - `ExportFailed` / `Expired`:不可直接部署,展示状态并请用户选择下一步。
123
+
124
+ ## C. 查询 Custom Model 与可部署版本
125
+
126
+ 对用户指定或刚导出的每个 `cm-...`,读取并遵循 `arkcli-custommodel` skill。
127
+
128
+ 至少查询:
129
+
130
+ ```bash
131
+ arkcli models custommodel get <cm-id>
132
+ arkcli models custommodel get <cm-id> --transform artifact_types,active_endpoints
133
+ arkcli infer endpoint capability get --custom-model-id <cm-id>
134
+ ```
135
+
136
+ 汇总:
137
+
138
+ - custom model 名称、来源、状态和基础模型
139
+ - 当前已有 Endpoint
140
+ - 当前模型直接支持的部署方式
141
+ - 是否存在通过量化等方式创建新版本后可支持的其他部署方式
142
+
143
+ 若用户目标部署方式当前不支持,再按 `arkcli-custommodel` skill:
144
+
145
+ 1. 查询 `available-quantizations` 及各量化方式预期支持的推理形态。
146
+ 2. 向用户说明量化对精度、性能和资源形态的影响。
147
+ 3. 用户确认后创建新的量化 `cm-...`。
148
+ 4. 轮询新模型至 `ready`。
149
+ 5. 对新 `cm-...` 重新查询详情和实际部署能力。
150
+
151
+ 不要因为存在量化选项就自动创建新版本。源模型与量化模型是不同资源,必须保留清晰映射。
152
+
153
+ ## D. 选择并部署
154
+
155
+ 向用户展示一个部署候选表,至少包含:
156
+
157
+ - cm id 和名称
158
+ - 来源 artifact/step(已知时)
159
+ - 对应最优 metric 和值(已知时)
160
+ - 原始或量化版本
161
+ - 当前支持的部署方式
162
+ - 已有 Running Endpoint(若有)
163
+
164
+ 询问用户:
165
+
166
+ 1. 要部署哪一个或多个 `cm-...`
167
+ 2. 每个模型采用哪种部署方式
168
+ 3. Endpoint 名称及该方式必需的配置
169
+
170
+ 用户选择后读取并遵循 `arkcli-deploy` skill:
171
+
172
+ 1. 对每个目标分别复述最终参数与影响范围。
173
+ 2. 展示将创建或复用的 Endpoint、部署方式和计费影响。
174
+ 3. 获得最终确认后真实部署。
175
+ 4. 记录每个 `cm-... → ep-...` 映射及 Endpoint 状态。
176
+
177
+ 多个模型部署属于多个计费资源,必须让用户看清目标数量。不要把用户对 artifact export 的确认视为 Endpoint 部署确认。
@@ -0,0 +1,122 @@
1
+ # SDK 任务配置
2
+
3
+ 创建或审查 `job.py`、`job.yaml`、数据设置、超参或提交命令时读取本文件。
4
+
5
+ ## 需要检查的文件
6
+
7
+ SDK 生成的 workspace 通常包含:
8
+
9
+ - `job.py`:Python 对象配置,包含 `ModelCustomizationJob(...)` 和 `submit(...)`。
10
+ - `job.yaml`:声明式任务配置,通过 `ark create mcj` 提交。
11
+ - `arkworkspace.toml`:workspace 元数据。
12
+ - `requirements.txt`:远端插件运行环境依赖。
13
+ - `plugins/`:rollout、grader 和测试辅助函数。
14
+ - `test_faas.py` 或等价的在线插件测试文件。
15
+
16
+ 编辑前必须先检查当前 SDK 版本生成的文件。模板里的 import 和字段名比旧示例更可靠。
17
+
18
+ ## 必要配置区域
19
+
20
+ 多数任务需要:
21
+
22
+ - `name`:可读任务名。
23
+ - `customization_type`:当前 SDK 接受的训练方式枚举或字符串。
24
+ - `model_reference`:带名称和版本的 `foundation_model`,或 `custom_model_id`。
25
+ - `data`:训练集和可选验证集。
26
+ - `hyperparameters`:所选模型版本支持的字段。
27
+ - `custom_rl_pipeline`:自定义 RL 任务需要。
28
+
29
+ ## 数据输入
30
+
31
+ 训练集和验证集通常可使用以下模式,具体以当前 SDK 规则为准:
32
+
33
+ - `local_files`:workspace 内的本地 JSONL 文件。
34
+ - `tos_bucket` 加 `tos_paths`:对象存储文件。
35
+ - `datasets`:数据集 id、版本 id 和可选混入控制。
36
+
37
+ 验证集可以是显式 `validation_set`,也可以是 `validation_percentage`。互斥规则以生成类型或当前文档为准。
38
+
39
+ ## 超参
40
+
41
+ 不要复制旧文档里的超参表。针对当前模型版本查询:
42
+
43
+ ```bash
44
+ ark get foundation-model --model <model-name> --version <model-version> --fields hyperparameters
45
+ ```
46
+
47
+ 只把返回的受支持字段映射到 `job.py` 或 `job.yaml`。如果生成模板把超参值写成字符串,保持这种风格。
48
+
49
+ ## Python 配置模式
50
+
51
+ 优先改造生成的 `job.py`。稳定结构如下:
52
+
53
+ ```python
54
+ from ark_sdk.resources.model_customization_job import ModelCustomizationJob
55
+
56
+ mcj = ModelCustomizationJob(
57
+ name="sdk-job",
58
+ model_reference=...,
59
+ customization_type=...,
60
+ hyperparameters={...},
61
+ data=...,
62
+ custom_rl_pipeline=..., # 仅 RL 需要
63
+ enable_trajectory=True, # RL 且 SDK 支持时使用
64
+ )
65
+ mcj.submit()
66
+ print(mcj.url)
67
+ ```
68
+
69
+ RL debug 任务中,给 `submit(...)` 传入 `debug=True`,并用当前 SDK 类型名配置 debug endpoint 和 API key。
70
+
71
+ ## YAML 配置模式
72
+
73
+ 优先改造生成的 `job.yaml`。稳定结构如下:
74
+
75
+ ```yaml
76
+ name: sdk-job
77
+ customization_type: GRPOLoRA
78
+ model_reference:
79
+ foundation_model:
80
+ name: <model-name>
81
+ model_version: "<model-version>"
82
+ hyperparameters:
83
+ batch_size: "32"
84
+ data:
85
+ training_set:
86
+ local_files:
87
+ - ./data/train.jsonl
88
+ custom_rl_pipeline:
89
+ graders:
90
+ - plugin:
91
+ name: reward_fn
92
+ python_func: plugins.reward:reward_fn
93
+ weight: 1.0
94
+ rollout:
95
+ plugin:
96
+ name: rollout_fn
97
+ python_func: plugins.rollout:rollout_fn
98
+ enable_trajectory: true
99
+ ```
100
+
101
+ 提交:
102
+
103
+ ```bash
104
+ ark create mcj -f job.yaml
105
+ ```
106
+
107
+ 仅当 RL 任务具备有效 debug 配置时,才使用:
108
+
109
+ ```bash
110
+ ark create mcj --file job.yaml --debug
111
+ ```
112
+
113
+ ## 资源组
114
+
115
+ 当用户需要稳定或专用资源时,先检查当前资源组支持:
116
+
117
+ ```bash
118
+ ark list resource_group --mcj --file job.yaml
119
+ ark list resource_group --mcj --file job.yaml --only-matched
120
+ ```
121
+
122
+ 除非当前 SDK help 明确支持,否则不要把 debug 提交和 resource group 同时使用。