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/index.d.ts +154 -193
- package/dist/index.js +2208 -39
- package/dist/index.js.map +7 -1
- package/dist/worker.debug.js +553 -0
- package/package.json +60 -58
- package/src/adam.ts +69 -15
- package/src/compile.ts +334 -156
- package/src/index.ts +8 -4
- package/src/module.ts +72 -34
- package/src/worker-protocol.ts +183 -0
- package/src/worker-proxy.ts +76 -0
- package/src/worker.ts +281 -0
- package/dist/adam.js +0 -111
- package/dist/adam.js.map +0 -1
- package/dist/buffers.js +0 -120
- package/dist/buffers.js.map +0 -1
- package/dist/capture.js +0 -33
- package/dist/capture.js.map +0 -1
- package/dist/codegen.js +0 -724
- package/dist/codegen.js.map +0 -1
- package/dist/compile.js +0 -184
- package/dist/compile.js.map +0 -1
- package/dist/grad.js +0 -380
- package/dist/grad.js.map +0 -1
- package/dist/ir.js +0 -60
- package/dist/ir.js.map +0 -1
- package/dist/module.js +0 -155
- package/dist/module.js.map +0 -1
- package/dist/nn.js +0 -135
- package/dist/nn.js.map +0 -1
- package/dist/ops.js +0 -326
- package/dist/ops.js.map +0 -1
- package/dist/runtime.js +0 -402
- package/dist/runtime.js.map +0 -1
- package/dist/shape.js +0 -259
- package/dist/shape.js.map +0 -1
- package/dist/trace.js +0 -100
- package/dist/trace.js.map +0 -1
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
|
package/dist/module.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"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"}
|
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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"}
|