@zhuoyuezs/ml-platform 0.1.8 → 0.1.9
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/checksums.json +10 -10
- package/package.json +1 -1
- package/release.json +6 -6
- package/skills/feature-management/SKILL.md +3 -2
- package/skills/feature-management/references/contracts.md +13 -1
- package/skills/model-lifecycle-management/references/packaging.md +5 -0
- package/skills/model-lifecycle-management/references/training-contracts.md +26 -1
- package/skills/model-lifecycle-management/references/training.md +5 -1
package/checksums.json
CHANGED
|
@@ -37,8 +37,8 @@
|
|
|
37
37
|
},
|
|
38
38
|
{
|
|
39
39
|
"path": "skills/feature-management/SKILL.md",
|
|
40
|
-
"sha256": "sha256:
|
|
41
|
-
"size_bytes":
|
|
40
|
+
"sha256": "sha256:5b3ce57d84f11188579227dd42617075f87534ac113a3f37b3543c85c0ff0b3d",
|
|
41
|
+
"size_bytes": 31114
|
|
42
42
|
},
|
|
43
43
|
{
|
|
44
44
|
"path": "skills/feature-management/agents/openai.yaml",
|
|
@@ -97,8 +97,8 @@
|
|
|
97
97
|
},
|
|
98
98
|
{
|
|
99
99
|
"path": "skills/feature-management/references/contracts.md",
|
|
100
|
-
"sha256": "sha256:
|
|
101
|
-
"size_bytes":
|
|
100
|
+
"sha256": "sha256:d9ff95edb3ac50cb590df640c5034d45ddd5b758431a4ae2e69eb807bb659314",
|
|
101
|
+
"size_bytes": 28449
|
|
102
102
|
},
|
|
103
103
|
{
|
|
104
104
|
"path": "skills/feature-management/references/operator-authoring.md",
|
|
@@ -137,18 +137,18 @@
|
|
|
137
137
|
},
|
|
138
138
|
{
|
|
139
139
|
"path": "skills/model-lifecycle-management/references/packaging.md",
|
|
140
|
-
"sha256": "sha256:
|
|
141
|
-
"size_bytes":
|
|
140
|
+
"sha256": "sha256:8435283061d740e57aafc90fa402cd89adcd8e2e957805b3d435ea4ba1f8721c",
|
|
141
|
+
"size_bytes": 3142
|
|
142
142
|
},
|
|
143
143
|
{
|
|
144
144
|
"path": "skills/model-lifecycle-management/references/training-contracts.md",
|
|
145
|
-
"sha256": "sha256:
|
|
146
|
-
"size_bytes":
|
|
145
|
+
"sha256": "sha256:1d1fa51ef7deb6abf178cf019eb69e8ee6a93ecb018029780f01a33696473dd6",
|
|
146
|
+
"size_bytes": 8229
|
|
147
147
|
},
|
|
148
148
|
{
|
|
149
149
|
"path": "skills/model-lifecycle-management/references/training.md",
|
|
150
|
-
"sha256": "sha256:
|
|
151
|
-
"size_bytes":
|
|
150
|
+
"sha256": "sha256:370d5e663292ce1bdcf0eb88c133c07a77f57dd31e21748906c92aa3407c4e95",
|
|
151
|
+
"size_bytes": 4516
|
|
152
152
|
}
|
|
153
153
|
],
|
|
154
154
|
"schema_version": "data_platform.ml_platform_checksums/v1"
|
package/package.json
CHANGED
package/release.json
CHANGED
|
@@ -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.1.9",
|
|
29
29
|
"runtime_requirements": {
|
|
30
30
|
"node": ">=18",
|
|
31
31
|
"os": [
|
|
@@ -38,15 +38,15 @@
|
|
|
38
38
|
"feature-management": {
|
|
39
39
|
"path": "skills/feature-management",
|
|
40
40
|
"requires_cli": ">=0.7.0 <0.8.0",
|
|
41
|
-
"revision": "0.1.
|
|
42
|
-
"sha256": "sha256:
|
|
41
|
+
"revision": "0.1.9",
|
|
42
|
+
"sha256": "sha256:82a49a3f636d4e1a4b5adf28cbcab533168e3aa5fc3014f096149055e7745624"
|
|
43
43
|
},
|
|
44
44
|
"model-lifecycle-management": {
|
|
45
45
|
"path": "skills/model-lifecycle-management",
|
|
46
46
|
"requires_cli": ">=0.7.0 <0.8.0",
|
|
47
|
-
"revision": "0.1.
|
|
48
|
-
"sha256": "sha256:
|
|
47
|
+
"revision": "0.1.9",
|
|
48
|
+
"sha256": "sha256:b84505ee632967d019e97f89292c0041f8b722bd320e7d68d170e41131edaff7"
|
|
49
49
|
}
|
|
50
50
|
},
|
|
51
|
-
"source_commit": "
|
|
51
|
+
"source_commit": "5f855cd27f7951b739424704ea7dc15d714aeb5d"
|
|
52
52
|
}
|
|
@@ -107,7 +107,8 @@ Confirm:
|
|
|
107
107
|
|
|
108
108
|
- the target project (namespace) for the assets; use the built-in `default` only when the user has no dedicated project. After the target is confirmed, write its explicit `project` field in every Parameter, Operator, Feature, FeatureSet and DatasetManifest draft; never rely on the schema default. Reads and filters use the `--project` command option;
|
|
109
109
|
- business meaning, stable asset names, owner, and intended consumers;
|
|
110
|
-
- Parameter source adapter
|
|
110
|
+
- Parameter source adapter (`postgresql_direct`, `mysql_direct`,
|
|
111
|
+
`sqlserver_direct`, or `influxdb_direct`) and credential-free source mapping;
|
|
111
112
|
- feature formula, exact Parameter dependencies, windows, inclusion rules, rounding, null behavior, and output dtype;
|
|
112
113
|
- whether an approved Operator already implements the formula;
|
|
113
114
|
- FeatureSet column order;
|
|
@@ -255,7 +256,7 @@ unit, time/availability semantics and missing policy in the semantic review.
|
|
|
255
256
|
Never infer a source table, column, measurement, tag, unit or timezone from a
|
|
256
257
|
Parameter name.
|
|
257
258
|
|
|
258
|
-
Create one stable, versioned source contract for each independently readable value. Keep credentials out of JSON. Use only supported direct adapters and explicit source identity. Put source data validity in `quality_rules`; put dataset-specific transformations in preprocess Operators.
|
|
259
|
+
Create one stable, versioned source contract for each independently readable value. Keep credentials out of JSON. Use only supported direct adapters (`postgresql_direct`, `mysql_direct`, `sqlserver_direct`, and `influxdb_direct`) and explicit source identity. The server supplies database DSNs from managed Secrets; never add them to CLI arguments or Catalog JSON. Put source data validity in `quality_rules`; put dataset-specific transformations in preprocess Operators.
|
|
259
260
|
|
|
260
261
|
When the approved source contract supplies SQL, copy its query text and named
|
|
261
262
|
parameters exactly into `source.sql`/`source.params`. Do not retype, beautify,
|
|
@@ -127,7 +127,9 @@ tie with a different rule cannot be repaired downstream. Do not repeat the same
|
|
|
127
127
|
Parameter-level rounding in an Operator. Changing the mode, decimals, or stage
|
|
128
128
|
requires a new Parameter version and the affected reverse-dependency closure.
|
|
129
129
|
|
|
130
|
-
PostgreSQL direct-column
|
|
130
|
+
PostgreSQL, MySQL, and SQL Server direct-column Parameters share this source
|
|
131
|
+
shape. Set `adapter` to `postgresql_direct`, `mysql_direct`, or
|
|
132
|
+
`sqlserver_direct`; keep database-specific DSNs in server-managed Secrets.
|
|
131
133
|
|
|
132
134
|
```json
|
|
133
135
|
{
|
|
@@ -143,6 +145,16 @@ PostgreSQL direct-column example:
|
|
|
143
145
|
}
|
|
144
146
|
```
|
|
145
147
|
|
|
148
|
+
The same contract for MySQL or SQL Server changes only the adapter name:
|
|
149
|
+
|
|
150
|
+
```json
|
|
151
|
+
{"adapter": "mysql_direct", "mode": "direct_column", "schema": "process_data", "table": "sensor_readings", "time_column": "event_time", "value_column": "hot_blast_pressure", "metric_name": "hot_blast_pressure"}
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
```json
|
|
155
|
+
{"adapter": "sqlserver_direct", "mode": "direct_column", "schema": "process_data", "table": "sensor_readings", "time_column": "event_time", "value_column": "hot_blast_pressure", "metric_name": "hot_blast_pressure"}
|
|
156
|
+
```
|
|
157
|
+
|
|
146
158
|
InfluxDB direct-column example:
|
|
147
159
|
|
|
148
160
|
```json
|
|
@@ -44,6 +44,11 @@ Confirm the ModelArtifact, signature, runtime, immutable base/builder/worker ima
|
|
|
44
44
|
|
|
45
45
|
A deliverable package is `READY` and includes its remote image digest, immutable reference, manifest, signature and adapter hashes, runtime capabilities, and a passing test report for the same digest. Other states are not deliverable.
|
|
46
46
|
|
|
47
|
+
For a sequence-output artifact, inspect the returned runtime contract for
|
|
48
|
+
`output_schema.kind=sequence`, its fixed maximum `length` and frequency, and
|
|
49
|
+
`horizon_prediction=prefix`. Inference returns the requested aligned prefix up
|
|
50
|
+
to that maximum; a one-step artifact remains scalar.
|
|
51
|
+
|
|
47
52
|
```bash
|
|
48
53
|
ml-platform --profile server cancel-model-package <package-id> --package-version <version>
|
|
49
54
|
```
|
|
@@ -11,7 +11,7 @@ Example forecasting sequence run:
|
|
|
11
11
|
|
|
12
12
|
```json
|
|
13
13
|
{
|
|
14
|
-
"schema_version": "ml_data_platform.training_run/
|
|
14
|
+
"schema_version": "ml_data_platform.training_run/v3",
|
|
15
15
|
"run_id": "pressure_forecast_run_01",
|
|
16
16
|
"experiment": "pressure_forecast",
|
|
17
17
|
"task": {"kind": "forecasting", "objective": "regression"},
|
|
@@ -38,6 +38,14 @@ Example forecasting sequence run:
|
|
|
38
38
|
"context_end": "prediction_time_inclusive", "frequency": "5min",
|
|
39
39
|
"stride": 1, "gap_policy": "reject", "padding_policy": "none"
|
|
40
40
|
},
|
|
41
|
+
"forecast_target_adapter": {
|
|
42
|
+
"schema_version": "ml_data_platform.forecast_target_adapter/v1",
|
|
43
|
+
"kind": "continuous_target_series",
|
|
44
|
+
"target_input_column": "pressure",
|
|
45
|
+
"output_label_column": "future_pressure",
|
|
46
|
+
"target_gap_policy": "reject",
|
|
47
|
+
"point_output": {"statistic": "median", "step": "horizon"}
|
|
48
|
+
},
|
|
41
49
|
"label_transform": {"name": "identity", "version": "v1"},
|
|
42
50
|
"trainer": {
|
|
43
51
|
"project": "default", "name": "replace_approved_trainer", "version": "v1",
|
|
@@ -128,6 +136,18 @@ null Features or labels also skip samples. Candidate row counts therefore are
|
|
|
128
136
|
not training/evaluation sample counts. Report the materialized population and
|
|
129
137
|
coverage instead of assuming all Parquet rows were used.
|
|
130
138
|
|
|
139
|
+
For `continuous_target_series`, TrainingRun v3 derives the fixed maximum
|
|
140
|
+
`prediction_length` as `data.temporal.horizon / data.temporal.frequency`; the
|
|
141
|
+
horizon must be a positive exact multiple of the frequency. The target input
|
|
142
|
+
must be a numeric, at-prediction Feature and the output label must be the sole
|
|
143
|
+
entry in `data.labels`. Use this adapter only when the inspected TrainerDefinition
|
|
144
|
+
advertises `forecast_target_modes=["continuous_target_series"]`.
|
|
145
|
+
|
|
146
|
+
The resulting model emits the complete fixed-length trajectory. Serving accepts
|
|
147
|
+
aligned horizons up to that maximum and returns the corresponding trajectory
|
|
148
|
+
prefix; it rejects unaligned or longer horizons. A one-step model remains a
|
|
149
|
+
scalar response.
|
|
150
|
+
|
|
131
151
|
`gap_policy=fill` requires `padding_policy=edge` or `zero`; non-fill requires
|
|
132
152
|
`padding_policy=none`. Filling changes model inputs and needs an intended
|
|
133
153
|
business policy. `skip` and padding are not automatic fixes for rejected grids.
|
|
@@ -137,3 +157,8 @@ EvaluationConfig uses versioned names such as `regression.mae`. They are differe
|
|
|
137
157
|
contracts. Training `evaluation.split=auto` prefers nonempty test, then validation,
|
|
138
158
|
then train; choose an explicit split when reserving the test set for final review.
|
|
139
159
|
Training metrics are not a governed EvaluationResult or release gate pass.
|
|
160
|
+
|
|
161
|
+
For sequence outputs, current training and governed evaluation apply regression
|
|
162
|
+
metrics to the terminal point at the trained maximum horizon. They do not yet
|
|
163
|
+
provide per-step or whole-trajectory release gates; record this limitation when
|
|
164
|
+
reporting evidence for a multi-point package.
|
|
@@ -7,7 +7,7 @@ FeatureSet order and evaluation runtime before the first Job. See
|
|
|
7
7
|
[evaluation.md](evaluation.md) for inherited split bindings and runtime failures.
|
|
8
8
|
|
|
9
9
|
- Inspect exact TrainerDefinition `project/name:v1`, entrypoint, image digest,
|
|
10
|
-
capabilities and parameter schema. Similar names in different projects are
|
|
10
|
+
capabilities (including `forecast_target_modes`) and parameter schema. Similar names in different projects are
|
|
11
11
|
distinct identities; registration does not imply runtime approval.
|
|
12
12
|
- Match definition and device to the active runtime release. On `not approved
|
|
13
13
|
for device`, preserve the rejected identity, device and release ID. Use `get-model-runtime-release` to find the
|
|
@@ -21,6 +21,10 @@ FeatureSet order and evaluation runtime before the first Job. See
|
|
|
21
21
|
`label_time - prediction_time`, and validate the complete TrainingRun before
|
|
22
22
|
registration/submission. Validation may not catch undeclared plugin limits or
|
|
23
23
|
missing dependencies in the eventual Worker.
|
|
24
|
+
- For a continuous future trajectory, use TrainingRun v3 with
|
|
25
|
+
`forecast_target_adapter.kind=continuous_target_series`. Its fixed maximum
|
|
26
|
+
prediction length comes from temporal horizon divided by frequency; do not
|
|
27
|
+
put `prediction_length` in trainer-specific parameters.
|
|
24
28
|
|
|
25
29
|
Merge this fragment under TrainingRun `data`, alongside `artifact`, `features`,
|
|
26
30
|
`labels` and the applicable `temporal` binding:
|