@genai-fi/nanogpt 0.19.0 → 0.20.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.
- package/package.json +9 -10
- package/dist/Generator.d.ts +0 -82
- package/dist/Generator.js +0 -11941
- package/dist/RealDiv-CGwv0liw.js +0 -365
- package/dist/Reshape-BW__R4mZ.js +0 -79
- package/dist/Reshape-CPBkTIH2.js +0 -14
- package/dist/TeachableLLM.d.ts +0 -70
- package/dist/TeachableLLM.js +0 -273
- package/dist/Trainer.d.ts +0 -43
- package/dist/Trainer.js +0 -244
- package/dist/_commonjsHelpers-ByX85dGu.js +0 -33
- package/dist/axis_util-GTVlo58H.js +0 -55
- package/dist/backend.d.ts +0 -2
- package/dist/backend.js +0 -13
- package/dist/backend_util-GaFarB78.js +0 -425
- package/dist/backend_webgpu-BqASlsbV.js +0 -545
- package/dist/binary_op_util-pKXltfxI.js +0 -192
- package/dist/broadcast_to-eS93CCN_.js +0 -28
- package/dist/checks/appendCache.d.ts +0 -1
- package/dist/checks/appendCache.js +0 -22
- package/dist/checks/attentionMask.d.ts +0 -1
- package/dist/checks/attentionMask.js +0 -37
- package/dist/checks/check.d.ts +0 -9
- package/dist/checks/check.js +0 -20
- package/dist/checks/gelu.d.ts +0 -1
- package/dist/checks/gelu.js +0 -18
- package/dist/checks/index.d.ts +0 -26
- package/dist/checks/index.js +0 -28
- package/dist/checks/matMulGelu.d.ts +0 -1
- package/dist/checks/matMulGelu.js +0 -28
- package/dist/checks/normRMS.d.ts +0 -1
- package/dist/checks/normRMS.js +0 -16
- package/dist/checks/normRMSGrad.d.ts +0 -1
- package/dist/checks/normRMSGrad.js +0 -12
- package/dist/checks/packUnpack.d.ts +0 -1
- package/dist/checks/packUnpack.js +0 -18
- package/dist/checks/qkv.d.ts +0 -1
- package/dist/checks/qkv.js +0 -34
- package/dist/checks/rope.d.ts +0 -1
- package/dist/checks/rope.js +0 -36
- package/dist/checks/weights.d.ts +0 -14
- package/dist/checks/weights.js +0 -31
- package/dist/clip_by_value-DDA7rrcT.js +0 -12
- package/dist/complex-DI35Q-gW.js +0 -11
- package/dist/complex_util-Yc1A_gV1.js +0 -55
- package/dist/concat-CAQpCret.js +0 -17
- package/dist/concat_util-D18dJ4fD.js +0 -22
- package/dist/data/docx.d.ts +0 -2
- package/dist/data/docx.js +0 -15
- package/dist/data/parquet.d.ts +0 -2
- package/dist/data/parquet.js +0 -17
- package/dist/data/pdf.d.ts +0 -2
- package/dist/data/pdf.js +0 -14
- package/dist/data/textLoader.d.ts +0 -7
- package/dist/data/textLoader.js +0 -108
- package/dist/dataset-CGGp1z9P.js +0 -1124
- package/dist/dropout_util--NxWuYg2.js +0 -27
- package/dist/expand_dims-Bkd1YD5x.js +0 -11
- package/dist/exports_initializers-CYzKLjN7.js +0 -7
- package/dist/floor-BQtb-Azg.js +0 -9
- package/dist/gather-qIqEqaGn.js +0 -9
- package/dist/gelu-B220X1Go.js +0 -26
- package/dist/gpgpu_math-BwvV12df.js +0 -2022
- package/dist/index-CUXkjxiT.js +0 -3516
- package/dist/index-CieiGp4Y.js +0 -349
- package/dist/index-CjOWnMXP.js +0 -7308
- package/dist/index-Cp39cXWe.js +0 -1016
- package/dist/index-D5v913EJ.js +0 -4
- package/dist/index-DmeWGGmS.js +0 -1074
- package/dist/index-DvYrXKkX.js +0 -113
- package/dist/index-Ksja3su6.js +0 -151
- package/dist/index-xuotMAFm.js +0 -118
- package/dist/inference/types.d.ts +0 -16
- package/dist/inference/types.js +0 -1
- package/dist/jszip.min-BZhlzntC.js +0 -2313
- package/dist/kernel_funcs_utils-pq0CK9co.js +0 -306
- package/dist/layers/BaseLayer.d.ts +0 -44
- package/dist/layers/BaseLayer.js +0 -74
- package/dist/layers/CausalSelfAttention.d.ts +0 -39
- package/dist/layers/CausalSelfAttention.js +0 -86
- package/dist/layers/LoRA.d.ts +0 -14
- package/dist/layers/LoRA.js +0 -58
- package/dist/layers/MLP.d.ts +0 -17
- package/dist/layers/MLP.js +0 -44
- package/dist/layers/PositionEmbedding.d.ts +0 -8
- package/dist/layers/PositionEmbedding.js +0 -31
- package/dist/layers/RMSNorm.d.ts +0 -12
- package/dist/layers/RMSNorm.js +0 -22
- package/dist/layers/RoPECache.d.ts +0 -18
- package/dist/layers/RoPECache.js +0 -50
- package/dist/layers/TiedEmbedding.d.ts +0 -13
- package/dist/layers/TiedEmbedding.js +0 -36
- package/dist/layers/TransformerBlock.d.ts +0 -27
- package/dist/layers/TransformerBlock.js +0 -40
- package/dist/layers/WeightStore.d.ts +0 -20
- package/dist/layers/WeightStore.js +0 -76
- package/dist/loader/load.d.ts +0 -6
- package/dist/loader/load.js +0 -68
- package/dist/loader/loadHF.d.ts +0 -8
- package/dist/loader/loadHF.js +0 -22
- package/dist/loader/loadTransformers.d.ts +0 -4
- package/dist/loader/loadTransformers.js +0 -44
- package/dist/loader/loadZipMeta.d.ts +0 -3
- package/dist/loader/loadZipMeta.js +0 -16
- package/dist/loader/newZipLoad.d.ts +0 -3
- package/dist/loader/newZipLoad.js +0 -31
- package/dist/loader/oldZipLoad.d.ts +0 -9
- package/dist/loader/oldZipLoad.js +0 -80
- package/dist/loader/save.d.ts +0 -16
- package/dist/loader/save.js +0 -90
- package/dist/loader/types.d.ts +0 -67
- package/dist/loader/types.js +0 -1
- package/dist/main.d.ts +0 -50
- package/dist/main.js +0 -109
- package/dist/matMul16-BcVC_E62.js +0 -80
- package/dist/matMulGelu-JNLZqKQp.js +0 -163
- package/dist/mat_mul-DhG0Newp.js +0 -11
- package/dist/mod-CSdCpRjf.js +0 -11
- package/dist/models/NanoGPTV1.d.ts +0 -16
- package/dist/models/NanoGPTV1.js +0 -99
- package/dist/models/NanoGPTV2.d.ts +0 -16
- package/dist/models/NanoGPTV2.js +0 -90
- package/dist/models/config.d.ts +0 -27
- package/dist/models/config.js +0 -50
- package/dist/models/factory.d.ts +0 -3
- package/dist/models/factory.js +0 -16
- package/dist/models/model.d.ts +0 -44
- package/dist/models/model.js +0 -134
- package/dist/non_max_suppression_impl-B2W7YjZB.js +0 -102
- package/dist/not_equal-hurPF26l.js +0 -64
- package/dist/ones-BytntneX.js +0 -14
- package/dist/ops/adamAdjust.d.ts +0 -2
- package/dist/ops/adamAdjust.js +0 -9
- package/dist/ops/adamMoments.d.ts +0 -2
- package/dist/ops/adamMoments.js +0 -9
- package/dist/ops/add16.d.ts +0 -2
- package/dist/ops/add16.js +0 -9
- package/dist/ops/appendCache.d.ts +0 -2
- package/dist/ops/appendCache.js +0 -22
- package/dist/ops/attentionMask.d.ts +0 -2
- package/dist/ops/attentionMask.js +0 -10
- package/dist/ops/concat16.d.ts +0 -2
- package/dist/ops/concat16.js +0 -9
- package/dist/ops/cpu/adamAdjust.d.ts +0 -1
- package/dist/ops/cpu/adamAdjust.js +0 -18
- package/dist/ops/cpu/adamMoments.d.ts +0 -1
- package/dist/ops/cpu/adamMoments.js +0 -16
- package/dist/ops/cpu/appendCache.d.ts +0 -1
- package/dist/ops/cpu/appendCache.js +0 -23
- package/dist/ops/cpu/attentionMask.d.ts +0 -1
- package/dist/ops/cpu/attentionMask.js +0 -22
- package/dist/ops/cpu/fusedSoftmax.d.ts +0 -9
- package/dist/ops/cpu/fusedSoftmax.js +0 -29
- package/dist/ops/cpu/gatherSub.d.ts +0 -1
- package/dist/ops/cpu/gatherSub.js +0 -18
- package/dist/ops/cpu/gelu.d.ts +0 -1
- package/dist/ops/cpu/gelu.js +0 -40
- package/dist/ops/cpu/matMul16.d.ts +0 -1
- package/dist/ops/cpu/matMul16.js +0 -15
- package/dist/ops/cpu/matMulGelu.d.ts +0 -1
- package/dist/ops/cpu/matMulGelu.js +0 -53
- package/dist/ops/cpu/matMulMul.d.ts +0 -1
- package/dist/ops/cpu/matMulMul.js +0 -23
- package/dist/ops/cpu/mulDropout.d.ts +0 -1
- package/dist/ops/cpu/mulDropout.js +0 -23
- package/dist/ops/cpu/normRMS.d.ts +0 -1
- package/dist/ops/cpu/normRMS.js +0 -39
- package/dist/ops/cpu/qkv.d.ts +0 -5
- package/dist/ops/cpu/qkv.js +0 -41
- package/dist/ops/cpu/rope.d.ts +0 -6
- package/dist/ops/cpu/rope.js +0 -38
- package/dist/ops/cpu/scatterSub.d.ts +0 -1
- package/dist/ops/cpu/scatterSub.js +0 -23
- package/dist/ops/dot16.d.ts +0 -2
- package/dist/ops/dot16.js +0 -42
- package/dist/ops/dropout.d.ts +0 -2
- package/dist/ops/dropout.js +0 -14
- package/dist/ops/dropout16.d.ts +0 -2
- package/dist/ops/dropout16.js +0 -25
- package/dist/ops/gatherSub.d.ts +0 -2
- package/dist/ops/gatherSub.js +0 -9
- package/dist/ops/gelu.d.ts +0 -3
- package/dist/ops/gelu.js +0 -8
- package/dist/ops/globalNorm.d.ts +0 -2
- package/dist/ops/globalNorm.js +0 -13
- package/dist/ops/grads/add16.d.ts +0 -1
- package/dist/ops/grads/add16.js +0 -26
- package/dist/ops/grads/attentionMask.d.ts +0 -1
- package/dist/ops/grads/attentionMask.js +0 -21
- package/dist/ops/grads/dropout16.d.ts +0 -1
- package/dist/ops/grads/dropout16.js +0 -2
- package/dist/ops/grads/gelu.d.ts +0 -2
- package/dist/ops/grads/gelu.js +0 -5
- package/dist/ops/grads/matMul16.d.ts +0 -2
- package/dist/ops/grads/matMul16.js +0 -9
- package/dist/ops/grads/matMulGelu.d.ts +0 -1
- package/dist/ops/grads/matMulGelu.js +0 -17
- package/dist/ops/grads/mul16.d.ts +0 -1
- package/dist/ops/grads/mul16.js +0 -4
- package/dist/ops/grads/normRMS.d.ts +0 -3
- package/dist/ops/grads/normRMS.js +0 -33
- package/dist/ops/grads/pack16.d.ts +0 -2
- package/dist/ops/grads/pack16.js +0 -6
- package/dist/ops/grads/qkv.d.ts +0 -3
- package/dist/ops/grads/qkv.js +0 -34
- package/dist/ops/grads/rope.d.ts +0 -2
- package/dist/ops/grads/rope.js +0 -5
- package/dist/ops/grads/softmax16.d.ts +0 -2
- package/dist/ops/grads/softmax16.js +0 -25
- package/dist/ops/grads/unpack16.d.ts +0 -2
- package/dist/ops/grads/unpack16.js +0 -5
- package/dist/ops/grads/utils.d.ts +0 -4
- package/dist/ops/grads/utils.js +0 -14
- package/dist/ops/log.d.ts +0 -0
- package/dist/ops/log.js +0 -1
- package/dist/ops/matMul16.d.ts +0 -15
- package/dist/ops/matMul16.js +0 -13
- package/dist/ops/matMulGelu.d.ts +0 -3
- package/dist/ops/matMulGelu.js +0 -14
- package/dist/ops/matMulMul.d.ts +0 -2
- package/dist/ops/matMulMul.js +0 -9
- package/dist/ops/mul16.d.ts +0 -2
- package/dist/ops/mul16.js +0 -39
- package/dist/ops/mulDrop.d.ts +0 -2
- package/dist/ops/mulDrop.js +0 -9
- package/dist/ops/normRMS.d.ts +0 -2
- package/dist/ops/normRMS.js +0 -19
- package/dist/ops/pack16.d.ts +0 -2
- package/dist/ops/pack16.js +0 -5
- package/dist/ops/qkv.d.ts +0 -2
- package/dist/ops/qkv.js +0 -10
- package/dist/ops/reshape16.d.ts +0 -2
- package/dist/ops/reshape16.js +0 -41
- package/dist/ops/rope.d.ts +0 -3
- package/dist/ops/rope.js +0 -7
- package/dist/ops/scatterSub.d.ts +0 -2
- package/dist/ops/scatterSub.js +0 -9
- package/dist/ops/slice16.d.ts +0 -2
- package/dist/ops/slice16.js +0 -9
- package/dist/ops/softmax16.d.ts +0 -2
- package/dist/ops/softmax16.js +0 -9
- package/dist/ops/sub16.d.ts +0 -2
- package/dist/ops/sub16.js +0 -8
- package/dist/ops/sum16.d.ts +0 -2
- package/dist/ops/sum16.js +0 -13
- package/dist/ops/transpose16.d.ts +0 -3
- package/dist/ops/transpose16.js +0 -40
- package/dist/ops/unpack16.d.ts +0 -2
- package/dist/ops/unpack16.js +0 -6
- package/dist/ops/webgl/adamAdjust.d.ts +0 -1
- package/dist/ops/webgl/adamAdjust.js +0 -49
- package/dist/ops/webgl/adamMoments.d.ts +0 -1
- package/dist/ops/webgl/adamMoments.js +0 -40
- package/dist/ops/webgl/appendCache.d.ts +0 -1
- package/dist/ops/webgl/appendCache.js +0 -44
- package/dist/ops/webgl/attentionMask.d.ts +0 -1
- package/dist/ops/webgl/attentionMask.js +0 -45
- package/dist/ops/webgl/dropout16.d.ts +0 -1
- package/dist/ops/webgl/dropout16.js +0 -11
- package/dist/ops/webgl/fusedSoftmax.d.ts +0 -11
- package/dist/ops/webgl/fusedSoftmax.js +0 -80
- package/dist/ops/webgl/gatherSub.d.ts +0 -1
- package/dist/ops/webgl/gatherSub.js +0 -27
- package/dist/ops/webgl/gelu.d.ts +0 -2
- package/dist/ops/webgl/gelu.js +0 -50
- package/dist/ops/webgl/log.d.ts +0 -17
- package/dist/ops/webgl/log.js +0 -23
- package/dist/ops/webgl/matMul16.d.ts +0 -1
- package/dist/ops/webgl/matMul16.js +0 -45
- package/dist/ops/webgl/matMulGelu.d.ts +0 -21
- package/dist/ops/webgl/matMulGelu.js +0 -9
- package/dist/ops/webgl/matMulMul.d.ts +0 -14
- package/dist/ops/webgl/matMulMul.js +0 -28
- package/dist/ops/webgl/mulDropout.d.ts +0 -1
- package/dist/ops/webgl/mulDropout.js +0 -41
- package/dist/ops/webgl/normRMS.d.ts +0 -1
- package/dist/ops/webgl/normRMS.js +0 -93
- package/dist/ops/webgl/qkv.d.ts +0 -1
- package/dist/ops/webgl/qkv.js +0 -46
- package/dist/ops/webgl/rope.d.ts +0 -1
- package/dist/ops/webgl/rope.js +0 -56
- package/dist/ops/webgl/scatterSub.d.ts +0 -1
- package/dist/ops/webgl/scatterSub.js +0 -27
- package/dist/ops/webgpu/adamAdjust.d.ts +0 -1
- package/dist/ops/webgpu/adamAdjust.js +0 -57
- package/dist/ops/webgpu/adamMoments.d.ts +0 -1
- package/dist/ops/webgpu/adamMoments.js +0 -60
- package/dist/ops/webgpu/add16.d.ts +0 -1
- package/dist/ops/webgpu/add16.js +0 -13
- package/dist/ops/webgpu/appendCache.d.ts +0 -1
- package/dist/ops/webgpu/appendCache.js +0 -105
- package/dist/ops/webgpu/attentionMask.d.ts +0 -1
- package/dist/ops/webgpu/attentionMask.js +0 -26
- package/dist/ops/webgpu/attentionMask32_program.d.ts +0 -19
- package/dist/ops/webgpu/attentionMask32_program.js +0 -54
- package/dist/ops/webgpu/clipScale.d.ts +0 -1
- package/dist/ops/webgpu/clipScale.js +0 -58
- package/dist/ops/webgpu/concat16.d.ts +0 -19
- package/dist/ops/webgpu/concat16.js +0 -126
- package/dist/ops/webgpu/dropout16.d.ts +0 -1
- package/dist/ops/webgpu/dropout16.js +0 -51
- package/dist/ops/webgpu/gatherSub.d.ts +0 -1
- package/dist/ops/webgpu/gatherSub.js +0 -39
- package/dist/ops/webgpu/gelu.d.ts +0 -14
- package/dist/ops/webgpu/gelu.js +0 -141
- package/dist/ops/webgpu/index.d.ts +0 -0
- package/dist/ops/webgpu/index.js +0 -26
- package/dist/ops/webgpu/matMul16.d.ts +0 -1
- package/dist/ops/webgpu/matMul16.js +0 -65
- package/dist/ops/webgpu/matMul16_program.d.ts +0 -42
- package/dist/ops/webgpu/matMul16_program.js +0 -343
- package/dist/ops/webgpu/mul16.d.ts +0 -1
- package/dist/ops/webgpu/mul16.js +0 -13
- package/dist/ops/webgpu/norm2.d.ts +0 -1
- package/dist/ops/webgpu/norm2.js +0 -76
- package/dist/ops/webgpu/normRMS.d.ts +0 -1
- package/dist/ops/webgpu/normRMS.js +0 -34
- package/dist/ops/webgpu/normRMS16_program.d.ts +0 -10
- package/dist/ops/webgpu/normRMS16_program.js +0 -25
- package/dist/ops/webgpu/normRMS32_program.d.ts +0 -10
- package/dist/ops/webgpu/normRMS32_program.js +0 -25
- package/dist/ops/webgpu/normRMSGrad.d.ts +0 -1
- package/dist/ops/webgpu/normRMSGrad.js +0 -284
- package/dist/ops/webgpu/pack16.d.ts +0 -1
- package/dist/ops/webgpu/pack16.js +0 -18
- package/dist/ops/webgpu/pack16_program.d.ts +0 -19
- package/dist/ops/webgpu/pack16_program.js +0 -92
- package/dist/ops/webgpu/qkv.d.ts +0 -1
- package/dist/ops/webgpu/qkv.js +0 -24
- package/dist/ops/webgpu/rope.d.ts +0 -1
- package/dist/ops/webgpu/rope.js +0 -135
- package/dist/ops/webgpu/scatterSub.d.ts +0 -1
- package/dist/ops/webgpu/scatterSub.js +0 -40
- package/dist/ops/webgpu/slice16.d.ts +0 -7
- package/dist/ops/webgpu/slice16.js +0 -69
- package/dist/ops/webgpu/softmax16.d.ts +0 -17
- package/dist/ops/webgpu/softmax16.js +0 -21
- package/dist/ops/webgpu/softmax16_program.d.ts +0 -13
- package/dist/ops/webgpu/softmax16_program.js +0 -73
- package/dist/ops/webgpu/softmax16_subgroup_program.d.ts +0 -17
- package/dist/ops/webgpu/softmax16_subgroup_program.js +0 -75
- package/dist/ops/webgpu/softmax16grad.d.ts +0 -1
- package/dist/ops/webgpu/softmax16grad.js +0 -37
- package/dist/ops/webgpu/sub16.d.ts +0 -1
- package/dist/ops/webgpu/sub16.js +0 -13
- package/dist/ops/webgpu/sum16.d.ts +0 -1
- package/dist/ops/webgpu/sum16.js +0 -38
- package/dist/ops/webgpu/transpose16.d.ts +0 -1
- package/dist/ops/webgpu/transpose16.js +0 -34
- package/dist/ops/webgpu/transpose16_program.d.ts +0 -16
- package/dist/ops/webgpu/transpose16_program.js +0 -50
- package/dist/ops/webgpu/transpose16_shared_program.d.ts +0 -15
- package/dist/ops/webgpu/transpose16_shared_program.js +0 -70
- package/dist/ops/webgpu/unpack16.d.ts +0 -1
- package/dist/ops/webgpu/unpack16.js +0 -48
- package/dist/ops/webgpu/utils/binary_op.d.ts +0 -35
- package/dist/ops/webgpu/utils/binary_op.js +0 -139
- package/dist/ops/webgpu/utils/deviceInfo.d.ts +0 -7
- package/dist/ops/webgpu/utils/deviceInfo.js +0 -11
- package/dist/ops/webgpu/utils/reductions.d.ts +0 -43
- package/dist/ops/webgpu/utils/reductions.js +0 -275
- package/dist/ops-CsXeTq1P.js +0 -476
- package/dist/pack16-bqltoUlR.js +0 -39
- package/dist/papaparse.min-C0cScC2i.js +0 -418
- package/dist/parquet-Bqjmp2vo.js +0 -44231
- package/dist/patches/webgpu_backend.d.ts +0 -18
- package/dist/patches/webgpu_backend.js +0 -56
- package/dist/patches/webgpu_base.d.ts +0 -21
- package/dist/patches/webgpu_base.js +0 -34
- package/dist/patches/webgpu_program.d.ts +0 -36
- package/dist/patches/webgpu_program.js +0 -400
- package/dist/pdf-NIhmP3sq.js +0 -19477
- package/dist/rand_util-CZ7yLoUm.js +0 -50
- package/dist/random_normal-IBRrha8a.js +0 -14
- package/dist/random_width-DN5ZtQkM.js +0 -9796
- package/dist/range-C-CjF-LI.js +0 -10
- package/dist/relu-J_X6MUzx.js +0 -9
- package/dist/reshape-BDOuCSNW.js +0 -9
- package/dist/resize_nearest_neighbor-BojqlfRe.js +0 -150
- package/dist/rope-DcrZM_e6.js +0 -24
- package/dist/scatter_nd_util-ByNJaL6I.js +0 -46
- package/dist/segment_util-Dasb2Zaf.js +0 -43
- package/dist/selu_util-BLhIqRkw.js +0 -44
- package/dist/shared-3agzAqQ_.js +0 -53
- package/dist/shared-CagdqkLh.js +0 -2143
- package/dist/slice-BzS11Qh0.js +0 -12
- package/dist/slice_util-CC35pLmT.js +0 -153
- package/dist/softmax-D4q1LJN7.js +0 -12
- package/dist/split-C2Sj255c.js +0 -9
- package/dist/squeeze-ho4wLUek.js +0 -10
- package/dist/stack-DudVrtmG.js +0 -11
- package/dist/step-BTxPtq1r.js +0 -261
- package/dist/sum-BpiwSWvg.js +0 -11
- package/dist/tensor-BWFldCso.js +0 -8
- package/dist/tensor1d-LMGMIUlr.js +0 -11
- package/dist/tensor2d-BnXMKScO.js +0 -14
- package/dist/tensor4d-C6UCG_u8.js +0 -14
- package/dist/tfjs_backend-BGnG-ppu.js +0 -654
- package/dist/tile-CFy-xTO6.js +0 -11
- package/dist/tokeniser/BaseTokeniser.d.ts +0 -33
- package/dist/tokeniser/BaseTokeniser.js +0 -124
- package/dist/tokeniser/CharTokeniser.d.ts +0 -24
- package/dist/tokeniser/CharTokeniser.js +0 -107
- package/dist/tokeniser/bpe.d.ts +0 -28
- package/dist/tokeniser/bpe.js +0 -173
- package/dist/tokeniser/messages.d.ts +0 -61
- package/dist/tokeniser/messages.js +0 -1
- package/dist/tokeniser/type.d.ts +0 -34
- package/dist/tokeniser/type.js +0 -1
- package/dist/training/AdamW.d.ts +0 -36
- package/dist/training/AdamW.js +0 -138
- package/dist/training/BasicTrainer.d.ts +0 -63
- package/dist/training/BasicTrainer.js +0 -265
- package/dist/training/DatasetBuilder.d.ts +0 -26
- package/dist/training/DatasetBuilder.js +0 -86
- package/dist/training/Evaluator.d.ts +0 -19
- package/dist/training/Evaluator.js +0 -39
- package/dist/training/LRScheduler.d.ts +0 -12
- package/dist/training/LRScheduler.js +0 -34
- package/dist/training/PreTrainer.d.ts +0 -11
- package/dist/training/PreTrainer.js +0 -20
- package/dist/training/SFTTrainer.d.ts +0 -12
- package/dist/training/SFTTrainer.js +0 -22
- package/dist/training/loss.d.ts +0 -3
- package/dist/training/loss.js +0 -24
- package/dist/training/orthoGrad.d.ts +0 -2
- package/dist/training/orthoGrad.js +0 -10
- package/dist/training/sparseCrossEntropy.d.ts +0 -7
- package/dist/training/sparseCrossEntropy.js +0 -69
- package/dist/training/tasks/ConversationTask.d.ts +0 -18
- package/dist/training/tasks/ConversationTask.js +0 -40
- package/dist/training/tasks/PretrainingTask.d.ts +0 -17
- package/dist/training/tasks/PretrainingTask.js +0 -47
- package/dist/training/tasks/StartSentenceTask.d.ts +0 -18
- package/dist/training/tasks/StartSentenceTask.js +0 -49
- package/dist/training/tasks/Task.d.ts +0 -22
- package/dist/training/tasks/Task.js +0 -68
- package/dist/training/tasks/splitter.d.ts +0 -5
- package/dist/training/tasks/splitter.js +0 -21
- package/dist/training/types.d.ts +0 -78
- package/dist/training/types.js +0 -1
- package/dist/training/validation.d.ts +0 -17
- package/dist/training/validation.js +0 -84
- package/dist/transpose-9kRxIXWR.js +0 -36
- package/dist/unsorted_segment_sum-DJvk5xnh.js +0 -277
- package/dist/utilities/arrayClose.d.ts +0 -1
- package/dist/utilities/arrayClose.js +0 -20
- package/dist/utilities/datasetID.d.ts +0 -2
- package/dist/utilities/datasetID.js +0 -21
- package/dist/utilities/dummy.d.ts +0 -9
- package/dist/utilities/dummy.js +0 -43
- package/dist/utilities/multinomialCPU.d.ts +0 -2
- package/dist/utilities/multinomialCPU.js +0 -13
- package/dist/utilities/naming.d.ts +0 -4
- package/dist/utilities/naming.js +0 -1
- package/dist/utilities/packed.d.ts +0 -4
- package/dist/utilities/packed.js +0 -15
- package/dist/utilities/parameters.d.ts +0 -11
- package/dist/utilities/parameters.js +0 -57
- package/dist/utilities/performance.d.ts +0 -2
- package/dist/utilities/performance.js +0 -16
- package/dist/utilities/profile.d.ts +0 -17
- package/dist/utilities/profile.js +0 -38
- package/dist/utilities/safetensors.d.ts +0 -3
- package/dist/utilities/safetensors.js +0 -83
- package/dist/utilities/sentences.d.ts +0 -5
- package/dist/utilities/sentences.js +0 -41
- package/dist/utilities/tokenParse.d.ts +0 -1
- package/dist/utilities/tokenParse.js +0 -21
- package/dist/utilities/topP.d.ts +0 -1
- package/dist/utilities/topP.js +0 -13
- package/dist/utilities/waitForModel.d.ts +0 -2
- package/dist/utilities/waitForModel.js +0 -12
- package/dist/utilities/weights.d.ts +0 -12
- package/dist/utilities/weights.js +0 -45
- package/dist/utilities/yielder.d.ts +0 -1
- package/dist/utilities/yielder.js +0 -7
- package/dist/variable-Ck482e3n.js +0 -7
- package/dist/webgpu_program-B4HmApL1.js +0 -525
- package/dist/webgpu_util-DYlGSwOJ.js +0 -64
- package/dist/zeros-DvZpK8s6.js +0 -13
- package/dist/zeros_like-CWjDdwr-.js +0 -721
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { c as d, a6 as b } from "../../index-CUXkjxiT.js";
|
|
2
|
-
import { isPackedTensor as p } from "../../utilities/packed.js";
|
|
3
|
-
import { b as l } from "../../matMul16-BcVC_E62.js";
|
|
4
|
-
import M from "./attentionMask32_program.js";
|
|
5
|
-
function w(n) {
|
|
6
|
-
const { q: t, k: e } = n.inputs, { divisor: a, pastLen: o } = n.attrs, m = n.backend;
|
|
7
|
-
if (p(t) && p(e))
|
|
8
|
-
return l(t, e, !1, !0, { causalMask: !0, pastLen: o, scale: a });
|
|
9
|
-
const s = t.shape[0], k = t.shape[2], r = e.shape[2], i = t.shape[1], c = t.shape[3];
|
|
10
|
-
if (b(e.shape, [s, i, r, c], "Error in AttentionMask: "), a === 0)
|
|
11
|
-
throw new Error("Divisor must be non-zero in AttentionMask");
|
|
12
|
-
if (o < 0)
|
|
13
|
-
throw new Error("pastLen must be non-negative in AttentionMask");
|
|
14
|
-
const u = new M(s, i, k, r, c), f = [
|
|
15
|
-
{ type: "float32", data: [a] },
|
|
16
|
-
{ type: "int32", data: [o] },
|
|
17
|
-
{ type: "float32", data: [Number.NEGATIVE_INFINITY] }
|
|
18
|
-
], h = t.dtype;
|
|
19
|
-
return m.runWebGPUProgram(u, [t, e], h, f);
|
|
20
|
-
}
|
|
21
|
-
const A = {
|
|
22
|
-
kernelName: "AttentionMask",
|
|
23
|
-
backendName: "webgpu",
|
|
24
|
-
kernelFunc: w
|
|
25
|
-
};
|
|
26
|
-
d(A);
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { WebGPUProgram } from '@tensorflow/tfjs-backend-webgpu';
|
|
2
|
-
export default class AttentionMaskProgram32 implements WebGPUProgram {
|
|
3
|
-
variableNames: string[];
|
|
4
|
-
outputShape: number[];
|
|
5
|
-
shaderKey: string;
|
|
6
|
-
dispatchLayout: {
|
|
7
|
-
x: number[];
|
|
8
|
-
};
|
|
9
|
-
dispatch: [number, number, number];
|
|
10
|
-
uniforms: string;
|
|
11
|
-
workgroupSize: [number, number, number];
|
|
12
|
-
size: boolean;
|
|
13
|
-
hs: number;
|
|
14
|
-
nh: number;
|
|
15
|
-
T1: number;
|
|
16
|
-
T2: number;
|
|
17
|
-
constructor(batch: number, nh: number, T1: number, T2: number, hs: number);
|
|
18
|
-
getUserCode(): string;
|
|
19
|
-
}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { e as r } from "../../webgpu_program-B4HmApL1.js";
|
|
2
|
-
import { f as a, c as u } from "../../webgpu_util-DYlGSwOJ.js";
|
|
3
|
-
class p {
|
|
4
|
-
variableNames = ["q", "k"];
|
|
5
|
-
outputShape;
|
|
6
|
-
shaderKey = "AttentionMask";
|
|
7
|
-
dispatchLayout;
|
|
8
|
-
dispatch;
|
|
9
|
-
uniforms = "divisor: f32, pastLen: i32, inf: f32";
|
|
10
|
-
workgroupSize = [64, 1, 1];
|
|
11
|
-
size = !0;
|
|
12
|
-
hs;
|
|
13
|
-
nh;
|
|
14
|
-
T1;
|
|
15
|
-
T2;
|
|
16
|
-
constructor(e, i, s, o, t) {
|
|
17
|
-
if (this.shaderKey = `AttentionMask_${t}`, this.outputShape = [e, i, s, o], this.hs = t, this.nh = i, this.T1 = s, this.T2 = o, this.dispatchLayout = a(this.outputShape), this.dispatch = u(this.dispatchLayout, this.outputShape, this.workgroupSize), t % 4 !== 0)
|
|
18
|
-
throw new Error("Head size must be a multiple of 4 for AttentionMaskProgram");
|
|
19
|
-
}
|
|
20
|
-
getUserCode() {
|
|
21
|
-
return `
|
|
22
|
-
${r("index")} {
|
|
23
|
-
|
|
24
|
-
let coords = getCoordsFromIndex(index);
|
|
25
|
-
let b = coords[0];
|
|
26
|
-
let h = coords[1];
|
|
27
|
-
let t1 = coords[2];
|
|
28
|
-
let t2 = coords[3];
|
|
29
|
-
|
|
30
|
-
if (index < uniforms.size) {
|
|
31
|
-
if (t2 > t1 + uniforms.pastLen) {
|
|
32
|
-
setOutputAtIndex(index, uniforms.inf);
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
let q0 = getIndexFromCoords4D(vec4<i32>(b, h, t1, 0), uniforms.qShape);
|
|
37
|
-
let k0 = getIndexFromCoords4D(vec4<i32>(b, h, t2, 0), uniforms.kShape);
|
|
38
|
-
|
|
39
|
-
var sum: f32 = 0.0;
|
|
40
|
-
for (var i: i32 = 0; i < ${this.hs}; i = i + 4) {
|
|
41
|
-
let qv = vec4<f32>(q[q0 + i], q[q0 + i + 1], q[q0 + i + 2], q[q0 + i + 3]);
|
|
42
|
-
let kv = vec4<f32>(k[k0 + i], k[k0 + i + 1], k[k0 + i + 2], k[k0 + i + 3]);
|
|
43
|
-
sum = sum + dot(qv, kv);
|
|
44
|
-
}
|
|
45
|
-
let scaled = sum * uniforms.divisor;
|
|
46
|
-
setOutputAtIndex(index, scaled);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
`;
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
export {
|
|
53
|
-
p as default
|
|
54
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { reduce as d, ReduceProgram as g } from "./utils/reductions.js";
|
|
2
|
-
import { c as S } from "../../index-CUXkjxiT.js";
|
|
3
|
-
import h from "./utils/deviceInfo.js";
|
|
4
|
-
class k extends g {
|
|
5
|
-
shaderKey = "clipscale";
|
|
6
|
-
constructor(e, i, n) {
|
|
7
|
-
super(
|
|
8
|
-
e,
|
|
9
|
-
i,
|
|
10
|
-
{
|
|
11
|
-
reductionOp: "sum",
|
|
12
|
-
elementwise: !1,
|
|
13
|
-
forceWorkgroupSize: n
|
|
14
|
-
},
|
|
15
|
-
!1
|
|
16
|
-
), this.uniforms += "scaling: f32, clipNorm: f32";
|
|
17
|
-
}
|
|
18
|
-
getReadSnippet() {
|
|
19
|
-
return `
|
|
20
|
-
return bitcast<f32>(u32(x[index]));
|
|
21
|
-
`;
|
|
22
|
-
}
|
|
23
|
-
getWriteSnippet() {
|
|
24
|
-
return `
|
|
25
|
-
if (tid == 0) {
|
|
26
|
-
let cnorm = uniforms.clipNorm;
|
|
27
|
-
let gradNorm = sqrt(max(bestValue, 0.0));
|
|
28
|
-
result[0] = (cnorm / max(cnorm, gradNorm)) * uniforms.scaling;
|
|
29
|
-
result[1] = gradNorm;
|
|
30
|
-
}
|
|
31
|
-
`;
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
function w(o) {
|
|
35
|
-
const { x: e } = o.inputs, { invLossScaling: i, clipNorm: n } = o.attrs, c = o.backend, a = [];
|
|
36
|
-
if (e.shape.length !== 1)
|
|
37
|
-
throw new Error(`ClipScaleProgram requires 1D input, but got shape ${e.shape}`);
|
|
38
|
-
const l = h(c);
|
|
39
|
-
let r = 128, s = 1;
|
|
40
|
-
const t = e.shape[0];
|
|
41
|
-
t <= 16 ? r = 16 : t <= 32 ? r = 32 : t <= 64 && (r = 64), t > 128 && (s = Math.ceil(t / 128));
|
|
42
|
-
const p = {
|
|
43
|
-
inSize: r * s,
|
|
44
|
-
outSize: 2,
|
|
45
|
-
batchSize: 1,
|
|
46
|
-
windowSize: r
|
|
47
|
-
}, u = new k(l, p, r), m = d(u, [e], c, [
|
|
48
|
-
{ type: "float32", data: [i] },
|
|
49
|
-
{ type: "float32", data: [n] }
|
|
50
|
-
]);
|
|
51
|
-
return a.forEach((f) => f.dispose()), m;
|
|
52
|
-
}
|
|
53
|
-
const b = {
|
|
54
|
-
kernelName: "ClipScale",
|
|
55
|
-
backendName: "webgpu",
|
|
56
|
-
kernelFunc: w
|
|
57
|
-
};
|
|
58
|
-
S(b);
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { KernelConfig } from '@tensorflow/tfjs-core';
|
|
2
|
-
import { WebGPUProgram } from '@tensorflow/tfjs-backend-webgpu/dist/webgpu_program';
|
|
3
|
-
export declare class ConcatProgram implements WebGPUProgram {
|
|
4
|
-
outputShape: number[];
|
|
5
|
-
shaderKey: string;
|
|
6
|
-
dispatchLayout: {
|
|
7
|
-
x: number[];
|
|
8
|
-
};
|
|
9
|
-
dispatch: [number, number, number];
|
|
10
|
-
variableNames: string[];
|
|
11
|
-
uniforms: string;
|
|
12
|
-
workPerThread: number;
|
|
13
|
-
workgroupSize: [number, number, number];
|
|
14
|
-
size: boolean;
|
|
15
|
-
offsetLength: number;
|
|
16
|
-
constructor(shapes: [number, number][]);
|
|
17
|
-
getUserCode(): string;
|
|
18
|
-
}
|
|
19
|
-
export declare const concatConfig: KernelConfig;
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
import { c as x, ah as I, U as c } from "../../index-CUXkjxiT.js";
|
|
2
|
-
import { e as D } from "../../webgpu_program-B4HmApL1.js";
|
|
3
|
-
import { f as $, c as F } from "../../webgpu_util-DYlGSwOJ.js";
|
|
4
|
-
import { r as g } from "../../Reshape-CPBkTIH2.js";
|
|
5
|
-
import { a as L, c as d } from "../../concat_util-D18dJ4fD.js";
|
|
6
|
-
class T {
|
|
7
|
-
outputShape;
|
|
8
|
-
shaderKey;
|
|
9
|
-
dispatchLayout;
|
|
10
|
-
dispatch;
|
|
11
|
-
variableNames;
|
|
12
|
-
uniforms = "";
|
|
13
|
-
workPerThread = 1;
|
|
14
|
-
workgroupSize = [64, 1, 1];
|
|
15
|
-
size = !0;
|
|
16
|
-
offsetLength;
|
|
17
|
-
constructor(t) {
|
|
18
|
-
this.outputShape = d(
|
|
19
|
-
t,
|
|
20
|
-
1
|
|
21
|
-
/* axis */
|
|
22
|
-
), this.variableNames = t.map((e, a) => `T${a}`), this.dispatchLayout = $(this.outputShape), this.dispatch = F(this.dispatchLayout, this.outputShape, this.workgroupSize, [
|
|
23
|
-
this.workPerThread,
|
|
24
|
-
1,
|
|
25
|
-
1
|
|
26
|
-
]), this.offsetLength = t.length - 1;
|
|
27
|
-
for (let e = 0; e < this.offsetLength; e++)
|
|
28
|
-
this.uniforms += `offset${e} : i32,`;
|
|
29
|
-
this.shaderKey = "concat16";
|
|
30
|
-
}
|
|
31
|
-
getUserCode() {
|
|
32
|
-
const t = [];
|
|
33
|
-
if (this.offsetLength > 0) {
|
|
34
|
-
t.push(
|
|
35
|
-
"if (yC < uniforms.offset0){ result[getIndexFromCoords2D(coords, uniforms.outShape)] = T0[getIndexFromCoords2D(vec2<i32>(yR, yC), uniforms.t0Shape)]; }"
|
|
36
|
-
);
|
|
37
|
-
for (let s = 1; s < this.offsetLength; s++)
|
|
38
|
-
t.push(
|
|
39
|
-
`else if (yC < uniforms.offset${[s]}){ result[getIndexFromCoords2D(coords, uniforms.outShape)] = T${s}[getIndexFromCoords2D(vec2<i32>(yR, yC - uniforms.offset${s - 1}), uniforms.t${s}Shape)]; }`
|
|
40
|
-
);
|
|
41
|
-
const a = this.offsetLength, i = this.offsetLength - 1;
|
|
42
|
-
t.push(
|
|
43
|
-
`else { result[getIndexFromCoords2D(coords, uniforms.outShape)] = T${a}[getIndexFromCoords2D(vec2<i32>(yR, yC - uniforms.offset${i}), uniforms.t${a}Shape)]; }`
|
|
44
|
-
);
|
|
45
|
-
} else
|
|
46
|
-
t.push(
|
|
47
|
-
"result[getIndexFromCoords2D(coords, uniforms.outShape)] = T0[getIndexFromCoords2D(vec2<i32>(yR, yC), uniforms.t0Shape)];"
|
|
48
|
-
);
|
|
49
|
-
return `
|
|
50
|
-
${D("index")} {
|
|
51
|
-
for(var i = 0; i < ${this.workPerThread}; i = i + 1) {
|
|
52
|
-
let flatIndex = index * ${this.workPerThread} + i;
|
|
53
|
-
if(flatIndex < uniforms.size) {
|
|
54
|
-
let coords = getCoordsFromIndex(flatIndex);
|
|
55
|
-
let yR = coords.x;
|
|
56
|
-
let yC = coords.y;
|
|
57
|
-
|
|
58
|
-
${t.join(`
|
|
59
|
-
`)}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
`;
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
function m(n, t, e) {
|
|
67
|
-
const a = e.device.limits.maxStorageBuffersPerShaderStage - 1;
|
|
68
|
-
if (n.length > a) {
|
|
69
|
-
const o = [];
|
|
70
|
-
for (let p = 0; p < n.length; p += a) {
|
|
71
|
-
const C = n.slice(p, p + a);
|
|
72
|
-
o.push(m(C, t, e));
|
|
73
|
-
}
|
|
74
|
-
const S = m(o, t, e);
|
|
75
|
-
for (const p of o)
|
|
76
|
-
e.disposeData(p.dataId);
|
|
77
|
-
return S;
|
|
78
|
-
}
|
|
79
|
-
const { tensors2D: i, outShape: s } = P(n, t, e), h = i.map((o) => o.shape), u = new T(h), f = [], r = new Array(h.length - 1);
|
|
80
|
-
if (r.length > 0) {
|
|
81
|
-
r[0] = h[0][1], f.push({ type: "int32", data: [r[0]] });
|
|
82
|
-
for (let o = 1; o < r.length; o++)
|
|
83
|
-
r[o] = r[o - 1] + h[o][1], f.push({ type: "int32", data: [r[o]] });
|
|
84
|
-
}
|
|
85
|
-
const l = e.runWebGPUProgram(u, i, i[0].dtype, f);
|
|
86
|
-
i.forEach((o) => e.disposeData(o.dataId));
|
|
87
|
-
const y = g({ inputs: { x: l }, backend: e, attrs: { shape: s } });
|
|
88
|
-
return e.disposeData(l.dataId), y;
|
|
89
|
-
}
|
|
90
|
-
function P(n, t, e) {
|
|
91
|
-
const a = d(
|
|
92
|
-
n.map((s) => s.shape),
|
|
93
|
-
t
|
|
94
|
-
);
|
|
95
|
-
return { tensors2D: n.map(
|
|
96
|
-
(s) => g({
|
|
97
|
-
inputs: { x: s },
|
|
98
|
-
backend: e,
|
|
99
|
-
attrs: {
|
|
100
|
-
shape: [c(s.shape.slice(0, t)), c(s.shape.slice(t))]
|
|
101
|
-
}
|
|
102
|
-
})
|
|
103
|
-
), outShape: a };
|
|
104
|
-
}
|
|
105
|
-
function w(n) {
|
|
106
|
-
const { inputs: t, backend: e, attrs: a } = n, { axis: i } = a, s = I(i, t[0].shape)[0], h = t.map((r) => r.shape);
|
|
107
|
-
L(h, s);
|
|
108
|
-
const u = d(
|
|
109
|
-
t.map((r) => r.shape),
|
|
110
|
-
s
|
|
111
|
-
);
|
|
112
|
-
if (c(u) === 0)
|
|
113
|
-
return e.makeTensorInfo(u, t[0].dtype, []);
|
|
114
|
-
const f = t.filter((r) => c(r.shape) > 0);
|
|
115
|
-
return m(f, s, e);
|
|
116
|
-
}
|
|
117
|
-
const v = {
|
|
118
|
-
kernelName: "Concat16",
|
|
119
|
-
backendName: "webgpu",
|
|
120
|
-
kernelFunc: w
|
|
121
|
-
};
|
|
122
|
-
x(v);
|
|
123
|
-
export {
|
|
124
|
-
T as ConcatProgram,
|
|
125
|
-
v as concatConfig
|
|
126
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { e as u } from "../../webgpu_program-B4HmApL1.js";
|
|
2
|
-
import { f as d, c as i } from "../../webgpu_util-DYlGSwOJ.js";
|
|
3
|
-
import { c } from "../../index-CUXkjxiT.js";
|
|
4
|
-
class p {
|
|
5
|
-
variableNames = ["x"];
|
|
6
|
-
outputShape;
|
|
7
|
-
shaderKey = "Dropout16";
|
|
8
|
-
dispatchLayout;
|
|
9
|
-
dispatch;
|
|
10
|
-
workgroupSize = [64, 1, 1];
|
|
11
|
-
size = !0;
|
|
12
|
-
uniforms = "dropout: f32, seed: f32";
|
|
13
|
-
constructor(e) {
|
|
14
|
-
this.shaderKey = "Dropout16", this.outputShape = e, this.dispatchLayout = d(this.outputShape), this.dispatch = i(this.dispatchLayout, this.outputShape, this.workgroupSize);
|
|
15
|
-
}
|
|
16
|
-
getUserCode() {
|
|
17
|
-
return `
|
|
18
|
-
|
|
19
|
-
fn random(coords: vec3<i32>) -> vec2<f32> {
|
|
20
|
-
let x1 = f32(coords.x * 4096 + coords.y * 256 + coords.z * 2 * 16);
|
|
21
|
-
let x2 = f32(coords.x * 4096 + coords.y * 256 + (coords.z * 2 + 1) * 16);
|
|
22
|
-
return vec2<f32>(fract(sin(uniforms.seed + x1) * 43758.5453123), fract(sin(uniforms.seed + x2) * 43758.5453123));
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
${u("index")} {
|
|
26
|
-
if (index < uniforms.size) {
|
|
27
|
-
let coords = getCoordsFromIndex(index);
|
|
28
|
-
let values = unpack2x16float(u32(x[index]));
|
|
29
|
-
let keepProb = 1.0 - uniforms.dropout;
|
|
30
|
-
let rand = random(coords);
|
|
31
|
-
let mask = step(rand, vec2<f32>(keepProb));
|
|
32
|
-
let outVal = values * mask / keepProb;
|
|
33
|
-
result[index] = i32(pack2x16float(outVal));
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
`;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
function f(t) {
|
|
40
|
-
const { x: e } = t.inputs, { dropout: o, seed: r } = t.attrs, s = t.backend, a = new p(e.shape), n = [
|
|
41
|
-
{ type: "float32", data: [o] },
|
|
42
|
-
{ type: "float32", data: [r] }
|
|
43
|
-
];
|
|
44
|
-
return s.runWebGPUProgram(a, [e], "packedF16", n);
|
|
45
|
-
}
|
|
46
|
-
const l = {
|
|
47
|
-
kernelName: "Dropout16",
|
|
48
|
-
backendName: "webgpu",
|
|
49
|
-
kernelFunc: f
|
|
50
|
-
};
|
|
51
|
-
c(l);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { e as u } from "../../webgpu_program-B4HmApL1.js";
|
|
2
|
-
import { f as h, c as p } from "../../webgpu_util-DYlGSwOJ.js";
|
|
3
|
-
import { c, a6 as r } from "../../index-CUXkjxiT.js";
|
|
4
|
-
class l {
|
|
5
|
-
variableNames = ["labels", "logits", "values"];
|
|
6
|
-
outputShape;
|
|
7
|
-
shaderKey = "GatherSub";
|
|
8
|
-
dispatchLayout;
|
|
9
|
-
dispatch;
|
|
10
|
-
workgroupSize = [64, 1, 1];
|
|
11
|
-
size = !0;
|
|
12
|
-
constructor(t) {
|
|
13
|
-
this.outputShape = [t], this.dispatchLayout = h(this.outputShape), this.dispatch = p(this.dispatchLayout, this.outputShape, this.workgroupSize);
|
|
14
|
-
}
|
|
15
|
-
getUserCode() {
|
|
16
|
-
return `
|
|
17
|
-
${u("index")} {
|
|
18
|
-
if (index < uniforms.size) {
|
|
19
|
-
let idx = i32(labels[index]);
|
|
20
|
-
let val = values[index];
|
|
21
|
-
let logit = logits[index * uniforms.logitsShape[1] + idx];
|
|
22
|
-
setOutputAtIndex(index, val - logit);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
`;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
function d(e) {
|
|
29
|
-
const { logits: t, labels: a, values: s } = e.inputs, o = e.backend, i = a.shape[0];
|
|
30
|
-
r(s.shape, [i], "Error in EfficientGatherSub: "), r(a.shape, [i], "Error in EfficientGatherSub: ");
|
|
31
|
-
const n = new l(i);
|
|
32
|
-
return o.runWebGPUProgram(n, [a, t, s], "float32");
|
|
33
|
-
}
|
|
34
|
-
const f = {
|
|
35
|
-
kernelName: "EfficientGatherSub",
|
|
36
|
-
backendName: "webgpu",
|
|
37
|
-
kernelFunc: d
|
|
38
|
-
};
|
|
39
|
-
c(f);
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { WebGPUProgram } from '@tensorflow/tfjs-backend-webgpu';
|
|
2
|
-
export declare class GeluProgram implements WebGPUProgram {
|
|
3
|
-
outputShape: number[];
|
|
4
|
-
shaderKey: string;
|
|
5
|
-
dispatchLayout: {
|
|
6
|
-
x: number[];
|
|
7
|
-
};
|
|
8
|
-
dispatch: [number, number, number];
|
|
9
|
-
variableNames: string[];
|
|
10
|
-
workgroupSize: [number, number, number];
|
|
11
|
-
size: boolean;
|
|
12
|
-
constructor(outputShape: number[]);
|
|
13
|
-
getUserCode(): string;
|
|
14
|
-
}
|
package/dist/ops/webgpu/gelu.js
DELETED
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
import { c as d } from "../../index-CUXkjxiT.js";
|
|
2
|
-
import { e as s } from "../../webgpu_program-B4HmApL1.js";
|
|
3
|
-
import { f as n, c as o } from "../../webgpu_util-DYlGSwOJ.js";
|
|
4
|
-
import { isPackedTensor as c } from "../../utilities/packed.js";
|
|
5
|
-
const u = 0.7978845608028654, r = 0.044715;
|
|
6
|
-
class l {
|
|
7
|
-
outputShape;
|
|
8
|
-
shaderKey;
|
|
9
|
-
dispatchLayout;
|
|
10
|
-
dispatch;
|
|
11
|
-
variableNames = ["A"];
|
|
12
|
-
workgroupSize;
|
|
13
|
-
size = !0;
|
|
14
|
-
constructor(e) {
|
|
15
|
-
this.workgroupSize = [128, 1, 1], this.outputShape = e, this.dispatchLayout = n(this.outputShape), this.dispatch = o(this.dispatchLayout, this.outputShape, this.workgroupSize), this.shaderKey = "unary_gelu";
|
|
16
|
-
}
|
|
17
|
-
getUserCode() {
|
|
18
|
-
return `
|
|
19
|
-
// TODO: revisit after https://github.com/gpuweb/gpuweb/issues/4458 is resolved
|
|
20
|
-
fn tanhComplete(x: f32) -> f32 {
|
|
21
|
-
return select(tanh(x), sign(x), abs(x) > 15.0);
|
|
22
|
-
}
|
|
23
|
-
fn unaryOperation(x : f32) -> f32 {
|
|
24
|
-
let x3 = x * x * x;
|
|
25
|
-
var inner = fma(${r}, x3, x);
|
|
26
|
-
inner = ${u} * inner;
|
|
27
|
-
inner = tanhComplete(inner);
|
|
28
|
-
inner = 0.5 * (1.0 + inner);
|
|
29
|
-
return x * inner;
|
|
30
|
-
}
|
|
31
|
-
${s("index")} {
|
|
32
|
-
if (index < uniforms.size) {
|
|
33
|
-
let a = getAByOutputIndex(index);
|
|
34
|
-
setOutputAtIndex(index, unaryOperation(a));
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
`;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
function x(t) {
|
|
41
|
-
const { x: e } = t.inputs, a = t.backend, i = new l(e.shape);
|
|
42
|
-
return a.runWebGPUProgram(i, [e], "float32");
|
|
43
|
-
}
|
|
44
|
-
const g = {
|
|
45
|
-
kernelName: "Gelu",
|
|
46
|
-
backendName: "webgpu",
|
|
47
|
-
kernelFunc: x
|
|
48
|
-
};
|
|
49
|
-
d(g);
|
|
50
|
-
class f {
|
|
51
|
-
// Inputs: dy, x
|
|
52
|
-
variableNames = ["dy", "x"];
|
|
53
|
-
outputShape;
|
|
54
|
-
shaderKey = "GeluGrad";
|
|
55
|
-
dispatchLayout;
|
|
56
|
-
dispatch;
|
|
57
|
-
workgroupSize = [128, 1, 1];
|
|
58
|
-
size = !0;
|
|
59
|
-
constructor(e) {
|
|
60
|
-
this.outputShape = e, this.dispatchLayout = n(this.outputShape), this.dispatch = o(this.dispatchLayout, this.outputShape, this.workgroupSize);
|
|
61
|
-
}
|
|
62
|
-
getUserCode() {
|
|
63
|
-
return `
|
|
64
|
-
// TODO: revisit after https://github.com/gpuweb/gpuweb/issues/4458 is resolved
|
|
65
|
-
fn tanhComplete(x: f32) -> f32 {
|
|
66
|
-
return select(tanh(x), sign(x), abs(x) > 15.0);
|
|
67
|
-
}
|
|
68
|
-
fn activationGrad(dy: f32, X: f32) -> f32 {
|
|
69
|
-
let x2 = X * X;
|
|
70
|
-
let x3 = x2 * X;
|
|
71
|
-
let u = ${u} * (X + ${r} * x3);
|
|
72
|
-
let t = tanhComplete(u);
|
|
73
|
-
let sech2 = 1.0 - t * t;
|
|
74
|
-
let du_dx = ${u} * (1.0 + 3.0 * ${r} * x2);
|
|
75
|
-
let dgelu = 0.5 * (1.0 + t) + 0.5 * X * sech2 * du_dx;
|
|
76
|
-
return dy *dgelu;
|
|
77
|
-
}
|
|
78
|
-
${s("index")} {
|
|
79
|
-
if (index < uniforms.size) {
|
|
80
|
-
let X = unpack2x16float(u32(x[index]));
|
|
81
|
-
let DY = unpack2x16float(u32(dy[index]));
|
|
82
|
-
let dgelu = vec2<f32>(
|
|
83
|
-
activationGrad(DY.x, X.x),
|
|
84
|
-
activationGrad(DY.y, X.y)
|
|
85
|
-
);
|
|
86
|
-
result[index] = i32(pack2x16float(dgelu));
|
|
87
|
-
}
|
|
88
|
-
}`;
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
class m {
|
|
92
|
-
// Inputs: dy, x
|
|
93
|
-
variableNames = ["dy", "x"];
|
|
94
|
-
outputShape;
|
|
95
|
-
shaderKey = "GeluGrad";
|
|
96
|
-
dispatchLayout;
|
|
97
|
-
dispatch;
|
|
98
|
-
workgroupSize = [128, 1, 1];
|
|
99
|
-
size = !0;
|
|
100
|
-
constructor(e) {
|
|
101
|
-
this.outputShape = e, this.dispatchLayout = n(this.outputShape), this.dispatch = o(this.dispatchLayout, this.outputShape, this.workgroupSize);
|
|
102
|
-
}
|
|
103
|
-
getUserCode() {
|
|
104
|
-
return `
|
|
105
|
-
// TODO: revisit after https://github.com/gpuweb/gpuweb/issues/4458 is resolved
|
|
106
|
-
fn tanhComplete(x: f32) -> f32 {
|
|
107
|
-
return select(tanh(x), sign(x), abs(x) > 15.0);
|
|
108
|
-
}
|
|
109
|
-
fn activationGrad(dy: f32, X: f32) -> f32 {
|
|
110
|
-
let x2 = X * X;
|
|
111
|
-
let x3 = x2 * X;
|
|
112
|
-
let u = ${u} * (X + ${r} * x3);
|
|
113
|
-
let t = tanhComplete(u);
|
|
114
|
-
let sech2 = 1.0 - t * t;
|
|
115
|
-
let du_dx = ${u} * (1.0 + 3.0 * ${r} * x2);
|
|
116
|
-
let dgelu = 0.5 * (1.0 + t) + 0.5 * X * sech2 * du_dx;
|
|
117
|
-
return dy *dgelu;
|
|
118
|
-
}
|
|
119
|
-
${s("index")} {
|
|
120
|
-
if (index < uniforms.size) {
|
|
121
|
-
let X = getXByOutputIndex(index);
|
|
122
|
-
let DY = getDyByOutputIndex(index);
|
|
123
|
-
let dgelu = activationGrad(DY, X);
|
|
124
|
-
setOutputAtIndex(index, dgelu);
|
|
125
|
-
}
|
|
126
|
-
}`;
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
function y(t) {
|
|
130
|
-
const { dy: e, x: a } = t.inputs, i = t.backend, p = c(e), h = p ? new f(a.shape) : new m(a.shape);
|
|
131
|
-
return i.runWebGPUProgram(h, [e, a], p ? "packedF16" : "float32");
|
|
132
|
-
}
|
|
133
|
-
const b = {
|
|
134
|
-
kernelName: "GeluGrad",
|
|
135
|
-
backendName: "webgpu",
|
|
136
|
-
kernelFunc: y
|
|
137
|
-
};
|
|
138
|
-
d(b);
|
|
139
|
-
export {
|
|
140
|
-
l as GeluProgram
|
|
141
|
-
};
|
|
File without changes
|
package/dist/ops/webgpu/index.js
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import "./attentionMask.js";
|
|
2
|
-
import "./normRMS.js";
|
|
3
|
-
import "./normRMSGrad.js";
|
|
4
|
-
import "./rope.js";
|
|
5
|
-
import "./appendCache.js";
|
|
6
|
-
import "./scatterSub.js";
|
|
7
|
-
import "./gatherSub.js";
|
|
8
|
-
import "./qkv.js";
|
|
9
|
-
import "./gelu.js";
|
|
10
|
-
import "./adamMoments.js";
|
|
11
|
-
import "./adamAdjust.js";
|
|
12
|
-
import "./pack16.js";
|
|
13
|
-
import "./unpack16.js";
|
|
14
|
-
import "./softmax16.js";
|
|
15
|
-
import "./matMul16.js";
|
|
16
|
-
import "./transpose16.js";
|
|
17
|
-
import "./sum16.js";
|
|
18
|
-
import "./slice16.js";
|
|
19
|
-
import "./add16.js";
|
|
20
|
-
import "./concat16.js";
|
|
21
|
-
import "./mul16.js";
|
|
22
|
-
import "./sub16.js";
|
|
23
|
-
import "./softmax16grad.js";
|
|
24
|
-
import "./norm2.js";
|
|
25
|
-
import "./clipScale.js";
|
|
26
|
-
import "./dropout16.js";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import { c as V, m as U, a as g, n as X, U as y, _ as Y } from "../../index-CUXkjxiT.js";
|
|
2
|
-
import { isPackedTensor as x } from "../../utilities/packed.js";
|
|
3
|
-
import { reshape16 as C } from "../reshape16.js";
|
|
4
|
-
import { matMulMul as Z } from "../matMulMul.js";
|
|
5
|
-
import { matMulGelu as $ } from "../matMulGelu.js";
|
|
6
|
-
import ee from "./matMul16_program.js";
|
|
7
|
-
import { m as v } from "../../mat_mul-DhG0Newp.js";
|
|
8
|
-
import { r as E } from "../../relu-J_X6MUzx.js";
|
|
9
|
-
import { r as F } from "../../reshape-BDOuCSNW.js";
|
|
10
|
-
import { t as W } from "../../transpose-9kRxIXWR.js";
|
|
11
|
-
function se(m) {
|
|
12
|
-
const { A: s, B: t } = m.inputs, { transposeA: p, transposeB: i, scale: h, activation: c, scaleA: d, scaleB: f, forceOutputShape: r, perm: k, causalMask: w, pastLen: z } = m.attrs, I = m.backend, B = !x(s), b = !x(t);
|
|
13
|
-
if (B && b) {
|
|
14
|
-
const u = d !== void 0 ? U(s, g(d)) : s, l = f !== void 0 ? U(t, g(f)) : t;
|
|
15
|
-
if (w)
|
|
16
|
-
throw new Error("Causal mask is not supported for unpacked MatMul16.");
|
|
17
|
-
let e;
|
|
18
|
-
if (h !== void 0)
|
|
19
|
-
e = Z(u, l, g(h), p, i);
|
|
20
|
-
else if (c === "gelu")
|
|
21
|
-
e = $(u, l);
|
|
22
|
-
else if (c === "relu2") {
|
|
23
|
-
const o = v(u, l, p, i), A = E(o);
|
|
24
|
-
o.dispose(), e = X(A), A.dispose();
|
|
25
|
-
} else c === "relu" ? e = E(v(u, l, p, i)) : e = v(u, l, p, i);
|
|
26
|
-
if (k)
|
|
27
|
-
if (r) {
|
|
28
|
-
const o = F(e, r);
|
|
29
|
-
e.dispose();
|
|
30
|
-
const A = W(o, k);
|
|
31
|
-
return o.dispose(), A;
|
|
32
|
-
} else {
|
|
33
|
-
const o = W(e, k);
|
|
34
|
-
return e.dispose(), o;
|
|
35
|
-
}
|
|
36
|
-
else if (r) {
|
|
37
|
-
const o = F(e, r);
|
|
38
|
-
return e.dispose(), o;
|
|
39
|
-
} else
|
|
40
|
-
return e;
|
|
41
|
-
}
|
|
42
|
-
if (B && !b)
|
|
43
|
-
throw new Error("When using mixed precision, A must be packed if B is packed.");
|
|
44
|
-
if (!B && b)
|
|
45
|
-
throw new Error("When using mixed precision, B must be packed if A is packed.");
|
|
46
|
-
const M = s.shape.length, S = t.shape.length, N = s.shape.slice(0, -2), q = t.shape.slice(0, -2), R = y(N), D = y(q), K = Y(s.shape.slice(0, -2), t.shape.slice(0, -2)), L = Math.max(R, D), T = s.shape[M - 2], _ = t.shape[S - 2], j = s.shape[M - 1] * 2, H = t.shape[S - 1] * 2, G = C(s, [R, s.shape[M - 2], s.shape[M - 1]]), O = C(t, [D, t.shape[S - 2], t.shape[S - 1]]), a = new ee(L, T, _, j, H, p, i), n = [];
|
|
47
|
-
h !== void 0 && (a.useScale(), n.push({ type: "float32", data: [h] })), d !== void 0 && (a.useScaleA(), n.push({ type: "float32", data: [d] })), f !== void 0 && (a.useScaleB(), n.push({ type: "float32", data: [f] })), c !== void 0 && a.useActivation(c), w && (a.useCausalMask(), n.push({ type: "int32", data: [z || 0] }));
|
|
48
|
-
const P = a.outputShape.length;
|
|
49
|
-
r && (m.attrs.originalShape = a.outputShape);
|
|
50
|
-
const J = r ?? K.concat([a.outputShape[P - 2], a.outputShape[P - 1]]);
|
|
51
|
-
a.setOutputShape(J, k);
|
|
52
|
-
const Q = I.runWebGPUProgram(
|
|
53
|
-
a,
|
|
54
|
-
[G, O],
|
|
55
|
-
"packedF16",
|
|
56
|
-
n.length > 0 ? n : void 0
|
|
57
|
-
);
|
|
58
|
-
return G.dispose(), O.dispose(), Q;
|
|
59
|
-
}
|
|
60
|
-
const te = {
|
|
61
|
-
kernelName: "MatMul16",
|
|
62
|
-
backendName: "webgpu",
|
|
63
|
-
kernelFunc: se
|
|
64
|
-
};
|
|
65
|
-
V(te);
|