@seanhogg/builderforce-memory-engine 2026.6.20 → 2026.6.28
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/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/dist/kernels/limbic_affect.d.ts +2 -0
- package/dist/kernels/limbic_affect.d.ts.map +1 -0
- package/dist/kernels/limbic_affect.js +74 -0
- package/dist/kernels/limbic_affect.js.map +1 -0
- package/dist/limbic/index.d.ts +14 -0
- package/dist/limbic/index.d.ts.map +1 -0
- package/dist/limbic/index.js +11 -0
- package/dist/limbic/index.js.map +1 -0
- package/dist/limbic/limbic_model.d.ts +111 -0
- package/dist/limbic/limbic_model.d.ts.map +1 -0
- package/dist/limbic/limbic_model.js +299 -0
- package/dist/limbic/limbic_model.js.map +1 -0
- package/dist/limbic/limbic_trainer.d.ts +62 -0
- package/dist/limbic/limbic_trainer.d.ts.map +1 -0
- package/dist/limbic/limbic_trainer.js +172 -0
- package/dist/limbic/limbic_trainer.js.map +1 -0
- package/dist/limbic/regions.d.ts +79 -0
- package/dist/limbic/regions.d.ts.map +1 -0
- package/dist/limbic/regions.js +132 -0
- package/dist/limbic/regions.js.map +1 -0
- package/dist/lm/evermind_lm.d.ts +148 -0
- package/dist/lm/evermind_lm.d.ts.map +1 -0
- package/dist/lm/evermind_lm.js +479 -0
- package/dist/lm/evermind_lm.js.map +1 -0
- package/dist/lm/index.d.ts +6 -0
- package/dist/lm/index.d.ts.map +1 -0
- package/dist/lm/index.js +5 -0
- package/dist/lm/index.js.map +1 -0
- package/dist/model/attention_block.js +1 -1
- package/dist/model/attention_block.js.map +1 -1
- package/dist/model/mamba_model.js +1 -1
- package/dist/model/mamba_model.js.map +1 -1
- package/dist/moe/index.d.ts +10 -0
- package/dist/moe/index.d.ts.map +1 -0
- package/dist/moe/index.js +7 -0
- package/dist/moe/index.js.map +1 -0
- package/dist/moe/moe_model.d.ts +134 -0
- package/dist/moe/moe_model.d.ts.map +1 -0
- package/dist/moe/moe_model.js +415 -0
- package/dist/moe/moe_model.js.map +1 -0
- package/dist/moe/moe_package.d.ts +81 -0
- package/dist/moe/moe_package.d.ts.map +1 -0
- package/dist/moe/moe_package.js +157 -0
- package/dist/moe/moe_package.js.map +1 -0
- package/dist/moe/moe_trainer.d.ts +53 -0
- package/dist/moe/moe_trainer.d.ts.map +1 -0
- package/dist/moe/moe_trainer.js +93 -0
- package/dist/moe/moe_trainer.js.map +1 -0
- package/dist/optim/adamw.d.ts +32 -0
- package/dist/optim/adamw.d.ts.map +1 -0
- package/dist/optim/adamw.js +52 -0
- package/dist/optim/adamw.js.map +1 -0
- package/package.json +1 -1
- package/src/index.ts +59 -0
- package/src/kernels/limbic_affect.ts +74 -0
- package/src/limbic/index.ts +28 -0
- package/src/limbic/limbic_model.ts +373 -0
- package/src/limbic/limbic_trainer.ts +253 -0
- package/src/limbic/regions.ts +141 -0
- package/src/lm/evermind_lm.ts +558 -0
- package/src/lm/index.ts +6 -0
- package/src/model/attention_block.ts +1 -1
- package/src/model/mamba_model.ts +1 -1
- package/src/moe/index.ts +23 -0
- package/src/moe/moe_model.ts +475 -0
- package/src/moe/moe_package.ts +205 -0
- package/src/moe/moe_trainer.ts +134 -0
- package/src/optim/adamw.ts +72 -0
|
@@ -0,0 +1,479 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* evermind_lm.ts — EvermindLM: a small but complete generative language model.
|
|
3
|
+
*
|
|
4
|
+
* This is what turns a trained checkpoint into an *AI that generates text* (the
|
|
5
|
+
* thing a marketplace buyer actually runs). Architecture (Mamba-flavoured, the
|
|
6
|
+
* minimal exact-gradient CPU reference):
|
|
7
|
+
*
|
|
8
|
+
* x_t = Embed[token_t]
|
|
9
|
+
* per layer:
|
|
10
|
+
* x_t += DepthwiseCausalConv(x)_t // temporal mixing (short conv)
|
|
11
|
+
* x_t += SharedExpertMoE(x_t) // per-position channel mixing (sparse)
|
|
12
|
+
* logits_t = x_t · Embedᵀ // tied output head
|
|
13
|
+
*
|
|
14
|
+
* The token mixer is a depthwise causal convolution (each channel sees a short
|
|
15
|
+
* window of its own past — Mamba's pre-conv) and the channel mixer is the
|
|
16
|
+
* shared-expert MoE, so the model is genuinely sparse. Embeddings are tied
|
|
17
|
+
* (input lookup == output head), which the gradient code accounts for.
|
|
18
|
+
*
|
|
19
|
+
* Pure CPU, exact forward + backward (finite-difference checked), reusing the
|
|
20
|
+
* engine's MoE, cross-entropy, and AdamW. The WGSL/WebGPU path is a future
|
|
21
|
+
* acceleration with the same shapes.
|
|
22
|
+
*/
|
|
23
|
+
import { SharedExpertMoE } from "../moe/moe_model.js";
|
|
24
|
+
import { crossEntropyLoss, crossEntropyGrad } from "../training/autograd.js";
|
|
25
|
+
import { AdamW } from "../optim/adamw.js";
|
|
26
|
+
import { SeededRng } from "../utils/rng.js";
|
|
27
|
+
import { quantizeFp16, dequantizeFp16 } from "../utils/quantization.js";
|
|
28
|
+
export const DEFAULT_LM_CONFIG = {
|
|
29
|
+
dModel: 64,
|
|
30
|
+
numLayers: 2,
|
|
31
|
+
convKernel: 3,
|
|
32
|
+
hiddenDim: 128,
|
|
33
|
+
numExperts: 4,
|
|
34
|
+
topK: 2,
|
|
35
|
+
};
|
|
36
|
+
export const DEFAULT_LM_SEED = 0x45564c4d; // "EVLM"
|
|
37
|
+
const MAGIC = 0x45564c30; // "EVL0"
|
|
38
|
+
export class EvermindLM {
|
|
39
|
+
config;
|
|
40
|
+
/** Tied token embedding / output head: vocabSize × dModel (row-major). */
|
|
41
|
+
emb;
|
|
42
|
+
gEmb;
|
|
43
|
+
/** Per-layer depthwise causal conv kernels: dModel × convKernel. */
|
|
44
|
+
conv;
|
|
45
|
+
gConv;
|
|
46
|
+
/** Per-layer pre-conv / pre-MoE RMSNorm gains (dModel each). */
|
|
47
|
+
nConv;
|
|
48
|
+
gNConv;
|
|
49
|
+
nMoe;
|
|
50
|
+
gNMoe;
|
|
51
|
+
/** Per-layer channel mixer. */
|
|
52
|
+
moe;
|
|
53
|
+
constructor(config) {
|
|
54
|
+
const dModel = config.dModel ?? DEFAULT_LM_CONFIG.dModel;
|
|
55
|
+
const cfg = {
|
|
56
|
+
vocabSize: config.vocabSize,
|
|
57
|
+
dModel,
|
|
58
|
+
numLayers: config.numLayers ?? DEFAULT_LM_CONFIG.numLayers,
|
|
59
|
+
convKernel: config.convKernel ?? DEFAULT_LM_CONFIG.convKernel,
|
|
60
|
+
hiddenDim: config.hiddenDim ?? dModel * 2,
|
|
61
|
+
numExperts: config.numExperts ?? DEFAULT_LM_CONFIG.numExperts,
|
|
62
|
+
topK: config.topK ?? DEFAULT_LM_CONFIG.topK,
|
|
63
|
+
};
|
|
64
|
+
if (cfg.vocabSize <= 0)
|
|
65
|
+
throw new Error("EvermindLM: vocabSize must be > 0");
|
|
66
|
+
if (cfg.topK > cfg.numExperts)
|
|
67
|
+
throw new Error("EvermindLM: topK must be ≤ numExperts");
|
|
68
|
+
this.config = cfg;
|
|
69
|
+
const seed = (config.seed ?? DEFAULT_LM_SEED) >>> 0 || 1;
|
|
70
|
+
const rng = new SeededRng(seed);
|
|
71
|
+
const gauss = (n, std) => {
|
|
72
|
+
const a = new Float32Array(n);
|
|
73
|
+
for (let i = 0; i < n; i++) {
|
|
74
|
+
const u1 = Math.max(rng.next(), 1e-12);
|
|
75
|
+
const u2 = rng.next();
|
|
76
|
+
a[i] = std * Math.sqrt(-2 * Math.log(u1)) * Math.cos(2 * Math.PI * u2);
|
|
77
|
+
}
|
|
78
|
+
return a;
|
|
79
|
+
};
|
|
80
|
+
this.emb = gauss(cfg.vocabSize * cfg.dModel, 0.02);
|
|
81
|
+
this.gEmb = new Float32Array(this.emb.length);
|
|
82
|
+
this.conv = [];
|
|
83
|
+
this.gConv = [];
|
|
84
|
+
this.nConv = [];
|
|
85
|
+
this.gNConv = [];
|
|
86
|
+
this.nMoe = [];
|
|
87
|
+
this.gNMoe = [];
|
|
88
|
+
this.moe = [];
|
|
89
|
+
for (let l = 0; l < cfg.numLayers; l++) {
|
|
90
|
+
// Conv init near an identity passthrough (current tap ≈ 1, history ≈ 0) so
|
|
91
|
+
// an untrained block is close to a residual no-op.
|
|
92
|
+
const k = new Float32Array(cfg.dModel * cfg.convKernel);
|
|
93
|
+
for (let c = 0; c < cfg.dModel; c++)
|
|
94
|
+
k[c * cfg.convKernel] = 1;
|
|
95
|
+
this.conv.push(k);
|
|
96
|
+
this.gConv.push(new Float32Array(k.length));
|
|
97
|
+
// RMSNorm gains start at 1 (identity scale).
|
|
98
|
+
this.nConv.push(new Float32Array(cfg.dModel).fill(1));
|
|
99
|
+
this.gNConv.push(new Float32Array(cfg.dModel));
|
|
100
|
+
this.nMoe.push(new Float32Array(cfg.dModel).fill(1));
|
|
101
|
+
this.gNMoe.push(new Float32Array(cfg.dModel));
|
|
102
|
+
// Each MoE layer gets a distinct seed for varied expert init.
|
|
103
|
+
this.moe.push(new SharedExpertMoE({
|
|
104
|
+
modelDim: cfg.dModel,
|
|
105
|
+
hiddenDim: cfg.hiddenDim,
|
|
106
|
+
numExperts: cfg.numExperts,
|
|
107
|
+
topK: cfg.topK,
|
|
108
|
+
seed: seed + 1 + l,
|
|
109
|
+
}));
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
// ── Forward ────────────────────────────────────────────────────────────────
|
|
113
|
+
/** Run the model over a token sequence; returns per-position logits + a cache. */
|
|
114
|
+
forward(tokens) {
|
|
115
|
+
const { dModel, convKernel, numLayers, vocabSize } = this.config;
|
|
116
|
+
const T = tokens.length;
|
|
117
|
+
// Embed.
|
|
118
|
+
let x = tokens.map((tok) => {
|
|
119
|
+
const row = new Float32Array(dModel);
|
|
120
|
+
const off = tok * dModel;
|
|
121
|
+
for (let c = 0; c < dModel; c++)
|
|
122
|
+
row[c] = this.emb[off + c];
|
|
123
|
+
return row;
|
|
124
|
+
});
|
|
125
|
+
const layers = [];
|
|
126
|
+
for (let l = 0; l < numLayers; l++) {
|
|
127
|
+
const layerIn = x;
|
|
128
|
+
const ker = this.conv[l];
|
|
129
|
+
const nConv = this.nConv[l];
|
|
130
|
+
const nMoe = this.nMoe[l];
|
|
131
|
+
// Pre-norm → depthwise causal conv → residual.
|
|
132
|
+
const normedConv = [];
|
|
133
|
+
const rmsConv = [];
|
|
134
|
+
for (let t = 0; t < T; t++) {
|
|
135
|
+
const { y, r } = rmsNorm(layerIn[t], nConv);
|
|
136
|
+
normedConv.push(y);
|
|
137
|
+
rmsConv.push(r);
|
|
138
|
+
}
|
|
139
|
+
const afterConv = [];
|
|
140
|
+
for (let t = 0; t < T; t++) {
|
|
141
|
+
const out = Float32Array.from(layerIn[t]); // residual base
|
|
142
|
+
for (let c = 0; c < dModel; c++) {
|
|
143
|
+
let acc = 0;
|
|
144
|
+
for (let j = 0; j < convKernel; j++) {
|
|
145
|
+
const ti = t - j;
|
|
146
|
+
if (ti >= 0)
|
|
147
|
+
acc += ker[c * convKernel + j] * normedConv[ti][c];
|
|
148
|
+
}
|
|
149
|
+
out[c] = out[c] + acc;
|
|
150
|
+
}
|
|
151
|
+
afterConv.push(out);
|
|
152
|
+
}
|
|
153
|
+
// Pre-norm → MoE channel mixer → residual.
|
|
154
|
+
const rmsMoe = [];
|
|
155
|
+
const moeCache = [];
|
|
156
|
+
const afterMoe = [];
|
|
157
|
+
for (let t = 0; t < T; t++) {
|
|
158
|
+
const { y, r } = rmsNorm(afterConv[t], nMoe);
|
|
159
|
+
rmsMoe.push(r);
|
|
160
|
+
const out = Float32Array.from(afterConv[t]); // residual base
|
|
161
|
+
const mr = this.moe[l].forward(y);
|
|
162
|
+
for (let c = 0; c < dModel; c++)
|
|
163
|
+
out[c] = out[c] + mr.output[c];
|
|
164
|
+
afterMoe.push(out);
|
|
165
|
+
moeCache.push(mr.cache);
|
|
166
|
+
}
|
|
167
|
+
layers.push({ layerIn, normedConv, rmsConv, afterConv, rmsMoe, moeCache });
|
|
168
|
+
x = afterMoe;
|
|
169
|
+
}
|
|
170
|
+
// Tied head: logits_t[v] = x_t · emb[v].
|
|
171
|
+
const logits = x.map((xt) => {
|
|
172
|
+
const lg = new Float32Array(vocabSize);
|
|
173
|
+
for (let v = 0; v < vocabSize; v++) {
|
|
174
|
+
let acc = 0;
|
|
175
|
+
const off = v * dModel;
|
|
176
|
+
for (let c = 0; c < dModel; c++)
|
|
177
|
+
acc += xt[c] * this.emb[off + c];
|
|
178
|
+
lg[v] = acc;
|
|
179
|
+
}
|
|
180
|
+
return lg;
|
|
181
|
+
});
|
|
182
|
+
return { logits, cache: { tokens, layers, finalX: x } };
|
|
183
|
+
}
|
|
184
|
+
// ── Loss + backward ──────────────────────────────────────────────────────────
|
|
185
|
+
/**
|
|
186
|
+
* Next-token cross-entropy over the sequence (predict tokens[t+1] from
|
|
187
|
+
* position t), accumulating exact gradients. Returns the mean loss. Call
|
|
188
|
+
* {@link zeroGrad} before and an optimiser step after.
|
|
189
|
+
*/
|
|
190
|
+
lossAndBackward(tokens) {
|
|
191
|
+
const { dModel, convKernel, numLayers, vocabSize } = this.config;
|
|
192
|
+
const T = tokens.length;
|
|
193
|
+
if (T < 2)
|
|
194
|
+
return 0;
|
|
195
|
+
const { logits, cache } = this.forward(tokens);
|
|
196
|
+
const predPositions = T - 1; // positions 0..T-2 predict the next token
|
|
197
|
+
const inv = 1 / predPositions;
|
|
198
|
+
// dL/d(finalX_t) and head gradient into the tied embedding.
|
|
199
|
+
const dX = Array.from({ length: T }, () => new Float32Array(dModel));
|
|
200
|
+
let loss = 0;
|
|
201
|
+
for (let t = 0; t < predPositions; t++) {
|
|
202
|
+
const target = tokens[t + 1];
|
|
203
|
+
loss += crossEntropyLoss(logits[t], target) * inv;
|
|
204
|
+
const dLogit = crossEntropyGrad(logits[t], target); // probs - onehot
|
|
205
|
+
const xt = cache.finalX[t];
|
|
206
|
+
for (let v = 0; v < vocabSize; v++) {
|
|
207
|
+
const g = dLogit[v] * inv;
|
|
208
|
+
if (g === 0)
|
|
209
|
+
continue;
|
|
210
|
+
const off = v * dModel;
|
|
211
|
+
for (let c = 0; c < dModel; c++) {
|
|
212
|
+
this.gEmb[off + c] = this.gEmb[off + c] + g * xt[c]; // head → emb
|
|
213
|
+
dX[t][c] = dX[t][c] + g * this.emb[off + c]; // head → x_t
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
// Backprop through layers in reverse.
|
|
218
|
+
for (let l = numLayers - 1; l >= 0; l--) {
|
|
219
|
+
const lc = cache.layers[l];
|
|
220
|
+
const ker = this.conv[l];
|
|
221
|
+
const gker = this.gConv[l];
|
|
222
|
+
const nConv = this.nConv[l];
|
|
223
|
+
const gNConv = this.gNConv[l];
|
|
224
|
+
const nMoe = this.nMoe[l];
|
|
225
|
+
const gNMoe = this.gNMoe[l];
|
|
226
|
+
// MoE sub-block: afterMoe = afterConv + MoE(RMSNorm(afterConv, nMoe)).
|
|
227
|
+
const dAfterConv = [];
|
|
228
|
+
for (let t = 0; t < T; t++) {
|
|
229
|
+
const dMoeNormed = this.moe[l].backward(dX[t], lc.moeCache[t]);
|
|
230
|
+
const { dx, dgain } = rmsNormBackward(dMoeNormed, lc.afterConv[t], lc.rmsMoe[t], nMoe);
|
|
231
|
+
for (let c = 0; c < dModel; c++)
|
|
232
|
+
gNMoe[c] = gNMoe[c] + dgain[c];
|
|
233
|
+
const d = Float32Array.from(dX[t]); // residual passthrough
|
|
234
|
+
for (let c = 0; c < dModel; c++)
|
|
235
|
+
d[c] = d[c] + dx[c];
|
|
236
|
+
dAfterConv.push(d);
|
|
237
|
+
}
|
|
238
|
+
// Conv sub-block: afterConv = layerIn + conv(RMSNorm(layerIn, nConv)).
|
|
239
|
+
const dNormedConv = Array.from({ length: T }, () => new Float32Array(dModel));
|
|
240
|
+
const dLayerIn = dAfterConv.map((v) => Float32Array.from(v)); // residual passthrough
|
|
241
|
+
for (let t = 0; t < T; t++) {
|
|
242
|
+
for (let c = 0; c < dModel; c++) {
|
|
243
|
+
const dmix = dAfterConv[t][c];
|
|
244
|
+
if (dmix === 0)
|
|
245
|
+
continue;
|
|
246
|
+
for (let j = 0; j < convKernel; j++) {
|
|
247
|
+
const ti = t - j;
|
|
248
|
+
if (ti < 0)
|
|
249
|
+
continue;
|
|
250
|
+
gker[c * convKernel + j] = gker[c * convKernel + j] + dmix * lc.normedConv[ti][c];
|
|
251
|
+
dNormedConv[ti][c] = dNormedConv[ti][c] + dmix * ker[c * convKernel + j];
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
for (let t = 0; t < T; t++) {
|
|
256
|
+
const { dx, dgain } = rmsNormBackward(dNormedConv[t], lc.layerIn[t], lc.rmsConv[t], nConv);
|
|
257
|
+
for (let c = 0; c < dModel; c++) {
|
|
258
|
+
gNConv[c] = gNConv[c] + dgain[c];
|
|
259
|
+
dLayerIn[t][c] = dLayerIn[t][c] + dx[c];
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
for (let t = 0; t < T; t++)
|
|
263
|
+
dX[t] = dLayerIn[t];
|
|
264
|
+
}
|
|
265
|
+
// Embedding lookup: dX at layer-0 input flows into the row for token_t.
|
|
266
|
+
for (let t = 0; t < T; t++) {
|
|
267
|
+
const off = tokens[t] * dModel;
|
|
268
|
+
for (let c = 0; c < dModel; c++)
|
|
269
|
+
this.gEmb[off + c] = this.gEmb[off + c] + dX[t][c];
|
|
270
|
+
}
|
|
271
|
+
return loss;
|
|
272
|
+
}
|
|
273
|
+
// ── Generation ───────────────────────────────────────────────────────────────
|
|
274
|
+
/**
|
|
275
|
+
* Text-level generation: encode the prompt, generate, decode. `codec` is any
|
|
276
|
+
* tokenizer exposing encode/decode (the engine's `BPETokenizer` satisfies it),
|
|
277
|
+
* so the LM consumes and emits real text rather than raw token ids. The model's
|
|
278
|
+
* `vocabSize` must match the codec's vocabulary.
|
|
279
|
+
*/
|
|
280
|
+
generateText(prompt, codec, opts) {
|
|
281
|
+
return codec.decode(this.generate(codec.encode(prompt), opts));
|
|
282
|
+
}
|
|
283
|
+
/** Greedy / temperature-sampled autoregressive generation. Returns NEW token ids. */
|
|
284
|
+
generate(prompt, opts) {
|
|
285
|
+
const temperature = opts.temperature ?? 0;
|
|
286
|
+
const rng = temperature > 0 ? new SeededRng((opts.seed ?? 1) >>> 0 || 1) : null;
|
|
287
|
+
const tokens = [...prompt];
|
|
288
|
+
const produced = [];
|
|
289
|
+
for (let n = 0; n < opts.maxNewTokens; n++) {
|
|
290
|
+
const { logits } = this.forward(tokens.length > 0 ? tokens : [0]);
|
|
291
|
+
const last = logits[logits.length - 1];
|
|
292
|
+
const next = rng ? sampleTemperature(last, temperature, rng) : argmax(last);
|
|
293
|
+
produced.push(next);
|
|
294
|
+
tokens.push(next);
|
|
295
|
+
if (opts.stopToken !== undefined && next === opts.stopToken)
|
|
296
|
+
break;
|
|
297
|
+
}
|
|
298
|
+
return produced;
|
|
299
|
+
}
|
|
300
|
+
// ── Parameters / checkpoint ──────────────────────────────────────────────────
|
|
301
|
+
/** All trainable parameters as {data} (AdamW-compatible), canonical order. */
|
|
302
|
+
parameters() {
|
|
303
|
+
const out = [{ data: this.emb }];
|
|
304
|
+
for (let l = 0; l < this.config.numLayers; l++) {
|
|
305
|
+
out.push({ data: this.conv[l] }, { data: this.nConv[l] }, { data: this.nMoe[l] });
|
|
306
|
+
for (const p of this.moe[l].parameters())
|
|
307
|
+
out.push({ data: p.data });
|
|
308
|
+
}
|
|
309
|
+
return out;
|
|
310
|
+
}
|
|
311
|
+
/** Gradient buffers, index-aligned with {@link parameters}. */
|
|
312
|
+
gradients() {
|
|
313
|
+
const out = [{ data: this.gEmb }];
|
|
314
|
+
for (let l = 0; l < this.config.numLayers; l++) {
|
|
315
|
+
out.push({ data: this.gConv[l] }, { data: this.gNConv[l] }, { data: this.gNMoe[l] });
|
|
316
|
+
for (const g of this.moe[l].gradients())
|
|
317
|
+
out.push({ data: g.data });
|
|
318
|
+
}
|
|
319
|
+
return out;
|
|
320
|
+
}
|
|
321
|
+
zeroGrad() {
|
|
322
|
+
this.gEmb.fill(0);
|
|
323
|
+
for (let l = 0; l < this.config.numLayers; l++) {
|
|
324
|
+
this.gConv[l].fill(0);
|
|
325
|
+
this.gNConv[l].fill(0);
|
|
326
|
+
this.gNMoe[l].fill(0);
|
|
327
|
+
this.moe[l].zeroGrad();
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
/** Serialise to an "EVL0" binary (fp16 or f32), params in {@link parameters} order. */
|
|
331
|
+
exportWeights(opts = {}) {
|
|
332
|
+
const fp16 = opts.fp16 ?? false;
|
|
333
|
+
const params = this.parameters();
|
|
334
|
+
const total = params.reduce((n, p) => n + p.data.length, 0);
|
|
335
|
+
// magic, version, vocab, dModel, numLayers, convKernel, hiddenDim, numExperts, topK.
|
|
336
|
+
// numExperts and topK get distinct slots (an earlier *16 packing collided once
|
|
337
|
+
// numExperts ≥ 16 — e.g. (20,20) and (21,4) both packed to 340).
|
|
338
|
+
const headerEls = 9;
|
|
339
|
+
const headerBytes = headerEls * 4;
|
|
340
|
+
const buf = new ArrayBuffer(headerBytes + (fp16 ? total * 2 : total * 4));
|
|
341
|
+
const head = new Uint32Array(buf, 0, headerEls);
|
|
342
|
+
head[0] = MAGIC;
|
|
343
|
+
head[1] = fp16 ? 2 : 1;
|
|
344
|
+
head[2] = this.config.vocabSize;
|
|
345
|
+
head[3] = this.config.dModel;
|
|
346
|
+
head[4] = this.config.numLayers;
|
|
347
|
+
head[5] = this.config.convKernel;
|
|
348
|
+
head[6] = this.config.hiddenDim;
|
|
349
|
+
head[7] = this.config.numExperts;
|
|
350
|
+
head[8] = this.config.topK;
|
|
351
|
+
const flat = new Float32Array(total);
|
|
352
|
+
let o = 0;
|
|
353
|
+
for (const p of params) {
|
|
354
|
+
flat.set(p.data, o);
|
|
355
|
+
o += p.data.length;
|
|
356
|
+
}
|
|
357
|
+
if (fp16)
|
|
358
|
+
new Uint16Array(buf, headerBytes, total).set(quantizeFp16(flat));
|
|
359
|
+
else
|
|
360
|
+
new Float32Array(buf, headerBytes, total).set(flat);
|
|
361
|
+
return buf;
|
|
362
|
+
}
|
|
363
|
+
/** Load weights from an "EVL0" binary. Validates magic + dims. */
|
|
364
|
+
loadWeights(buffer) {
|
|
365
|
+
const head = new Uint32Array(buffer, 0, 9);
|
|
366
|
+
if (head[0] !== MAGIC)
|
|
367
|
+
throw new Error("EvermindLM.loadWeights: bad magic (not an EVL0 checkpoint)");
|
|
368
|
+
const version = head[1];
|
|
369
|
+
if (head[2] !== this.config.vocabSize ||
|
|
370
|
+
head[3] !== this.config.dModel ||
|
|
371
|
+
head[4] !== this.config.numLayers ||
|
|
372
|
+
head[5] !== this.config.convKernel ||
|
|
373
|
+
head[6] !== this.config.hiddenDim ||
|
|
374
|
+
head[7] !== this.config.numExperts ||
|
|
375
|
+
head[8] !== this.config.topK) {
|
|
376
|
+
throw new Error("EvermindLM.loadWeights: config mismatch with checkpoint");
|
|
377
|
+
}
|
|
378
|
+
const params = this.parameters();
|
|
379
|
+
const total = params.reduce((n, p) => n + p.data.length, 0);
|
|
380
|
+
const headerBytes = 36;
|
|
381
|
+
const flat = version === 2
|
|
382
|
+
? dequantizeFp16(new Uint16Array(buffer, headerBytes, total))
|
|
383
|
+
: new Float32Array(buffer.slice(headerBytes, headerBytes + total * 4));
|
|
384
|
+
let o = 0;
|
|
385
|
+
for (const p of params) {
|
|
386
|
+
p.data.set(flat.subarray(o, o + p.data.length));
|
|
387
|
+
o += p.data.length;
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
/** Minimal sequence trainer: AdamW over next-token cross-entropy. */
|
|
392
|
+
export class EvermindLMTrainer {
|
|
393
|
+
model;
|
|
394
|
+
opts;
|
|
395
|
+
adam;
|
|
396
|
+
constructor(model, opts = {}) {
|
|
397
|
+
this.model = model;
|
|
398
|
+
this.opts = opts;
|
|
399
|
+
this.adam = new AdamW(model, opts);
|
|
400
|
+
}
|
|
401
|
+
/** Train on a set of token sequences; returns per-epoch mean loss. */
|
|
402
|
+
fit(sequences) {
|
|
403
|
+
const epochs = this.opts.epochs ?? 1;
|
|
404
|
+
const history = [];
|
|
405
|
+
for (let e = 0; e < epochs; e++) {
|
|
406
|
+
let total = 0;
|
|
407
|
+
let n = 0;
|
|
408
|
+
for (const seq of sequences) {
|
|
409
|
+
if (seq.length < 2)
|
|
410
|
+
continue;
|
|
411
|
+
this.model.zeroGrad();
|
|
412
|
+
total += this.model.lossAndBackward(seq);
|
|
413
|
+
this.adam.step();
|
|
414
|
+
n++;
|
|
415
|
+
}
|
|
416
|
+
history.push(n > 0 ? total / n : 0);
|
|
417
|
+
}
|
|
418
|
+
return history;
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
const RMS_EPS = 1e-5;
|
|
422
|
+
/** RMSNorm: y[c] = gain[c]·x[c]/rms, rms = sqrt(mean(x²)+eps). Returns y and the denom. */
|
|
423
|
+
function rmsNorm(x, gain) {
|
|
424
|
+
const D = x.length;
|
|
425
|
+
let ss = 0;
|
|
426
|
+
for (let c = 0; c < D; c++)
|
|
427
|
+
ss += x[c] * x[c];
|
|
428
|
+
const r = Math.sqrt(ss / D + RMS_EPS);
|
|
429
|
+
const y = new Float32Array(D);
|
|
430
|
+
for (let c = 0; c < D; c++)
|
|
431
|
+
y[c] = (gain[c] * x[c]) / r;
|
|
432
|
+
return { y, r };
|
|
433
|
+
}
|
|
434
|
+
/**
|
|
435
|
+
* RMSNorm backward. Given dL/dy and the cached input/denom/gain, returns dL/dx and
|
|
436
|
+
* dL/dgain. dx_j = gain_j·dy_j/r − x_j·A/(D·r³) with A = Σ_c dy_c·gain_c·x_c;
|
|
437
|
+
* dgain_c = dy_c·x_c/r.
|
|
438
|
+
*/
|
|
439
|
+
function rmsNormBackward(dy, x, r, gain) {
|
|
440
|
+
const D = x.length;
|
|
441
|
+
let A = 0;
|
|
442
|
+
for (let c = 0; c < D; c++)
|
|
443
|
+
A += dy[c] * gain[c] * x[c];
|
|
444
|
+
const dx = new Float32Array(D);
|
|
445
|
+
const dgain = new Float32Array(D);
|
|
446
|
+
const r3 = r * r * r;
|
|
447
|
+
for (let c = 0; c < D; c++) {
|
|
448
|
+
dx[c] = (gain[c] * dy[c]) / r - (x[c] * A) / (D * r3);
|
|
449
|
+
dgain[c] = (dy[c] * x[c]) / r;
|
|
450
|
+
}
|
|
451
|
+
return { dx, dgain };
|
|
452
|
+
}
|
|
453
|
+
function argmax(v) {
|
|
454
|
+
let best = 0;
|
|
455
|
+
for (let i = 1; i < v.length; i++)
|
|
456
|
+
if (v[i] > v[best])
|
|
457
|
+
best = i;
|
|
458
|
+
return best;
|
|
459
|
+
}
|
|
460
|
+
function sampleTemperature(logits, temperature, rng) {
|
|
461
|
+
let max = -Infinity;
|
|
462
|
+
for (let i = 0; i < logits.length; i++)
|
|
463
|
+
if (logits[i] / temperature > max)
|
|
464
|
+
max = logits[i] / temperature;
|
|
465
|
+
let sum = 0;
|
|
466
|
+
const probs = new Float32Array(logits.length);
|
|
467
|
+
for (let i = 0; i < logits.length; i++) {
|
|
468
|
+
probs[i] = Math.exp(logits[i] / temperature - max);
|
|
469
|
+
sum += probs[i];
|
|
470
|
+
}
|
|
471
|
+
let r = rng.next() * sum;
|
|
472
|
+
for (let i = 0; i < probs.length; i++) {
|
|
473
|
+
r -= probs[i];
|
|
474
|
+
if (r <= 0)
|
|
475
|
+
return i;
|
|
476
|
+
}
|
|
477
|
+
return probs.length - 1;
|
|
478
|
+
}
|
|
479
|
+
//# sourceMappingURL=evermind_lm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evermind_lm.js","sourceRoot":"","sources":["../../src/lm/evermind_lm.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* EvermindLM — the generative language model (the runnable "AI").
|
|
3
|
+
*/
|
|
4
|
+
export { EvermindLM, EvermindLMTrainer, DEFAULT_LM_CONFIG, DEFAULT_LM_SEED } from "./evermind_lm.js";
|
|
5
|
+
export type { EvermindLMConfig, LMGenerateOptions, TextCodec } from "./evermind_lm.js";
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/lm/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACrG,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/lm/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lm/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -73,7 +73,7 @@ export class AttentionBlock {
|
|
|
73
73
|
this._buildPipelines();
|
|
74
74
|
}
|
|
75
75
|
_initWeights() {
|
|
76
|
-
const { dModel,
|
|
76
|
+
const { dModel, hasFfn, ffnMult } = this.config;
|
|
77
77
|
const randn = (n, std = 0.02) => gaussianArray(n, std);
|
|
78
78
|
const zeros = (n) => new Float32Array(n);
|
|
79
79
|
const ones = (n) => new Float32Array(n).fill(1.0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attention_block.js","sourceRoot":"","sources":["../../src/model/attention_block.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"attention_block.js","sourceRoot":"","sources":["../../src/model/attention_block.ts"],"names":[],"mappings":"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"}
|
|
@@ -251,7 +251,7 @@ export class HybridMambaModel {
|
|
|
251
251
|
async generate(promptIds, maxNewTokens = 200, samplingOpts = {}) {
|
|
252
252
|
const { temperature = 1.0, topK = 50, topP = 0.9 } = samplingOpts;
|
|
253
253
|
const { vocabSize } = this.config;
|
|
254
|
-
|
|
254
|
+
const ids = [...promptIds];
|
|
255
255
|
for (let step = 0; step < maxNewTokens; step++) {
|
|
256
256
|
const { logits } = await this.forward(new Uint32Array(ids), 1, ids.length);
|
|
257
257
|
const lastLogits = logits.slice((ids.length - 1) * vocabSize, ids.length * vocabSize);
|