@genai-fi/nanogpt 0.4.3 → 0.4.5

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.
Files changed (101) hide show
  1. package/dist/Generator.js +3 -3
  2. package/dist/NanoGPTModel.js +8 -8
  3. package/dist/Reshape-CiAY8ltP.js +212 -0
  4. package/dist/TeachableLLM.js +14 -5
  5. package/dist/{TiedEmbedding-CnJ1bx4q.js → TiedEmbedding-DznFwzcB.js} +244 -244
  6. package/dist/{axis_util-BgTGy5w8.js → axis_util-QP0LdI1v.js} +1 -1
  7. package/dist/{concat-CuRsVY-K.js → concat-DvWM7HGZ.js} +1 -1
  8. package/dist/data/parquet.js +9 -6
  9. package/dist/data/textLoader.js +6 -5
  10. package/dist/{dropout-DfDdklfL.js → dropout-DFEXTPV0.js} +4 -4
  11. package/dist/{gather-ZYRWhmXR.js → gather-C5D8PxwA.js} +1 -1
  12. package/dist/gpgpu_math-CUzjlO9A.js +23 -0
  13. package/dist/{index-C4JCoBvj.js → index--6vO-cOz.js} +87 -87
  14. package/dist/{kernel_funcs_utils-CAd1h9X1.js → kernel_funcs_utils-C6YBCuOt.js} +72 -91
  15. package/dist/layers/CausalSelfAttention.js +47 -46
  16. package/dist/layers/MLP.js +31 -33
  17. package/dist/layers/RMSNorm.d.ts +1 -2
  18. package/dist/layers/RMSNorm.js +10 -10
  19. package/dist/layers/RoPECache.js +3 -3
  20. package/dist/layers/TiedEmbedding.js +5 -5
  21. package/dist/layers/TransformerBlock.js +2 -2
  22. package/dist/{log_sum_exp-BswFnwOb.js → log_sum_exp-CiEy1aUe.js} +7 -7
  23. package/dist/main.js +28 -19
  24. package/dist/{mat_mul-415y5Qn2.js → mat_mul-BEHRPMh0.js} +1 -1
  25. package/dist/{max-CP_9O2Yd.js → max-BUShNgfh.js} +1 -1
  26. package/dist/{moments-CjeIaVdp.js → moments-DYOHXoRV.js} +5 -5
  27. package/dist/{norm-CZM380I3.js → norm-DSva3hI3.js} +13 -13
  28. package/dist/{ones-Bf3YR48P.js → ones-D6kB8bdY.js} +2 -2
  29. package/dist/ops/appendCache.js +3 -3
  30. package/dist/ops/attentionMask.js +1 -1
  31. package/dist/ops/cpu/appendCache.js +2 -2
  32. package/dist/ops/cpu/attentionMask.js +2 -2
  33. package/dist/ops/cpu/fusedSoftmax.js +2 -2
  34. package/dist/ops/cpu/gatherSub.js +4 -4
  35. package/dist/ops/cpu/gelu.js +1 -1
  36. package/dist/ops/cpu/matMulGelu.d.ts +1 -0
  37. package/dist/ops/cpu/matMulGelu.js +40 -0
  38. package/dist/ops/cpu/mulDropout.js +1 -1
  39. package/dist/ops/cpu/normRMS.d.ts +1 -0
  40. package/dist/ops/cpu/normRMS.js +39 -0
  41. package/dist/ops/cpu/qkv.js +3 -3
  42. package/dist/ops/cpu/rope.js +5 -5
  43. package/dist/ops/cpu/scatterSub.js +4 -4
  44. package/dist/ops/fusedSoftmax.js +1 -1
  45. package/dist/ops/gatherSub.js +1 -1
  46. package/dist/ops/gelu.js +2 -2
  47. package/dist/ops/grads/attentionMask.js +1 -1
  48. package/dist/ops/grads/fusedSoftmax.js +2 -2
  49. package/dist/ops/grads/gelu.js +24 -3
  50. package/dist/ops/grads/matMulGelu.d.ts +1 -0
  51. package/dist/ops/grads/matMulGelu.js +17 -0
  52. package/dist/ops/grads/normRMS.d.ts +2 -0
  53. package/dist/ops/grads/normRMS.js +20 -0
  54. package/dist/ops/grads/qkv.js +1 -1
  55. package/dist/ops/grads/rope.js +1 -1
  56. package/dist/ops/matMulGelu.d.ts +3 -0
  57. package/dist/ops/matMulGelu.js +14 -0
  58. package/dist/ops/mulDrop.js +1 -1
  59. package/dist/ops/node/sparseCrossEntropy.js +1 -1
  60. package/dist/ops/normRMS.d.ts +2 -0
  61. package/dist/ops/normRMS.js +10 -0
  62. package/dist/ops/qkv.js +1 -1
  63. package/dist/ops/scatterSub.js +1 -1
  64. package/dist/ops/webgl/appendCache.js +1 -1
  65. package/dist/ops/webgl/attentionMask.js +1 -1
  66. package/dist/ops/webgl/fusedSoftmax.js +689 -895
  67. package/dist/ops/webgl/gatherSub.js +1 -1
  68. package/dist/ops/webgl/gelu.js +2 -2
  69. package/dist/ops/webgl/matMulGelu.d.ts +21 -0
  70. package/dist/ops/webgl/matMulGelu.js +168 -0
  71. package/dist/ops/webgl/mulDropout.js +1 -1
  72. package/dist/ops/webgl/normRMS.d.ts +1 -0
  73. package/dist/ops/webgl/normRMS.js +78 -0
  74. package/dist/ops/webgl/qkv.js +1 -1
  75. package/dist/ops/webgl/rope.js +1 -1
  76. package/dist/ops/webgl/scatterSub.js +1 -1
  77. package/dist/{range-9AzeApCc.js → range-C_vpUjBu.js} +1 -1
  78. package/dist/{reshape-Boe4DuIO.js → reshape-z51Eu-re.js} +1 -1
  79. package/dist/{sin-KmhiDuMa.js → sin-H567uayl.js} +1 -1
  80. package/dist/{slice_util-19zDNNSn.js → slice_util-BdhYwFY_.js} +2 -2
  81. package/dist/{softmax-Cujsg4ay.js → softmax-Dsxflvdl.js} +1 -1
  82. package/dist/{split-DbcNm1-i.js → split-B_k_jwud.js} +1 -1
  83. package/dist/{stack-D1YjmgKN.js → stack-CmqSdsfs.js} +1 -1
  84. package/dist/{sum-R28pucR5.js → sum-DdkDf2MG.js} +1 -1
  85. package/dist/{tensor-BVeHdl7V.js → tensor-BGYi41cj.js} +1 -1
  86. package/dist/{tensor2d-DqFGNs_K.js → tensor2d-DUr_htjt.js} +1 -1
  87. package/dist/{tfjs_backend-Cug-PH75.js → tfjs_backend-DuKis_xG.js} +46 -46
  88. package/dist/training/AdamExt.js +1 -1
  89. package/dist/training/DatasetBuilder.js +18 -18
  90. package/dist/training/FullTrainer.js +1 -1
  91. package/dist/training/Trainer.js +5 -5
  92. package/dist/training/sparseCrossEntropy.js +4 -4
  93. package/dist/utilities/dummy.js +2 -2
  94. package/dist/utilities/generate.js +3 -3
  95. package/dist/utilities/load.js +1 -1
  96. package/dist/utilities/profile.js +1 -1
  97. package/dist/utilities/weights.js +2 -2
  98. package/dist/{variable-LJT9Ld63.js → variable-BJTZ3jOy.js} +1 -1
  99. package/dist/{zeros-dnQxFgAD.js → zeros-8xl-W2DC.js} +1 -1
  100. package/package.json +1 -1
  101. package/dist/gelu-CnCt17Lk.js +0 -26
@@ -0,0 +1,40 @@
1
+ import { r as a, t as i } from "../../index--6vO-cOz.js";
2
+ const c = 0.7978845608028654, m = 0.044715;
3
+ function M(o) {
4
+ const { inputs: s } = o, { x: t, kernel: l } = s, e = t, u = l;
5
+ return i(() => {
6
+ const n = e.matMul(u), d = n.mul(n).mul(n), r = n.add(d.mul(m)).mul(c).tanh().add(1).mul(0.5);
7
+ return n.mul(r);
8
+ });
9
+ }
10
+ const b = {
11
+ kernelName: "MatMulGelu",
12
+ backendName: "cpu",
13
+ kernelFunc: M
14
+ };
15
+ a(b);
16
+ const w = {
17
+ kernelName: "MatMulGelu",
18
+ backendName: "tensorflow",
19
+ kernelFunc: M
20
+ };
21
+ a(w);
22
+ function f(o) {
23
+ const { dy: s, x: t, kernel: l } = o.inputs;
24
+ return i(() => {
25
+ const e = t.matMul(l), u = e.square(), n = u.mul(e), r = e.add(n.mul(m)).mul(c).tanh(), G = r.square().neg().add(1), g = u.mul(3 * m).add(1), p = r.add(1).mul(0.5), N = e.mul(G).mul(c).mul(g).mul(0.5), K = p.add(N), k = s.mul(K), h = k.matMul(l.transpose()), F = t.transpose().matMul(k);
26
+ return [h, F];
27
+ });
28
+ }
29
+ const x = {
30
+ kernelName: "MatMulGeluGrad",
31
+ backendName: "cpu",
32
+ kernelFunc: f
33
+ };
34
+ a(x);
35
+ const C = {
36
+ kernelName: "MatMulGeluGrad",
37
+ backendName: "tensorflow",
38
+ kernelFunc: f
39
+ };
40
+ a(C);
@@ -1,4 +1,4 @@
1
- import { r as e, b as u } from "../../index-C4JCoBvj.js";
1
+ import { r as e, b as u } from "../../index--6vO-cOz.js";
2
2
  function n(o) {
3
3
  const { inputs: r } = o, { a: l, b: t } = r;
4
4
  return console.warn("Using fallback mulDrop implementation without dropout."), u(l, t);
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,39 @@
1
+ import { r as o, t as d } from "../../index--6vO-cOz.js";
2
+ function i(t) {
3
+ const { inputs: e } = t, { x: n, gamma: s } = e, r = n, a = s;
4
+ return d(() => {
5
+ const u = r.square().mean(-1, !0).add(1e-8).rsqrt();
6
+ return r.mul(u).mul(a);
7
+ });
8
+ }
9
+ const f = {
10
+ kernelName: "RMSNorm",
11
+ backendName: "cpu",
12
+ kernelFunc: i
13
+ };
14
+ o(f);
15
+ const g = {
16
+ kernelName: "RMSNorm",
17
+ backendName: "tensorflow",
18
+ kernelFunc: i
19
+ };
20
+ o(g);
21
+ function N(t) {
22
+ const { dy: e, x: n, gamma: s } = t.inputs;
23
+ return d(() => {
24
+ const r = n.shape[n.shape.length - 1], a = n.square().mean(-1, !0), m = a.add(1e-8).rsqrt(), u = n.mul(m), l = e.mul(u).sum([0, 1]), c = e.mul(s), k = c.mul(n).sum(-1, !0).div(r);
25
+ return [c.mul(m).sub(n.mul(k).mul(m).div(a.add(1e-8))), l];
26
+ });
27
+ }
28
+ const S = {
29
+ kernelName: "RMSNormGrad",
30
+ backendName: "cpu",
31
+ kernelFunc: N
32
+ };
33
+ o(S);
34
+ const R = {
35
+ kernelName: "RMSNormGrad",
36
+ backendName: "tensorflow",
37
+ kernelFunc: N
38
+ };
39
+ o(R);
@@ -1,6 +1,6 @@
1
- import { r as q } from "../../index-C4JCoBvj.js";
2
- import { r as o } from "../../reshape-Boe4DuIO.js";
3
- import { s as x } from "../../split-DbcNm1-i.js";
1
+ import { r as q } from "../../index--6vO-cOz.js";
2
+ import { r as o } from "../../reshape-z51Eu-re.js";
3
+ import { s as x } from "../../split-B_k_jwud.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();
@@ -1,8 +1,8 @@
1
- import { r as S } from "../../index-C4JCoBvj.js";
2
- import { r as F } from "../../range-9AzeApCc.js";
3
- import { g as I } from "../../gather-ZYRWhmXR.js";
4
- import { s as E } from "../../stack-D1YjmgKN.js";
5
- import { c as T } from "../../concat-CuRsVY-K.js";
1
+ import { r as S } from "../../index--6vO-cOz.js";
2
+ import { r as F } from "../../range-C_vpUjBu.js";
3
+ import { g as I } from "../../gather-C5D8PxwA.js";
4
+ import { s as E } from "../../stack-CmqSdsfs.js";
5
+ import { c as T } from "../../concat-DvWM7HGZ.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,7 +1,7 @@
1
- import { o as l, k, h, E as g, a2 as w, r as $, s as d, b as m } from "../../index-C4JCoBvj.js";
2
- import { r as b } from "../../range-9AzeApCc.js";
3
- import { s as E } from "../../stack-D1YjmgKN.js";
4
- import { o as D } from "../../ones-Bf3YR48P.js";
1
+ import { o as l, k, h, E as g, a5 as w, r as $, s as d, b as m } from "../../index--6vO-cOz.js";
2
+ import { r as b } from "../../range-C_vpUjBu.js";
3
+ import { s as E } from "../../stack-CmqSdsfs.js";
4
+ import { o as D } from "../../ones-D6kB8bdY.js";
5
5
  function N(n, r, t) {
6
6
  const s = r.rank > 1 ? r.shape[r.rank - 1] : 1, e = r.rank > 1 ? r.rank - 1 : 1, o = `Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${t.shape}, indices.shape: ${r.shape}, shape: ${n}, sliceDim: ${s}, and batchDim: ${e}.`;
7
7
  if (t.rank < e)
@@ -1,4 +1,4 @@
1
- import { e as t } from "../index-C4JCoBvj.js";
1
+ import { e as t } from "../index--6vO-cOz.js";
2
2
  import "./cpu/fusedSoftmax.js";
3
3
  import "./webgl/fusedSoftmax.js";
4
4
  import "./grads/fusedSoftmax.js";
@@ -1,4 +1,4 @@
1
- import { e as n } from "../index-C4JCoBvj.js";
1
+ import { e as n } from "../index--6vO-cOz.js";
2
2
  import "./cpu/gatherSub.js";
3
3
  import "./webgl/gatherSub.js";
4
4
  function f(r, e, t) {
package/dist/ops/gelu.js CHANGED
@@ -1,7 +1,7 @@
1
- import "../index-C4JCoBvj.js";
1
+ import "../index--6vO-cOz.js";
2
2
  import "./cpu/gelu.js";
3
3
  import "./webgl/gelu.js";
4
- import { d as e, g as i } from "../gelu-CnCt17Lk.js";
4
+ import { d as e, g as i } from "./grads/gelu.js";
5
5
  export {
6
6
  e as dGelu,
7
7
  i as gelu
@@ -1,4 +1,4 @@
1
- import { g as i } from "../../index-C4JCoBvj.js";
1
+ import { g as i } from "../../index--6vO-cOz.js";
2
2
  const u = {
3
3
  kernelName: "AttentionMask",
4
4
  inputsToSave: ["q", "k"],
@@ -1,6 +1,6 @@
1
- import { g as p, b as m, s as d } from "../../index-C4JCoBvj.js";
1
+ import { g as p, b as m, s as d } from "../../index--6vO-cOz.js";
2
2
  import { mulDrop as c } from "../mulDrop.js";
3
- import { s as f } from "../../sum-R28pucR5.js";
3
+ import { s as f } from "../../sum-DdkDf2MG.js";
4
4
  const g = {
5
5
  kernelName: "FusedSoftmax",
6
6
  outputsToSave: [!0],
@@ -1,5 +1,26 @@
1
- import "../../index-C4JCoBvj.js";
2
- import { a as e } from "../../gelu-CnCt17Lk.js";
1
+ import { g as t, e as n } from "../../index--6vO-cOz.js";
2
+ import "../cpu/gelu.js";
3
+ import "../webgl/gelu.js";
4
+ const o = {
5
+ kernelName: "Gelu",
6
+ inputsToSave: ["x"],
7
+ outputsToSave: [],
8
+ gradFunc: (e, r) => {
9
+ const [u] = r;
10
+ return {
11
+ x: () => a(e, u)
12
+ };
13
+ }
14
+ };
15
+ t(o);
16
+ function g(e) {
17
+ return n().runKernel("Gelu", { x: e });
18
+ }
19
+ function a(e, r) {
20
+ return n().runKernel("GeluGrad", { dy: e, x: r });
21
+ }
3
22
  export {
4
- e as geluGradConfig
23
+ a as d,
24
+ g,
25
+ o as geluGradConfig
5
26
  };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,17 @@
1
+ import { g as a, e as o } from "../../index--6vO-cOz.js";
2
+ function s(e, n, r) {
3
+ return o().runKernel("MatMulGeluGrad", { dy: e, x: n, kernel: r });
4
+ }
5
+ const d = {
6
+ kernelName: "MatMulGelu",
7
+ inputsToSave: ["x", "kernel"],
8
+ outputsToSave: [],
9
+ gradFunc: (e, n) => {
10
+ const [r, t] = n, [u, l] = s(e, r, t);
11
+ return {
12
+ x: () => u,
13
+ kernel: () => l
14
+ };
15
+ }
16
+ };
17
+ a(d);
@@ -0,0 +1,2 @@
1
+ import { GradConfig } from '@tensorflow/tfjs-core';
2
+ export declare const normRMSGradConfig: GradConfig;
@@ -0,0 +1,20 @@
1
+ import { g as t, e as g } from "../../index--6vO-cOz.js";
2
+ function s(r, a, n) {
3
+ return g().runKernel("RMSNormGrad", { dy: r, x: a, gamma: n });
4
+ }
5
+ const u = {
6
+ kernelName: "RMSNorm",
7
+ inputsToSave: ["x", "gamma"],
8
+ outputsToSave: [],
9
+ gradFunc: (r, a) => {
10
+ const [n, e] = a, [m, o] = s(r, n, e);
11
+ return {
12
+ x: () => m,
13
+ gamma: () => o
14
+ };
15
+ }
16
+ };
17
+ t(u);
18
+ export {
19
+ u as normRMSGradConfig
20
+ };
@@ -1,4 +1,4 @@
1
- import { g as v } from "../../index-C4JCoBvj.js";
1
+ import { g as v } from "../../index--6vO-cOz.js";
2
2
  const g = {
3
3
  kernelName: "QKV",
4
4
  inputsToSave: ["x", "kernel"],
@@ -1,4 +1,4 @@
1
- import { g as a, e as i } from "../../index-C4JCoBvj.js";
1
+ import { g as a, e as i } from "../../index--6vO-cOz.js";
2
2
  function p(n, e, s, o) {
3
3
  return i().runKernel("Rope", { x: n, sin: e, cos: s }, { pastLen: o });
4
4
  }
@@ -0,0 +1,3 @@
1
+ import { Tensor } from '@tensorflow/tfjs-core';
2
+ export declare function matMulGelu(x: Tensor, kernel: Tensor): Tensor;
3
+ export declare function dMatMulGelu(dy: Tensor, x: Tensor, kernel: Tensor): Tensor;
@@ -0,0 +1,14 @@
1
+ import { e as u } from "../index--6vO-cOz.js";
2
+ import "./cpu/matMulGelu.js";
3
+ import "./webgl/matMulGelu.js";
4
+ import "./grads/matMulGelu.js";
5
+ function M(r, e) {
6
+ return u().runKernel("MatMulGelu", { x: r, kernel: e });
7
+ }
8
+ function a(r, e, t) {
9
+ return u().runKernel("MatMulGeluGrad", { dy: r, x: e, kernel: t });
10
+ }
11
+ export {
12
+ a as dMatMulGelu,
13
+ M as matMulGelu
14
+ };
@@ -1,4 +1,4 @@
1
- import { e as t } from "../index-C4JCoBvj.js";
1
+ import { e as t } from "../index--6vO-cOz.js";
2
2
  import "./cpu/mulDropout.js";
3
3
  import "./webgl/mulDropout.js";
4
4
  function m(r, o, e, n) {
@@ -1,4 +1,4 @@
1
- import { r as o } from "../../index-C4JCoBvj.js";
1
+ import { r as o } from "../../index--6vO-cOz.js";
2
2
  function r(e) {
3
3
  const { logits: t, labels: n } = e.inputs;
4
4
  return e.backend.executeMultipleOutputs("SparseSoftmaxCrossEntropyWithLogits", [], [t, n], 2);
@@ -0,0 +1,2 @@
1
+ import { Tensor } from '@tensorflow/tfjs-core';
2
+ export declare function normRMS(x: Tensor, gamma: Tensor): Tensor;
@@ -0,0 +1,10 @@
1
+ import { e as n } from "../index--6vO-cOz.js";
2
+ import "./cpu/normRMS.js";
3
+ import "./webgl/normRMS.js";
4
+ import "./grads/normRMS.js";
5
+ function p(r, o) {
6
+ return n().runKernel("RMSNorm", { x: r, gamma: o });
7
+ }
8
+ export {
9
+ p as normRMS
10
+ };
package/dist/ops/qkv.js CHANGED
@@ -1,4 +1,4 @@
1
- import { e as o } from "../index-C4JCoBvj.js";
1
+ import { e as o } from "../index--6vO-cOz.js";
2
2
  import "./cpu/qkv.js";
3
3
  import "./webgl/qkv.js";
4
4
  import "./grads/qkv.js";
@@ -1,4 +1,4 @@
1
- import { e as i } from "../index-C4JCoBvj.js";
1
+ import { e as i } from "../index--6vO-cOz.js";
2
2
  import "./cpu/scatterSub.js";
3
3
  import "./webgl/scatterSub.js";
4
4
  function c(t, r, e) {
@@ -1,4 +1,4 @@
1
- import { r as p } from "../../index-C4JCoBvj.js";
1
+ import { r as p } from "../../index--6vO-cOz.js";
2
2
  class m {
3
3
  variableNames = ["cache", "item"];
4
4
  outputShape;
@@ -1,4 +1,4 @@
1
- import { r as h } from "../../index-C4JCoBvj.js";
1
+ import { r as h } from "../../index--6vO-cOz.js";
2
2
  class l {
3
3
  variableNames = ["q", "k"];
4
4
  outputShape;