@byteplus/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 (148) hide show
  1. package/LICENSE +201 -0
  2. package/bin/arkcli-darwin-amd64 +4 -0
  3. package/manifest.json +43 -0
  4. package/package.json +20 -4
  5. package/skills/arkcli-agent/SKILL.md +152 -0
  6. package/skills/arkcli-agent/references/agent.md +398 -0
  7. package/skills/arkcli-agent/references/byok.md +65 -0
  8. package/skills/arkcli-agent/references/context-management.md +42 -0
  9. package/skills/arkcli-agent/references/debug-export.md +26 -0
  10. package/skills/arkcli-agent/references/evals.md +178 -0
  11. package/skills/arkcli-agent/references/events-chat.md +148 -0
  12. package/skills/arkcli-agent/references/interfaces-gaps.md +52 -0
  13. package/skills/arkcli-agent/references/mcp-vault.md +111 -0
  14. package/skills/arkcli-agent/references/model-config.md +46 -0
  15. package/skills/arkcli-agent/references/self-hosted.md +47 -0
  16. package/skills/arkcli-agent/references/session-files.md +149 -0
  17. package/skills/arkcli-agent/references/session-upgrade.md +61 -0
  18. package/skills/arkcli-agent/references/skills.md +87 -0
  19. package/skills/arkcli-agent/references/todo-write.md +31 -0
  20. package/skills/arkcli-api-explorer/SKILL.md +188 -0
  21. package/skills/arkcli-api-explorer/references/arkcli-api.md +180 -0
  22. package/skills/arkcli-api-explorer/references/evals.md +176 -0
  23. package/skills/arkcli-auth/SKILL.md +184 -0
  24. package/skills/arkcli-auth/references/arkcli-auth-login.md +92 -0
  25. package/skills/arkcli-auth/references/arkcli-auth-status.md +109 -0
  26. package/skills/arkcli-auth/references/arkcli-auth-whoami.md +56 -0
  27. package/skills/arkcli-auth/references/auth-modes.md +78 -0
  28. package/skills/arkcli-auth/references/evals.md +82 -0
  29. package/skills/arkcli-auth/references/identity-resolution.md +33 -0
  30. package/skills/arkcli-auth/references/realname-gate.md +69 -0
  31. package/skills/arkcli-billing/SKILL.md +122 -0
  32. package/skills/arkcli-billing/references/arkcli-billing-list.md +259 -0
  33. package/skills/arkcli-billing/references/evals.md +107 -0
  34. package/skills/arkcli-chat/SKILL.md +114 -0
  35. package/skills/arkcli-chat/references/arkcli-chat.md +283 -0
  36. package/skills/arkcli-chat/references/caching-thinking.md +124 -0
  37. package/skills/arkcli-chat/references/chat-meta.md +77 -0
  38. package/skills/arkcli-chat/references/evals.md +34 -0
  39. package/skills/arkcli-chat/references/stream-events.md +124 -0
  40. package/skills/arkcli-chat/references/text-format.md +167 -0
  41. package/skills/arkcli-chat/references/tools.md +119 -0
  42. package/skills/arkcli-config/SKILL.md +197 -0
  43. package/skills/arkcli-config/references/arkcli-config-init.md +89 -0
  44. package/skills/arkcli-config/references/arkcli-config-profile.md +106 -0
  45. package/skills/arkcli-config/references/evals.md +154 -0
  46. package/skills/arkcli-connect/SKILL.md +196 -0
  47. package/skills/arkcli-connect/references/arkcli-connect.md +165 -0
  48. package/skills/arkcli-connect/references/evals.md +231 -0
  49. package/skills/arkcli-custommodel/SKILL.md +167 -0
  50. package/skills/arkcli-custommodel/references/arkcli-custommodel-available-quantizations.md +29 -0
  51. package/skills/arkcli-custommodel/references/arkcli-custommodel-delete.md +37 -0
  52. package/skills/arkcli-custommodel/references/arkcli-custommodel-get.md +45 -0
  53. package/skills/arkcli-custommodel/references/arkcli-custommodel-list.md +65 -0
  54. package/skills/arkcli-custommodel/references/arkcli-custommodel-quantize.md +59 -0
  55. package/skills/arkcli-custommodel/references/arkcli-custommodel-update.md +47 -0
  56. package/skills/arkcli-custommodel/references/arkcli-custommodel-upload.md +64 -0
  57. package/skills/arkcli-custommodel/references/evals.md +59 -0
  58. package/skills/arkcli-datasets/SKILL.md +39 -0
  59. package/skills/arkcli-datasets/references/commands.md +83 -0
  60. package/skills/arkcli-datasets/references/evals.md +31 -0
  61. package/skills/arkcli-deploy/SKILL.md +89 -0
  62. package/skills/arkcli-deploy/references/arkcli-deploy.md +141 -0
  63. package/skills/arkcli-deploy/references/evals.md +80 -0
  64. package/skills/arkcli-docs/SKILL.md +453 -0
  65. package/skills/arkcli-docs/references/commands.md +283 -0
  66. package/skills/arkcli-docs/references/evals.md +201 -0
  67. package/skills/arkcli-docs/references/failure-modes.md +85 -0
  68. package/skills/arkcli-doctor/CONTRIBUTING.md +54 -0
  69. package/skills/arkcli-doctor/SKILL.md +367 -0
  70. package/skills/arkcli-doctor/references/error-codes.md +162 -0
  71. package/skills/arkcli-doctor/references/evals.md +385 -0
  72. package/skills/arkcli-doctor/references/scope-account.md +94 -0
  73. package/skills/arkcli-doctor/references/scope-cli.md +88 -0
  74. package/skills/arkcli-doctor/references/scope-infer-endpoint.md +132 -0
  75. package/skills/arkcli-doctor/references/scope-metrics.md +157 -0
  76. package/skills/arkcli-doctor/references/scope-model.md +130 -0
  77. package/skills/arkcli-doctor/references/verify-origin.md +102 -0
  78. package/skills/arkcli-gen/SKILL.md +188 -0
  79. package/skills/arkcli-gen/references/arkcli-gen.md +230 -0
  80. package/skills/arkcli-gen/references/gen-meta.md +154 -0
  81. package/skills/arkcli-gen/references/image-stream.md +105 -0
  82. package/skills/arkcli-helper/SKILL.md +200 -0
  83. package/skills/arkcli-helper/references/arkcli-helper.md +298 -0
  84. package/skills/arkcli-helper/references/evals.md +334 -0
  85. package/skills/arkcli-iam/SKILL.md +46 -0
  86. package/skills/arkcli-iam/references/arkcli-iam-userid.md +54 -0
  87. package/skills/arkcli-iam/references/evals.md +24 -0
  88. package/skills/arkcli-infer-endpoint/SKILL.md +82 -0
  89. package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-capability-get.md +50 -0
  90. package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-create.md +121 -0
  91. package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-delete.md +71 -0
  92. package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-get.md +43 -0
  93. package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-list.md +82 -0
  94. package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-start.md +36 -0
  95. package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-stop.md +36 -0
  96. package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-update.md +78 -0
  97. package/skills/arkcli-infer-endpoint/references/evals.md +24 -0
  98. package/skills/arkcli-models/SKILL.md +305 -0
  99. package/skills/arkcli-models/references/arkcli-models-activate.md +103 -0
  100. package/skills/arkcli-models/references/arkcli-models-get.md +94 -0
  101. package/skills/arkcli-models/references/arkcli-models-list.md +71 -0
  102. package/skills/arkcli-models/references/arkcli-models-scenario-table.md +75 -0
  103. package/skills/arkcli-models/references/arkcli-models-search.md +170 -0
  104. package/skills/arkcli-models/references/evals.md +57 -0
  105. package/skills/arkcli-onboard/SKILL.md +169 -0
  106. package/skills/arkcli-onboard/references/evals.md +156 -0
  107. package/skills/arkcli-plans/SKILL.md +135 -0
  108. package/skills/arkcli-plans/references/arkcli-plans-buy.md +125 -0
  109. package/skills/arkcli-plans/references/arkcli-plans-get.md +84 -0
  110. package/skills/arkcli-plans/references/arkcli-plans-model-apply.md +58 -0
  111. package/skills/arkcli-plans/references/arkcli-plans-model-list.md +114 -0
  112. package/skills/arkcli-plans/references/arkcli-plans-renew.md +125 -0
  113. package/skills/arkcli-plans/references/arkcli-plans-team-rotate-apikey.md +61 -0
  114. package/skills/arkcli-plans/references/arkcli-plans-team-seat-assign.md +147 -0
  115. package/skills/arkcli-plans/references/arkcli-plans-team-seat-list.md +100 -0
  116. package/skills/arkcli-plans/references/evals.md +178 -0
  117. package/skills/arkcli-pricing/SKILL.md +120 -0
  118. package/skills/arkcli-pricing/references/arkcli-pricing-models.md +258 -0
  119. package/skills/arkcli-pricing/references/arkcli-pricing-plans.md +139 -0
  120. package/skills/arkcli-profile/SKILL.md +168 -0
  121. package/skills/arkcli-profile/references/arkcli-profile-create.md +92 -0
  122. package/skills/arkcli-profile/references/arkcli-profile-keys.md +135 -0
  123. package/skills/arkcli-profile/references/arkcli-profile-set-default.md +81 -0
  124. package/skills/arkcli-profile/references/evals.md +93 -0
  125. package/skills/arkcli-resources/SKILL.md +112 -0
  126. package/skills/arkcli-resources/references/arkcli-resources-list.md +105 -0
  127. package/skills/arkcli-shared/SKILL.md +209 -0
  128. package/skills/arkcli-shared/references/global-flags.md +77 -0
  129. package/skills/arkcli-shared/references/profile-defaults.md +35 -0
  130. package/skills/arkcli-shared/references/troubleshooting.md +49 -0
  131. package/skills/arkcli-shared/references/update.md +117 -0
  132. package/skills/arkcli-train-finetune/SKILL.md +109 -0
  133. package/skills/arkcli-train-finetune/references/create.md +274 -0
  134. package/skills/arkcli-train-finetune/references/download.md +50 -0
  135. package/skills/arkcli-train-finetune/references/evals.md +59 -0
  136. package/skills/arkcli-train-finetune/references/export-deploy.md +179 -0
  137. package/skills/arkcli-train-finetune/references/list.md +79 -0
  138. package/skills/arkcli-train-finetune/references/manage.md +140 -0
  139. package/skills/arkcli-understand/SKILL.md +105 -0
  140. package/skills/arkcli-understand/references/arkcli-understand.md +249 -0
  141. package/skills/arkcli-understand/references/evals.md +109 -0
  142. package/skills/arkcli-understand/references/sub-skills.md +137 -0
  143. package/skills/arkcli-usage/SKILL.md +123 -0
  144. package/skills/arkcli-usage/references/arkcli-usage-balance.md +196 -0
  145. package/skills/arkcli-usage/references/arkcli-usage-plan.md +153 -0
  146. package/skills/arkcli-usage/references/arkcli-usage-seats.md +199 -0
  147. package/skills/arkcli-usage/references/arkcli-usage-stats.md +160 -0
  148. package/README.md +0 -3
@@ -0,0 +1,109 @@
1
+ ---
2
+ name: arkcli-train-finetune
3
+ description: Create, query, and manage model fine-tuning jobs in BytePlus ModelArk with ArkCLI. Use this skill for every request that names a fine-tuning job ID (`mcj-*`), including not-found diagnosis, logs, rollout trajectory, status, or lifecycle operations. Also use it for fine-tuning capability, pricing, configuration, resource-group matching, job creation, metrics, artifact export, and deployment handoff. This skill does not manage datasets.
4
+ ---
5
+
6
+ # ArkCLI Fine-Tuning for BytePlus ModelArk
7
+
8
+ First read [`../arkcli-shared/SKILL.md`](../arkcli-shared/SKILL.md) and follow its authentication, output, safety, and confirmation rules.
9
+ Before running control-plane commands, confirm that the active profile, project, and region all belong to the intended BytePlus environment.
10
+
11
+ ## Execution plane and credentials
12
+
13
+ - `arkcli train finetune *`, `arkcli dataset *`, and `arkcli models finetune-config *` are **control-plane**
14
+ commands. Authenticate with BytePlus SSO / STS via `arkcli auth status`; do not pass data-plane
15
+ `--api-key` or `--base-url`, which fail fast on control-plane commands.
16
+ - An API key from `.env` is for inference data-plane calls only. It cannot create fine-tuning jobs or upload
17
+ training data. SFT / LoRA / DPO / RL are training jobs, not plan-model inference calls; do not route them
18
+ to `+chat` or `+gen`.
19
+ - Local `--train-file` / `--validation-file` inputs are uploaded by ArkCLI to the managed BytePlus TOS; the
20
+ final job request uses `TosBucket` / `TosPaths`. Do not require a manual upload or pass a local path as the
21
+ backend data address.
22
+
23
+ ## When To Trigger and Scope
24
+
25
+ - Create a fine-tuning job: read [`references/create.md`](references/create.md).
26
+ - List or filter fine-tuning jobs: read [`references/list.md`](references/list.md).
27
+ - Download the training/validation data used by a job: read [`references/download.md`](references/download.md).
28
+ - Retrieve, observe, or operate a specific job: read [`references/manage.md`](references/manage.md).
29
+ - Select a step by metrics, export artifacts, and deploy: read [`references/export-deploy.md`](references/export-deploy.md).
30
+ - Do not directly manage datasets. Accept local files, BytePlus TOS URIs, `ds-*/dsv-*` references, and model-supported presets. Use [`../arkcli-datasets/SKILL.md`](../arkcli-datasets/SKILL.md) to create or maintain Dataset resources.
31
+ - Use `--train-dataset` for an ordinary managed Dataset with the default `Multiplier=1`; use repeatable `--train-path` for multiple references, scaling, or sampling. Each entry sets at most one of `multiplier` or `sample_count`; omitting both keeps `Multiplier=1`. Each preset must choose exactly one of `inject_multiplier` or `inject_sample_count`.
32
+ - Orchestrate metric analysis and artifact export in this skill. For custom model details, preparation of deployable versions, and endpoint creation, follow the model registry and deployment skills.
33
+ - When the user says "my jobs / jobs I created / submitted by me", add `--mine` to `train finetune list`; do not list the whole account and guess the creator locally.
34
+ - Do not use the low-level API Explorer as the default entry point.
35
+
36
+ Load only the reference required for the current task. Do not read every reference merely to become familiar with all commands.
37
+
38
+ ## When NOT To Trigger
39
+
40
+ - Dataset-only management with no fine-tuning job work → use the dataset capability instead.
41
+ - Public foundation-model catalog lookup only → use [`../arkcli-models/SKILL.md`](../arkcli-models/SKILL.md).
42
+ - Management of an existing inference Endpoint only → use [`../arkcli-infer-endpoint/SKILL.md`](../arkcli-infer-endpoint/SKILL.md).
43
+ - Authentication-only or profile/config troubleshooting → use [`../arkcli-auth/SKILL.md`](../arkcli-auth/SKILL.md) or [`../arkcli-config/SKILL.md`](../arkcli-config/SKILL.md).
44
+ - The low-level API Explorer is a fallback entry only, never the default. Use it only when the product command cannot express the task and the user authorizes the fallback.
45
+
46
+ ## Exact-scope diagnostics for a named job
47
+
48
+ - When a user provides an `mcj-*` ID and asks about status, why it cannot be found, logs, or trajectory, load this skill and read [`references/manage.md`](references/manage.md).
49
+ - For “why can’t this job be found?”, first run `arkcli train finetune get <mcj-id>` against the current active profile, project, and region, then explain the authoritative API response.
50
+ - Treat `mcj-*` as an opaque resource ID. Never reject it from a date-like segment, a readable suffix, or an invented hash-format rule, and never rewrite the supplied ID.
51
+ - If the user says not to switch environments or to inspect only this job, do not run `train finetune list`, scan other jobs, switch profile/project/region, or query another account. Preserve the target `get` error code, message, and request ID. Expand scope only after separate user authorization.
52
+ - When the user asks to save one named MCJ’s logs to a local path, the first business command is `arkcli train finetune logs <mcj-id> --output <path>`. Never list all jobs or scan them with a script first. Preserve any target-command error and do not suggest switching environments.
53
+ - When the user requests the complete rollout trajectory for one named MCJ, run `arkcli train finetune trajectory list <mcj-id> --full` directly. There is no `arkcli train trajectory` path. Preserve a no-trajectory or logging-disabled error; do not explore profiles, MCP configuration, or other jobs.
54
+ - `logs --follow` polls only while a job is active and may produce more logs. It emits the current snapshot and exits when the job is already terminal, and also exits after an idle poll observes a terminal phase. Do not rely on an external timeout as the normal termination mechanism.
55
+ - `pause` and `resume` form an explicit reversible pair: `pause` moves a running job to `Paused`, and `resume` restores a `Paused` job. When the backend permits, `resume` may also retry `Failed` or `Terminated`; follow the current API result.
56
+
57
+ ## Live-information policy
58
+
59
+ Do not hard-code information that can change, including:
60
+
61
+ - Trainable models, model versions, fine-tuning types, and training methods.
62
+ - Fine-tuning prices.
63
+ - Hyperparameter fields, defaults, ranges, and enum values.
64
+ - CLI flags, job phases, and operation restrictions.
65
+ - Post-fine-tuning inference methods supported by base models or custom models.
66
+
67
+ Before critical commands, or when a command fails, use the installed version's `--help` and ArkCLI query commands to obtain current information. If CLI output differs from the command skeletons in this skill, follow the current CLI.
68
+
69
+ Query prices and fine-tuning capabilities under the active BytePlus profile. Even when model or training method names match those on another platform, do not reuse that platform's prices or capability results.
70
+
71
+ Treat BytePlus model selection as fail-closed: before naming or using a model, require its exact name from a live catalog query under the active BytePlus scope, then verify its version and requested fine-tuning type with `models versions` and `train finetune capability get`. Treat names from the user, documentation, `--help`, prior knowledge, or another product or region as unverified; never normalize product prefixes. If either query fails or returns no exact eligible match, stop model-dependent estimation or creation instead of guessing a fallback. Continue using `--help` for syntax.
72
+
73
+ Use the BytePlus ModelArk [Model fine-tuning dataset format description](https://docs.byteplus.com/en/docs/ModelArk/1099461) as the primary data-format source, then confirm with model-aware server-side validation. Do not maintain format descriptions or examples here that are likely to become outdated.
74
+
75
+ ## Default fine-tuning type, training method, and deployment limitation
76
+
77
+ - If the user does not specify a fine-tuning type (`--type`), default to SFT.
78
+ - If the user does not specify LoRA or full fine-tuning as the training method, default to LoRA.
79
+ - If the user explicitly selects full fine-tuning, explain before creation that ArkCLI currently cannot deploy artifacts produced by full fine-tuning and that deployment must be completed in the console after training.
80
+
81
+ ## BytePlus fine-tuning SDK availability
82
+
83
+ BytePlus currently does not support the fine-tuning SDK. If the user requests a custom grader, rollout plugin, SDK workspace, custom training code, or SDK submission, politely explain that the capability is currently unavailable on BytePlus. If standard ArkCLI parameters or pipeline configuration can fully express the request, continue with the standard ArkCLI creation flow. Rollout trajectory queries are a separate ArkCLI capability: for a job created with `--enable-trajectory`, use `arkcli train finetune trajectory` with an SSO-authenticated profile that can access the corresponding TLS topic.
84
+
85
+ ## Critical client-side validation
86
+
87
+ - When the user supplies a model name and fine-tuning type and asks for fine-tuning, SFT, or LoRA pricing, first run `arkcli train finetune pricing --model <model> --type <type>`. Never substitute generic `arkcli pricing models`, because the generic billing catalog does not cross-check the requested training capability for that model.
88
+ - When the user explicitly selects a fine-tuning type, call `models finetune-config <model> <version> --type <type>` with the exact model version. The command validates the type against that version's authoritative `FinetuneTypes`; stop on an unsupported type instead of continuing to pricing, estimate, or job creation.
89
+ - For manual pagination, `train finetune list --page-number` must be `>=1` and `--page-size` must be within `1-100`. For page 2 or later, a page beyond the filtered `total_count` is a parameter error; do not treat it as a valid empty page.
90
+ - When both `train finetune metrics --from-step` and `--to-step` are present, `to-step` must be strictly greater than `from-step`. Stop on an invalid interval before querying metric names or curves.
91
+ - `train finetune pricing --billing-method token` queries token charge items. `instance` requires the exact `--model-version` and `--type`, with hyperparameters kept consistent with job creation. Treat the hourly range as complete only when `price_complete=true`; otherwise report `missing_flavor_ids`.
92
+ - Before using stable resources, run `train finetune resource-group list` with exactly the same model, version, customization type, and hyperparameters as create. Pass a resource-group ID to `create --resource-group` only when `allowed=true` and that item has `matched=true`; treat the ID as opaque and pass it exactly as returned. When several groups match, let the user choose.
93
+
94
+ ## Guard Checklist and General Execution Rules
95
+
96
+ `create` does not support local `--dry-run`. An online `--estimate` uploads both local training and validation files, so follow upload confirmation rules. Training token estimation excludes validation data. Creation still returns an empty `url` on BytePlus; do not invent a console link.
97
+
98
+ 1. Run `arkcli auth status` first. If authentication fails, recover through the shared skill.
99
+ 2. Run read operations directly. For file uploads, job creation, billable operations, or destructive operations, follow the confirmation rules.
100
+ 3. Do not ask again for parameters the user already specified. Ask only when a required value is missing and cannot be derived from live queries.
101
+ 4. Distinguish the source of every fact: CLI/API responses, server-side validation, or a local rough estimate.
102
+ 5. Do not print credentials, complete training logs, or other large results. Write large results to a file and extract only the required fields.
103
+
104
+ ## References and Related Documentation
105
+
106
+ - [Model fine-tuning overview](https://docs.byteplus.com/en/docs/ModelArk/1099459)
107
+ - [Model fine-tuning dataset format description](https://docs.byteplus.com/en/docs/ModelArk/1099461)
108
+
109
+ Maintainer evaluation cases are in [`references/evals.md`](references/evals.md).
@@ -0,0 +1,274 @@
1
+ # Create a Fine-Tuning Job
2
+
3
+ Both `--train-file` and `--validation-file` upload to TOS before an online `--estimate` or real submission. The resolved `data.TrainingSet` and `data.ValidationSet` use `TosBucket` and `TosPaths`; local paths are not sent to the server. `uploaded_files` includes both sets, while training token estimation uses only the training set. Local validation files also upload when training data already uses a TOS reference. An upload failure stops submission. `--estimate` uploads files without creating a training job.
4
+
5
+ > **Execution plane:** `train finetune create` and `--estimate` are control-plane commands authenticated
6
+ > by BytePlus SSO / STS. Do not pass `--api-key` / `--base-url`; the API key in `.env` is for data-plane
7
+ > inference only and cannot create jobs or upload training data. Local training/validation files are
8
+ > uploaded by the CLI through `--train-file` / `--validation-file` to managed BytePlus TOS.
9
+
10
+ Creation still returns `id` and `url`. BytePlus continues to return an empty `url`; do not invent a console link.
11
+
12
+ - Follow the sequence below. If the user provides insufficient information, query current capabilities and make recommendations.
13
+ - If the user has already specified the model, version, training data, customization type (`--type`), and either explicit hyperparameters or a default strategy, first validate the model and capability as required in section 1, then run `create --estimate` directly to obtain the online estimate. If the estimate fails or returns insufficient information, query the relevant command according to the error.
14
+ - Wait for user confirmation before the real `create` operation.
15
+
16
+ ## 1. Query models, training options, prices, and supported inference types
17
+
18
+ | Command | When to use | Common parameters |
19
+ |---|---|---|
20
+ | `arkcli models search [keyword]` | Query candidate base models from the active BytePlus catalog; omit the keyword to inspect the catalog when the user has not named a model | `--modality`, `--strict-filter`, `--refresh-cache` |
21
+ | `arkcli models versions <model>` | Find versions of a base model; fine-tuning support shown here is informational only | None |
22
+ | `arkcli train finetune capability get` | Query the fine-tuning types and training methods supported by a base model version or the source base model of an existing custom model; treat this as authoritative | `--model`, `--version`, `--model-id` |
23
+ | `arkcli train finetune pricing` | Query token- or instance-billed fine-tuning prices | `--model`, `--model-version`, `--type`, `--billing-method` |
24
+ | `arkcli train finetune resource-group list` | Check resource-group access, resolve job resource requirements, and list matching groups | `--model`, `--model-version`, `--type`, `--only-matched` |
25
+ | `arkcli infer endpoint capability get` | Query supported inference types for a base model (`model` + `version`) or custom model (`custom-model-id`) | `--model`, `--version`, `--custom-model-id` |
26
+
27
+ CLI flags can evolve. Use this reference directly for routine cases; inspect `--help` when a command fails or a parameter is uncertain.
28
+
29
+ Run every price and capability query under the target BytePlus profile, project, and region. Even when model or training method names match those on another platform, do not reuse that platform's prices or capability results.
30
+
31
+ Select models in this fail-closed order:
32
+
33
+ 1. Query `arkcli models search [keyword]` first under the active BytePlus scope; omit the keyword when the user has not named a model. Use only exact returned names and never normalize product prefixes.
34
+ 2. Before showing or using a candidate, verify it with:
35
+
36
+ ```bash
37
+ arkcli models versions <candidate>
38
+ arkcli train finetune capability get --model <candidate> --version <version>
39
+ ```
40
+
41
+ Keep it only when the exact version exists and `supported_types` contains the requested type; LoRA SFT requires `lora`.
42
+ 3. If either query fails or returns no exact eligible match, report that availability could not be confirmed. Do not name a fallback model or assemble a model-dependent estimate or create command.
43
+
44
+ After a model passes the checks above, query its price and potential inference methods:
45
+
46
+ ```bash
47
+ arkcli models versions <model>
48
+ arkcli train finetune capability get --model <model> --version <version>
49
+ arkcli train finetune pricing --model <model> --type <type>
50
+ # Token billing is the default. Do not replace this with generic arkcli pricing models.
51
+ # Instance pricing requires the exact version and type. Keep custom hyperparameters identical to creation.
52
+ arkcli train finetune pricing --model <model> --model-version <version> --type <type> \
53
+ --billing-method instance --hyperparameters '{"epoch":"3"}'
54
+ arkcli infer endpoint capability get --model <model> --version <version>
55
+ ```
56
+
57
+ Explain:
58
+
59
+ - Which fine-tuning types and training methods the selected version supports.
60
+ - The billing unit and price for the selected customization type.
61
+ - `token` returns token charge items. `instance` first verifies that the exact model version and
62
+ customization type support Instance billing, then returns resource templates, flavor unit prices,
63
+ role-size hourly prices, and the overall hourly range. Treat the range as complete only when
64
+ `price_complete=true`; otherwise report `missing_flavor_ids` and never interpret a missing price as zero.
65
+ - The potential post-fine-tuning inference methods for the selected version and training method.
66
+ - A query using `--model` and `--version` returns the base model's supported inference types. Treat them only as potential inference types for a future fine-tuned artifact; the artifact is not guaranteed to support exactly the same types.
67
+ - After training, query the actual custom model with `--custom-model-id`, then continue through the deployment skill. Do not substitute `--model-id`: that flag belongs to `train finetune capability get`, not `infer endpoint capability get`.
68
+
69
+ Default fine-tuning type and training method:
70
+
71
+ - If the user does not specify a fine-tuning type through `--type`, default to SFT.
72
+ - If the user does not specify LoRA or full fine-tuning as the training method, default to LoRA.
73
+ - Therefore, when the model supports LoRA, select the LoRA-encoded `--type` by default. If LoRA is unsupported, show the available fine-tuning types and training methods and ask the user to choose.
74
+ - If the user explicitly requests full fine-tuning, use the full fine-tuning `--type` corresponding to the selected fine-tuning type. Before continuing, explain that ArkCLI currently cannot deploy artifacts produced by full fine-tuning and that deployment must be completed in the console after training.
75
+
76
+ If the user has not selected a model, show a small set of query-proven, capability-verified candidates and ask the user to choose. Do not show unverified candidates or submit a high-cost job autonomously.
77
+
78
+ ## 2. Common creation parameters
79
+
80
+ Check whether current ArkCLI flags can fully express the request:
81
+
82
+ ```bash
83
+ arkcli train finetune --help
84
+ arkcli train finetune create --help
85
+ ```
86
+
87
+ Common parameters for `arkcli train finetune create`:
88
+
89
+ | Parameter | Description |
90
+ |---|---|
91
+ | `--name` | Job name |
92
+ | `--description` | Job description |
93
+ | `--model` + `--model-version` | Fine-tune a base model |
94
+ | `--model-id` | Continue fine-tuning an existing custom model; mutually exclusive with `--model/--model-version` |
95
+ | `--type` | Customization type, which may encode both the fine-tuning type and training method; when omitted, apply the default SFT + LoRA policy |
96
+ | `--train-file` | Local training file; repeatable |
97
+ | `--train-tos-uri` | BytePlus Torch Object Storage (TOS) URI of uploaded training data |
98
+ | `--train-dataset <dataset-id>:<version-id>` | Existing training Dataset; the legacy separate version flag remains compatible |
99
+ | `--train-path <json>` | Repeatable ordinary training Dataset input with `dataset_id`, `dataset_version_id`, and at most one of `multiplier` or `sample_count` |
100
+ | `--preset-dataset <json>` | Repeatable model-supported preset with `dataset_version_id` and exactly one of `inject_multiplier` or `inject_sample_count` |
101
+ | `--validation-file` | Local validation file; repeatable |
102
+ | `--validation-tos-uri` | TOS URI of an uploaded validation set |
103
+ | `--validation-dataset <dataset-id>:<version-id>` | Existing validation Dataset; the legacy separate version flag remains compatible |
104
+ | `--validation-percentage` | Split a validation set from the training set; mutually exclusive with an explicit validation set |
105
+ | `--hyperparameters` | JSON string or `@file`; pass values as strings when required by the backend |
106
+ | `--epochs`, `--lr`, `--lora-rank`, `--beta` | Legacy convenience parameters. When supported, they are merged into hyperparameters and take precedence on conflict. |
107
+ | `--max-invalid-records-ratio`, `--max-invalid-records-number` | Maximum invalid-record ratio or count for data fault tolerance |
108
+ | `--shuffle-random-seed` | Data-order control: random shuffle, no shuffle, or a fixed seed |
109
+ | `--save-model-limit` | Number of training artifacts to retain |
110
+ | `--enable-trajectory` | Enable RL trajectory logging. Query the resulting rollout trajectories with `arkcli train finetune trajectory`; this requires an SSO-authenticated profile with access to the corresponding TLS topic and does not depend on the fine-tuning SDK. |
111
+ | `--pipeline` | RL pipeline configuration file; use only when current ArkCLI can fully express the configuration |
112
+ | `--resource-group` | Stable resource-group ID returned by `resource-group list`. Treat it as opaque and pass it unchanged; the CLI rechecks access, job resource requirements, and availability before estimation and real submission. |
113
+ | `--yes` | Skip CLI confirmation. Add it only after the user reconfirms or explicitly asks for immediate creation. |
114
+
115
+ ## 3. Obtain and validate training data
116
+
117
+ Do not create or manage platform Dataset resources in this skill. Use [`../../arkcli-datasets/SKILL.md`](../../arkcli-datasets/SKILL.md) when management is required. Job creation accepts:
118
+
119
+ - Local training files.
120
+ - Uploaded BytePlus TOS URIs.
121
+ - Platform Dataset references in `<dataset-id>:<version-id>` form.
122
+ - Preset Datasets explicitly supported by the model configuration.
123
+
124
+ Choose one ordinary source for each training or validation set. Dataset references are mutually exclusive with the corresponding TOS or local-file source. A single ordinary Dataset defaults to `Multiplier=1`. For multiple references, scaling, or sampling, repeat `--train-path`. Each entry sets at most one of `multiplier` or `sample_count`; omitting both keeps `Multiplier=1`:
125
+
126
+ ```bash
127
+ --train-path '{"dataset_id":"ds-...","dataset_version_id":"dsv-...","multiplier":2}'
128
+ --train-path '{"dataset_id":"ds-...","dataset_version_id":"dsv-...","sample_count":500}'
129
+ ```
130
+
131
+ Never combine `--train-path` with `--train-dataset`, a training TOS URI, or local training files. Presets also use repeatable JSON and must choose exactly one injection setting:
132
+
133
+ ```bash
134
+ --preset-dataset '{"dataset_version_id":"dsv-...","inject_sample_count":100}'
135
+ ```
136
+
137
+ The CLI verifies Dataset schema compatibility against the exact model version and customization type, and rejects presets absent from model configuration.
138
+
139
+ If the user provides no data, ask for a training-set file or an existing data reference.
140
+
141
+ ### Map `dataset_schema`
142
+
143
+ First read `dataset_schema` from `arkcli models finetune-config <model> <version> --type <type>`, then interpret it using the table below. For field details, examples, and restrictions, follow the BytePlus ModelArk [Model fine-tuning dataset format description](https://docs.byteplus.com/en/docs/ModelArk/1099461).
144
+
145
+ | `dataset_schema` | Dataset format |
146
+ |---|---|
147
+ | `LLMSft` | Supervised Fine-Tuning dataset for language models |
148
+ | `LLMRL` | Reinforcement-learning dataset for language models |
149
+ | `PromptResponse` | SFT for text generation models |
150
+ | `ImageRecognitionSFT` | SFT for multimodal models; also compatible with text generation models |
151
+ | `ImageGenerationSFT` | SFT for image generation models |
152
+ | `VideoGenerationSFT` | SFT for video generation models |
153
+ | `TextDPO` | DPO for text generation models |
154
+ | `ImageRecognitionDPO` | DPO for multimodal models; also compatible with text generation models |
155
+ | `TextRL` | Reinforcement learning for text generation models |
156
+ | `ImageRecognitionRL` | Reinforcement learning for multimodal models; also compatible with text generation models |
157
+ | `Text` | Continued Pre-Training for multimodal or text generation models |
158
+
159
+ If `finetune-config` does not return `dataset_schema`, do not guess. Check the BytePlus dataset-format documentation, perform the local structural checks below, and use `arkcli dataset validate` for model-aware server-side validation. If the format remains ambiguous, ask the user to confirm it.
160
+
161
+ ### Local offline checks
162
+
163
+ For local files, use the BytePlus ModelArk [Model fine-tuning dataset format description](https://docs.byteplus.com/en/docs/ModelArk/1099461) to check:
164
+
165
+ - The file is readable, correctly encoded, and reasonably sized.
166
+ - Every non-empty JSONL line is a JSON object.
167
+ - Sample count and invalid-line count.
168
+ - Required fields, types, and content structure from the documentation.
169
+
170
+ Use a structured JSON parser rather than regular expressions to validate JSON. Report the exact sample count and failing line numbers. Never describe a local check as authoritative platform validation.
171
+
172
+ Token counting:
173
+
174
+ - If the environment contains a tokenizer that matches the target model, provide a local estimate and state the tokenizer and source of error.
175
+ - If no matching tokenizer is available, do not present character count as an exact token count. Leave token statistics to the online `--estimate` flow.
176
+
177
+ ## 4. Query and confirm hyperparameters
178
+
179
+ | Command | When to use | Common parameters |
180
+ |---|---|---|
181
+ | `arkcli models finetune-config` | Query supported hyperparameters and `dataset_schema` after selecting the model version and customization type | `<model> <version>`, `--type` |
182
+ | `arkcli train finetune create` | Estimate or create a job | Use online `--estimate`, then submit after confirmation |
183
+
184
+ Display parameter names, default values, ranges or enum values, and short descriptions. Do not rely on memory for field names.
185
+
186
+ When `--type` is explicit, `models finetune-config` validates it against the exact model version's authoritative `FinetuneTypes`, using the same capability source as `train finetune capability get`. If that version does not support the requested type, the command returns a validation error before reading its configuration schema; do not continue with estimate or creation.
187
+
188
+ - When the user requests custom hyperparameters, ask the user to confirm the override values.
189
+ - Use the selected model, user preference, dataset size, target metrics, and logs to recommend hyperparameters. Use defaults when there is no evidence for a better configuration.
190
+ - Reject values outside the schema.
191
+
192
+ Read default values and ranges for general training configuration from the `finetune-config` schema. This reference records only stable semantics:
193
+
194
+ - Field names for epochs, learning rate, batch size, LoRA rank/alpha/dropout, DPO beta, RL steps, and similar settings can vary by training method.
195
+ - `save_model_limit` controls how many training artifacts are retained. Follow the current CLI/API for its default and maximum.
196
+ - Data fault tolerance limits and the shuffle seed are data configuration, not model hyperparameters. Display them separately in the preview.
197
+
198
+ ## 5. Query and select a stable resource group when requested
199
+
200
+ When the user wants a resource group, query with exactly the same model, customization type,
201
+ and hyperparameters that will be used for creation:
202
+
203
+ ```bash
204
+ arkcli train finetune resource-group list \
205
+ --model <model> --model-version <version> --type <type> \
206
+ --hyperparameters '<same-json-as-create>' --only-matched
207
+ ```
208
+
209
+ For continued training from an existing custom model, use `--model-id <cm-id>` instead of
210
+ `--model/--model-version`. Interpret the result fail-closed:
211
+
212
+ - `allowed=false` means fine-tuning resource groups are not enabled for the active account or
213
+ project. Do not add `--resource-group` to create.
214
+ - `candidate_templates` are the authoritative resource requirements resolved for the exact model,
215
+ version, type, and hyperparameters. Never infer requirements from a group name or aggregate capacity.
216
+ - Only an item with `matched=true` can run the current job. Treat `unmatch_reasons` as authoritative;
217
+ never bypass or silently ignore them.
218
+ - If multiple groups match, show names, IDs, matched templates, and a capacity summary, then let the
219
+ user choose. Do not choose a group autonomously.
220
+ - Pass the selected group to both estimate and real creation with `--resource-group <resource-group-id>`. The CLI
221
+ rechecks permission, candidate templates, and availability before each operation and fails fast if
222
+ the group no longer matches.
223
+ - If the selected group is absent or unmatched, the error reports authoritative mismatch reasons and
224
+ every `matched=true` group name and ID available to the current job; it explicitly says `none` when
225
+ no group is usable.
226
+
227
+ `resource-group list` is an online read-only preflight, not Client Preview. Do not add `--dry-run`.
228
+ Keep all hyperparameters identical between this query and create, including convenience overrides such
229
+ as `--epochs`, `--lr`, `--lora-rank`, and `--beta`.
230
+
231
+ ## 6. Preview creation and validate configuration, data, tokens, and cost
232
+
233
+ | Command | When to use | Common parameters |
234
+ |---|---|---|
235
+ | `arkcli train finetune create` | Estimate or create a job | Use online `--estimate`, then submit after confirmation |
236
+
237
+ Assemble the command according to `arkcli train finetune create --help`, then run it with `--estimate`. This is an online estimate, not Client Preview. If local-file upload requires confirmation, obtain user authorization first and add `--yes` only as directed by the CLI.
238
+
239
+ The preview must summarize at least:
240
+
241
+ - Job name, model, version, fine-tuning type, and training method.
242
+ - If defaults are applied: "No fine-tuning type or training method was specified; defaulting to SFT + LoRA."
243
+ - For full fine-tuning: "ArkCLI currently cannot deploy artifacts produced by full fine-tuning; complete deployment in the console after training."
244
+ - Training and validation data sources.
245
+ - Custom and recommended hyperparameters, plus which remaining parameters use defaults.
246
+ - Server-reported sample or token information.
247
+ - Billing unit, unit price, and estimated cost.
248
+ - When using a resource group: its name, ID, matched candidate templates, and preflight result.
249
+ - Non-default data fault tolerance limits, random seed, artifact-retention limit, and similar configuration.
250
+
251
+ If the dry run omits a field, state that it was not provided. Do not invent a value.
252
+
253
+ ## 7. Obtain final confirmation and create
254
+
255
+ - After authentication, generate and reuse
256
+ `ARKCLI_SKILL_FLOW_ID=ftf_<ULID>` for this create workflow.
257
+ - With the shared single-command prefix, run
258
+ `arkcli train finetune _report-activity --action create_flow_enter` before
259
+ the first create business command.
260
+ - Report `data_validation_success` only after machine-verifiable data validation;
261
+ ordinary argument parsing and Client Preview `--dry-run` do not report.
262
+
263
+ Present the complete preview and explicitly ask whether to create the job. Run the real creation command only after confirmation. For non-interactive execution, add `--yes` as required by the CLI.
264
+
265
+ On success, return:
266
+
267
+ - Job ID, name, and initial phase.
268
+ - Model, version, fine-tuning type, and training method.
269
+ - A summary of key data and hyperparameters.
270
+ - When using a resource group, the selected resource-group ID and that submission preflight passed.
271
+ - Console URL, if returned by the CLI.
272
+ - A follow-up query such as `arkcli train finetune get <job-id>` or `watch <job-id>`.
273
+
274
+ Do not deploy the model automatically in this flow.
@@ -0,0 +1,50 @@
1
+ # Download Fine-Tuning Job Data
2
+
3
+ When the user wants to recover the training or validation data used by a fine-tuning job:
4
+
5
+ ```bash
6
+ arkcli train finetune download <job-id> [--set all|train|validation] [--output-dir <dir>]
7
+ ```
8
+
9
+ The command resolves `Data.TrainingSet` / `Data.ValidationSet` from
10
+ `GetModelCustomizationJob`, then downloads the referenced objects from TOS. The default output directory
11
+ is `./<job-id>-data`; by default both training and validation data are downloaded.
12
+
13
+ ## Supported sources
14
+
15
+ | Job Data field | Behavior |
16
+ |---|---|
17
+ | `TosBucket` + `TosPaths` | Download the original TOS objects and preserve relative paths |
18
+ | `Datasets[]` (`DatasetId` + `DatasetVersionId`) | Resolve the Dataset version storage, then download its `Storage.Bucket` / `Storage.Prefixes` |
19
+ | `PresetDatasets[]` | Platform-managed preset data, not downloadable; reported under `skipped` |
20
+ | `LocalFiles[]` | Only creation-time local paths are recorded; file contents are not retained server-side and are reported under `skipped` |
21
+
22
+ When a set has multiple sources, the command writes them below separate `train/` or `validation/`
23
+ subdirectories and adds `01/`, `02/`, ... when needed to avoid filename collisions.
24
+
25
+ ## Examples
26
+
27
+ ```bash
28
+ # Download training and validation data.
29
+ arkcli train finetune download mcj-20260722153822-jqvd
30
+
31
+ # Download only the training set.
32
+ arkcli train finetune download mcj-20260722153822-jqvd --set train --output-dir ./mcj-data
33
+
34
+ # Download only the validation set.
35
+ arkcli train finetune download mcj-20260722153822-jqvd --set validation
36
+ ```
37
+
38
+ The result includes each file's `object_key`, local `path`, and `size_bytes`, plus the bucket and prefixes
39
+ used for each set.
40
+
41
+ ## Boundaries
42
+
43
+ - This is a control-plane job lookup plus TOS read, not a data-plane call. Do not pass `--api-key` or
44
+ `--base-url`.
45
+ - The command fails if a target file already exists; choose a different `--output-dir` instead of silently
46
+ overwriting local data.
47
+ - A job that only has `PresetDatasets` or `LocalFiles` has no downloadable TOS objects and returns a clear
48
+ "no downloadable data" error.
49
+ - Do not guess a data location from the job name, model name, or an old directory. Use the job's
50
+ `TosBucket` / `TosPaths` or the referenced Dataset version.
@@ -0,0 +1,59 @@
1
+ # arkcli-train-finetune evals
2
+
3
+ ## Coverage goals
4
+
5
+ - Verify that prompts containing `mcj-*`, fine-tuning pricing, logs, or trajectory trigger this skill.
6
+ - Verify that read-only diagnosis stays within the user-specified scope without environment switching or other-job scans.
7
+ - Verify that lifecycle help matches actual CLI behavior.
8
+ - Verify that resource-group access, job requirements, and matches fail closed before creation.
9
+
10
+ ## Triggers
11
+
12
+ - Get, logs, trajectory, metrics, status, or lifecycle requests for a named MCJ.
13
+ - Fine-tuning pricing, capability, configuration, or creation requests for a named model and training type.
14
+ - Requests to submit through a resource group or identify groups that can run a prepared job.
15
+
16
+ ## Anti-triggers
17
+
18
+ - Foundation-model catalog lookup only routes to `arkcli-models`.
19
+ - Existing inference Endpoint management only routes to `arkcli-infer-endpoint`.
20
+ - Authentication-only or profile/config troubleshooting routes to the corresponding skill without expanding the MCJ query scope.
21
+
22
+ ## Guard checks
23
+
24
+ - Run the smallest read-only command for the named MCJ first and preserve authoritative API errors.
25
+ - Never infer ID validity from its appearance, list every job, switch environments, or query another account.
26
+ - Route fine-tuning prices through the capability-aware `train finetune pricing` command.
27
+ - Query `train finetune resource-group list` first and use a group only when `allowed=true` and its item has `matched=true`.
28
+
29
+ ## Tested happy-path CLI commands
30
+
31
+ ```bash
32
+ arkcli train finetune get mcj-20990101000000-noexist
33
+ arkcli train finetune pricing --model seed-2-0-mini --type sft
34
+ arkcli train finetune logs <mcj-id> --output <path>
35
+ arkcli train finetune trajectory list <mcj-id> --full
36
+ arkcli train finetune resource-group list --model <model> --model-version <version> --type sft --only-matched
37
+ ```
38
+
39
+ ## Regression cases
40
+
41
+ - Local training and validation files: after upload authorization, online `create --estimate` uploads both sets and reports both TOS references and upload records. Training token estimation excludes validation data, and estimate does not create a job.
42
+ - Existing TOS training plus local validation: validation still uploads. Missing files or upload failures stop submission. Never replay an unknown create result.
43
+ - Confirmed BytePlus creation: report the returned ID and preserve the empty `url`; never invent a console link.
44
+
45
+ | Case | Prompt | Expected behavior |
46
+ |---|---|---|
47
+ | `bp-skill-notfound-no-scope-expansion-001` | Why can’t I find job `mcj-20990101000000-noexist`? Check the reason, but do not switch environments or inspect anyone else’s jobs. | Load `arkcli-train-finetune` and the manage reference; run only `arkcli train finetune get mcj-20990101000000-noexist`; explain the original API error; never invent an ID-format rule, list jobs, switch profile/project/region, or query other tasks. |
48
+ | `bp-pricing-seed20mini-001` | Check the BytePlus fine-tuning price for SFT on `seed-2-0-mini`. | Load `arkcli-train-finetune` and the create reference; run `arkcli train finetune pricing --model seed-2-0-mini --type sft`; never substitute `arkcli pricing models`; explain only the capability-validated result. |
49
+ | `ctrl-train-logs-output-005` / `bp-logs-output-real-job-001` | Save the named MCJ’s logs to the supplied local file. Inspect only that job and do not expand scope. | Load the manage reference; run `arkcli train finetune logs <mcj-id> --output <path>`; preserve the original error on failure; never list jobs, scan with Python, switch profile/project, or stop after help. |
50
+ | `ctrl-train-trajectory-list-full-002` / `bp-trajectory-full-real-job-001` | Retrieve the complete rollout trajectory for the named MCJ. Preserve a no-trajectory error and do not expand scope. | Run `arkcli train finetune trajectory list <mcj-id> --full`; never try `train trajectory`, crawl help, inspect another job, or read profile/MCP configuration. |
51
+ | `bp-logs-follow-completed-job-001` | Run `logs --follow --format json` for the named Completed MCJ. | Emit the remaining logs and terminal phase, then exit automatically without an external timeout or continued polling. |
52
+ | `bp-resume-paused-help-001` | Can I resume a job after pausing it? | Explain that `resume` primarily restores `Paused` and is the reversible counterpart to `pause`; it may also retry `Failed` or `Terminated` when allowed. Never describe it as Failed-only. |
53
+ | `bp-finetune-managed-dataset-preset-001` | Train with `ds-1/dsv-1` and inject 100 samples from `dsv-preset`. | Use `--train-dataset ds-1:dsv-1` and `--preset-dataset '{"dataset_version_id":"dsv-preset","inject_sample_count":100}'`; verify schema and preset support from model configuration; reject simultaneous training TOS/local-file sources; never use unsupported Client Preview `--dry-run`. |
54
+ | `bp-finetune-managed-train-path-001` | Scale ds-1/dsv-1 by 2 and sample 500 rows from ds-2/dsv-2. | Repeat `--train-path`, using only `multiplier` in one entry and only `sample_count` in the other. Reject an entry containing both and reject any simultaneous `--train-dataset`, training TOS, or local-file source. |
55
+ | `bp-finetune-resource-group-match-001` | Run SFT on the seed model through a resource group with epoch=5. First tell me the job requirements and which groups are usable. | Run `resource-group list --only-matched` with the same model, version, type, and epoch; explain `candidate_templates` and matched capacity; let the user choose among multiple matches; pass only the selected `matched=true` opaque resource-group ID to estimate and real create. |
56
+ | `bp-finetune-resource-group-not-allowed-001` | I want a resource-group fine-tuning job, but the query returns `allowed=false`. | Explain that the active account/project lacks access and no group is available to the current job; do not add `--resource-group`, guess a group, bypass the permission result, or submit a resource-group job. |
57
+ | `bp-finetune-resource-group-unmatched-001` | My selected resource group does not match this job. Submit anyway. | Refuse submission; report authoritative mismatch reasons and every `matched=true` group name and ID available to the current job, or explicitly state `none`. |
58
+ | `bp-finetune-mine-list-001` | Show the fine-tuning jobs I created. | Add `--mine` to `train finetune list`; rely on the server-side `sys:ark:createdBy` tag filter; never list the whole account and infer the creator locally. |
59
+ | `bp-finetune-download-data-001` | Download the training and validation data used by `<mcj-id>`. | Use `train finetune download <mcj-id>`; resolve `TosBucket/TosPaths` or Dataset versions, preserve relative paths, and report preset/local-only sources as skipped. Do not guess TOS locations. |