@genai-fi/nanogpt 0.7.1 → 0.7.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/Generator.js +7 -7
- package/dist/NanoGPTModel.js +8 -8
- package/dist/{RealDiv-CVYNbZxu.js → RealDiv-Dy0p8Bvo.js} +7 -7
- package/dist/{Reshape-CEsEp0AI.js → Reshape-DH5srBP0.js} +2 -2
- package/dist/{Reshape-Do18N3gO.js → Reshape-DvudQDvJ.js} +1 -1
- package/dist/TeachableLLM.js +5 -5
- package/dist/{TiedEmbedding-ccLBFiZi.js → TiedEmbedding-BxOerUmB.js} +4 -4
- package/dist/{axis_util-5DTW2tFV.js → axis_util-BzbKo31C.js} +1 -1
- package/dist/backend.js +2 -2
- package/dist/{backend_util-C9Ut8n0Q.js → backend_util-TE7aTPhZ.js} +4 -4
- package/dist/{broadcast_to-Ba9h_8DO.js → broadcast_to-CdbwV-Dj.js} +2 -2
- package/dist/{concat-CbXTetof.js → concat-CsxrgovM.js} +1 -1
- package/dist/{dataset-U3PrjwgU.js → dataset-CtdBYwjo.js} +3 -3
- package/dist/{dropout-DPfPgWWe.js → dropout-DYs5QFGQ.js} +1 -1
- package/dist/{gather-Bbh8DHhM.js → gather-CMMy2KEG.js} +1 -1
- package/dist/{gelu-BFwVnd1r.js → gelu-C-dPj6Ku.js} +1 -1
- package/dist/{gpgpu_math-DffelNS-.js → gpgpu_math-DGNLNL4I.js} +2 -2
- package/dist/{index-UdZhlibC.js → index-BoWRt-10.js} +4 -4
- package/dist/{index-DYD_yPa-.js → index-CLthM0TO.js} +10 -10
- package/dist/{kernel_funcs_utils-CXDy3EN7.js → kernel_funcs_utils-BYKWV8Aa.js} +3 -3
- package/dist/layers/BaseLayer.js +2 -2
- package/dist/layers/CausalSelfAttention.js +6 -6
- 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 +5 -5
- package/dist/{log_sum_exp-BnmCkHWl.js → log_sum_exp-DbjkV734.js} +5 -5
- package/dist/main.js +5 -5
- package/dist/{mat_mul-dwmZz69e.js → mat_mul-8m8pfdcx.js} +1 -1
- package/dist/{max-ByjEGoFx.js → max-Ddnnb5xe.js} +1 -1
- package/dist/{mulmat_packed_gpu-IGPBp6h9.js → mulmat_packed_gpu-VSekgsNv.js} +1 -1
- package/dist/{ones-C8Mfln6-.js → ones-Dj0SDhHf.js} +2 -2
- package/dist/ops/adamAdjust.js +1 -1
- package/dist/ops/adamMoments.js +1 -1
- package/dist/ops/appendCache.js +3 -3
- package/dist/ops/attentionMask.js +1 -1
- package/dist/ops/cpu/adamAdjust.js +1 -1
- package/dist/ops/cpu/adamMoments.js +2 -2
- 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 +5 -5
- 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.js +2 -2
- package/dist/ops/webgl/adamMoments.js +7 -5
- 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 +1 -1
- 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.js +15 -13
- package/dist/ops/webgpu/adamMoments.js +18 -11
- package/dist/ops/webgpu/appendCache.js +18 -15
- package/dist/ops/webgpu/attentionMask.js +24 -18
- package/dist/ops/webgpu/gatherSub.js +17 -30
- package/dist/ops/webgpu/gelu.js +3 -3
- package/dist/ops/webgpu/normRMS.js +16 -8
- package/dist/ops/webgpu/normRMSGrad.js +25 -20
- package/dist/ops/webgpu/qkv.js +23 -19
- package/dist/ops/webgpu/rope.js +37 -24
- package/dist/ops/webgpu/scatterSub.js +16 -14
- package/dist/ops/webgpu/utils/reductions.js +4 -4
- package/dist/{ops-aRTXR2Sr.js → ops-BFGCx8Ri.js} +15 -15
- package/dist/{random_width-DbSpgl4o.js → random_width-sZORGo5k.js} +22 -22
- package/dist/{range-D9CZhVlR.js → range-CRuAh-gd.js} +1 -1
- package/dist/{reciprocal-CGB48wZB.js → reciprocal-BvGAyKyu.js} +1 -1
- package/dist/{register_all_kernels-DnbAyBXt.js → register_all_kernels-BwDSRN-f.js} +30 -30
- package/dist/{reshape-BR0eoLYN.js → reshape-CdBq1WJ6.js} +1 -1
- package/dist/{scatter_nd_util-OjyAxku2.js → scatter_nd_util-DUstGbU1.js} +1 -1
- package/dist/{selu_util-Ce6pu9IM.js → selu_util-BJEXVvjX.js} +3 -3
- package/dist/{shared-Czipaeb6.js → shared-B8ztnyEk.js} +6 -6
- package/dist/{shared-DS5waSIY.js → shared-wS99K7_n.js} +1 -1
- package/dist/{sin-CiBxrDqX.js → sin-BeA3tsEd.js} +1 -1
- package/dist/{slice-BHbDHObE.js → slice-BiOsknYS.js} +1 -1
- package/dist/{softmax-JMEIUo2J.js → softmax-Bv_6lyMX.js} +1 -1
- package/dist/{split-CRU0PjVV.js → split-B-dikLRw.js} +1 -1
- package/dist/{stack-ikk2Y8_P.js → stack-B17UN2nn.js} +1 -1
- package/dist/{sum-NLYbiDag.js → sum-66ew2byf.js} +1 -1
- package/dist/{tensor-Do9PKbIE.js → tensor-JwS7ZYY6.js} +1 -1
- package/dist/{tensor2d-CWHxHpLh.js → tensor2d-wxPAnDQy.js} +1 -1
- package/dist/training/Adam.js +2 -2
- package/dist/training/AdamExt.js +1 -1
- package/dist/training/DatasetBuilder.js +35 -32
- package/dist/training/FullTrainer.js +1 -1
- package/dist/training/Trainer.js +2 -2
- package/dist/training/sparseCrossEntropy.js +4 -4
- 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.js +1 -1
- package/dist/utilities/profile.js +1 -1
- package/dist/utilities/safetensors.js +2 -2
- package/dist/utilities/weights.js +2 -2
- package/dist/{variable-BTBkayv_.js → variable-BuddVFLa.js} +1 -1
- package/dist/{webgpu_program-WaoMq-WD.js → webgpu_program-PFzf1hAQ.js} +1 -1
- package/dist/{webgpu_util-DhSeP4b6.js → webgpu_util-D____QpY.js} +1 -1
- package/dist/{zeros-DnPT2nD4.js → zeros--BdLQ3oG.js} +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { B as u, C as c, E as g,
|
|
2
|
-
import { r as f } from "../../range-
|
|
3
|
-
import { s as l } from "../../stack-
|
|
1
|
+
import { B as u, C as c, E as g, a5 as h, f as m, c as p } from "../../index-BoWRt-10.js";
|
|
2
|
+
import { r as f } from "../../range-CRuAh-gd.js";
|
|
3
|
+
import { s as l } from "../../stack-B17UN2nn.js";
|
|
4
4
|
/**
|
|
5
5
|
* @license
|
|
6
6
|
* Copyright 2018 Google LLC. All Rights Reserved.
|
package/dist/ops/cpu/gelu.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { f as e, t as m } from "../../index-
|
|
2
|
-
import { g as d, d as M } from "../../gelu-
|
|
1
|
+
import { f as e, t as m } from "../../index-BoWRt-10.js";
|
|
2
|
+
import { g as d, d as M } from "../../gelu-C-dPj6Ku.js";
|
|
3
3
|
function c(t) {
|
|
4
4
|
const { inputs: u } = t, { x: n, kernel: l } = u, a = n, r = l;
|
|
5
5
|
return m(() => {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { f as e, t as i } from "../../index-
|
|
1
|
+
import { f as e, t as i } from "../../index-BoWRt-10.js";
|
|
2
2
|
function n(t) {
|
|
3
3
|
const { inputs: r, attrs: l } = t, { transposeA: o, transposeB: s } = l, { x: u, kernel: a, y: c } = r, m = u, k = a, M = c;
|
|
4
4
|
return i(() => m.matMul(k, o, s).mul(M));
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { f as e, a as t } from "../../index-
|
|
1
|
+
import { f as e, a as t } from "../../index-BoWRt-10.js";
|
|
2
2
|
function n(o) {
|
|
3
3
|
const { inputs: r } = o, { a: l, b: u } = r;
|
|
4
4
|
return console.warn("Using fallback mulDrop implementation without dropout."), t(l, u);
|
package/dist/ops/cpu/normRMS.js
CHANGED
package/dist/ops/cpu/qkv.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { f as q } from "../../index-
|
|
2
|
-
import { r as o } from "../../reshape-
|
|
3
|
-
import { s as x } from "../../split-
|
|
1
|
+
import { f as q } from "../../index-BoWRt-10.js";
|
|
2
|
+
import { r as o } from "../../reshape-CdBq1WJ6.js";
|
|
3
|
+
import { s as x } from "../../split-B-dikLRw.js";
|
|
4
4
|
function v(p) {
|
|
5
5
|
const { x: c, kernel: K } = p.inputs, { heads: n } = p.attrs, [s, e, t] = c.shape, a = o(c, [s * e, t]), i = a.dot(K);
|
|
6
6
|
a.dispose();
|
package/dist/ops/cpu/rope.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { f as S } from "../../index-
|
|
2
|
-
import { r as F } from "../../range-
|
|
3
|
-
import { g as I } from "../../gather-
|
|
4
|
-
import { s as E } from "../../stack-
|
|
5
|
-
import { c as T } from "../../concat-
|
|
1
|
+
import { f as S } from "../../index-BoWRt-10.js";
|
|
2
|
+
import { r as F } from "../../range-CRuAh-gd.js";
|
|
3
|
+
import { g as I } from "../../gather-CMMy2KEG.js";
|
|
4
|
+
import { s as E } from "../../stack-B17UN2nn.js";
|
|
5
|
+
import { c as T } from "../../concat-CsxrgovM.js";
|
|
6
6
|
function U(t, c, p, o, r) {
|
|
7
7
|
const n = o.shape[3], s = p;
|
|
8
8
|
if (s > n) return o;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { B as f, F as g, C as r, E as l,
|
|
2
|
-
import { v as D } from "../../scatter_nd_util-
|
|
3
|
-
import { r as k } from "../../range-
|
|
4
|
-
import { s as v } from "../../stack-
|
|
5
|
-
import { o as E } from "../../ones-
|
|
1
|
+
import { B as f, F as g, C as r, E as l, a4 as N, f as b, c as S, a as h } from "../../index-BoWRt-10.js";
|
|
2
|
+
import { v as D } from "../../scatter_nd_util-DUstGbU1.js";
|
|
3
|
+
import { r as k } from "../../range-CRuAh-gd.js";
|
|
4
|
+
import { s as v } from "../../stack-B17UN2nn.js";
|
|
5
|
+
import { o as E } from "../../ones-Dj0SDhHf.js";
|
|
6
6
|
/**
|
|
7
7
|
* @license
|
|
8
8
|
* Copyright 2018 Google LLC. All Rights Reserved.
|
package/dist/ops/fusedSoftmax.js
CHANGED
package/dist/ops/gatherSub.js
CHANGED
package/dist/ops/gelu.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import "../index-
|
|
1
|
+
import "../index-BoWRt-10.js";
|
|
2
2
|
import "./cpu/gelu.js";
|
|
3
3
|
import "./webgl/gelu.js";
|
|
4
|
-
import { d as e, g as i } from "../gelu-
|
|
4
|
+
import { d as e, g as i } from "../gelu-C-dPj6Ku.js";
|
|
5
5
|
export {
|
|
6
6
|
e as dGelu,
|
|
7
7
|
i as gelu
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { i as f, a as i, c as l } from "../../index-
|
|
1
|
+
import { i as f, a as i, c as l } from "../../index-BoWRt-10.js";
|
|
2
2
|
import { mulDrop as g } from "../mulDrop.js";
|
|
3
|
-
import { s as T } from "../../sum-
|
|
3
|
+
import { s as T } from "../../sum-66ew2byf.js";
|
|
4
4
|
const Y = {
|
|
5
5
|
kernelName: "FusedSoftmax",
|
|
6
6
|
outputsToSave: [!0],
|
package/dist/ops/grads/gelu.js
CHANGED
package/dist/ops/grads/qkv.js
CHANGED
package/dist/ops/grads/rope.js
CHANGED
package/dist/ops/matMulGelu.js
CHANGED
package/dist/ops/matMulMul.js
CHANGED
package/dist/ops/mulDrop.js
CHANGED
package/dist/ops/normRMS.js
CHANGED
package/dist/ops/qkv.js
CHANGED
package/dist/ops/rope.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { e as p } from "../index-
|
|
2
|
-
import "../random_width-
|
|
3
|
-
import "../register_all_kernels-
|
|
1
|
+
import { e as p } from "../index-BoWRt-10.js";
|
|
2
|
+
import "../random_width-sZORGo5k.js";
|
|
3
|
+
import "../register_all_kernels-BwDSRN-f.js";
|
|
4
4
|
import "../index-Tf7vU29b.js";
|
|
5
|
-
import "../dataset-
|
|
5
|
+
import "../dataset-CtdBYwjo.js";
|
|
6
6
|
import "./cpu/rope.js";
|
|
7
7
|
import "./webgl/rope.js";
|
|
8
8
|
import "./grads/rope.js";
|
package/dist/ops/scatterSub.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { f as m } from "../../index-
|
|
1
|
+
import { f as m } from "../../index-BoWRt-10.js";
|
|
2
2
|
class i {
|
|
3
3
|
variableNames = ["moments", "gradient"];
|
|
4
4
|
outputShape;
|
|
@@ -9,12 +9,14 @@ class i {
|
|
|
9
9
|
];
|
|
10
10
|
constructor(e) {
|
|
11
11
|
this.outputShape = e;
|
|
12
|
-
const t = e.length, n = t === 1 ? "int" : `ivec${Math.min(t, 4)}`, a = t === 1 ? "coords" : `coords[${t - 1}]`,
|
|
12
|
+
const t = e.length, n = t === 1 ? "int" : `ivec${Math.min(t, 4)}`, a = t === 1 ? "coords" : `coords[${t - 1}]`, r = t === 1 ? "coords" : e.slice(0, -1).map((s, c) => `coords[${c}]`).join(", ");
|
|
13
13
|
this.userCode = `
|
|
14
14
|
void main() {
|
|
15
15
|
float m = getMomentsAtOutCoords();
|
|
16
16
|
${n} coords = getOutputCoords();
|
|
17
|
-
|
|
17
|
+
|
|
18
|
+
// Add gradient clipping here
|
|
19
|
+
float g = clamp(getGradient(${r}), -1.0, 1.0);
|
|
18
20
|
int which = ${a};
|
|
19
21
|
|
|
20
22
|
float beta = which == 0 ? beta1 : beta2;
|
|
@@ -27,8 +29,8 @@ class i {
|
|
|
27
29
|
}
|
|
28
30
|
}
|
|
29
31
|
function d(o) {
|
|
30
|
-
const { moments: e, gradient: t } = o.inputs, { beta1: n, beta2: a } = o.attrs,
|
|
31
|
-
return
|
|
32
|
+
const { moments: e, gradient: t } = o.inputs, { beta1: n, beta2: a } = o.attrs, r = o.backend, s = new i(e.shape);
|
|
33
|
+
return r.runWebGLProgram(s, [e, t], "float32", [[n], [a]]);
|
|
32
34
|
}
|
|
33
35
|
const g = {
|
|
34
36
|
kernelName: "AdamMoments",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { m as b, s as I, r as k } from "../../RealDiv-
|
|
2
|
-
import { r as v } from "../../Reshape-
|
|
3
|
-
import { f as w, p as P } from "../../index-
|
|
4
|
-
import { e as S } from "../../axis_util-
|
|
1
|
+
import { m as b, s as I, r as k } from "../../RealDiv-Dy0p8Bvo.js";
|
|
2
|
+
import { r as v } from "../../Reshape-DH5srBP0.js";
|
|
3
|
+
import { f as w, p as P } from "../../index-BoWRt-10.js";
|
|
4
|
+
import { e as S } from "../../axis_util-BzbKo31C.js";
|
|
5
5
|
class T {
|
|
6
6
|
variableNames = ["logits", "maxLogits"];
|
|
7
7
|
outputShape;
|
package/dist/ops/webgl/gelu.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { f as a } from "../../index-
|
|
2
|
-
import { u as s, C as x } from "../../kernel_funcs_utils-
|
|
1
|
+
import { f as a } from "../../index-BoWRt-10.js";
|
|
2
|
+
import { u as s, C as x } from "../../kernel_funcs_utils-BYKWV8Aa.js";
|
|
3
3
|
const t = 0.7978845608028654, r = 0.044715, c = x + `
|
|
4
4
|
float x3 = x * x * x;
|
|
5
5
|
float inner = x + ${r} * x3;
|
package/dist/ops/webgl/log.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { f as e, af as r } from "../../index-
|
|
2
|
-
import { u as s, l as N } from "../../kernel_funcs_utils-
|
|
3
|
-
import { y as l } from "../../shared-
|
|
1
|
+
import { f as e, af as r } from "../../index-BoWRt-10.js";
|
|
2
|
+
import { u as s, l as N } from "../../kernel_funcs_utils-BYKWV8Aa.js";
|
|
3
|
+
import { y as l } from "../../shared-wS99K7_n.js";
|
|
4
4
|
/**
|
|
5
5
|
* @license
|
|
6
6
|
* Copyright 2020 Google LLC. All Rights Reserved.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { f as _, t as R, e as C, j as A, k as N, l as H, u as O } from "../../index-
|
|
2
|
-
import { r as f } from "../../Reshape-
|
|
3
|
-
import { M as U } from "../../mulmat_packed_gpu-
|
|
4
|
-
import { m as E } from "../../mat_mul-
|
|
1
|
+
import { f as _, t as R, e as C, j as A, k as N, l as H, u as O } from "../../index-BoWRt-10.js";
|
|
2
|
+
import { r as f } from "../../Reshape-DH5srBP0.js";
|
|
3
|
+
import { M as U } from "../../mulmat_packed_gpu-VSekgsNv.js";
|
|
4
|
+
import { m as E } from "../../mat_mul-8m8pfdcx.js";
|
|
5
5
|
const M = 0.7978845608028654, x = 0.044715, j = `
|
|
6
6
|
vec4 x3 = x * x * x;
|
|
7
7
|
vec4 inner = x + ${x} * x3;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { f as p, e as G } from "../../index-
|
|
2
|
-
import { s as x } from "../../sum-
|
|
1
|
+
import { f as p, e as G } from "../../index-BoWRt-10.js";
|
|
2
|
+
import { s as x } from "../../sum-66ew2byf.js";
|
|
3
3
|
class y {
|
|
4
4
|
variableNames = ["x", "meanSquare", "gamma"];
|
|
5
5
|
outputShape;
|
package/dist/ops/webgl/qkv.js
CHANGED
package/dist/ops/webgl/rope.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { g as p } from "../../webgpu_program-
|
|
2
|
-
import { f as d, c as l } from "../../webgpu_util-
|
|
3
|
-
import { f } from "../../index-
|
|
4
|
-
class
|
|
1
|
+
import { g as p } from "../../webgpu_program-PFzf1hAQ.js";
|
|
2
|
+
import { f as d, c as l } from "../../webgpu_util-D____QpY.js";
|
|
3
|
+
import { f, a2 as c } from "../../index-BoWRt-10.js";
|
|
4
|
+
class h {
|
|
5
5
|
variableNames = ["moments", "value"];
|
|
6
6
|
outputShape;
|
|
7
7
|
shaderKey = "AdamAdjust";
|
|
@@ -26,7 +26,7 @@ class c {
|
|
|
26
26
|
let m2Hat = moments.y * uniforms.invbeta2;
|
|
27
27
|
|
|
28
28
|
let invSqrt = inverseSqrt(max(m2Hat, 1e-30));
|
|
29
|
-
let invDenom = invSqrt / (
|
|
29
|
+
let invDenom = invSqrt / fma(uniforms.epsilon, invSqrt, 1.0);
|
|
30
30
|
let adjustedValue = fma(-uniforms.learningRate * m1Hat, invDenom, value);
|
|
31
31
|
|
|
32
32
|
setOutputAtIndex(index, adjustedValue);
|
|
@@ -35,18 +35,20 @@ class c {
|
|
|
35
35
|
`;
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
|
-
function
|
|
39
|
-
const { moments: e, value: a } = t.inputs, { beta1: n, beta2:
|
|
38
|
+
function v(t) {
|
|
39
|
+
const { moments: e, value: a } = t.inputs, { beta1: n, beta2: s, learningRate: o, epsilon: i } = t.attrs, r = t.backend;
|
|
40
|
+
c(e.shape, [...a.shape, 2], "Error in AdamAdjust: ");
|
|
41
|
+
const u = new h(a.shape), m = [
|
|
40
42
|
{ type: "float32", data: [1 / n] },
|
|
41
|
-
{ type: "float32", data: [1 /
|
|
42
|
-
{ type: "float32", data: [
|
|
43
|
-
{ type: "float32", data: [
|
|
43
|
+
{ type: "float32", data: [1 / s] },
|
|
44
|
+
{ type: "float32", data: [o] },
|
|
45
|
+
{ type: "float32", data: [i] }
|
|
44
46
|
];
|
|
45
47
|
return r.runWebGPUProgram(u, [e, a], "float32", m);
|
|
46
48
|
}
|
|
47
|
-
const
|
|
49
|
+
const b = {
|
|
48
50
|
kernelName: "AdamAdjust",
|
|
49
51
|
backendName: "webgpu",
|
|
50
|
-
kernelFunc:
|
|
52
|
+
kernelFunc: v
|
|
51
53
|
};
|
|
52
|
-
f(
|
|
54
|
+
f(b);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { g as m } from "../../webgpu_program-
|
|
2
|
-
import { f as u, c as p } from "../../webgpu_util-
|
|
3
|
-
import { f as c } from "../../index-
|
|
4
|
-
class
|
|
1
|
+
import { g as m } from "../../webgpu_program-PFzf1hAQ.js";
|
|
2
|
+
import { f as u, c as p } from "../../webgpu_util-D____QpY.js";
|
|
3
|
+
import { f as d, a2 as c } from "../../index-BoWRt-10.js";
|
|
4
|
+
class h {
|
|
5
5
|
variableNames = ["moments", "gradient"];
|
|
6
6
|
outputShape;
|
|
7
7
|
shaderKey = "AdamMoments";
|
|
@@ -25,7 +25,9 @@ class d {
|
|
|
25
25
|
${m("index")} {
|
|
26
26
|
if (index < uniforms.size) {
|
|
27
27
|
let m: vec2<f32> = moments[index];
|
|
28
|
-
|
|
28
|
+
|
|
29
|
+
// Add gradient clipping here
|
|
30
|
+
let g: f32 = clamp(gradient[index], -1.0, 1.0);
|
|
29
31
|
|
|
30
32
|
let newM1 = fma(m.x, uniforms.beta1, g * (1.0 - uniforms.beta1));
|
|
31
33
|
let newM2 = fma(m.y, uniforms.beta2, g * g * (1.0 - uniforms.beta2));
|
|
@@ -37,15 +39,20 @@ class d {
|
|
|
37
39
|
}
|
|
38
40
|
}
|
|
39
41
|
function f(t) {
|
|
40
|
-
const { moments: e, gradient:
|
|
41
|
-
|
|
42
|
-
|
|
42
|
+
const { moments: e, gradient: o } = t.inputs, { beta1: a, beta2: n } = t.attrs, r = t.backend;
|
|
43
|
+
if (c(e.shape, [...o.shape, 2], "Error in AdamMoments: "), a < 0 || a >= 1)
|
|
44
|
+
throw new Error(`Invalid beta1 value: ${a}. Must be in the range [0, 1).`);
|
|
45
|
+
if (n < 0 || n >= 1)
|
|
46
|
+
throw new Error(`Invalid beta2 value: ${n}. Must be in the range [0, 1).`);
|
|
47
|
+
const s = new h(e.shape), i = [
|
|
48
|
+
{ type: "float32", data: [a] },
|
|
49
|
+
{ type: "float32", data: [n] }
|
|
43
50
|
];
|
|
44
|
-
return
|
|
51
|
+
return r.runWebGPUProgram(s, [e, o], "float32", i);
|
|
45
52
|
}
|
|
46
|
-
const
|
|
53
|
+
const l = {
|
|
47
54
|
kernelName: "AdamMoments",
|
|
48
55
|
backendName: "webgpu",
|
|
49
56
|
kernelFunc: f
|
|
50
57
|
};
|
|
51
|
-
|
|
58
|
+
d(l);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { g as u } from "../../webgpu_program-
|
|
2
|
-
import { f as d, c as m } from "../../webgpu_util-
|
|
3
|
-
import { f as l } from "../../index-
|
|
4
|
-
class
|
|
1
|
+
import { g as u } from "../../webgpu_program-PFzf1hAQ.js";
|
|
2
|
+
import { f as d, c as m } from "../../webgpu_util-D____QpY.js";
|
|
3
|
+
import { f as l, a2 as f } from "../../index-BoWRt-10.js";
|
|
4
|
+
class g {
|
|
5
5
|
variableNames = ["cache", "item"];
|
|
6
6
|
outputShape;
|
|
7
7
|
shaderKey = "AppendCache";
|
|
@@ -10,12 +10,12 @@ class f {
|
|
|
10
10
|
workgroupSize = [64, 1, 1];
|
|
11
11
|
size = !0;
|
|
12
12
|
uniforms = "cacheT: i32";
|
|
13
|
-
constructor(t,
|
|
14
|
-
const
|
|
15
|
-
this.shaderKey = `AppendCache_${
|
|
13
|
+
constructor(e, t, s, a, c) {
|
|
14
|
+
const o = Math.min(s + 1, c);
|
|
15
|
+
this.shaderKey = `AppendCache_${o}`, this.outputShape = [e, t, o, a], this.dispatchLayout = d(this.outputShape), this.dispatch = m(this.dispatchLayout, this.outputShape, this.workgroupSize);
|
|
16
16
|
}
|
|
17
17
|
getUserCode() {
|
|
18
|
-
const
|
|
18
|
+
const e = this.outputShape[2];
|
|
19
19
|
return `
|
|
20
20
|
${u("index")} {
|
|
21
21
|
if (index < uniforms.size) {
|
|
@@ -26,7 +26,7 @@ class f {
|
|
|
26
26
|
let d = coords[3];
|
|
27
27
|
|
|
28
28
|
let itemT = 1;
|
|
29
|
-
let maxSize = ${
|
|
29
|
+
let maxSize = ${e};
|
|
30
30
|
let totalT = uniforms.cacheT + itemT;
|
|
31
31
|
let start = select(0, 1, totalT >= maxSize);
|
|
32
32
|
|
|
@@ -45,13 +45,16 @@ class f {
|
|
|
45
45
|
`;
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
|
-
function
|
|
49
|
-
const { cache:
|
|
50
|
-
|
|
48
|
+
function S(r) {
|
|
49
|
+
const { cache: e, item: t } = r.inputs, { maxSize: s, pastLen: a } = r.attrs, c = r.backend, o = e.shape[0], n = e.shape[2], i = e.shape[1];
|
|
50
|
+
if (f(t.shape, [o, i, 1, t.shape[3]], "Error in AppendCache: "), a < 0 || a > s)
|
|
51
|
+
throw new Error(`Invalid pastLen value: ${a}. Must be in the range [0, ${s}].`);
|
|
52
|
+
const h = new g(o, i, n, t.shape[3], s), p = [{ type: "int32", data: [a] }];
|
|
53
|
+
return c.runWebGPUProgram(h, [e, t], "float32", p);
|
|
51
54
|
}
|
|
52
|
-
const
|
|
55
|
+
const T = {
|
|
53
56
|
kernelName: "AppendCache",
|
|
54
57
|
backendName: "webgpu",
|
|
55
|
-
kernelFunc:
|
|
58
|
+
kernelFunc: S
|
|
56
59
|
};
|
|
57
|
-
l(
|
|
60
|
+
l(T);
|