@zhuoyuezs/ml-platform 0.1.19 → 0.2.1
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.
- package/README.md +2 -1
- package/checksums.json +12 -12
- package/package.json +1 -1
- package/release.json +12 -12
- package/runtime/business-client/README.md +5 -0
- package/runtime/business-client/package-lock.json +2 -2
- package/runtime/business-client/package.json +1 -1
- package/runtime/business-client/src/cli.js +4 -1
- package/skills/model-deployment-management/references/operations.md +15 -0
- package/skills/model-lifecycle-management/references/evaluation.md +10 -0
- package/skills/model-lifecycle-management/references/training-contracts.md +8 -4
package/README.md
CHANGED
|
@@ -95,12 +95,13 @@ ml-platform list-datasets --project <project>
|
|
|
95
95
|
ml-platform get-dataset <dataset_id> <dataset_version> --project <project>
|
|
96
96
|
ml-platform resolve-dataset <dataset_id> <dataset_version> --project <project>
|
|
97
97
|
ml-platform build-registered-dataset <dataset_id> <dataset_version> --project <project> --wait
|
|
98
|
+
ml-platform list-deployments --package-id <package-id> --package-version <package-version>
|
|
98
99
|
ml-platform apply /absolute/path/to/catalog --dry-run
|
|
99
100
|
ml-platform build-dataset /absolute/path/to/manifest.json --wait
|
|
100
101
|
ml-platform --help
|
|
101
102
|
```
|
|
102
103
|
|
|
103
|
-
|
|
104
|
+
Dataset 查询和 `list-deployments` 直接使用远程 Registry/API,适合 Agent 对已发布版本执行发现、只读诊断和
|
|
104
105
|
受控构建,不要求本地存在 Catalog。`apply`、`resolve-manifest` 和带本地 JSON 路径的
|
|
105
106
|
`build-dataset` 用于新契约的编写和发布流程。
|
|
106
107
|
|
package/checksums.json
CHANGED
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
"files": [
|
|
3
3
|
{
|
|
4
4
|
"path": "runtime/business-client/README.md",
|
|
5
|
-
"sha256": "sha256:
|
|
6
|
-
"size_bytes":
|
|
5
|
+
"sha256": "sha256:7e84fad64f8ee6c7aae467b7947123f3a490b799ec5ffa24fd008e0fa37b133e",
|
|
6
|
+
"size_bytes": 7898
|
|
7
7
|
},
|
|
8
8
|
{
|
|
9
9
|
"path": "runtime/business-client/package-lock.json",
|
|
10
|
-
"sha256": "sha256:
|
|
10
|
+
"sha256": "sha256:43cc5d0a9326cf77ebba8062569feca6ebe986938fad6322647f4d96e3178ec5",
|
|
11
11
|
"size_bytes": 381
|
|
12
12
|
},
|
|
13
13
|
{
|
|
14
14
|
"path": "runtime/business-client/package.json",
|
|
15
|
-
"sha256": "sha256:
|
|
15
|
+
"sha256": "sha256:68f1e248612f027e3d28c5de9f2679bd77a2692ef2748e4e92a0d9c59b07d1a6",
|
|
16
16
|
"size_bytes": 501
|
|
17
17
|
},
|
|
18
18
|
{
|
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
},
|
|
23
23
|
{
|
|
24
24
|
"path": "runtime/business-client/src/cli.js",
|
|
25
|
-
"sha256": "sha256:
|
|
26
|
-
"size_bytes":
|
|
25
|
+
"sha256": "sha256:b282fbbcb8e999ec44cf5bf36a17e02dcf23851971994d1556753e4a0b216d0e",
|
|
26
|
+
"size_bytes": 54352
|
|
27
27
|
},
|
|
28
28
|
{
|
|
29
29
|
"path": "runtime/business-client/src/config.js",
|
|
@@ -132,8 +132,8 @@
|
|
|
132
132
|
},
|
|
133
133
|
{
|
|
134
134
|
"path": "skills/model-deployment-management/references/operations.md",
|
|
135
|
-
"sha256": "sha256:
|
|
136
|
-
"size_bytes":
|
|
135
|
+
"sha256": "sha256:b6d8ac126033a1e3b463b53474f0b27d8687e1a7b05eb973d3aad79259838ac6",
|
|
136
|
+
"size_bytes": 4968
|
|
137
137
|
},
|
|
138
138
|
{
|
|
139
139
|
"path": "skills/model-deployment-management/references/troubleshooting.md",
|
|
@@ -157,8 +157,8 @@
|
|
|
157
157
|
},
|
|
158
158
|
{
|
|
159
159
|
"path": "skills/model-lifecycle-management/references/evaluation.md",
|
|
160
|
-
"sha256": "sha256:
|
|
161
|
-
"size_bytes":
|
|
160
|
+
"sha256": "sha256:4314e65b162f0a72c5c5e6411186340661c853551dc8b2ebce3597680acef117",
|
|
161
|
+
"size_bytes": 9477
|
|
162
162
|
},
|
|
163
163
|
{
|
|
164
164
|
"path": "skills/model-lifecycle-management/references/packaging.md",
|
|
@@ -167,8 +167,8 @@
|
|
|
167
167
|
},
|
|
168
168
|
{
|
|
169
169
|
"path": "skills/model-lifecycle-management/references/training-contracts.md",
|
|
170
|
-
"sha256": "sha256:
|
|
171
|
-
"size_bytes":
|
|
170
|
+
"sha256": "sha256:d2b1f4089cd622589fabd50fe1600edfa6c330f4a7516734fe2316fcec7bb1e0",
|
|
171
|
+
"size_bytes": 12893
|
|
172
172
|
},
|
|
173
173
|
{
|
|
174
174
|
"path": "skills/model-lifecycle-management/references/training.md",
|
package/package.json
CHANGED
package/release.json
CHANGED
|
@@ -13,8 +13,8 @@
|
|
|
13
13
|
"entrypoint": "src/cli.js",
|
|
14
14
|
"name": "ml-platform",
|
|
15
15
|
"path": "runtime/business-client",
|
|
16
|
-
"sha256": "sha256:
|
|
17
|
-
"version": "0.
|
|
16
|
+
"sha256": "sha256:ce26f9355c6eed92173b478fac809d0d1c87bc59d342b37e8e12262f488bbdfa",
|
|
17
|
+
"version": "0.8.1"
|
|
18
18
|
},
|
|
19
19
|
"policy_sha256": "sha256:02fbde0134696b78c0c365d6e0b76c9814227208da5b2b3d4e5dbd82dc4a3606",
|
|
20
20
|
"public_schema_versions": [
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"ml_data_platform.feature_set/v1",
|
|
26
26
|
"ml_data_platform.dataset_manifest/v1"
|
|
27
27
|
],
|
|
28
|
-
"release_version": "0.1
|
|
28
|
+
"release_version": "0.2.1",
|
|
29
29
|
"runtime_requirements": {
|
|
30
30
|
"node": ">=18",
|
|
31
31
|
"os": [
|
|
@@ -37,22 +37,22 @@
|
|
|
37
37
|
"skills": {
|
|
38
38
|
"feature-management": {
|
|
39
39
|
"path": "skills/feature-management",
|
|
40
|
-
"requires_cli": ">=0.
|
|
41
|
-
"revision": "0.1
|
|
40
|
+
"requires_cli": ">=0.8.1 <0.9.0",
|
|
41
|
+
"revision": "0.2.1",
|
|
42
42
|
"sha256": "sha256:d32f0306f129d7bf76eb037fe239c84dd3c29c64b61600799d6e40320784bb10"
|
|
43
43
|
},
|
|
44
44
|
"model-deployment-management": {
|
|
45
45
|
"path": "skills/model-deployment-management",
|
|
46
|
-
"requires_cli": ">=0.
|
|
47
|
-
"revision": "0.1
|
|
48
|
-
"sha256": "sha256:
|
|
46
|
+
"requires_cli": ">=0.8.1 <0.9.0",
|
|
47
|
+
"revision": "0.2.1",
|
|
48
|
+
"sha256": "sha256:e7d87c272a0dcc028ea628d5e36f5b7e52ed27cb9c1bc17ea76527478e28b46d"
|
|
49
49
|
},
|
|
50
50
|
"model-lifecycle-management": {
|
|
51
51
|
"path": "skills/model-lifecycle-management",
|
|
52
|
-
"requires_cli": ">=0.
|
|
53
|
-
"revision": "0.1
|
|
54
|
-
"sha256": "sha256:
|
|
52
|
+
"requires_cli": ">=0.8.1 <0.9.0",
|
|
53
|
+
"revision": "0.2.1",
|
|
54
|
+
"sha256": "sha256:aaa3fdb54c0ff9e8dfa0f71e67d072830786e5e3d4803ba3962dff723d159386"
|
|
55
55
|
}
|
|
56
56
|
},
|
|
57
|
-
"source_commit": "
|
|
57
|
+
"source_commit": "93fcb433438db8409e3b762a0cad44c3abc12b8b"
|
|
58
58
|
}
|
|
@@ -64,10 +64,15 @@ ml-platform validate-deployment /absolute/path/to/deployment.json \
|
|
|
64
64
|
ml-platform create-deployment /absolute/path/to/deployment.json \
|
|
65
65
|
--evaluation-id <pass-evaluation-id>
|
|
66
66
|
ml-platform wait-deployment <deployment-id> --wait-timeout-seconds 1800
|
|
67
|
+
ml-platform list-deployments --package-id <package-id> \
|
|
68
|
+
--package-version <package-version> --model-artifact-id <artifact-id>
|
|
67
69
|
ml-platform get-deployment <deployment-id>
|
|
68
70
|
ml-platform get-deployment-events <deployment-id> --limit 100 --offset 0
|
|
69
71
|
```
|
|
70
72
|
|
|
73
|
+
`list-deployments` 也支持按 `service`、`environment`、`state` 和自由文本 `q` 过滤,返回平台
|
|
74
|
+
Deployment Controller 管理的部署,不把模型中心回写的 delivery 状态当作平台部署。
|
|
75
|
+
|
|
71
76
|
`READY` 必须同时包含 `ReplicasReady=true`、`ArtifactsVerified=true` 和
|
|
72
77
|
`SmokePredictionPassed=true`。`get-deployment` 返回控制器实际观察到的 endpoint 元数据;
|
|
73
78
|
本地 CLI 不推测 Kubernetes Service 名称。部署后验证优先使用控制面代理:
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zhuoyuezs/ml-platform-business-client",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.1",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@zhuoyuezs/ml-platform-business-client",
|
|
9
|
-
"version": "0.
|
|
9
|
+
"version": "0.8.1",
|
|
10
10
|
"license": "UNLICENSED",
|
|
11
11
|
"bin": {
|
|
12
12
|
"ml-platform": "src/cli.js"
|
|
@@ -147,7 +147,7 @@ const COMMAND_USAGE = {
|
|
|
147
147
|
"list-deployment-targets": "list-deployment-targets",
|
|
148
148
|
"validate-deployment": "validate-deployment SPEC_JSON --evaluation-id ID",
|
|
149
149
|
"create-deployment": "create-deployment SPEC_JSON --evaluation-id ID",
|
|
150
|
-
"list-deployments": "list-deployments [--service SERVICE] [--environment ENV] [--state STATE] [-q QUERY] [--limit N] [--offset N]",
|
|
150
|
+
"list-deployments": "list-deployments [--service SERVICE] [--environment ENV] [--package-id ID] [--package-version VERSION] [--model-artifact-id ID] [--state STATE] [-q QUERY] [--limit N] [--offset N]",
|
|
151
151
|
"get-deployment": "get-deployment DEPLOYMENT_ID",
|
|
152
152
|
"wait-deployment": "wait-deployment DEPLOYMENT_ID [--poll-interval SECONDS] [--wait-timeout-seconds SECONDS]",
|
|
153
153
|
"reconcile-deployment": "reconcile-deployment DEPLOYMENT_ID",
|
|
@@ -511,6 +511,9 @@ async function runBusinessCli(argv) {
|
|
|
511
511
|
const params = {
|
|
512
512
|
service: take(rest, "--service"),
|
|
513
513
|
environment: take(rest, "--environment"),
|
|
514
|
+
package_id: take(rest, "--package-id"),
|
|
515
|
+
package_version: take(rest, "--package-version"),
|
|
516
|
+
model_artifact_id: take(rest, "--model-artifact-id"),
|
|
514
517
|
state: take(rest, "--state"),
|
|
515
518
|
q: take(rest, "--q", take(rest, "-q")),
|
|
516
519
|
};
|
|
@@ -29,6 +29,21 @@ Use `get-deployment` to inspect the full revision history and endpoints. Use
|
|
|
29
29
|
`list-deployments` for discovery and `get-deployment-events` for paginated
|
|
30
30
|
audit evidence.
|
|
31
31
|
|
|
32
|
+
Discover deployments associated with a packaged model without knowing the
|
|
33
|
+
deployment ID first:
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
ml-platform --profile server list-deployments \
|
|
37
|
+
--package-id <package-id> \
|
|
38
|
+
--package-version <package-version> \
|
|
39
|
+
--model-artifact-id <artifact-id>
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
The filters may be used independently and combined with `--service`,
|
|
43
|
+
`--environment`, `--state`, `--q`, `--limit`, and `--offset`. These results are
|
|
44
|
+
ITSMP platform deployments; external model-center delivery callbacks are a
|
|
45
|
+
separate status surface.
|
|
46
|
+
|
|
32
47
|
For direct model access, declare `service_exposure.type=NodePort` in the same
|
|
33
48
|
validated DeploymentSpec. After the revision is `READY`, read the observed
|
|
34
49
|
`nodeport` endpoint instead of constructing a Service name. Given an observed
|
|
@@ -27,6 +27,16 @@ Inspect `get-metric-definition regression.mae v1` before relying on this metric.
|
|
|
27
27
|
Release mode additionally requires at least one required validation rule with a
|
|
28
28
|
business-approved threshold; do not invent thresholds to obtain PASS.
|
|
29
29
|
|
|
30
|
+
For a fixed-length multi-step forecast, `regression.mae` and
|
|
31
|
+
`regression.rmse` cover only the terminal point at the maximum trained horizon.
|
|
32
|
+
Use `regression.trajectory_mae` and `regression.trajectory_rmse` for a release
|
|
33
|
+
gate over the complete trajectory. These metrics flatten every valid
|
|
34
|
+
`(anchor, horizon_step)` cell; they do not multiply the terminal metric by the
|
|
35
|
+
prediction length. Inspect `forecast_metrics.parquet` for the per-step curve.
|
|
36
|
+
When a trajectory metric is requested, prediction coverage requires every step
|
|
37
|
+
of an anchor to be finite. A non-forecast ModelArtifact is rejected before
|
|
38
|
+
Worker execution.
|
|
39
|
+
|
|
30
40
|
Example `evaluation-request.json` shape; replace illustrative identities before
|
|
31
41
|
validation or submission:
|
|
32
42
|
|
|
@@ -265,7 +265,11 @@ contracts. Training `evaluation.split=auto` prefers nonempty test, then validati
|
|
|
265
265
|
then train; choose an explicit split when reserving the test set for final review.
|
|
266
266
|
Training metrics are not a governed EvaluationResult or release gate pass.
|
|
267
267
|
|
|
268
|
-
For sequence outputs,
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
268
|
+
For sequence outputs, training feedback and governed `regression.mae` /
|
|
269
|
+
`regression.rmse` retain terminal-point semantics at the trained maximum
|
|
270
|
+
horizon. Governed evaluation additionally supports
|
|
271
|
+
`regression.trajectory_mae` and `regression.trajectory_rmse`: they aggregate all
|
|
272
|
+
valid `(anchor, horizon_step)` cells, while `forecast_metrics.parquet` records
|
|
273
|
+
the per-step curve. Use a trajectory metric for multi-point release gates; do
|
|
274
|
+
not multiply the terminal metric by `prediction_length` or report it as whole-
|
|
275
|
+
trajectory quality.
|