@seanhogg/builderforce-memory-engine 2026.10.1 → 2026.10.2
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/dist/evermind/delta_wire.d.ts +16 -1
- package/dist/evermind/delta_wire.d.ts.map +1 -1
- package/dist/evermind/delta_wire.js +22 -2
- package/dist/evermind/delta_wire.js.map +1 -1
- package/dist/evermind/index.d.ts +2 -2
- package/dist/evermind/index.d.ts.map +1 -1
- package/dist/evermind/index.js +1 -1
- package/dist/evermind/index.js.map +1 -1
- package/dist/evermind/merge.d.ts +5 -2
- package/dist/evermind/merge.d.ts.map +1 -1
- package/dist/evermind/merge.js +5 -2
- package/dist/evermind/merge.js.map +1 -1
- package/dist/evermind/ml_head.d.ts +28 -0
- package/dist/evermind/ml_head.d.ts.map +1 -0
- package/dist/evermind/ml_head.js +47 -0
- package/dist/evermind/ml_head.js.map +1 -0
- package/dist/evermind/package.d.ts +2 -2
- package/dist/evermind/package.d.ts.map +1 -1
- package/dist/evermind/package.js +1 -1
- package/dist/evermind/package.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/limbic/limbic_model.d.ts.map +1 -1
- package/dist/limbic/limbic_model.js +1 -3
- package/dist/limbic/limbic_model.js.map +1 -1
- package/dist/ml/classical/anomaly_composite.d.ts +32 -0
- package/dist/ml/classical/anomaly_composite.d.ts.map +1 -0
- package/dist/ml/classical/anomaly_composite.js +29 -0
- package/dist/ml/classical/anomaly_composite.js.map +1 -0
- package/dist/ml/classical/ewma.d.ts +6 -1
- package/dist/ml/classical/ewma.d.ts.map +1 -1
- package/dist/ml/classical/ewma.js +5 -3
- package/dist/ml/classical/ewma.js.map +1 -1
- package/dist/ml/classical/gbm.d.ts.map +1 -1
- package/dist/ml/classical/gbm.js +2 -1
- package/dist/ml/classical/gbm.js.map +1 -1
- package/dist/ml/classical/index.d.ts +4 -0
- package/dist/ml/classical/index.d.ts.map +1 -1
- package/dist/ml/classical/index.js +4 -0
- package/dist/ml/classical/index.js.map +1 -1
- package/dist/ml/classical/kmeans.d.ts.map +1 -1
- package/dist/ml/classical/kmeans.js +23 -4
- package/dist/ml/classical/kmeans.js.map +1 -1
- package/dist/ml/classical/knn.d.ts +4 -1
- package/dist/ml/classical/knn.d.ts.map +1 -1
- package/dist/ml/classical/knn.js +2 -1
- package/dist/ml/classical/knn.js.map +1 -1
- package/dist/ml/classical/logistic.d.ts +1 -9
- package/dist/ml/classical/logistic.d.ts.map +1 -1
- package/dist/ml/classical/logistic.js +17 -9
- package/dist/ml/classical/logistic.js.map +1 -1
- package/dist/ml/classical/naive_bayes.d.ts +5 -1
- package/dist/ml/classical/naive_bayes.d.ts.map +1 -1
- package/dist/ml/classical/naive_bayes.js +8 -3
- package/dist/ml/classical/naive_bayes.js.map +1 -1
- package/dist/ml/classical/robust_z.d.ts +9 -1
- package/dist/ml/classical/robust_z.d.ts.map +1 -1
- package/dist/ml/classical/robust_z.js +2 -1
- package/dist/ml/classical/robust_z.js.map +1 -1
- package/dist/ml/eval_loss.d.ts +15 -0
- package/dist/ml/eval_loss.d.ts.map +1 -0
- package/dist/ml/eval_loss.js +20 -0
- package/dist/ml/eval_loss.js.map +1 -0
- package/dist/ml/federate.d.ts +11 -25
- package/dist/ml/federate.d.ts.map +1 -1
- package/dist/ml/federate.js +15 -38
- package/dist/ml/federate.js.map +1 -1
- package/dist/ml/head_trainer.d.ts +4 -2
- package/dist/ml/head_trainer.d.ts.map +1 -1
- package/dist/ml/head_trainer.js +19 -19
- package/dist/ml/head_trainer.js.map +1 -1
- package/dist/ml/run.d.ts +11 -2
- package/dist/ml/run.d.ts.map +1 -1
- package/dist/ml/run.js +56 -17
- package/dist/ml/run.js.map +1 -1
- package/dist/ml/tasks/experience.d.ts +42 -5
- package/dist/ml/tasks/experience.d.ts.map +1 -1
- package/dist/ml/tasks/experience.js +76 -19
- package/dist/ml/tasks/experience.js.map +1 -1
- package/dist/ml/tasks/run_anomaly.d.ts +20 -19
- package/dist/ml/tasks/run_anomaly.d.ts.map +1 -1
- package/dist/ml/tasks/run_anomaly.js +20 -30
- package/dist/ml/tasks/run_anomaly.js.map +1 -1
- package/dist/ml/train.d.ts +2 -7
- package/dist/ml/train.d.ts.map +1 -1
- package/dist/ml/train.js +2 -19
- package/dist/ml/train.js.map +1 -1
- package/dist/ml/types.d.ts +6 -3
- package/dist/ml/types.d.ts.map +1 -1
- package/dist/ml/types.js +3 -2
- package/dist/ml/types.js.map +1 -1
- package/package.json +1 -1
- package/src/evermind/delta_wire.ts +173 -148
- package/src/evermind/index.ts +36 -35
- package/src/evermind/merge.ts +10 -4
- package/src/evermind/ml_head.ts +63 -0
- package/src/evermind/package.ts +488 -488
- package/src/index.ts +2 -0
- package/src/limbic/limbic_model.ts +1 -4
- package/src/limbic/limbic_trainer.ts +91 -91
- package/src/ml/classical/anomaly_composite.ts +46 -0
- package/src/ml/classical/ewma.ts +7 -1
- package/src/ml/classical/gbm.ts +144 -143
- package/src/ml/classical/index.ts +6 -0
- package/src/ml/classical/kmeans.ts +22 -4
- package/src/ml/classical/knn.ts +6 -2
- package/src/ml/classical/logistic.ts +9 -9
- package/src/ml/classical/math.ts +93 -93
- package/src/ml/classical/naive_bayes.ts +10 -3
- package/src/ml/classical/robust_z.ts +11 -2
- package/src/ml/eval_loss.ts +27 -0
- package/src/ml/federate.ts +22 -52
- package/src/ml/head_trainer.ts +21 -42
- package/src/ml/registry.ts +44 -44
- package/src/ml/run.ts +57 -13
- package/src/ml/tasks/experience.ts +98 -19
- package/src/ml/tasks/run_anomaly.ts +30 -36
- package/src/ml/train.ts +3 -19
- package/src/ml/types.ts +135 -132
- package/src/training/cpu_ops.ts +141 -141
|
@@ -4,6 +4,10 @@
|
|
|
4
4
|
* Per class: a weighted prior, and an independent Gaussian per feature. Variance
|
|
5
5
|
* is smoothed by a fraction of the largest feature variance (as scikit-learn's
|
|
6
6
|
* `var_smoothing`), so a constant feature never divides by zero.
|
|
7
|
+
*
|
|
8
|
+
* A class with no training weight has prior −∞ and probability exactly 0: its
|
|
9
|
+
* Gaussian is a placeholder (mean 0, variance ≈ the smoothing floor), which would
|
|
10
|
+
* otherwise out-score every real class on an input near zero.
|
|
7
11
|
*/
|
|
8
12
|
import type { MlPrediction, MlPredictor, MlSample } from "../types.js";
|
|
9
13
|
export interface NaiveBayesOptions {
|
|
@@ -16,7 +20,7 @@ export declare class NaiveBayesModel implements MlPredictor {
|
|
|
16
20
|
readonly mean: Float64Array[];
|
|
17
21
|
readonly variance: Float64Array[];
|
|
18
22
|
constructor(logPrior: Float64Array, mean: Float64Array[], variance: Float64Array[]);
|
|
19
|
-
/** Per-class joint log-likelihood log P(c) + Σ log N(x_i | μ, σ²). */
|
|
23
|
+
/** Per-class joint log-likelihood log P(c) + Σ log N(x_i | μ, σ²); −∞ for an unseen class. */
|
|
20
24
|
jointLogLikelihood(x: ArrayLike<number>): number[];
|
|
21
25
|
predict(x: Float32Array): MlPrediction;
|
|
22
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"naive_bayes.d.ts","sourceRoot":"","sources":["../../../src/ml/classical/naive_bayes.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"naive_bayes.d.ts","sourceRoot":"","sources":["../../../src/ml/classical/naive_bayes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGvE,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sFAAsF;IACtF,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,qBAAa,eAAgB,YAAW,WAAW;IAE/C,QAAQ,CAAC,QAAQ,EAAE,YAAY;IAC/B,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE;IAC7B,QAAQ,CAAC,QAAQ,EAAE,YAAY,EAAE;gBAFxB,QAAQ,EAAE,YAAY,EACtB,IAAI,EAAE,YAAY,EAAE,EACpB,QAAQ,EAAE,YAAY,EAAE;IAGnC,8FAA8F;IAC9F,kBAAkB,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE;IAalD,OAAO,CAAC,CAAC,EAAE,YAAY,GAAG,YAAY;CAIvC;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,SAAS,QAAQ,EAAE,EAAE,IAAI,GAAE,iBAAsB,GAAG,eAAe,CAoCzG"}
|
|
@@ -8,11 +8,13 @@ export class NaiveBayesModel {
|
|
|
8
8
|
this.mean = mean;
|
|
9
9
|
this.variance = variance;
|
|
10
10
|
}
|
|
11
|
-
/** Per-class joint log-likelihood log P(c) + Σ log N(x_i | μ, σ²). */
|
|
11
|
+
/** Per-class joint log-likelihood log P(c) + Σ log N(x_i | μ, σ²); −∞ for an unseen class. */
|
|
12
12
|
jointLogLikelihood(x) {
|
|
13
13
|
return this.mean.map((mu, c) => {
|
|
14
14
|
const v = this.variance[c];
|
|
15
15
|
let ll = this.logPrior[c];
|
|
16
|
+
if (ll === -Infinity)
|
|
17
|
+
return ll;
|
|
16
18
|
for (let i = 0; i < mu.length; i++) {
|
|
17
19
|
const d = (x[i] ?? 0) - mu[i];
|
|
18
20
|
ll += -0.5 * Math.log(2 * Math.PI * v[i]) - (d * d) / (2 * v[i]);
|
|
@@ -60,8 +62,11 @@ export function fitNaiveBayes(samples, opts = {}) {
|
|
|
60
62
|
for (let i = 0; i < d; i++)
|
|
61
63
|
variance[c][i] = variance[c][i] + eps;
|
|
62
64
|
const total = wSum.reduce((a, b) => a + b, 0);
|
|
63
|
-
|
|
64
|
-
|
|
65
|
+
if (!(total > 0))
|
|
66
|
+
throw new Error("fitNaiveBayes: the samples carry no weight");
|
|
67
|
+
// An unseen class is masked out (−∞, so softmax gives it exactly 0). At least one
|
|
68
|
+
// class has weight, so softmax always has a finite maximum.
|
|
69
|
+
const logPrior = Float64Array.from(wSum, (w) => (w > 0 ? Math.log(w / total) : -Infinity));
|
|
65
70
|
return new NaiveBayesModel(logPrior, mean, variance);
|
|
66
71
|
}
|
|
67
72
|
//# sourceMappingURL=naive_bayes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"naive_bayes.js","sourceRoot":"","sources":["../../../src/ml/classical/naive_bayes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"naive_bayes.js","sourceRoot":"","sources":["../../../src/ml/classical/naive_bayes.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,10 @@
|
|
|
4
4
|
* Per feature: z = |x − median| / (1.4826 · MAD). Median and MAD are not dragged
|
|
5
5
|
* by the very outliers being looked for, unlike mean and standard deviation. When
|
|
6
6
|
* MAD is 0 (more than half the history identical) the mean absolute deviation
|
|
7
|
-
* stands in, then
|
|
7
|
+
* stands in, then two floors: a fraction of |median| (relative) and `minScale`
|
|
8
|
+
* (absolute, in the feature's own units). Without the absolute one a history that
|
|
9
|
+
* is all zeros — no tool failures, ever — gets a scale of ~1e-9, and the first
|
|
10
|
+
* small non-zero value scores astronomically.
|
|
8
11
|
*
|
|
9
12
|
* Prediction: `scores[0] = max_i z_i / threshold` — ≥ 1 is anomalous.
|
|
10
13
|
*/
|
|
@@ -14,6 +17,11 @@ export interface RobustZOptions {
|
|
|
14
17
|
threshold?: number;
|
|
15
18
|
/** Smallest scale per feature, as a fraction of |median| (plus 1e-9). Default 0.01. */
|
|
16
19
|
minScaleFraction?: number;
|
|
20
|
+
/**
|
|
21
|
+
* Smallest scale per feature in absolute feature units. Default 0 — the algorithm
|
|
22
|
+
* cannot know the units; a task on a fixed scale sets it (`run.anomaly` does).
|
|
23
|
+
*/
|
|
24
|
+
minScale?: number;
|
|
17
25
|
}
|
|
18
26
|
export declare class RobustZModel implements MlPredictor {
|
|
19
27
|
readonly center: Float64Array;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"robust_z.d.ts","sourceRoot":"","sources":["../../../src/ml/classical/robust_z.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"robust_z.d.ts","sourceRoot":"","sources":["../../../src/ml/classical/robust_z.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAQvE,MAAM,WAAW,cAAc;IAC7B,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uFAAuF;IACvF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,YAAa,YAAW,WAAW;IAE5C,QAAQ,CAAC,MAAM,EAAE,YAAY;IAC7B,QAAQ,CAAC,KAAK,EAAE,YAAY;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM;gBAFjB,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,MAAM;IAG5B,8CAA8C;IAC9C,OAAO,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE;IAIvC,OAAO,CAAC,CAAC,EAAE,YAAY,GAAG,YAAY;CAIvC;AAED,iGAAiG;AACjG,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,SAAS,QAAQ,EAAE,EAAE,IAAI,GAAE,cAAmB,GAAG,YAAY,CAiBhG"}
|
|
@@ -29,6 +29,7 @@ export function fitRobustZ(samples, opts = {}) {
|
|
|
29
29
|
const X = samples.map((s) => s.x);
|
|
30
30
|
const d = featureDim(X);
|
|
31
31
|
const minFrac = opts.minScaleFraction ?? 0.01;
|
|
32
|
+
const minAbs = opts.minScale ?? 0;
|
|
32
33
|
const center = new Float64Array(d);
|
|
33
34
|
const scale = new Float64Array(d);
|
|
34
35
|
for (let i = 0; i < d; i++) {
|
|
@@ -39,7 +40,7 @@ export function fitRobustZ(samples, opts = {}) {
|
|
|
39
40
|
if (!(s > 0))
|
|
40
41
|
s = MEANAD_TO_SD * (dev.reduce((a, b) => a + b, 0) / dev.length);
|
|
41
42
|
center[i] = med;
|
|
42
|
-
scale[i] = Math.max(s, minFrac * Math.abs(med) + 1e-9);
|
|
43
|
+
scale[i] = Math.max(s, minFrac * Math.abs(med) + 1e-9, minAbs);
|
|
43
44
|
}
|
|
44
45
|
return new RobustZModel(center, scale, opts.threshold ?? 3.5);
|
|
45
46
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"robust_z.js","sourceRoot":"","sources":["../../../src/ml/classical/robust_z.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"robust_z.js","sourceRoot":"","sources":["../../../src/ml/classical/robust_z.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ml/eval_loss.ts — the ONE held-out loss for catalog models.
|
|
3
|
+
*
|
|
4
|
+
* What the trainer reports as `holdoutLoss`, what a federated merge is gated on, and
|
|
5
|
+
* what `LogisticModel.loss` returns. A leaf (types only), so a classical algorithm can
|
|
6
|
+
* use it without importing the trainer that imports the algorithms.
|
|
7
|
+
*/
|
|
8
|
+
import type { MlPredictor, MlSample, MlTaskKind } from "./types.js";
|
|
9
|
+
/**
|
|
10
|
+
* Mean loss of `predictor` on `samples` for a task of `kind` — classify: weighted
|
|
11
|
+
* cross-entropy of the true class; regress: weighted ½·squared error. Null for
|
|
12
|
+
* kinds without a supervised loss, or an empty (or zero-weight) set.
|
|
13
|
+
*/
|
|
14
|
+
export declare function mlEvalLoss(kind: MlTaskKind, predictor: MlPredictor, samples: readonly MlSample[]): number | null;
|
|
15
|
+
//# sourceMappingURL=eval_loss.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eval_loss.d.ts","sourceRoot":"","sources":["../../src/ml/eval_loss.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEpE;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,QAAQ,EAAE,GAAG,MAAM,GAAG,IAAI,CAYhH"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mean loss of `predictor` on `samples` for a task of `kind` — classify: weighted
|
|
3
|
+
* cross-entropy of the true class; regress: weighted ½·squared error. Null for
|
|
4
|
+
* kinds without a supervised loss, or an empty (or zero-weight) set.
|
|
5
|
+
*/
|
|
6
|
+
export function mlEvalLoss(kind, predictor, samples) {
|
|
7
|
+
if (samples.length === 0 || (kind !== "classify" && kind !== "regress"))
|
|
8
|
+
return null;
|
|
9
|
+
let sum = 0;
|
|
10
|
+
let wSum = 0;
|
|
11
|
+
for (const s of samples) {
|
|
12
|
+
const w = s.weight ?? 1;
|
|
13
|
+
const p = predictor.predict(s.x);
|
|
14
|
+
const loss = kind === "classify" ? -Math.log(Math.max(p.scores[s.y] ?? 0, 1e-12)) : 0.5 * (p.scores[0] - s.y) ** 2;
|
|
15
|
+
sum += w * loss;
|
|
16
|
+
wSum += w;
|
|
17
|
+
}
|
|
18
|
+
return wSum > 0 ? sum / wSum : null;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=eval_loss.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eval_loss.js","sourceRoot":"","sources":["../../src/ml/eval_loss.ts"],"names":[],"mappings":"AASA;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,IAAgB,EAAE,SAAsB,EAAE,OAA4B;IAC/F,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IACrF,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;QACxB,MAAM,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACpH,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;QAChB,IAAI,IAAI,CAAC,CAAC;IACZ,CAAC;IACD,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AACtC,CAAC"}
|
package/dist/ml/federate.d.ts
CHANGED
|
@@ -8,35 +8,16 @@
|
|
|
8
8
|
* `target: "ml:<task>"`, and the writer folds N of them with the existing FedAvg
|
|
9
9
|
* (`mergeCheckpointDiffsGated` → `mergeCheckpointDiffs`), refusing a merge whose
|
|
10
10
|
* held-out loss regresses. No second wire, no second merge.
|
|
11
|
+
*
|
|
12
|
+
* The head's manifest entry and checkpoint format live with the artifact
|
|
13
|
+
* (`evermind/ml_head.ts`); this module only imports evermind/, never the reverse.
|
|
11
14
|
*/
|
|
12
15
|
import { type DeltaLearnPayload } from "../evermind/delta_wire.js";
|
|
13
16
|
import { type GatedMergeResult, type MergeGateOptions } from "../evermind/merge.js";
|
|
17
|
+
import { type EvermindMlHead } from "../evermind/ml_head.js";
|
|
14
18
|
import type { EvermindModelPackage } from "../evermind/package.js";
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
* it rides in the manifest, and versioned, so it federates — a delta against it is
|
|
18
|
-
* `target: "ml:<task>"`, `baseVersion: version` on the delta wire.
|
|
19
|
-
*/
|
|
20
|
-
export interface EvermindMlHead {
|
|
21
|
-
/** Catalog task id, e.g. `run.local-success`. */
|
|
22
|
-
task: string;
|
|
23
|
-
/** Engine key, e.g. `local:classical:logistic`. */
|
|
24
|
-
engine: string;
|
|
25
|
-
/** Integer head version — what a federated delta for it is diffed against. */
|
|
26
|
-
version: number;
|
|
27
|
-
/** What a loader needs to rebuild the predictor (e.g. `{ dim, classes }`). */
|
|
28
|
-
shape: Record<string, number>;
|
|
29
|
-
/** base64 of the CRC-trailed f32 checkpoint of the head's flat parameters. */
|
|
30
|
-
params: string;
|
|
31
|
-
/** Held-out loss of this version, when measured. */
|
|
32
|
-
evalLoss?: number;
|
|
33
|
-
}
|
|
34
|
-
/** A head's flat parameters as a CRC-trailed f32 checkpoint. */
|
|
35
|
-
export declare function headCheckpoint(params: ArrayLike<number>): ArrayBuffer;
|
|
36
|
-
/** The flat parameters of a head checkpoint. Throws on a failed CRC. */
|
|
37
|
-
export declare function headParams(checkpoint: ArrayBuffer): Float32Array;
|
|
38
|
-
/** Why a manifest head entry is unusable, or null (the package's validate() calls this). */
|
|
39
|
-
export declare function mlHeadUnusableReason(h: EvermindMlHead): string | null;
|
|
19
|
+
export { headCheckpoint, headParams, mlHeadUnusableReason } from "../evermind/ml_head.js";
|
|
20
|
+
export type { EvermindMlHead } from "../evermind/ml_head.js";
|
|
40
21
|
/** A manifest entry for a head's current parameters. */
|
|
41
22
|
export declare function mlHeadEntry(task: string, engine: string, version: number, params: ArrayLike<number>, shape?: Record<string, number>, evalLoss?: number): EvermindMlHead;
|
|
42
23
|
/** The entry's flat parameters. */
|
|
@@ -65,6 +46,11 @@ export interface MlHeadMergeOutcome {
|
|
|
65
46
|
* target, stale base or a malformed diff costs only itself), FedAvg the rest, and
|
|
66
47
|
* keep the result only if `score` (held-out loss of a parameter vector, lower is
|
|
67
48
|
* better) does not regress.
|
|
49
|
+
*
|
|
50
|
+
* Fails CLOSED: `requireEval` defaults to true here, so a round `score` cannot judge
|
|
51
|
+
* (null — e.g. `mlEvalLoss` for an anomaly/cluster head or an empty holdout — or a
|
|
52
|
+
* non-finite loss) is refused. A caller that federates an unscorable head on purpose
|
|
53
|
+
* passes `{ requireEval: false }` explicitly.
|
|
68
54
|
*/
|
|
69
55
|
export declare function mergeMlHeadDeltas(base: EvermindMlHead, payloads: readonly DeltaLearnPayload[], score: (params: Float32Array) => number | null, opts?: MergeGateOptions): MlHeadMergeOutcome;
|
|
70
56
|
//# sourceMappingURL=federate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"federate.d.ts","sourceRoot":"","sources":["../../src/ml/federate.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"federate.d.ts","sourceRoot":"","sources":["../../src/ml/federate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAML,KAAK,iBAAiB,EACvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAA6B,KAAK,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC/G,OAAO,EAA8B,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACzF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAInE,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC1F,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,wDAAwD;AACxD,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EACzB,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EAClC,QAAQ,CAAC,EAAE,MAAM,GAChB,cAAc,CAShB;AAED,mCAAmC;AACnC,wBAAgB,YAAY,CAAC,KAAK,EAAE,cAAc,GAAG,YAAY,CAEhE;AAED,qDAAqD;AACrD,wBAAgB,aAAa,CAAC,GAAG,EAAE,oBAAoB,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAEjG;AAED,+EAA+E;AAC/E,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,oBAAoB,EAAE,KAAK,EAAE,cAAc,GAAG,oBAAoB,CAExG;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAGrI;AAED,MAAM,WAAW,kBAAkB;IACjC,4FAA4F;IAC5F,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,gBAAgB,CAAC;IACxB,+DAA+D;IAC/D,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC/C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,cAAc,EACpB,QAAQ,EAAE,SAAS,iBAAiB,EAAE,EACtC,KAAK,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,MAAM,GAAG,IAAI,EAC9C,IAAI,GAAE,gBAAqB,GAC1B,kBAAkB,CA+BpB"}
|
package/dist/ml/federate.js
CHANGED
|
@@ -8,45 +8,16 @@
|
|
|
8
8
|
* `target: "ml:<task>"`, and the writer folds N of them with the existing FedAvg
|
|
9
9
|
* (`mergeCheckpointDiffsGated` → `mergeCheckpointDiffs`), refusing a merge whose
|
|
10
10
|
* held-out loss regresses. No second wire, no second merge.
|
|
11
|
+
*
|
|
12
|
+
* The head's manifest entry and checkpoint format live with the artifact
|
|
13
|
+
* (`evermind/ml_head.ts`); this module only imports evermind/, never the reverse.
|
|
11
14
|
*/
|
|
12
|
-
import { buildDeltaLearnPayload, decodeDeltaPayload, deltaUnusableReason, mlHeadTarget } from "../evermind/delta_wire.js";
|
|
15
|
+
import { buildDeltaLearnPayload, decodeDeltaPayload, deltaTargetMismatch, deltaUnusableReason, mlHeadTarget, } from "../evermind/delta_wire.js";
|
|
13
16
|
import { mergeCheckpointDiffsGated } from "../evermind/merge.js";
|
|
17
|
+
import { headCheckpoint, headParams } from "../evermind/ml_head.js";
|
|
14
18
|
import { base64ToBytes, bytesToBase64 } from "../utils/base64.js";
|
|
15
|
-
import { appendCrcTrailer, verifyCrcTrailer } from "../utils/crc32.js";
|
|
16
19
|
import { diffCheckpoints } from "../utils/delta.js";
|
|
17
|
-
|
|
18
|
-
export function headCheckpoint(params) {
|
|
19
|
-
const body = new ArrayBuffer(params.length * 4);
|
|
20
|
-
new Float32Array(body).set(Array.from(params));
|
|
21
|
-
return appendCrcTrailer(body);
|
|
22
|
-
}
|
|
23
|
-
/** The flat parameters of a head checkpoint. Throws on a failed CRC. */
|
|
24
|
-
export function headParams(checkpoint) {
|
|
25
|
-
const crc = verifyCrcTrailer(checkpoint);
|
|
26
|
-
if (!crc.ok)
|
|
27
|
-
throw new Error("headParams: checkpoint failed its CRC check");
|
|
28
|
-
if (crc.body.byteLength % 4 !== 0)
|
|
29
|
-
throw new Error("headParams: checkpoint is not f32");
|
|
30
|
-
return new Float32Array(crc.body);
|
|
31
|
-
}
|
|
32
|
-
/** Why a manifest head entry is unusable, or null (the package's validate() calls this). */
|
|
33
|
-
export function mlHeadUnusableReason(h) {
|
|
34
|
-
if (!h || typeof h.task !== "string" || typeof h.engine !== "string")
|
|
35
|
-
return "task and engine are required";
|
|
36
|
-
if (!Number.isInteger(h.version) || h.version < 0)
|
|
37
|
-
return "version must be a non-negative integer";
|
|
38
|
-
try {
|
|
39
|
-
const crc = verifyCrcTrailer(base64ToBytes(h.params));
|
|
40
|
-
if (!crc.hasTrailer || !crc.ok)
|
|
41
|
-
return "params checkpoint failed its CRC check";
|
|
42
|
-
if (crc.body.byteLength % 4 !== 0)
|
|
43
|
-
return "params checkpoint is not f32";
|
|
44
|
-
}
|
|
45
|
-
catch {
|
|
46
|
-
return "params is not base64";
|
|
47
|
-
}
|
|
48
|
-
return null;
|
|
49
|
-
}
|
|
20
|
+
export { headCheckpoint, headParams, mlHeadUnusableReason } from "../evermind/ml_head.js";
|
|
50
21
|
/** A manifest entry for a head's current parameters. */
|
|
51
22
|
export function mlHeadEntry(task, engine, version, params, shape = {}, evalLoss) {
|
|
52
23
|
return {
|
|
@@ -83,6 +54,11 @@ export function buildMlHeadDelta(base, trained, weight, label) {
|
|
|
83
54
|
* target, stale base or a malformed diff costs only itself), FedAvg the rest, and
|
|
84
55
|
* keep the result only if `score` (held-out loss of a parameter vector, lower is
|
|
85
56
|
* better) does not regress.
|
|
57
|
+
*
|
|
58
|
+
* Fails CLOSED: `requireEval` defaults to true here, so a round `score` cannot judge
|
|
59
|
+
* (null — e.g. `mlEvalLoss` for an anomaly/cluster head or an empty holdout — or a
|
|
60
|
+
* non-finite loss) is refused. A caller that federates an unscorable head on purpose
|
|
61
|
+
* passes `{ requireEval: false }` explicitly.
|
|
86
62
|
*/
|
|
87
63
|
export function mergeMlHeadDeltas(base, payloads, score, opts = {}) {
|
|
88
64
|
const baseCp = base64ToBytes(base.params);
|
|
@@ -91,8 +67,9 @@ export function mergeMlHeadDeltas(base, payloads, score, opts = {}) {
|
|
|
91
67
|
const weights = [];
|
|
92
68
|
const rejected = [];
|
|
93
69
|
payloads.forEach((p, index) => {
|
|
94
|
-
|
|
95
|
-
|
|
70
|
+
const wrongTarget = deltaTargetMismatch(p.target, target);
|
|
71
|
+
if (wrongTarget)
|
|
72
|
+
return void rejected.push({ index, reason: wrongTarget });
|
|
96
73
|
if (p.baseVersion !== base.version)
|
|
97
74
|
return void rejected.push({ index, reason: `stale base version ${p.baseVersion} (head is ${base.version})` });
|
|
98
75
|
let diff;
|
|
@@ -108,7 +85,7 @@ export function mergeMlHeadDeltas(base, payloads, score, opts = {}) {
|
|
|
108
85
|
diffs.push(diff);
|
|
109
86
|
weights.push(p.weight ?? 1);
|
|
110
87
|
});
|
|
111
|
-
const merge = mergeCheckpointDiffsGated(baseCp, diffs, weights, (cp) => score(headParams(cp)), opts);
|
|
88
|
+
const merge = mergeCheckpointDiffsGated(baseCp, diffs, weights, (cp) => score(headParams(cp)), { ...opts, requireEval: opts.requireEval ?? true });
|
|
112
89
|
if (!merge.accepted)
|
|
113
90
|
return { head: base, merge, rejected };
|
|
114
91
|
const head = {
|
package/dist/ml/federate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"federate.js","sourceRoot":"","sources":["../../src/ml/federate.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"federate.js","sourceRoot":"","sources":["../../src/ml/federate.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,8 +5,9 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Full-batch gradient descent with AdamW. When a GPUDevice is supplied the
|
|
7
7
|
* optimiser step runs on the GPU via the shared WEIGHT_UPDATE_WGSL kernel; with
|
|
8
|
-
* no device it
|
|
9
|
-
* everywhere (CI, Node without
|
|
8
|
+
* no device it runs the kernel's CPU mirror, `adamwUpdateInPlace` (`optim/adamw.ts`,
|
|
9
|
+
* NaN/Inf guard included), so training works everywhere (CI, Node without
|
|
10
|
+
* @webgpu/node, a laptop with no GPU). Neither path bounds the step (maxDelta 0).
|
|
10
11
|
*
|
|
11
12
|
* The head owns its forward/backward and its loss (MSE for regression, BCE /
|
|
12
13
|
* softmax cross-entropy for classification); this file owns only the loop:
|
|
@@ -65,6 +66,7 @@ export declare class HeadTrainer<S> {
|
|
|
65
66
|
train(samples: S[], opts?: HeadTrainOptions): Promise<number[]>;
|
|
66
67
|
/** Mean loss over samples (no weight update). 0 for an empty set. */
|
|
67
68
|
evaluate(samples: S[]): number;
|
|
69
|
+
/** AdamW on the CPU via the kernel's shared mirror (`adamwUpdateInPlace`). */
|
|
68
70
|
private _adamwStepCpu;
|
|
69
71
|
/** AdamW on the GPU via the shared WEIGHT_UPDATE_WGSL kernel. Awaited per step. */
|
|
70
72
|
private _adamwStepGpu;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"head_trainer.d.ts","sourceRoot":"","sources":["../../src/ml/head_trainer.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"head_trainer.d.ts","sourceRoot":"","sources":["../../src/ml/head_trainer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAcH,8DAA8D;AAC9D,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,oEAAoE;AACpE,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,+CAA+C;IAC/C,UAAU,IAAI,SAAS,EAAE,CAAC;IAC1B,+DAA+D;IAC/D,SAAS,IAAI,SAAS,EAAE,CAAC;IACzB,QAAQ,IAAI,IAAI,CAAC;IACjB,oFAAoF;IACpF,UAAU,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC;IAC9B,uCAAuC;IACvC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,0EAA0E;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;mFAC+E;IAC/E,UAAU,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;CAChF;AAuBD,qBAAa,WAAW,CAAC,CAAC;IAUtB,6EAA6E;IAC7E,OAAO,CAAC,QAAQ,CAAC,KAAK;IAVxB,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;IAClC,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA4B;gBAGzD,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,EACtB,MAAM,GAAE,SAAS,GAAG,IAAW;IAC/B,6EAA6E;IAC5D,KAAK,GAAE,MAAsB;IAShD,kDAAkD;IAClD,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,OAAO,CAAC,YAAY;IAQpB;;;;OAIG;IACG,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,IAAI,GAAE,gBAAqB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA8CzE,qEAAqE;IACrE,QAAQ,CAAC,OAAO,EAAE,CAAC,EAAE,GAAG,MAAM;IAO9B,8EAA8E;IAC9E,OAAO,CAAC,aAAa;IAQrB,mFAAmF;YACrE,aAAa;CA2B5B;AAcD,kFAAkF;AAClF,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,GAAG,YAAY,CAQxE;AAED,4FAA4F;AAC5F,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,CAQxF"}
|
package/dist/ml/head_trainer.js
CHANGED
|
@@ -5,8 +5,9 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Full-batch gradient descent with AdamW. When a GPUDevice is supplied the
|
|
7
7
|
* optimiser step runs on the GPU via the shared WEIGHT_UPDATE_WGSL kernel; with
|
|
8
|
-
* no device it
|
|
9
|
-
* everywhere (CI, Node without
|
|
8
|
+
* no device it runs the kernel's CPU mirror, `adamwUpdateInPlace` (`optim/adamw.ts`,
|
|
9
|
+
* NaN/Inf guard included), so training works everywhere (CI, Node without
|
|
10
|
+
* @webgpu/node, a laptop with no GPU). Neither path bounds the step (maxDelta 0).
|
|
10
11
|
*
|
|
11
12
|
* The head owns its forward/backward and its loss (MSE for regression, BCE /
|
|
12
13
|
* softmax cross-entropy for classification); this file owns only the loop:
|
|
@@ -14,10 +15,19 @@
|
|
|
14
15
|
*/
|
|
15
16
|
import { createUniformBuffer, createStorageBuffer, createComputePipeline, createBindGroup, dispatchKernel, readBuffer, cdiv, } from "../utils/gpu_utils.js";
|
|
16
17
|
import { WEIGHT_UPDATE_WGSL } from "../kernels/weight_update.js";
|
|
17
|
-
|
|
18
|
-
|
|
18
|
+
import { adamwUpdateInPlace } from "../optim/adamw.js";
|
|
19
|
+
/** Byte size of WEIGHT_UPDATE_WGSL's `AdamParams` uniform: 1 u32 + 8 f32 + 3 f32 pad = 48. */
|
|
20
|
+
const ADAM_PARAMS_BYTES = 48;
|
|
21
|
+
/**
|
|
22
|
+
* Pack `AdamParams` exactly as WEIGHT_UPDATE_WGSL declares it:
|
|
23
|
+
* `num_elements: u32, lr, beta1, beta2, eps, weight_decay, beta1_t, beta2_t,
|
|
24
|
+
* max_delta, _pad0, _pad1, _pad2` (all f32 after the first) — 48 bytes.
|
|
25
|
+
*/
|
|
26
|
+
function packAdamParams(numElements, hp) {
|
|
27
|
+
const buf = new ArrayBuffer(ADAM_PARAMS_BYTES);
|
|
19
28
|
new Uint32Array(buf, 0, 1).set([numElements]);
|
|
20
|
-
|
|
29
|
+
// Pads stay 0 (fresh ArrayBuffer).
|
|
30
|
+
new Float32Array(buf, 4, 8).set([hp.lr, hp.beta1, hp.beta2, hp.eps, hp.weightDecay, hp.beta1_t, hp.beta2_t, hp.maxDelta]);
|
|
21
31
|
return buf;
|
|
22
32
|
}
|
|
23
33
|
export class HeadTrainer {
|
|
@@ -75,7 +85,7 @@ export class HeadTrainer {
|
|
|
75
85
|
this._step++;
|
|
76
86
|
const beta1_t = Math.pow(beta1, this._step);
|
|
77
87
|
const beta2_t = Math.pow(beta2, this._step);
|
|
78
|
-
const hp = { learningRate, weightDecay, beta1, beta2, eps, beta1_t, beta2_t };
|
|
88
|
+
const hp = { lr: learningRate, weightDecay, beta1, beta2, eps, beta1_t, beta2_t, maxDelta: 0 };
|
|
79
89
|
if (this.gpuTraining) {
|
|
80
90
|
await this._adamwStepGpu(grads, hp);
|
|
81
91
|
}
|
|
@@ -98,21 +108,12 @@ export class HeadTrainer {
|
|
|
98
108
|
total += this.head.loss(s);
|
|
99
109
|
return total / samples.length;
|
|
100
110
|
}
|
|
111
|
+
/** AdamW on the CPU via the kernel's shared mirror (`adamwUpdateInPlace`). */
|
|
101
112
|
_adamwStepCpu(grads, hp) {
|
|
102
113
|
const params = this.head.parameters();
|
|
103
|
-
const { learningRate: lr, weightDecay: wd, beta1, beta2, eps, beta1_t, beta2_t } = hp;
|
|
104
114
|
for (let pi = 0; pi < params.length; pi++) {
|
|
105
|
-
const p = params[pi].data;
|
|
106
|
-
const g = grads[pi].data;
|
|
107
115
|
const mom = this._moments[pi];
|
|
108
|
-
|
|
109
|
-
const gi = g[i];
|
|
110
|
-
mom.m[i] = beta1 * mom.m[i] + (1 - beta1) * gi;
|
|
111
|
-
mom.v[i] = beta2 * mom.v[i] + (1 - beta2) * gi * gi;
|
|
112
|
-
const mHat = mom.m[i] / (1 - beta1_t);
|
|
113
|
-
const vHat = mom.v[i] / (1 - beta2_t);
|
|
114
|
-
p[i] = p[i] * (1 - lr * wd) - (lr * mHat) / (Math.sqrt(vHat) + eps);
|
|
115
|
-
}
|
|
116
|
+
adamwUpdateInPlace(params[pi].data, grads[pi].data, mom.m, mom.v, hp);
|
|
116
117
|
}
|
|
117
118
|
}
|
|
118
119
|
/** AdamW on the GPU via the shared WEIGHT_UPDATE_WGSL kernel. Awaited per step. */
|
|
@@ -120,7 +121,6 @@ export class HeadTrainer {
|
|
|
120
121
|
const device = this.device;
|
|
121
122
|
const pipeline = this._adamwPipeline;
|
|
122
123
|
const params = this.head.parameters();
|
|
123
|
-
const { learningRate: lr, weightDecay: wd, beta1, beta2, eps, beta1_t, beta2_t } = hp;
|
|
124
124
|
for (let pi = 0; pi < params.length; pi++) {
|
|
125
125
|
const p = params[pi];
|
|
126
126
|
const mom = this._moments[pi];
|
|
@@ -128,7 +128,7 @@ export class HeadTrainer {
|
|
|
128
128
|
const gradBuf = createStorageBuffer(device, grads[pi].data, false);
|
|
129
129
|
const mBuf = createStorageBuffer(device, mom.m, true);
|
|
130
130
|
const vBuf = createStorageBuffer(device, mom.v, true);
|
|
131
|
-
const uni = createUniformBuffer(device, packAdamParams(p.numel,
|
|
131
|
+
const uni = createUniformBuffer(device, packAdamParams(p.numel, hp));
|
|
132
132
|
const bg = createBindGroup(device, pipeline, [uni, paramBuf, gradBuf, mBuf, vBuf]);
|
|
133
133
|
dispatchKernel(device, pipeline, bg, [cdiv(p.numel, 256), 1, 1]);
|
|
134
134
|
p.data.set((await readBuffer(device, paramBuf, p.numel * 4)).subarray(0, p.numel));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"head_trainer.js","sourceRoot":"","sources":["../../src/ml/head_trainer.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"head_trainer.js","sourceRoot":"","sources":["../../src/ml/head_trainer.ts"],"names":[],"mappings":"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"}
|
package/dist/ml/run.d.ts
CHANGED
|
@@ -87,8 +87,17 @@ export declare class MlEngineUnavailableError extends Error {
|
|
|
87
87
|
readonly decision: MlDecision;
|
|
88
88
|
constructor(taskId: string, decision: MlDecision);
|
|
89
89
|
}
|
|
90
|
-
/**
|
|
90
|
+
/**
|
|
91
|
+
* The task's engines the mode allows, in the order the runner tries them. Exhaustive:
|
|
92
|
+
* a mode string outside {@link InferenceMode} (a host passing a stale or mistyped
|
|
93
|
+
* setting) throws instead of being read as `specific`.
|
|
94
|
+
*/
|
|
91
95
|
export declare function candidateEngines(task: MlTask<any, any>, mode: InferenceMode, specific?: MlEngineRef | string): MlEngineRef[];
|
|
92
|
-
/**
|
|
96
|
+
/**
|
|
97
|
+
* Answer task `id` for `input` with the first engine the mode allows that can. An
|
|
98
|
+
* engine that throws (feature extraction or its own predict) is recorded as an
|
|
99
|
+
* `error` skip and the next allowed engine is tried — in Hybrid, the cloud. Throws
|
|
100
|
+
* {@link MlEngineUnavailableError}, carrying every engine's reason, only when none answers.
|
|
101
|
+
*/
|
|
93
102
|
export declare function runMlTask<O = unknown, I = unknown>(id: string, input: I, ctx: MlRunContext): Promise<MlResult<O>>;
|
|
94
103
|
//# sourceMappingURL=run.d.ts.map
|
package/dist/ml/run.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/ml/run.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/ml/run.ts"],"names":[],"mappings":"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"}
|