@genai-fi/nanogpt 0.5.5 → 0.6.0

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 (106) hide show
  1. package/dist/Generator.js +8 -7
  2. package/dist/NanoGPTModel.js +8 -8
  3. package/dist/{Reshape-Biok_3X1.js → Reshape-CLOrdpve.js} +2 -2
  4. package/dist/TeachableLLM.js +18 -17
  5. package/dist/{TiedEmbedding-8S8xn8e6.js → TiedEmbedding-BhxWO8QR.js} +5 -5
  6. package/dist/{axis_util-BczFISHz.js → axis_util-D17qZRQm.js} +1 -1
  7. package/dist/{broadcast_to-B7NGsBSh.js → broadcast_to-BMQLjvt_.js} +2 -2
  8. package/dist/{concat-DdKPyAtw.js → concat-DhZfF1GY.js} +1 -1
  9. package/dist/{dataset-iqT4Otvb.js → dataset-oilnemHf.js} +3 -3
  10. package/dist/{dropout-B09InSJS.js → dropout-CrMQPCeG.js} +1 -1
  11. package/dist/{gather-D6MsdXqc.js → gather-DZCMHZuN.js} +1 -1
  12. package/dist/{gpgpu_math-BFbOyvk4.js → gpgpu_math-Ctc31slO.js} +1 -1
  13. package/dist/{index-Du-bmOP8.js → index-bMBtI-WR.js} +50 -50
  14. package/dist/{kernel_funcs_utils-DShm7-0k.js → kernel_funcs_utils-CNmjLWnB.js} +26 -24
  15. package/dist/layers/BaseLayer.js +2 -2
  16. package/dist/layers/CausalSelfAttention.js +6 -6
  17. package/dist/layers/MLP.js +5 -5
  18. package/dist/layers/RMSNorm.js +3 -3
  19. package/dist/layers/RoPECache.js +3 -3
  20. package/dist/layers/TiedEmbedding.js +6 -6
  21. package/dist/layers/TransformerBlock.js +1 -1
  22. package/dist/{log_sum_exp-CxfBtUaG.js → log_sum_exp-BHdkCb4s.js} +5 -5
  23. package/dist/main.d.ts +1 -0
  24. package/dist/main.js +20 -19
  25. package/dist/{mat_mul-CbiqIe2d.js → mat_mul-BsrLfy81.js} +1 -1
  26. package/dist/{max-0Xnlpv8k.js → max-DechV4Bc.js} +1 -1
  27. package/dist/{norm-01kY9I2B.js → norm-B9hWHZH1.js} +5 -5
  28. package/dist/{ones-CrutWGas.js → ones-g0K8jVwm.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 +5 -5
  33. package/dist/ops/cpu/fusedSoftmax.js +2 -2
  34. package/dist/ops/cpu/gatherSub.js +3 -3
  35. package/dist/ops/cpu/gelu.js +1 -1
  36. package/dist/ops/cpu/matMulGelu.js +1 -1
  37. package/dist/ops/cpu/matMulMul.js +1 -1
  38. package/dist/ops/cpu/mulDropout.js +1 -1
  39. package/dist/ops/cpu/normRMS.js +1 -1
  40. package/dist/ops/cpu/qkv.js +3 -3
  41. package/dist/ops/cpu/rope.js +5 -5
  42. package/dist/ops/cpu/scatterSub.js +4 -4
  43. package/dist/ops/fusedSoftmax.js +1 -1
  44. package/dist/ops/gatherSub.js +1 -1
  45. package/dist/ops/gelu.js +1 -1
  46. package/dist/ops/grads/attentionMask.js +15 -11
  47. package/dist/ops/grads/fusedSoftmax.js +12 -10
  48. package/dist/ops/grads/gelu.js +1 -1
  49. package/dist/ops/grads/matMulGelu.js +1 -1
  50. package/dist/ops/grads/normRMS.js +1 -1
  51. package/dist/ops/grads/qkv.js +1 -1
  52. package/dist/ops/grads/rope.js +1 -1
  53. package/dist/ops/log.d.ts +0 -0
  54. package/dist/ops/log.js +1 -0
  55. package/dist/ops/matMulGelu.js +1 -1
  56. package/dist/ops/matMulMul.js +1 -1
  57. package/dist/ops/mulDrop.js +1 -1
  58. package/dist/ops/node/sparseCrossEntropy.js +1 -1
  59. package/dist/ops/normRMS.js +1 -1
  60. package/dist/ops/qkv.js +1 -1
  61. package/dist/ops/scatterSub.js +1 -1
  62. package/dist/ops/webgl/appendCache.js +1 -1
  63. package/dist/ops/webgl/attentionMask.js +1 -1
  64. package/dist/ops/webgl/fusedSoftmax.js +205 -3022
  65. package/dist/ops/webgl/gatherSub.js +1 -1
  66. package/dist/ops/webgl/gelu.js +2 -2
  67. package/dist/ops/webgl/log.d.ts +17 -0
  68. package/dist/ops/webgl/log.js +39 -0
  69. package/dist/ops/webgl/matMulGelu.js +4 -4
  70. package/dist/ops/webgl/matMulMul.js +1 -1
  71. package/dist/ops/webgl/mulDropout.js +1 -1
  72. package/dist/ops/webgl/normRMS.js +2 -2
  73. package/dist/ops/webgl/qkv.js +1 -1
  74. package/dist/ops/webgl/rope.js +1 -1
  75. package/dist/ops/webgl/scatterSub.js +1 -1
  76. package/dist/{ops-CJNniCAV.js → ops-Mv7Ta72x.js} +13 -13
  77. package/dist/{random_width-C-v-35bY.js → random_width-BBAWzDym.js} +23 -23
  78. package/dist/{range-Bvs1hidm.js → range-DMaG9A3G.js} +1 -1
  79. package/dist/{reshape-BH7eBpwq.js → reshape-T4yDEqoF.js} +1 -1
  80. package/dist/shared-XNAoXhOa.js +2826 -0
  81. package/dist/{sin-CPAZXNjH.js → sin-EEhbrRO_.js} +1 -1
  82. package/dist/{slice_util-DskXqRZa.js → slice_util-Ddk0uxGJ.js} +1 -1
  83. package/dist/{softmax-DhWoBa7r.js → softmax-B2_IKPDR.js} +1 -1
  84. package/dist/{split-BCUhuU7B.js → split-dcks18H1.js} +1 -1
  85. package/dist/{stack-BV1v7l3S.js → stack-lpJ5kYvE.js} +1 -1
  86. package/dist/{sum-Cvq06317.js → sum-CutF5lj2.js} +1 -1
  87. package/dist/{tensor-DgTOPY6h.js → tensor-C15NA2LA.js} +1 -1
  88. package/dist/{tensor2d-CRWjDyUe.js → tensor2d-DZ_e5eKM.js} +1 -1
  89. package/dist/{tfjs_backend-D9Ytje0G.js → tfjs_backend-BDb8r9qx.js} +28 -28
  90. package/dist/training/AdamExt.js +1 -1
  91. package/dist/training/DatasetBuilder.js +2 -2
  92. package/dist/training/FullTrainer.js +1 -1
  93. package/dist/training/Trainer.js +3 -3
  94. package/dist/training/sparseCrossEntropy.js +4 -4
  95. package/dist/utilities/dummy.js +2 -2
  96. package/dist/utilities/generate.js +3 -3
  97. package/dist/utilities/load.d.ts +25 -0
  98. package/dist/utilities/load.js +89 -37
  99. package/dist/utilities/profile.js +4 -4
  100. package/dist/utilities/safetensors.d.ts +3 -0
  101. package/dist/utilities/safetensors.js +83 -0
  102. package/dist/utilities/save.js +47 -29
  103. package/dist/utilities/weights.js +2 -2
  104. package/dist/{variable-DZ3fF0R2.js → variable-CdRKKp8x.js} +1 -1
  105. package/dist/{zeros-BaHhQTWf.js → zeros-CAbHfODe.js} +1 -1
  106. package/package.json +1 -1
@@ -1,43 +1,61 @@
1
- import { j as g } from "../jszip.min-CjP2V1VV.js";
2
- import { exportWeights as l } from "./weights.js";
3
- import p from "../tokeniser/CharTokeniser.js";
4
- const b = "1.0.0";
5
- async function h(t, a, i) {
6
- const c = i?.includeLog ?? !0, f = /* @__PURE__ */ new Map();
7
- t.saveWeights(f);
8
- const e = new g(), r = {};
9
- for (const [n, s] of f) {
10
- const o = await l(s);
11
- r[n] = o.spec, e.file(`${n}.bin`, o.data.buffer, { binary: !0 });
12
- }
13
- if (e.file(
14
- "manifest.json",
15
- JSON.stringify({
16
- weightSpec: r,
17
- config: t.config.gpt,
18
- version: b,
19
- application: "@genai-fi/nanogpt",
20
- meta: i?.metadata,
21
- name: i?.name
22
- }),
1
+ import { j as p } from "../jszip.min-CjP2V1VV.js";
2
+ import b from "../tokeniser/CharTokeniser.js";
3
+ import { save_safetensors as l } from "./safetensors.js";
4
+ import { VERSION as y } from "./load.js";
5
+ async function N(e, a, n) {
6
+ const f = n?.includeLog ?? !0, s = /* @__PURE__ */ new Map();
7
+ e.saveWeights(s);
8
+ const i = new p(), r = {};
9
+ s.forEach((t, o) => {
10
+ t.length === 1 && (r[o] = t[0]);
11
+ });
12
+ const g = await l(r);
13
+ i.file("model.safetensors", g, { binary: !0 });
14
+ const c = {
15
+ model_type: "GenAI_NanoGPT_1",
16
+ vocab_size: a.getVocab().length,
17
+ hidden_size: e.config.gpt.nEmbed,
18
+ num_hidden_layers: e.config.gpt.nLayer,
19
+ num_attention_heads: e.config.gpt.nHead,
20
+ block_size: e.config.gpt.blockSize,
21
+ dropout: e.config.gpt.dropout,
22
+ biasInLinear: e.config.gpt.biasInLinear,
23
+ biasInLayerNorm: e.config.gpt.biasInLayerNorm,
24
+ mlpFactor: e.config.gpt.mlpFactor,
25
+ useRope: e.config.gpt.useRope
26
+ };
27
+ if (i.file("config.json", JSON.stringify(c, void 0, 4), {
28
+ binary: !1
29
+ }), i.file(
30
+ "meta.json",
31
+ JSON.stringify(
32
+ {
33
+ version: y,
34
+ application: "@genai-fi/nanogpt",
35
+ meta: n?.metadata,
36
+ name: n?.name
37
+ },
38
+ void 0,
39
+ 4
40
+ ),
23
41
  {
24
42
  binary: !1
25
43
  }
26
- ), e.file(
44
+ ), i.file(
27
45
  "tokeniser.json",
28
46
  JSON.stringify({
29
- type: a instanceof p ? "char" : "bpe",
47
+ type: a instanceof b ? "char" : "bpe",
30
48
  vocab: a.getVocab(),
31
49
  merges: await a.getMerges()
32
50
  }),
33
51
  {
34
52
  binary: !1
35
53
  }
36
- ), c && e.file("log.json", JSON.stringify(t.log), { binary: !1 }), i?.files)
37
- for (const [n, s] of Object.entries(i.files))
38
- e.file(n, JSON.stringify(s), { binary: !1 });
39
- return e.generateAsync({ type: "blob" });
54
+ ), f && i.file("log.json", JSON.stringify(e.log), { binary: !1 }), n?.files)
55
+ for (const [t, o] of Object.entries(n.files))
56
+ i.file(t, JSON.stringify(o), { binary: !1 });
57
+ return i.generateAsync({ type: "blob" });
40
58
  }
41
59
  export {
42
- h as saveModel
60
+ N as saveModel
43
61
  };
@@ -1,5 +1,5 @@
1
- import "../index-Du-bmOP8.js";
2
- import { t as p } from "../tensor-DgTOPY6h.js";
1
+ import "../index-bMBtI-WR.js";
2
+ import { t as p } from "../tensor-C15NA2LA.js";
3
3
  function h(n) {
4
4
  const e = n.reduce((s, o) => s + o.length, 0), a = new Float32Array(e);
5
5
  let t = 0;
@@ -1,4 +1,4 @@
1
- import { E as i } from "./index-Du-bmOP8.js";
1
+ import { E as i } from "./index-bMBtI-WR.js";
2
2
  /**
3
3
  * @license
4
4
  * Copyright 2018 Google LLC. All Rights Reserved.
@@ -1,4 +1,4 @@
1
- import { o as m, j as r, X as l, E as c, Y as i, n as p, Z as u, q as f } from "./index-Du-bmOP8.js";
1
+ import { o as m, j as r, X as l, E as c, Y as i, n as p, Z as u, q as f } from "./index-bMBtI-WR.js";
2
2
  /**
3
3
  * @license
4
4
  * Copyright 2020 Google LLC. All Rights Reserved.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@genai-fi/nanogpt",
3
- "version": "0.5.5",
3
+ "version": "0.6.0",
4
4
  "type": "module",
5
5
  "main": "dist/main.js",
6
6
  "types": "dist/main.d.ts",