@genai-fi/nanogpt 0.7.0 → 0.7.1
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/Generator.js +13 -9
- package/dist/NanoGPTModel.js +10 -10
- package/dist/{RealDiv-C4hOvYOZ.js → RealDiv-CVYNbZxu.js} +11 -11
- package/dist/{Reshape-BLijOA8h.js → Reshape-CEsEp0AI.js} +2 -2
- package/dist/Reshape-Do18N3gO.js +30 -0
- package/dist/TeachableLLM.js +9 -5
- package/dist/{TiedEmbedding-BLltddza.js → TiedEmbedding-ccLBFiZi.js} +4 -4
- package/dist/{axis_util-DaAl5MER.js → axis_util-5DTW2tFV.js} +1 -1
- package/dist/backend.js +2 -2
- package/dist/{backend_util-DWiwsi2N.js → backend_util-C9Ut8n0Q.js} +40 -40
- package/dist/{broadcast_to-C4v-j9yA.js → broadcast_to-Ba9h_8DO.js} +2 -2
- package/dist/{concat-CsHeR4zV.js → concat-CbXTetof.js} +1 -1
- package/dist/{dataset-JDyjG3QR.js → dataset-U3PrjwgU.js} +7 -7
- package/dist/{dropout-hpDwECTe.js → dropout-DPfPgWWe.js} +11 -11
- package/dist/{gather-D0_gPiBz.js → gather-Bbh8DHhM.js} +4 -4
- package/dist/{gelu-uyHP1x1f.js → gelu-BFwVnd1r.js} +1 -1
- package/dist/{gpgpu_math-DJm3ZTAf.js → gpgpu_math-DffelNS-.js} +2 -2
- package/dist/{index-BPPzKVdR.js → index-DYD_yPa-.js} +1083 -1106
- package/dist/{index-C0dhsYom.js → index-UdZhlibC.js} +126 -126
- package/dist/{kernel_funcs_utils-CwRTFqrc.js → kernel_funcs_utils-CXDy3EN7.js} +3 -3
- package/dist/layers/BaseLayer.js +2 -2
- package/dist/layers/CausalSelfAttention.js +8 -8
- package/dist/layers/MLP.js +5 -5
- package/dist/layers/RMSNorm.js +3 -3
- package/dist/layers/RoPECache.js +4 -4
- package/dist/layers/TiedEmbedding.js +5 -5
- package/dist/layers/TransformerBlock.js +1 -1
- package/dist/loader/loadTransformers.js +1 -1
- package/dist/loader/oldZipLoad.js +11 -7
- package/dist/{log_sum_exp-D086OgZJ.js → log_sum_exp-BnmCkHWl.js} +8 -8
- package/dist/main.d.ts +11 -0
- package/dist/main.js +44 -27
- package/dist/{mat_mul-1nwdPkQ_.js → mat_mul-dwmZz69e.js} +1 -1
- package/dist/{max-BQc2Aj-I.js → max-ByjEGoFx.js} +3 -3
- package/dist/{mulmat_packed_gpu-Gzf3I9UV.js → mulmat_packed_gpu-IGPBp6h9.js} +1 -1
- package/dist/{ones-D63HpSF_.js → ones-C8Mfln6-.js} +2 -2
- package/dist/ops/adamAdjust.d.ts +2 -0
- package/dist/ops/adamAdjust.js +9 -0
- package/dist/ops/adamMoments.d.ts +2 -0
- package/dist/ops/adamMoments.js +9 -0
- package/dist/ops/appendCache.js +3 -3
- package/dist/ops/attentionMask.js +1 -1
- package/dist/ops/cpu/adamAdjust.d.ts +1 -0
- package/dist/ops/cpu/adamAdjust.js +18 -0
- package/dist/ops/cpu/adamMoments.d.ts +1 -0
- package/dist/ops/cpu/adamMoments.js +16 -0
- package/dist/ops/cpu/appendCache.js +2 -2
- package/dist/ops/cpu/attentionMask.js +5 -5
- package/dist/ops/cpu/fusedSoftmax.js +2 -2
- package/dist/ops/cpu/gatherSub.js +3 -3
- package/dist/ops/cpu/gelu.js +1 -1
- package/dist/ops/cpu/matMulGelu.js +2 -2
- package/dist/ops/cpu/matMulMul.js +1 -1
- package/dist/ops/cpu/mulDropout.js +1 -1
- package/dist/ops/cpu/normRMS.js +1 -1
- package/dist/ops/cpu/qkv.js +3 -3
- package/dist/ops/cpu/rope.js +5 -5
- package/dist/ops/cpu/scatterSub.js +11 -11
- package/dist/ops/fusedSoftmax.js +1 -1
- package/dist/ops/gatherSub.js +1 -1
- package/dist/ops/gelu.js +2 -2
- package/dist/ops/grads/attentionMask.js +1 -1
- package/dist/ops/grads/fusedSoftmax.js +2 -2
- package/dist/ops/grads/gelu.js +2 -2
- package/dist/ops/grads/matMulGelu.js +1 -1
- package/dist/ops/grads/normRMS.js +1 -1
- package/dist/ops/grads/qkv.js +1 -1
- package/dist/ops/grads/rope.js +1 -1
- package/dist/ops/matMulGelu.js +1 -1
- package/dist/ops/matMulMul.js +1 -1
- package/dist/ops/mulDrop.js +1 -1
- package/dist/ops/normRMS.js +1 -1
- package/dist/ops/qkv.js +1 -1
- package/dist/ops/rope.js +4 -4
- package/dist/ops/scatterSub.js +1 -1
- package/dist/ops/webgl/adamAdjust.d.ts +1 -0
- package/dist/ops/webgl/adamAdjust.js +50 -0
- package/dist/ops/webgl/adamMoments.d.ts +1 -0
- package/dist/ops/webgl/adamMoments.js +38 -0
- package/dist/ops/webgl/appendCache.js +1 -1
- package/dist/ops/webgl/attentionMask.js +1 -1
- package/dist/ops/webgl/fusedSoftmax.js +4 -4
- package/dist/ops/webgl/gatherSub.js +8 -8
- package/dist/ops/webgl/gelu.js +2 -2
- package/dist/ops/webgl/log.js +3 -3
- package/dist/ops/webgl/matMulGelu.js +4 -4
- package/dist/ops/webgl/matMulMul.js +1 -1
- package/dist/ops/webgl/mulDropout.js +1 -1
- package/dist/ops/webgl/normRMS.js +2 -2
- package/dist/ops/webgl/qkv.js +1 -1
- package/dist/ops/webgl/rope.js +1 -1
- package/dist/ops/webgl/scatterSub.js +1 -1
- package/dist/ops/webgpu/adamAdjust.d.ts +1 -0
- package/dist/ops/webgpu/adamAdjust.js +52 -0
- package/dist/ops/webgpu/adamMoments.d.ts +1 -0
- package/dist/ops/webgpu/adamMoments.js +51 -0
- package/dist/ops/webgpu/appendCache.js +13 -12
- package/dist/ops/webgpu/attentionMask.js +11 -10
- package/dist/ops/webgpu/gatherSub.js +26 -11
- package/dist/ops/webgpu/gelu.js +7 -6
- package/dist/ops/webgpu/index.js +3 -0
- package/dist/ops/webgpu/normRMS.js +27 -101
- package/dist/ops/webgpu/normRMSGrad.d.ts +1 -0
- package/dist/ops/webgpu/normRMSGrad.js +128 -0
- package/dist/ops/webgpu/qkv.js +9 -8
- package/dist/ops/webgpu/rope.js +8 -7
- package/dist/ops/webgpu/scatterSub.js +8 -7
- package/dist/ops/webgpu/utils/reductions.d.ts +9 -0
- package/dist/ops/webgpu/utils/reductions.js +68 -0
- package/dist/{ops-CIQLNshk.js → ops-aRTXR2Sr.js} +195 -219
- package/dist/{random_width-DkYP8W8N.js → random_width-DbSpgl4o.js} +22 -21
- package/dist/{range-CYzpQY53.js → range-D9CZhVlR.js} +1 -1
- package/dist/{reciprocal-_A9yv27J.js → reciprocal-CGB48wZB.js} +1 -1
- package/dist/{register_all_kernels-guvSxp7M.js → register_all_kernels-DnbAyBXt.js} +30 -29
- package/dist/{reshape-BMUzc1UY.js → reshape-BR0eoLYN.js} +3 -3
- package/dist/{scatter_nd_util-IRBqKz_b.js → scatter_nd_util-OjyAxku2.js} +1 -1
- package/dist/{selu_util-Dt_iuXaq.js → selu_util-Ce6pu9IM.js} +41 -41
- package/dist/{shared-CDu9S76h.js → shared-Czipaeb6.js} +6 -6
- package/dist/{shared-BNa2q6jD.js → shared-DS5waSIY.js} +1 -1
- package/dist/{sin-Cocju-BY.js → sin-CiBxrDqX.js} +6 -6
- package/dist/slice-BHbDHObE.js +28 -0
- package/dist/{softmax-GPNK3o-U.js → softmax-JMEIUo2J.js} +3 -3
- package/dist/{split-CHzJjxDv.js → split-CRU0PjVV.js} +1 -1
- package/dist/{stack-Dpgg_1W1.js → stack-ikk2Y8_P.js} +1 -1
- package/dist/{sum-B8wEpKsg.js → sum-NLYbiDag.js} +3 -3
- package/dist/{tensor-RvZVNmg0.js → tensor-Do9PKbIE.js} +1 -1
- package/dist/{tensor2d-B_kyod7_.js → tensor2d-CWHxHpLh.js} +1 -1
- package/dist/training/Adam.d.ts +22 -0
- package/dist/training/Adam.js +93 -0
- package/dist/training/AdamExt.d.ts +1 -1
- package/dist/training/AdamExt.js +13 -12
- package/dist/training/DatasetBuilder.js +2 -2
- package/dist/training/FullTrainer.js +22 -22
- package/dist/training/Trainer.d.ts +1 -1
- package/dist/training/Trainer.js +32 -32
- package/dist/training/sparseCrossEntropy.d.ts +0 -4
- package/dist/training/sparseCrossEntropy.js +7 -7
- package/dist/utilities/arrayClose.d.ts +1 -0
- package/dist/utilities/arrayClose.js +11 -0
- package/dist/utilities/dummy.js +2 -2
- package/dist/utilities/generate.js +3 -3
- package/dist/utilities/multinomialCPU.js +2 -2
- package/dist/utilities/performance.d.ts +1 -1
- package/dist/utilities/performance.js +11 -11
- package/dist/utilities/profile.js +1 -1
- package/dist/utilities/safetensors.js +2 -2
- package/dist/utilities/weights.js +2 -2
- package/dist/{variable-DXEUOwew.js → variable-BTBkayv_.js} +1 -1
- package/dist/{webgpu_util-g13LvDIv.js → webgpu_program-WaoMq-WD.js} +138 -215
- package/dist/webgpu_util-DhSeP4b6.js +80 -0
- package/dist/{zeros-DCPCdFGq.js → zeros-DnPT2nD4.js} +4 -4
- package/package.json +1 -1
package/dist/ops/webgpu/rope.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { f as
|
|
1
|
+
import { g as h } from "../../webgpu_program-WaoMq-WD.js";
|
|
2
|
+
import { f as l, c as m } from "../../webgpu_util-DhSeP4b6.js";
|
|
3
|
+
import { f as g } from "../../index-UdZhlibC.js";
|
|
3
4
|
class f {
|
|
4
5
|
variableNames = ["x", "sin", "cos"];
|
|
5
6
|
outputShape;
|
|
@@ -9,13 +10,13 @@ class f {
|
|
|
9
10
|
workgroupSize = [64, 1, 1];
|
|
10
11
|
size = !0;
|
|
11
12
|
uniforms = "pastLen: i32";
|
|
12
|
-
constructor(t,
|
|
13
|
-
this.outputShape = [t,
|
|
13
|
+
constructor(t, s, n, o) {
|
|
14
|
+
this.shaderKey = `Rope_${o}`, this.outputShape = [t, s, n, o], this.dispatchLayout = l(this.outputShape), this.dispatch = m(this.dispatchLayout, this.outputShape, this.workgroupSize);
|
|
14
15
|
}
|
|
15
16
|
getUserCode() {
|
|
16
17
|
const t = this.outputShape[3];
|
|
17
18
|
return `
|
|
18
|
-
${
|
|
19
|
+
${h("index")} {
|
|
19
20
|
if (index < uniforms.size) {
|
|
20
21
|
let coords = getCoordsFromIndex(index); // [b, h, t, d]
|
|
21
22
|
let b = coords[0];
|
|
@@ -57,8 +58,8 @@ class f {
|
|
|
57
58
|
}
|
|
58
59
|
}
|
|
59
60
|
function b(e) {
|
|
60
|
-
const { x: t, sin:
|
|
61
|
-
return a.runWebGPUProgram(u, [t,
|
|
61
|
+
const { x: t, sin: s, cos: n } = e.inputs, { pastLen: o } = e.attrs, a = e.backend, r = t.shape[0], i = t.shape[1], d = t.shape[2], p = t.shape[3], u = new f(r, i, d, p), c = [{ type: "int32", data: [o] }];
|
|
62
|
+
return a.runWebGPUProgram(u, [t, s, n], "float32", c);
|
|
62
63
|
}
|
|
63
64
|
const x = {
|
|
64
65
|
kernelName: "Rope",
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { f as p } from "../../
|
|
1
|
+
import { g as c } from "../../webgpu_program-WaoMq-WD.js";
|
|
2
|
+
import { f as p, c as u } from "../../webgpu_util-DhSeP4b6.js";
|
|
3
|
+
import { f as d } from "../../index-UdZhlibC.js";
|
|
3
4
|
class h {
|
|
4
5
|
variableNames = ["labels", "softmaxProbs", "dy"];
|
|
5
6
|
outputShape;
|
|
@@ -9,11 +10,11 @@ class h {
|
|
|
9
10
|
workgroupSize = [64, 1, 1];
|
|
10
11
|
size = !0;
|
|
11
12
|
constructor(t, e) {
|
|
12
|
-
this.outputShape = [t, e], this.dispatchLayout =
|
|
13
|
+
this.outputShape = [t, e], this.dispatchLayout = p(this.outputShape), this.dispatch = u(this.dispatchLayout, this.outputShape, this.workgroupSize);
|
|
13
14
|
}
|
|
14
15
|
getUserCode() {
|
|
15
16
|
return `
|
|
16
|
-
${
|
|
17
|
+
${c("index")} {
|
|
17
18
|
if (index < uniforms.size) {
|
|
18
19
|
let coords = getCoordsFromIndex(index); // [batch, depth]
|
|
19
20
|
let idx = i32(getLabels(coords[0]));
|
|
@@ -26,12 +27,12 @@ class h {
|
|
|
26
27
|
}
|
|
27
28
|
}
|
|
28
29
|
function b(o) {
|
|
29
|
-
const { logits: t, labels: e, dy: s } = o.inputs,
|
|
30
|
-
return
|
|
30
|
+
const { logits: t, labels: e, dy: s } = o.inputs, r = o.backend, a = e.shape[0], i = t.shape[1], n = new h(a, i);
|
|
31
|
+
return r.runWebGPUProgram(n, [e, t, s], "float32");
|
|
31
32
|
}
|
|
32
33
|
const l = {
|
|
33
34
|
kernelName: "EfficientScatterSub",
|
|
34
35
|
backendName: "webgpu",
|
|
35
36
|
kernelFunc: b
|
|
36
37
|
};
|
|
37
|
-
|
|
38
|
+
d(l);
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { backend_util, TensorInfo } from '@tensorflow/tfjs-core';
|
|
2
|
+
import { WebGPUProgram } from '@tensorflow/tfjs-backend-webgpu/dist/webgpu_program';
|
|
3
|
+
import { WebGPUBackend } from '@tensorflow/tfjs-backend-webgpu';
|
|
4
|
+
export interface ReduceWebGPUProgram extends WebGPUProgram {
|
|
5
|
+
inputShape: number[];
|
|
6
|
+
}
|
|
7
|
+
export declare function createReductionShader(workgroupSizeX: number, reductionOp: 'mean' | 'sum', inputSnippet: string, reducedSnippet: string, outputSnippet: string): string;
|
|
8
|
+
export declare function createReduceInfo(inputs: TensorInfo[], axis: number | number[]): backend_util.ReduceInfo;
|
|
9
|
+
export declare function reduce(program: ReduceWebGPUProgram, inputs: TensorInfo[], backend: WebGPUBackend): TensorInfo;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { p as l, j as d } from "../../../index-UdZhlibC.js";
|
|
2
|
+
import { g as p } from "../../../webgpu_program-WaoMq-WD.js";
|
|
3
|
+
import { r as f } from "../../../Reshape-Do18N3gO.js";
|
|
4
|
+
import { c as x } from "../../../axis_util-5DTW2tFV.js";
|
|
5
|
+
function I(e, r, t, s, u) {
|
|
6
|
+
return `
|
|
7
|
+
fn DIV_CEIL(a : u32, b : u32) -> u32 {
|
|
8
|
+
return ((a - 1u) / b + 1u);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
${`
|
|
12
|
+
var<workgroup> xBestValues : array<f32, ${e}>;
|
|
13
|
+
`}
|
|
14
|
+
|
|
15
|
+
${p("index")} {
|
|
16
|
+
let outputIndex = index / ${e};
|
|
17
|
+
let offset = outputIndex * uniforms.reduceSize;
|
|
18
|
+
var bestValue = 0.0;
|
|
19
|
+
let Length = uniforms.reduceSize;
|
|
20
|
+
|
|
21
|
+
for (var k = i32(localId.x); k < Length;
|
|
22
|
+
k = k + ${e}) {
|
|
23
|
+
var candidate = f32(x[offset + k]);
|
|
24
|
+
${t}
|
|
25
|
+
bestValue = bestValue + candidate;
|
|
26
|
+
}
|
|
27
|
+
xBestValues[localId.x] = bestValue;
|
|
28
|
+
workgroupBarrier();
|
|
29
|
+
|
|
30
|
+
var reduceSize = min(u32(Length), ${e}u);
|
|
31
|
+
for (var currentSize = reduceSize / 2u; reduceSize > 1u;
|
|
32
|
+
currentSize = reduceSize / 2u) {
|
|
33
|
+
let interval = DIV_CEIL(reduceSize, 2u);
|
|
34
|
+
if (localId.x < currentSize) {
|
|
35
|
+
let candidate = xBestValues[localId.x + interval];
|
|
36
|
+
bestValue = bestValue + candidate;
|
|
37
|
+
xBestValues[localId.x] = bestValue;
|
|
38
|
+
}
|
|
39
|
+
reduceSize = interval;
|
|
40
|
+
workgroupBarrier();
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
bestValue = xBestValues[0] ${r === "mean" ? "/ f32(uniforms.reduceSize)" : ""};
|
|
44
|
+
|
|
45
|
+
${s}
|
|
46
|
+
|
|
47
|
+
for (var k = i32(localId.x); k < Length;
|
|
48
|
+
k = k + ${e}) {
|
|
49
|
+
${u}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
`;
|
|
53
|
+
}
|
|
54
|
+
function V(e, r) {
|
|
55
|
+
const t = e[0], u = l(r, t.shape), [, n] = x(t.shape, u), a = d(n), i = d(t.shape) / a;
|
|
56
|
+
return { windowSize: a, inSize: a, batchSize: i, outSize: 1 };
|
|
57
|
+
}
|
|
58
|
+
function $(e, r, t) {
|
|
59
|
+
const s = [], u = r[0], a = [{ type: "int32", data: [e.inputShape[1]] }], o = t.runWebGPUProgram(e, r, "float32", a);
|
|
60
|
+
s.push(o);
|
|
61
|
+
const i = f({ inputs: { x: o }, attrs: { shape: u.shape }, backend: t });
|
|
62
|
+
return s.forEach((c) => t.disposeData(c.dataId)), i;
|
|
63
|
+
}
|
|
64
|
+
export {
|
|
65
|
+
V as createReduceInfo,
|
|
66
|
+
I as createReductionShader,
|
|
67
|
+
$ as reduce
|
|
68
|
+
};
|