tensorgrad 0.0.15 → 0.0.16

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/grad.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"grad.js","sourceRoot":"","sources":["../src/grad.ts"],"names":[],"mappings":"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"}
package/dist/ir.js DELETED
@@ -1,60 +0,0 @@
1
- // Intermediate representation for tensor computations.
2
- //
3
- // A `Graph` is a flat array of `OpNode`s in topological (= construction) order.
4
- // A `Tensor` is an opaque handle: shape + dtype + a pointer back to the OpNode
5
- // that produced it (or `null` for graph leaves — params and external inputs).
6
- //
7
- // This is the data structure everything else operates on:
8
- // - tracing builds it (src/trace.ts)
9
- // - autograd walks it in reverse to add backward nodes (src/grad.ts, later)
10
- // - codegen reads it to emit WGSL kernels and a dispatch plan (src/codegen.ts, later)
11
- //
12
- // Design intent: keep this file boring. No tracing logic, no shape inference,
13
- // no codegen — those live in their own modules and consume `Graph` / `OpNode`.
14
- export function makeGraph() {
15
- return { ops: [], tensors: [], outputs: [], captures: new Map() };
16
- }
17
- // Internal: register a fresh tensor in the graph and return its id.
18
- export function addTensor(g, shape, dtype, source, site) {
19
- const id = g.tensors.length;
20
- const t = { id, shape, dtype, source, site };
21
- g.tensors.push(t);
22
- return t;
23
- }
24
- // Internal: append an op and the tensor it produces. Returns the produced tensor.
25
- // Generic over the specific op kind so callers don't need `as any` casts.
26
- // `Extract<OpNode, { kind: K }>` narrows the union to the chosen variant, then
27
- // `Omit` strips the parts addOp itself supplies (the kind tag and out tensor id).
28
- export function addOp(g, kind, shape, dtype, site, fields) {
29
- const opIndex = g.ops.length;
30
- const out = addTensor(g, shape, dtype, opIndex, site);
31
- const node = { kind, out: out.id, ...fields };
32
- g.ops.push(node);
33
- return out;
34
- }
35
- // Capture a call site without paying full Error formatting cost up-front.
36
- // The stack is materialised but parsing/trimming is deferred to error reporting.
37
- export function captureSite(opName) {
38
- // Skip our own frame plus the op wrapper's frame; user's frame is what's left.
39
- const stack = (new Error()).stack ?? '';
40
- return { opName, stack };
41
- }
42
- // Format a CallSite for inclusion in a thrown error. Strips Tensorgrad frames
43
- // and library internals so the user sees their code first.
44
- export function formatSite(site) {
45
- const lines = site.stack.split('\n');
46
- // Stack starts with "Error" line; drop it. Then drop frames from this file
47
- // and from src/ops.ts so the first surviving frame is user code.
48
- const userFrames = [];
49
- for (const line of lines.slice(1)) {
50
- if (line.includes('/tensorgrad/src/') || line.includes('\\tensorgrad\\src\\'))
51
- continue;
52
- userFrames.push(line.trim());
53
- if (userFrames.length >= 3)
54
- break;
55
- }
56
- if (userFrames.length === 0)
57
- return `[${site.opName}] (no user frame found)`;
58
- return `[${site.opName}]\n ${userFrames.join('\n ')}`;
59
- }
60
- //# sourceMappingURL=ir.js.map
package/dist/ir.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"ir.js","sourceRoot":"","sources":["../src/ir.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,+EAA+E;AAC/E,8EAA8E;AAC9E,EAAE;AACF,0DAA0D;AAC1D,uCAAuC;AACvC,8EAA8E;AAC9E,wFAAwF;AACxF,EAAE;AACF,8EAA8E;AAC9E,+EAA+E;AAqJ/E,MAAM,UAAU,SAAS;IACvB,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,CAAA;AACnE,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,SAAS,CAAC,CAAQ,EAAE,KAAY,EAAE,KAAY,EAAE,MAAqB,EAAE,IAAqB;IAC1G,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAA;IAC3B,MAAM,CAAC,GAAW,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;IACpD,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,OAAO,CAAC,CAAA;AACV,CAAC;AAED,kFAAkF;AAClF,0EAA0E;AAC1E,+EAA+E;AAC/E,kFAAkF;AAClF,MAAM,UAAU,KAAK,CACnB,CAAQ,EACR,IAAO,EACP,KAAY,EACZ,KAAY,EACZ,IAAqB,EACrB,MAA0D;IAE1D,MAAM,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAA;IAC5B,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;IACrD,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,MAAM,EAAkC,CAAA;IAC7E,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAChB,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,0EAA0E;AAC1E,iFAAiF;AACjF,MAAM,UAAU,WAAW,CAAC,MAAc;IACxC,+EAA+E;IAC/E,MAAM,KAAK,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,EAAE,CAAA;IACvC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;AAC1B,CAAC;AAED,8EAA8E;AAC9E,2DAA2D;AAC3D,MAAM,UAAU,UAAU,CAAC,IAAc;IACvC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACpC,2EAA2E;IAC3E,iEAAiE;IACjE,MAAM,UAAU,GAAa,EAAE,CAAA;IAC/B,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QAClC,IAAI,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YAAE,SAAQ;QACvF,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QAC5B,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC;YAAE,MAAK;IACnC,CAAC;IACD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,IAAI,CAAC,MAAM,yBAAyB,CAAA;IAC5E,OAAO,IAAI,IAAI,CAAC,MAAM,QAAQ,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAA;AACzD,CAAC"}
package/dist/module.js DELETED
@@ -1,155 +0,0 @@
1
- // Module abstraction — a Domeleon-style component layer for parameter trees.
2
- //
3
- // User code defines a model as nested classes:
4
- //
5
- // class Linear extends Module {
6
- // W: Tensor; b: Tensor
7
- // constructor(inDim: number, outDim: number) {
8
- // super()
9
- // this.W = this.param([inDim, outDim]) // randn, scale 0.02
10
- // this.b = this.param([outDim], { init: 'zeros' })
11
- // }
12
- // }
13
- // class Block extends Module {
14
- // attn = new Attention(D)
15
- // mlp = new MLP(D, 4 * D)
16
- // }
17
- // class Model extends Module {
18
- // embed = new Linear(VOCAB, D)
19
- // layers = range(N).map(() => new Block())
20
- // }
21
- //
22
- // The param tree is discovered automatically at compile time by walking
23
- // enumerable instance properties. Each parameter gets a name auto-derived
24
- // from its path (`layers.0.attn.W_q`); names are used for upload/download
25
- // and writeback wiring. Forward functions are pure and stateless — they
26
- // take the materialized model and inputs, return a Tensor.
27
- import { paramInput } from './trace.js';
28
- function boxMuller() {
29
- return Math.sqrt(-2 * Math.log(Math.max(1e-10, Math.random()))) * Math.cos(2 * Math.PI * Math.random());
30
- }
31
- function resolveInit(opts) {
32
- const init = opts?.init ?? 'randn';
33
- if (init === 'randn') {
34
- const scale = opts?.scale ?? 0.02;
35
- return (size) => {
36
- const arr = new Float32Array(size);
37
- for (let i = 0; i < size; i++)
38
- arr[i] = boxMuller() * scale;
39
- return arr;
40
- };
41
- }
42
- if (init === 'zeros')
43
- return (size) => new Float32Array(size);
44
- if (init === 'ones')
45
- return (size) => { const a = new Float32Array(size); a.fill(1); return a; };
46
- if (typeof init === 'function')
47
- return init;
48
- throw new Error(`Unknown init: ${String(init)}`);
49
- }
50
- /** Resolve the decay default for a param. Decay weight matrices and
51
- * embedding tables (randn-initialized); skip biases (zeros) and LN gains
52
- * (ones). Custom init functions default to "decay" — most user-supplied
53
- * inits are weight-shaped (Kaiming etc.). Explicit `decay: false` overrides. */
54
- function resolveDecay(opts) {
55
- if (opts?.decay !== undefined)
56
- return opts.decay;
57
- const init = opts?.init ?? 'randn';
58
- if (init === 'zeros' || init === 'ones')
59
- return false;
60
- return true; // 'randn' or function
61
- }
62
- // ============================================================================
63
- // Internals: param sentinel
64
- // ============================================================================
65
- //
66
- // `this.param(shape)` returns a placeholder that's replaced by a real Tensor
67
- // during `materializeParams`. We type-cheat by declaring the return type as
68
- // `Tensor` so user code can write `this.W` and have TS happy; the cheat is
69
- // only valid post-materialization (which is always before forward runs).
70
- class ParamSentinel {
71
- shape;
72
- dtype;
73
- initFn;
74
- decay;
75
- constructor(shape, dtype, initFn, decay) {
76
- this.shape = shape;
77
- this.dtype = dtype;
78
- this.initFn = initFn;
79
- this.decay = decay;
80
- }
81
- }
82
- // ============================================================================
83
- // Module base class
84
- // ============================================================================
85
- export class Module {
86
- /**
87
- * Declare a learnable parameter at this module. Must be called from inside
88
- * the constructor (typically as a field assignment). Returns a placeholder
89
- * that gets replaced with a real Tensor at compile time.
90
- *
91
- * The parameter's name is auto-derived from its property path in the model
92
- * tree (e.g. `layers.0.attn.W_q`). Init metadata travels with the param;
93
- * call `compiled.uploadInitialParams()` to apply it after compile.
94
- */
95
- param(shape, opts) {
96
- const dtype = opts?.dtype ?? 'f32';
97
- // Lie to TypeScript: the sentinel becomes a Tensor at materialize time.
98
- return new ParamSentinel(shape, dtype, resolveInit(opts), resolveDecay(opts));
99
- }
100
- }
101
- /**
102
- * Walk the module tree and replace every ParamSentinel with a real Tensor
103
- * created via `paramInput(autoName, ...)`. Must be called inside an active
104
- * trace context (paramInput appends to the current graph).
105
- *
106
- * Returns the param tensors keyed by path, plus init functions for use by
107
- * `uploadInitialParams`.
108
- */
109
- export function materializeParams(root) {
110
- const tensors = {};
111
- const initFns = {};
112
- const decayFlags = {};
113
- visit(root, '', (path, val, owner, key) => {
114
- if (val instanceof ParamSentinel) {
115
- const t = paramInput(path, val.shape, val.dtype);
116
- owner[key] = t;
117
- tensors[path] = t;
118
- initFns[path] = val.initFn;
119
- decayFlags[path] = val.decay;
120
- }
121
- });
122
- return { tensors, initFns, decayFlags };
123
- }
124
- function visit(node, path, visitor) {
125
- if (node === null || node === undefined)
126
- return;
127
- if (typeof node !== 'object')
128
- return;
129
- if (node instanceof Module) {
130
- for (const key of Object.keys(node)) {
131
- const child = node[key];
132
- const childPath = path ? `${path}.${key}` : key;
133
- visitChild(child, childPath, node, key, visitor);
134
- }
135
- return;
136
- }
137
- if (Array.isArray(node)) {
138
- node.forEach((item, i) => {
139
- const childPath = path ? `${path}.${i}` : String(i);
140
- visitChild(item, childPath, node, i, visitor);
141
- });
142
- return;
143
- }
144
- // Plain leaf object (sentinel / tensor / something else): visitor decides.
145
- // No deeper recursion.
146
- }
147
- function visitChild(child, path, owner, key, visitor) {
148
- if (child instanceof Module || Array.isArray(child)) {
149
- visit(child, path, visitor);
150
- }
151
- else {
152
- visitor(path, child, owner, key);
153
- }
154
- }
155
- //# sourceMappingURL=module.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,EAAE;AACF,+CAA+C;AAC/C,EAAE;AACF,kCAAkC;AAClC,2BAA2B;AAC3B,mDAAmD;AACnD,gBAAgB;AAChB,gFAAgF;AAChF,yDAAyD;AACzD,QAAQ;AACR,MAAM;AACN,iCAAiC;AACjC,8BAA8B;AAC9B,+BAA+B;AAC/B,MAAM;AACN,iCAAiC;AACjC,mCAAmC;AACnC,+CAA+C;AAC/C,MAAM;AACN,EAAE;AACF,wEAAwE;AACxE,0EAA0E;AAC1E,0EAA0E;AAC1E,wEAAwE;AACxE,2DAA2D;AAG3D,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAmCvC,SAAS,SAAS;IAChB,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;AACzG,CAAC;AAED,SAAS,WAAW,CAAC,IAA8B;IACjD,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,IAAI,OAAO,CAAA;IAClC,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,IAAI,CAAA;QACjC,OAAO,CAAC,IAAI,EAAE,EAAE;YACd,MAAM,GAAG,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,CAAA;YAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE;gBAAE,GAAG,CAAC,CAAC,CAAC,GAAG,SAAS,EAAE,GAAG,KAAK,CAAA;YAC3D,OAAO,GAAG,CAAA;QACZ,CAAC,CAAA;IACH,CAAC;IACD,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,CAAA;IAC7D,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,CAAC,IAAI,EAAE,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA,CAAC,CAAC,CAAA;IAC/F,IAAI,OAAO,IAAI,KAAK,UAAU;QAAE,OAAO,IAAI,CAAA;IAC3C,MAAM,IAAI,KAAK,CAAC,iBAAiB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAClD,CAAC;AAED;;;iFAGiF;AACjF,SAAS,YAAY,CAAC,IAA8B;IAClD,IAAI,IAAI,EAAE,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC,KAAK,CAAA;IAChD,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,IAAI,OAAO,CAAA;IAClC,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,KAAK,CAAA;IACrD,OAAO,IAAI,CAAA,CAAG,sBAAsB;AACtC,CAAC;AAED,+EAA+E;AAC/E,4BAA4B;AAC5B,+EAA+E;AAC/E,EAAE;AACF,6EAA6E;AAC7E,4EAA4E;AAC5E,2EAA2E;AAC3E,yEAAyE;AAEzE,MAAM,aAAa;IAEC;IACA;IACA;IACA;IAJlB,YACkB,KAAY,EACZ,KAAY,EACZ,MAAc,EACd,KAAc;QAHd,UAAK,GAAL,KAAK,CAAO;QACZ,UAAK,GAAL,KAAK,CAAO;QACZ,WAAM,GAAN,MAAM,CAAQ;QACd,UAAK,GAAL,KAAK,CAAS;IAC7B,CAAC;CACL;AAED,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E,MAAM,OAAgB,MAAM;IAC1B;;;;;;;;OAQG;IACO,KAAK,CAAC,KAAY,EAAE,IAAmB;QAC/C,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,KAAK,CAAA;QAClC,wEAAwE;QACxE,OAAO,IAAI,aAAa,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,CAAsB,CAAA;IACpG,CAAC;CACF;AAgBD;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,MAAM,OAAO,GAA2B,EAAE,CAAA;IAC1C,MAAM,OAAO,GAA2B,EAAE,CAAA;IAC1C,MAAM,UAAU,GAA4B,EAAE,CAAA;IAC9C,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACxC,IAAI,GAAG,YAAY,aAAa,EAAE,CAAC;YACjC,MAAM,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAC/C;YAAC,KAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YACxB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACjB,OAAO,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAA;YAC1B,UAAU,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,CAAA;QAC9B,CAAC;IACH,CAAC,CAAC,CAAA;IACF,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAA;AACzC,CAAC;AAaD,SAAS,KAAK,CAAC,IAAa,EAAE,IAAY,EAAE,OAAgB;IAC1D,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS;QAAE,OAAM;IAC/C,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAM;IAEpC,IAAI,IAAI,YAAY,MAAM,EAAE,CAAC;QAC3B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAc,CAAC,EAAE,CAAC;YAC9C,MAAM,KAAK,GAAI,IAAY,CAAC,GAAG,CAAC,CAAA;YAChC,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAA;YAC/C,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;QAClD,CAAC;QACD,OAAM;IACR,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YACvB,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;YACnD,UAAU,CAAC,IAAI,EAAE,SAAS,EAAE,IAAyB,EAAE,CAAC,EAAE,OAAO,CAAC,CAAA;QACpE,CAAC,CAAC,CAAA;QACF,OAAM;IACR,CAAC;IACD,2EAA2E;IAC3E,uBAAuB;AACzB,CAAC;AAED,SAAS,UAAU,CAAC,KAAc,EAAE,IAAY,EAAE,KAAa,EAAE,GAAoB,EAAE,OAAgB;IACrG,IAAI,KAAK,YAAY,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACpD,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IAC7B,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;IAClC,CAAC;AACH,CAAC"}
package/dist/nn.js DELETED
@@ -1,135 +0,0 @@
1
- // Standard "batteries-included" Module subclasses for the most common layers.
2
- //
3
- // Each class declares its params and a `.fwd(x)` method that runs the forward
4
- // computation. Forward methods are pure tensorgrad ops — autograd traces
5
- // through them just like any other call.
6
- //
7
- // import { nn } from 'tensorgrad'
8
- // class Block extends Module {
9
- // ln = new nn.LayerNorm(D)
10
- // ffn = new nn.Linear(D, 4 * D)
11
- // }
12
- // const y = p.ffn.fwd(p.ln.fwd(x))
13
- import { Module } from './module.js';
14
- import { add, matmul, sub, mul, div, sqrt, meanLast, sumLast, reshape, swapAxes, oneHot, logSoftmaxLast } from './ops.js';
15
- import { ShapeError } from './shape.js';
16
- import { captureSite } from './ir.js';
17
- export class Linear extends Module {
18
- inDim;
19
- outDim;
20
- W;
21
- b;
22
- constructor(inDim, outDim, opts = {}) {
23
- super();
24
- this.inDim = inDim;
25
- this.outDim = outDim;
26
- this.W = this.param([inDim, outDim]); // randn, scale 0.02
27
- this.b = opts.bias === false ? null : this.param([outDim], { init: 'zeros' });
28
- }
29
- fwd(x) {
30
- const out = matmul(x, this.W);
31
- return this.b ? add(out, this.b) : out;
32
- }
33
- }
34
- // ----------------------------------------------------------------------------
35
- // LayerNorm — normalizes over the last axis. eps defaults to 1e-5.
36
- // ----------------------------------------------------------------------------
37
- export class LayerNorm extends Module {
38
- d;
39
- eps;
40
- g;
41
- b;
42
- constructor(d, eps = 1e-5) {
43
- super();
44
- this.d = d;
45
- this.eps = eps;
46
- this.g = this.param([d], { init: 'ones' });
47
- this.b = this.param([d], { init: 'zeros' });
48
- }
49
- fwd(x) {
50
- const m = meanLast(x);
51
- const c = sub(x, m);
52
- const v = meanLast(mul(c, c));
53
- const stdev = sqrt(add(v, this.eps));
54
- return add(mul(div(c, stdev), this.g), this.b);
55
- }
56
- }
57
- // ----------------------------------------------------------------------------
58
- // Multi-head attention shape helpers — split the last (model) axis into
59
- // [nHeads, headDim] and bring heads ahead of the sequence axis.
60
- // ----------------------------------------------------------------------------
61
- /** [..., T, D] → [..., H, T, D/H]. Folds the standard
62
- * `transpose(reshape(x, [..., T, H, d]), [..., H, T, d])` pattern into one
63
- * call. Last dim of `x` must divide evenly by `nHeads`. */
64
- export function splitHeads(x, nHeads) {
65
- const site = captureSite('splitHeads');
66
- const r = x.shape.length;
67
- if (r < 2)
68
- throw new ShapeError(`splitHeads: requires rank >= 2, got ${r}`, site);
69
- const T = x.shape[r - 2];
70
- const D = x.shape[r - 1];
71
- if (D % nHeads !== 0) {
72
- throw new ShapeError(`splitHeads: last dim ${D} not divisible by nHeads ${nHeads}`, site);
73
- }
74
- const lead = x.shape.slice(0, r - 2);
75
- const reshaped = reshape(x, [...lead, T, nHeads, D / nHeads]);
76
- // Swap T (axis lead.length) with H (axis lead.length + 1).
77
- return swapAxes(reshaped, lead.length, lead.length + 1);
78
- }
79
- /** Inverse of `splitHeads`: [..., H, T, d] → [..., T, H*d]. */
80
- export function mergeHeads(x) {
81
- const site = captureSite('mergeHeads');
82
- const r = x.shape.length;
83
- if (r < 3)
84
- throw new ShapeError(`mergeHeads: requires rank >= 3, got ${r}`, site);
85
- const H = x.shape[r - 3];
86
- const T = x.shape[r - 2];
87
- const d = x.shape[r - 1];
88
- const lead = x.shape.slice(0, r - 3);
89
- // Swap H (axis r-3) and T (axis r-2): [..., H, T, d] → [..., T, H, d]
90
- const swapped = swapAxes(x, r - 3, r - 2);
91
- return reshape(swapped, [...lead, T, H * d]);
92
- }
93
- /** Slice a captured tensor named `name` into one Float32Array per head, using
94
- * the static shape registered at compile time. The leading axis is treated as
95
- * heads (matching `splitHeads` layout at B=1); a leading singleton batch is
96
- * stripped if present so callers can pass capture names directly. Throws if
97
- * the capture isn't registered or wasn't read back this call. */
98
- export function unsplitHeads(captures, name) {
99
- const flat = captures.get(name);
100
- const shape = captures.shapeOf(name);
101
- if (shape.length < 2) {
102
- throw new Error(`unsplitHeads: '${name}' shape needs >= 2 dims, got [${shape.join(', ')}]`);
103
- }
104
- // For inference graphs at B=1, captures have shape [1, H, ..., ...]. Strip
105
- // the leading 1 if present so the next axis is heads.
106
- const s = shape[0] === 1 ? shape.slice(1) : shape;
107
- const H = s[0];
108
- let stride = 1;
109
- for (let i = 1; i < s.length; i++)
110
- stride *= s[i];
111
- const expected = H * stride;
112
- if (flat.length !== expected) {
113
- throw new Error(`unsplitHeads: '${name}' length ${flat.length} doesn't match shape product ${expected}`);
114
- }
115
- return Array.from({ length: H }, (_, h) => flat.slice(h * stride, (h + 1) * stride));
116
- }
117
- // ----------------------------------------------------------------------------
118
- // Loss helpers
119
- // ----------------------------------------------------------------------------
120
- /** Per-position cross-entropy along the last (vocab) axis: returns
121
- * `-log p(target)` at each position. `logits` is `[..., V]`; `targets` is
122
- * `[...]` of i32; result is `[...]` (one rank less than logits). The user
123
- * applies their own masking + reduction downstream — useful when only some
124
- * positions contribute (e.g. result-digit masking) or for label smoothing. */
125
- export function crossEntropyLast(logits, targets) {
126
- const site = captureSite('crossEntropyLast');
127
- if (targets.dtype !== 'i32') {
128
- throw new ShapeError(`crossEntropyLast: targets must be i32, got ${targets.dtype}`, site);
129
- }
130
- const vocab = logits.shape[logits.shape.length - 1];
131
- const lp = logSoftmaxLast(logits); // [..., V]
132
- const targetLp = sumLast(mul(lp, oneHot(targets, vocab, 'f32'))); // [...]
133
- return mul(targetLp, -1);
134
- }
135
- //# sourceMappingURL=nn.js.map
package/dist/nn.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"nn.js","sourceRoot":"","sources":["../src/nn.ts"],"names":[],"mappings":"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"}