whispercpp 1.3.1 → 1.3.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.
Files changed (797) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +4 -3
  3. data/README.md +92 -31
  4. data/Rakefile +26 -7
  5. data/ext/.gitignore +5 -7
  6. data/ext/dependencies.rb +61 -0
  7. data/ext/extconf.rb +21 -198
  8. data/ext/options.rb +221 -0
  9. data/ext/ruby_whisper.c +159 -0
  10. data/ext/ruby_whisper.h +17 -2
  11. data/ext/ruby_whisper_context.c +641 -0
  12. data/ext/ruby_whisper_error.c +52 -0
  13. data/ext/ruby_whisper_model.c +232 -0
  14. data/ext/ruby_whisper_params.c +1301 -0
  15. data/ext/ruby_whisper_segment.c +143 -0
  16. data/ext/ruby_whisper_transcribe.cpp +87 -0
  17. data/ext/ruby_whisper_vad_params.c +288 -0
  18. data/ext/sources/.dockerignore +3 -0
  19. data/ext/sources/.github/workflows/bindings-ruby.yml +21 -0
  20. data/ext/sources/CMakeGraphVizOptions.cmake +8 -0
  21. data/ext/sources/CMakeLists.txt +251 -0
  22. data/ext/sources/bindings/javascript/CMakeLists.txt +41 -0
  23. data/ext/sources/bindings/javascript/emscripten.cpp +93 -0
  24. data/ext/sources/bindings/javascript/libwhisper.worker.js +1 -0
  25. data/ext/sources/bindings/javascript/package-tmpl.json +26 -0
  26. data/ext/sources/bindings/javascript/package.json +26 -0
  27. data/ext/sources/bindings/javascript/whisper.js +19 -0
  28. data/ext/sources/build-xcframework.sh +547 -0
  29. data/ext/sources/ci/run.sh +336 -0
  30. data/ext/sources/close-issue.yml +28 -0
  31. data/ext/sources/cmake/DefaultTargetOptions.cmake +16 -0
  32. data/ext/sources/cmake/FindFFmpeg.cmake +163 -0
  33. data/ext/sources/cmake/build-info.cmake +60 -0
  34. data/ext/sources/cmake/git-vars.cmake +22 -0
  35. data/ext/sources/cmake/whisper-config.cmake.in +65 -0
  36. data/ext/sources/cmake/whisper.pc.in +10 -0
  37. data/ext/sources/examples/CMakeLists.txt +124 -0
  38. data/ext/sources/examples/addon.node/CMakeLists.txt +31 -0
  39. data/ext/sources/examples/addon.node/__test__/whisper.spec.js +37 -0
  40. data/ext/sources/examples/addon.node/addon.cpp +438 -0
  41. data/ext/sources/examples/addon.node/index.js +54 -0
  42. data/ext/sources/examples/addon.node/package.json +16 -0
  43. data/ext/sources/examples/bench/CMakeLists.txt +8 -0
  44. data/ext/sources/examples/bench/bench.cpp +175 -0
  45. data/ext/sources/examples/bench.wasm/CMakeLists.txt +49 -0
  46. data/ext/sources/examples/bench.wasm/emscripten.cpp +87 -0
  47. data/ext/sources/examples/bench.wasm/index-tmpl.html +284 -0
  48. data/ext/sources/examples/cli/CMakeLists.txt +8 -0
  49. data/ext/sources/examples/cli/cli.cpp +1294 -0
  50. data/ext/sources/examples/coi-serviceworker.js +146 -0
  51. data/ext/sources/examples/command/CMakeLists.txt +10 -0
  52. data/ext/sources/examples/command/command.cpp +776 -0
  53. data/ext/sources/examples/command/commands.txt +9 -0
  54. data/ext/sources/examples/command.wasm/CMakeLists.txt +50 -0
  55. data/ext/sources/examples/command.wasm/emscripten.cpp +327 -0
  56. data/ext/sources/examples/command.wasm/index-tmpl.html +414 -0
  57. data/ext/sources/examples/common-ggml.cpp +238 -0
  58. data/ext/sources/examples/common-ggml.h +18 -0
  59. data/ext/sources/examples/common-sdl.cpp +227 -0
  60. data/ext/sources/examples/common-sdl.h +49 -0
  61. data/ext/sources/examples/common-whisper.cpp +168 -0
  62. data/ext/sources/examples/common-whisper.h +24 -0
  63. data/ext/sources/examples/common.cpp +675 -0
  64. data/ext/sources/examples/common.h +322 -0
  65. data/ext/sources/examples/deprecation-warning/CMakeLists.txt +6 -0
  66. data/ext/sources/examples/deprecation-warning/deprecation-warning.cpp +38 -0
  67. data/ext/sources/examples/ffmpeg-transcode.cpp +368 -0
  68. data/ext/sources/examples/generate-karaoke.sh +57 -0
  69. data/ext/sources/examples/grammar-parser.cpp +423 -0
  70. data/ext/sources/examples/grammar-parser.h +29 -0
  71. data/ext/sources/examples/helpers.js +191 -0
  72. data/ext/sources/examples/json.hpp +24596 -0
  73. data/ext/sources/examples/livestream.sh +112 -0
  74. data/ext/sources/examples/lsp/CMakeLists.txt +9 -0
  75. data/ext/sources/examples/lsp/lsp.cpp +467 -0
  76. data/ext/sources/examples/lsp/whisper.vim +362 -0
  77. data/ext/sources/examples/miniaudio.h +93468 -0
  78. data/ext/sources/examples/python/test_whisper_processor.py +7 -0
  79. data/ext/sources/examples/python/whisper_processor.py +54 -0
  80. data/ext/sources/examples/quantize/CMakeLists.txt +6 -0
  81. data/ext/sources/examples/quantize/quantize.cpp +223 -0
  82. data/ext/sources/examples/server/CMakeLists.txt +12 -0
  83. data/ext/sources/examples/server/bench.js +29 -0
  84. data/ext/sources/examples/server/httplib.h +10497 -0
  85. data/ext/sources/examples/server/server.cpp +1091 -0
  86. data/ext/sources/examples/server.py +115 -0
  87. data/ext/sources/examples/stb_vorbis.c +5584 -0
  88. data/ext/sources/examples/stream/CMakeLists.txt +10 -0
  89. data/ext/sources/examples/stream/stream.cpp +429 -0
  90. data/ext/sources/examples/stream.wasm/CMakeLists.txt +49 -0
  91. data/ext/sources/examples/stream.wasm/emscripten.cpp +216 -0
  92. data/ext/sources/examples/stream.wasm/index-tmpl.html +414 -0
  93. data/ext/sources/examples/sycl/CMakeLists.txt +9 -0
  94. data/ext/sources/examples/sycl/build.sh +22 -0
  95. data/ext/sources/examples/sycl/ls-sycl-device.cpp +11 -0
  96. data/ext/sources/examples/sycl/run-whisper.sh +17 -0
  97. data/ext/sources/examples/talk-llama/CMakeLists.txt +40 -0
  98. data/ext/sources/examples/talk-llama/eleven-labs.py +80 -0
  99. data/ext/sources/examples/talk-llama/llama-adapter.cpp +388 -0
  100. data/ext/sources/examples/talk-llama/llama-adapter.h +76 -0
  101. data/ext/sources/examples/talk-llama/llama-arch.cpp +1746 -0
  102. data/ext/sources/examples/talk-llama/llama-arch.h +437 -0
  103. data/ext/sources/examples/talk-llama/llama-batch.cpp +374 -0
  104. data/ext/sources/examples/talk-llama/llama-batch.h +89 -0
  105. data/ext/sources/examples/talk-llama/llama-chat.cpp +663 -0
  106. data/ext/sources/examples/talk-llama/llama-chat.h +58 -0
  107. data/ext/sources/examples/talk-llama/llama-context.cpp +2676 -0
  108. data/ext/sources/examples/talk-llama/llama-context.h +276 -0
  109. data/ext/sources/examples/talk-llama/llama-cparams.cpp +5 -0
  110. data/ext/sources/examples/talk-llama/llama-cparams.h +41 -0
  111. data/ext/sources/examples/talk-llama/llama-grammar.cpp +1229 -0
  112. data/ext/sources/examples/talk-llama/llama-grammar.h +173 -0
  113. data/ext/sources/examples/talk-llama/llama-graph.cpp +1618 -0
  114. data/ext/sources/examples/talk-llama/llama-graph.h +640 -0
  115. data/ext/sources/examples/talk-llama/llama-hparams.cpp +95 -0
  116. data/ext/sources/examples/talk-llama/llama-hparams.h +190 -0
  117. data/ext/sources/examples/talk-llama/llama-impl.cpp +167 -0
  118. data/ext/sources/examples/talk-llama/llama-impl.h +61 -0
  119. data/ext/sources/examples/talk-llama/llama-io.cpp +15 -0
  120. data/ext/sources/examples/talk-llama/llama-io.h +35 -0
  121. data/ext/sources/examples/talk-llama/llama-kv-cache.cpp +2739 -0
  122. data/ext/sources/examples/talk-llama/llama-kv-cache.h +502 -0
  123. data/ext/sources/examples/talk-llama/llama-kv-cells.h +379 -0
  124. data/ext/sources/examples/talk-llama/llama-memory.cpp +1 -0
  125. data/ext/sources/examples/talk-llama/llama-memory.h +32 -0
  126. data/ext/sources/examples/talk-llama/llama-mmap.cpp +600 -0
  127. data/ext/sources/examples/talk-llama/llama-mmap.h +68 -0
  128. data/ext/sources/examples/talk-llama/llama-model-loader.cpp +1138 -0
  129. data/ext/sources/examples/talk-llama/llama-model-loader.h +169 -0
  130. data/ext/sources/examples/talk-llama/llama-model-saver.cpp +281 -0
  131. data/ext/sources/examples/talk-llama/llama-model-saver.h +37 -0
  132. data/ext/sources/examples/talk-llama/llama-model.cpp +13814 -0
  133. data/ext/sources/examples/talk-llama/llama-model.h +425 -0
  134. data/ext/sources/examples/talk-llama/llama-quant.cpp +966 -0
  135. data/ext/sources/examples/talk-llama/llama-quant.h +1 -0
  136. data/ext/sources/examples/talk-llama/llama-sampling.cpp +2575 -0
  137. data/ext/sources/examples/talk-llama/llama-sampling.h +32 -0
  138. data/ext/sources/examples/talk-llama/llama-vocab.cpp +3340 -0
  139. data/ext/sources/examples/talk-llama/llama-vocab.h +131 -0
  140. data/ext/sources/examples/talk-llama/llama.cpp +354 -0
  141. data/ext/sources/examples/talk-llama/llama.h +1377 -0
  142. data/ext/sources/examples/talk-llama/prompts/talk-alpaca.txt +23 -0
  143. data/ext/sources/examples/talk-llama/speak +40 -0
  144. data/ext/sources/examples/talk-llama/speak.bat +1 -0
  145. data/ext/sources/examples/talk-llama/speak.ps1 +14 -0
  146. data/ext/sources/examples/talk-llama/talk-llama.cpp +808 -0
  147. data/ext/sources/examples/talk-llama/unicode-data.cpp +7034 -0
  148. data/ext/sources/examples/talk-llama/unicode-data.h +20 -0
  149. data/ext/sources/examples/talk-llama/unicode.cpp +849 -0
  150. data/ext/sources/examples/talk-llama/unicode.h +66 -0
  151. data/ext/sources/examples/vad-speech-segments/CMakeLists.txt +8 -0
  152. data/ext/sources/examples/vad-speech-segments/speech.cpp +143 -0
  153. data/ext/sources/examples/wchess/CMakeLists.txt +10 -0
  154. data/ext/sources/examples/wchess/libwchess/CMakeLists.txt +19 -0
  155. data/ext/sources/examples/wchess/libwchess/Chessboard.cpp +803 -0
  156. data/ext/sources/examples/wchess/libwchess/Chessboard.h +33 -0
  157. data/ext/sources/examples/wchess/libwchess/WChess.cpp +193 -0
  158. data/ext/sources/examples/wchess/libwchess/WChess.h +63 -0
  159. data/ext/sources/examples/wchess/libwchess/test-chessboard.cpp +117 -0
  160. data/ext/sources/examples/wchess/wchess.cmd/CMakeLists.txt +8 -0
  161. data/ext/sources/examples/wchess/wchess.cmd/wchess.cmd.cpp +249 -0
  162. data/ext/sources/examples/whisper.wasm/CMakeLists.txt +50 -0
  163. data/ext/sources/examples/whisper.wasm/emscripten.cpp +118 -0
  164. data/ext/sources/examples/whisper.wasm/index-tmpl.html +658 -0
  165. data/ext/sources/ggml/CMakeLists.txt +390 -0
  166. data/ext/sources/ggml/cmake/BuildTypes.cmake +54 -0
  167. data/ext/sources/ggml/cmake/GitVars.cmake +22 -0
  168. data/ext/sources/ggml/cmake/common.cmake +26 -0
  169. data/ext/sources/ggml/cmake/ggml-config.cmake.in +152 -0
  170. data/ext/{ggml → sources/ggml}/include/ggml-alloc.h +1 -1
  171. data/ext/{ggml → sources/ggml}/include/ggml-backend.h +9 -7
  172. data/ext/{ggml → sources/ggml}/include/ggml-cpp.h +2 -1
  173. data/ext/{ggml → sources/ggml}/include/ggml-cpu.h +9 -1
  174. data/ext/{ggml → sources/ggml}/include/ggml-metal.h +1 -1
  175. data/ext/{ggml → sources/ggml}/include/ggml-opt.h +49 -28
  176. data/ext/{ggml → sources/ggml}/include/ggml-rpc.h +6 -1
  177. data/ext/{ggml → sources/ggml}/include/ggml-vulkan.h +0 -2
  178. data/ext/{ggml → sources/ggml}/include/ggml.h +182 -265
  179. data/ext/sources/ggml/include/gguf.h +202 -0
  180. data/ext/sources/ggml/src/CMakeLists.txt +346 -0
  181. data/ext/{ggml → sources/ggml}/src/ggml-alloc.c +34 -29
  182. data/ext/sources/ggml/src/ggml-amx/CMakeLists.txt +107 -0
  183. data/ext/{ggml → sources/ggml}/src/ggml-backend-impl.h +1 -2
  184. data/ext/{ggml → sources/ggml}/src/ggml-backend-reg.cpp +87 -53
  185. data/ext/{ggml → sources/ggml}/src/ggml-backend.cpp +26 -14
  186. data/ext/sources/ggml/src/ggml-blas/CMakeLists.txt +87 -0
  187. data/ext/sources/ggml/src/ggml-cann/CMakeLists.txt +74 -0
  188. data/ext/sources/ggml/src/ggml-cann/Doxyfile +2579 -0
  189. data/ext/{ggml → sources/ggml}/src/ggml-cann/acl_tensor.cpp +10 -4
  190. data/ext/{ggml → sources/ggml}/src/ggml-cann/acl_tensor.h +5 -5
  191. data/ext/{ggml → sources/ggml}/src/ggml-cann/aclnn_ops.cpp +1272 -1506
  192. data/ext/sources/ggml/src/ggml-cann/aclnn_ops.h +1125 -0
  193. data/ext/{ggml → sources/ggml}/src/ggml-cann/common.h +135 -1
  194. data/ext/{ggml → sources/ggml}/src/ggml-cann/ggml-cann.cpp +564 -146
  195. data/ext/sources/ggml/src/ggml-cann/kernels/CMakeLists.txt +30 -0
  196. data/ext/{ggml → sources/ggml}/src/ggml-cann/kernels/dup.cpp +3 -5
  197. data/ext/{ggml → sources/ggml}/src/ggml-common.h +12 -8
  198. data/ext/sources/ggml/src/ggml-cpu/CMakeLists.txt +504 -0
  199. data/ext/{ggml → sources/ggml}/src/ggml-cpu/amx/amx.cpp +2 -1
  200. data/ext/sources/ggml/src/ggml-cpu/binary-ops.cpp +158 -0
  201. data/ext/sources/ggml/src/ggml-cpu/binary-ops.h +16 -0
  202. data/ext/sources/ggml/src/ggml-cpu/cmake/FindSIMD.cmake +100 -0
  203. data/ext/sources/ggml/src/ggml-cpu/common.h +72 -0
  204. data/ext/{ggml → sources/ggml}/src/ggml-cpu/cpu-feats-x86.cpp +5 -1
  205. data/ext/sources/ggml/src/ggml-cpu/ggml-cpu-aarch64.cpp +6431 -0
  206. data/ext/{ggml → sources/ggml}/src/ggml-cpu/ggml-cpu-impl.h +163 -41
  207. data/ext/{ggml → sources/ggml}/src/ggml-cpu/ggml-cpu-quants.c +4029 -1117
  208. data/ext/sources/ggml/src/ggml-cpu/ggml-cpu.c +3510 -0
  209. data/ext/{ggml → sources/ggml}/src/ggml-cpu/ggml-cpu.cpp +67 -18
  210. data/ext/sources/ggml/src/ggml-cpu/kleidiai/kernels.cpp +337 -0
  211. data/ext/sources/ggml/src/ggml-cpu/kleidiai/kernels.h +95 -0
  212. data/ext/sources/ggml/src/ggml-cpu/kleidiai/kleidiai.cpp +482 -0
  213. data/ext/sources/ggml/src/ggml-cpu/kleidiai/kleidiai.h +17 -0
  214. data/ext/sources/ggml/src/ggml-cpu/llamafile/sgemm.cpp +3544 -0
  215. data/ext/sources/ggml/src/ggml-cpu/llamafile/sgemm.h +14 -0
  216. data/ext/sources/ggml/src/ggml-cpu/ops.cpp +8903 -0
  217. data/ext/sources/ggml/src/ggml-cpu/ops.h +110 -0
  218. data/ext/sources/ggml/src/ggml-cpu/simd-mappings.h +892 -0
  219. data/ext/sources/ggml/src/ggml-cpu/unary-ops.cpp +186 -0
  220. data/ext/sources/ggml/src/ggml-cpu/unary-ops.h +28 -0
  221. data/ext/sources/ggml/src/ggml-cpu/vec.cpp +252 -0
  222. data/ext/sources/ggml/src/ggml-cpu/vec.h +818 -0
  223. data/ext/sources/ggml/src/ggml-cuda/CMakeLists.txt +184 -0
  224. data/ext/sources/ggml/src/ggml-cuda/acc.cu +61 -0
  225. data/ext/sources/ggml/src/ggml-cuda/acc.cuh +5 -0
  226. data/ext/sources/ggml/src/ggml-cuda/arange.cu +34 -0
  227. data/ext/sources/ggml/src/ggml-cuda/arange.cuh +5 -0
  228. data/ext/sources/ggml/src/ggml-cuda/argmax.cu +91 -0
  229. data/ext/sources/ggml/src/ggml-cuda/argmax.cuh +3 -0
  230. data/ext/sources/ggml/src/ggml-cuda/argsort.cu +104 -0
  231. data/ext/sources/ggml/src/ggml-cuda/argsort.cuh +3 -0
  232. data/ext/sources/ggml/src/ggml-cuda/binbcast.cu +363 -0
  233. data/ext/sources/ggml/src/ggml-cuda/binbcast.cuh +9 -0
  234. data/ext/sources/ggml/src/ggml-cuda/clamp.cu +45 -0
  235. data/ext/sources/ggml/src/ggml-cuda/clamp.cuh +5 -0
  236. data/ext/sources/ggml/src/ggml-cuda/common.cuh +828 -0
  237. data/ext/sources/ggml/src/ggml-cuda/concat.cu +221 -0
  238. data/ext/sources/ggml/src/ggml-cuda/concat.cuh +5 -0
  239. data/ext/sources/ggml/src/ggml-cuda/conv-transpose-1d.cu +89 -0
  240. data/ext/sources/ggml/src/ggml-cuda/conv-transpose-1d.cuh +5 -0
  241. data/ext/sources/ggml/src/ggml-cuda/convert.cu +730 -0
  242. data/ext/sources/ggml/src/ggml-cuda/convert.cuh +26 -0
  243. data/ext/sources/ggml/src/ggml-cuda/count-equal.cu +64 -0
  244. data/ext/sources/ggml/src/ggml-cuda/count-equal.cuh +5 -0
  245. data/ext/sources/ggml/src/ggml-cuda/cp-async.cuh +57 -0
  246. data/ext/sources/ggml/src/ggml-cuda/cpy.cu +705 -0
  247. data/ext/sources/ggml/src/ggml-cuda/cpy.cuh +11 -0
  248. data/ext/sources/ggml/src/ggml-cuda/cross-entropy-loss.cu +189 -0
  249. data/ext/sources/ggml/src/ggml-cuda/cross-entropy-loss.cuh +7 -0
  250. data/ext/sources/ggml/src/ggml-cuda/dequantize.cuh +103 -0
  251. data/ext/sources/ggml/src/ggml-cuda/diagmask.cu +40 -0
  252. data/ext/sources/ggml/src/ggml-cuda/diagmask.cuh +5 -0
  253. data/ext/sources/ggml/src/ggml-cuda/fattn-common.cuh +881 -0
  254. data/ext/sources/ggml/src/ggml-cuda/fattn-mma-f16.cuh +1471 -0
  255. data/ext/sources/ggml/src/ggml-cuda/fattn-tile-f16.cu +357 -0
  256. data/ext/sources/ggml/src/ggml-cuda/fattn-tile-f16.cuh +3 -0
  257. data/ext/sources/ggml/src/ggml-cuda/fattn-tile-f32.cu +365 -0
  258. data/ext/sources/ggml/src/ggml-cuda/fattn-tile-f32.cuh +3 -0
  259. data/ext/sources/ggml/src/ggml-cuda/fattn-vec-f16.cuh +482 -0
  260. data/ext/sources/ggml/src/ggml-cuda/fattn-vec-f32.cuh +472 -0
  261. data/ext/sources/ggml/src/ggml-cuda/fattn-wmma-f16.cu +634 -0
  262. data/ext/sources/ggml/src/ggml-cuda/fattn-wmma-f16.cuh +3 -0
  263. data/ext/sources/ggml/src/ggml-cuda/fattn.cu +346 -0
  264. data/ext/sources/ggml/src/ggml-cuda/fattn.cuh +3 -0
  265. data/ext/sources/ggml/src/ggml-cuda/getrows.cu +275 -0
  266. data/ext/sources/ggml/src/ggml-cuda/getrows.cuh +15 -0
  267. data/ext/sources/ggml/src/ggml-cuda/ggml-cuda.cu +3505 -0
  268. data/ext/sources/ggml/src/ggml-cuda/gla.cu +93 -0
  269. data/ext/sources/ggml/src/ggml-cuda/gla.cuh +3 -0
  270. data/ext/sources/ggml/src/ggml-cuda/im2col.cu +103 -0
  271. data/ext/sources/ggml/src/ggml-cuda/im2col.cuh +5 -0
  272. data/ext/sources/ggml/src/ggml-cuda/mma.cuh +396 -0
  273. data/ext/sources/ggml/src/ggml-cuda/mmq.cu +324 -0
  274. data/ext/sources/ggml/src/ggml-cuda/mmq.cuh +3217 -0
  275. data/ext/sources/ggml/src/ggml-cuda/mmv.cu +336 -0
  276. data/ext/sources/ggml/src/ggml-cuda/mmv.cuh +12 -0
  277. data/ext/sources/ggml/src/ggml-cuda/mmvq.cu +595 -0
  278. data/ext/sources/ggml/src/ggml-cuda/mmvq.cuh +12 -0
  279. data/ext/sources/ggml/src/ggml-cuda/norm.cu +458 -0
  280. data/ext/sources/ggml/src/ggml-cuda/norm.cuh +11 -0
  281. data/ext/sources/ggml/src/ggml-cuda/opt-step-adamw.cu +78 -0
  282. data/ext/sources/ggml/src/ggml-cuda/opt-step-adamw.cuh +5 -0
  283. data/ext/sources/ggml/src/ggml-cuda/out-prod.cu +68 -0
  284. data/ext/sources/ggml/src/ggml-cuda/out-prod.cuh +3 -0
  285. data/ext/sources/ggml/src/ggml-cuda/pad.cu +49 -0
  286. data/ext/sources/ggml/src/ggml-cuda/pad.cuh +5 -0
  287. data/ext/sources/ggml/src/ggml-cuda/pool2d.cu +94 -0
  288. data/ext/sources/ggml/src/ggml-cuda/pool2d.cuh +5 -0
  289. data/ext/sources/ggml/src/ggml-cuda/quantize.cu +190 -0
  290. data/ext/sources/ggml/src/ggml-cuda/quantize.cuh +27 -0
  291. data/ext/sources/ggml/src/ggml-cuda/rope.cu +456 -0
  292. data/ext/sources/ggml/src/ggml-cuda/rope.cuh +7 -0
  293. data/ext/sources/ggml/src/ggml-cuda/scale.cu +31 -0
  294. data/ext/sources/ggml/src/ggml-cuda/scale.cuh +5 -0
  295. data/ext/sources/ggml/src/ggml-cuda/softmax.cu +283 -0
  296. data/ext/sources/ggml/src/ggml-cuda/softmax.cuh +7 -0
  297. data/ext/sources/ggml/src/ggml-cuda/ssm-conv.cu +148 -0
  298. data/ext/sources/ggml/src/ggml-cuda/ssm-conv.cuh +3 -0
  299. data/ext/sources/ggml/src/ggml-cuda/ssm-scan.cu +153 -0
  300. data/ext/sources/ggml/src/ggml-cuda/ssm-scan.cuh +3 -0
  301. data/ext/sources/ggml/src/ggml-cuda/sum.cu +45 -0
  302. data/ext/sources/ggml/src/ggml-cuda/sum.cuh +5 -0
  303. data/ext/sources/ggml/src/ggml-cuda/sumrows.cu +39 -0
  304. data/ext/sources/ggml/src/ggml-cuda/sumrows.cuh +5 -0
  305. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_1-ncols2_16.cu +5 -0
  306. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_1-ncols2_8.cu +10 -0
  307. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_16-ncols2_1.cu +10 -0
  308. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_16-ncols2_2.cu +10 -0
  309. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_16-ncols2_4.cu +10 -0
  310. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_2-ncols2_16.cu +5 -0
  311. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_2-ncols2_4.cu +10 -0
  312. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_2-ncols2_8.cu +10 -0
  313. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_32-ncols2_1.cu +10 -0
  314. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_32-ncols2_2.cu +10 -0
  315. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_4-ncols2_16.cu +5 -0
  316. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_4-ncols2_2.cu +10 -0
  317. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_4-ncols2_4.cu +10 -0
  318. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_4-ncols2_8.cu +10 -0
  319. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_64-ncols2_1.cu +10 -0
  320. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_8-ncols2_1.cu +10 -0
  321. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_8-ncols2_2.cu +10 -0
  322. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_8-ncols2_4.cu +10 -0
  323. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-mma-f16-instance-ncols1_8-ncols2_8.cu +10 -0
  324. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-f16.cu +5 -0
  325. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q4_0.cu +5 -0
  326. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q4_1.cu +5 -0
  327. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q5_0.cu +5 -0
  328. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q5_1.cu +5 -0
  329. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-f16-q8_0.cu +5 -0
  330. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-f16.cu +5 -0
  331. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q4_0.cu +5 -0
  332. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q4_1.cu +5 -0
  333. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q5_0.cu +5 -0
  334. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q5_1.cu +5 -0
  335. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_0-q8_0.cu +5 -0
  336. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-f16.cu +5 -0
  337. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q4_0.cu +5 -0
  338. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q4_1.cu +5 -0
  339. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q5_0.cu +5 -0
  340. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q5_1.cu +5 -0
  341. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q4_1-q8_0.cu +5 -0
  342. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-f16.cu +5 -0
  343. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q4_0.cu +5 -0
  344. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q4_1.cu +5 -0
  345. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q5_0.cu +5 -0
  346. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q5_1.cu +5 -0
  347. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_0-q8_0.cu +5 -0
  348. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-f16.cu +5 -0
  349. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q4_0.cu +5 -0
  350. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q4_1.cu +5 -0
  351. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q5_0.cu +5 -0
  352. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q5_1.cu +5 -0
  353. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q5_1-q8_0.cu +5 -0
  354. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-f16.cu +5 -0
  355. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q4_0.cu +5 -0
  356. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q4_1.cu +5 -0
  357. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q5_0.cu +5 -0
  358. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q5_1.cu +5 -0
  359. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs128-q8_0-q8_0.cu +5 -0
  360. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs256-f16-f16.cu +5 -0
  361. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-f16.cu +5 -0
  362. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q4_0.cu +5 -0
  363. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q4_1.cu +5 -0
  364. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q5_0.cu +5 -0
  365. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q5_1.cu +5 -0
  366. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f16-instance-hs64-f16-q8_0.cu +5 -0
  367. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-f16.cu +5 -0
  368. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q4_0.cu +5 -0
  369. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q4_1.cu +5 -0
  370. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q5_0.cu +5 -0
  371. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q5_1.cu +5 -0
  372. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-f16-q8_0.cu +5 -0
  373. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-f16.cu +5 -0
  374. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q4_0.cu +5 -0
  375. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q4_1.cu +5 -0
  376. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q5_0.cu +5 -0
  377. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q5_1.cu +5 -0
  378. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_0-q8_0.cu +5 -0
  379. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-f16.cu +5 -0
  380. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q4_0.cu +5 -0
  381. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q4_1.cu +5 -0
  382. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q5_0.cu +5 -0
  383. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q5_1.cu +5 -0
  384. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q4_1-q8_0.cu +5 -0
  385. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-f16.cu +5 -0
  386. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q4_0.cu +5 -0
  387. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q4_1.cu +5 -0
  388. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q5_0.cu +5 -0
  389. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q5_1.cu +5 -0
  390. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_0-q8_0.cu +5 -0
  391. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-f16.cu +5 -0
  392. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q4_0.cu +5 -0
  393. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q4_1.cu +5 -0
  394. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q5_0.cu +5 -0
  395. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q5_1.cu +5 -0
  396. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q5_1-q8_0.cu +5 -0
  397. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-f16.cu +5 -0
  398. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q4_0.cu +5 -0
  399. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q4_1.cu +5 -0
  400. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q5_0.cu +5 -0
  401. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q5_1.cu +5 -0
  402. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs128-q8_0-q8_0.cu +5 -0
  403. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs256-f16-f16.cu +5 -0
  404. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-f16.cu +5 -0
  405. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q4_0.cu +5 -0
  406. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q4_1.cu +5 -0
  407. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q5_0.cu +5 -0
  408. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q5_1.cu +5 -0
  409. data/ext/sources/ggml/src/ggml-cuda/template-instances/fattn-vec-f32-instance-hs64-f16-q8_0.cu +5 -0
  410. data/ext/sources/ggml/src/ggml-cuda/template-instances/generate_cu_files.py +78 -0
  411. data/ext/sources/ggml/src/ggml-cuda/template-instances/mmq-instance-iq1_s.cu +5 -0
  412. data/ext/sources/ggml/src/ggml-cuda/template-instances/mmq-instance-iq2_s.cu +5 -0
  413. data/ext/sources/ggml/src/ggml-cuda/template-instances/mmq-instance-iq2_xs.cu +5 -0
  414. data/ext/sources/ggml/src/ggml-cuda/template-instances/mmq-instance-iq2_xxs.cu +5 -0
  415. data/ext/sources/ggml/src/ggml-cuda/template-instances/mmq-instance-iq3_s.cu +5 -0
  416. data/ext/sources/ggml/src/ggml-cuda/template-instances/mmq-instance-iq3_xxs.cu +5 -0
  417. data/ext/sources/ggml/src/ggml-cuda/template-instances/mmq-instance-iq4_nl.cu +5 -0
  418. data/ext/sources/ggml/src/ggml-cuda/template-instances/mmq-instance-iq4_xs.cu +5 -0
  419. data/ext/sources/ggml/src/ggml-cuda/template-instances/mmq-instance-q2_k.cu +5 -0
  420. data/ext/sources/ggml/src/ggml-cuda/template-instances/mmq-instance-q3_k.cu +5 -0
  421. data/ext/sources/ggml/src/ggml-cuda/template-instances/mmq-instance-q4_0.cu +5 -0
  422. data/ext/sources/ggml/src/ggml-cuda/template-instances/mmq-instance-q4_1.cu +5 -0
  423. data/ext/sources/ggml/src/ggml-cuda/template-instances/mmq-instance-q4_k.cu +5 -0
  424. data/ext/sources/ggml/src/ggml-cuda/template-instances/mmq-instance-q5_0.cu +5 -0
  425. data/ext/sources/ggml/src/ggml-cuda/template-instances/mmq-instance-q5_1.cu +5 -0
  426. data/ext/sources/ggml/src/ggml-cuda/template-instances/mmq-instance-q5_k.cu +5 -0
  427. data/ext/sources/ggml/src/ggml-cuda/template-instances/mmq-instance-q6_k.cu +5 -0
  428. data/ext/sources/ggml/src/ggml-cuda/template-instances/mmq-instance-q8_0.cu +5 -0
  429. data/ext/sources/ggml/src/ggml-cuda/tsembd.cu +47 -0
  430. data/ext/sources/ggml/src/ggml-cuda/tsembd.cuh +5 -0
  431. data/ext/sources/ggml/src/ggml-cuda/unary.cu +289 -0
  432. data/ext/sources/ggml/src/ggml-cuda/unary.cuh +59 -0
  433. data/ext/sources/ggml/src/ggml-cuda/upscale.cu +51 -0
  434. data/ext/sources/ggml/src/ggml-cuda/upscale.cuh +5 -0
  435. data/ext/sources/ggml/src/ggml-cuda/vecdotq.cuh +1135 -0
  436. data/ext/{ggml → sources/ggml}/src/ggml-cuda/vendors/cuda.h +1 -0
  437. data/ext/{ggml → sources/ggml}/src/ggml-cuda/vendors/hip.h +57 -0
  438. data/ext/{ggml → sources/ggml}/src/ggml-cuda/vendors/musa.h +7 -1
  439. data/ext/sources/ggml/src/ggml-cuda/wkv.cu +199 -0
  440. data/ext/sources/ggml/src/ggml-cuda/wkv.cuh +7 -0
  441. data/ext/sources/ggml/src/ggml-hip/CMakeLists.txt +131 -0
  442. data/ext/{ggml → sources/ggml}/src/ggml-impl.h +64 -19
  443. data/ext/sources/ggml/src/ggml-kompute/CMakeLists.txt +166 -0
  444. data/ext/sources/ggml/src/ggml-kompute/kompute-shaders/common.comp +112 -0
  445. data/ext/sources/ggml/src/ggml-kompute/kompute-shaders/op_add.comp +58 -0
  446. data/ext/sources/ggml/src/ggml-kompute/kompute-shaders/op_addrow.comp +25 -0
  447. data/ext/sources/ggml/src/ggml-kompute/kompute-shaders/op_cpy_f16_f16.comp +52 -0
  448. data/ext/sources/ggml/src/ggml-kompute/kompute-shaders/op_cpy_f16_f32.comp +52 -0
  449. data/ext/sources/ggml/src/ggml-kompute/kompute-shaders/op_cpy_f32_f16.comp +52 -0
  450. data/ext/sources/ggml/src/ggml-kompute/kompute-shaders/op_cpy_f32_f32.comp +52 -0
  451. data/ext/sources/ggml/src/ggml-kompute/kompute-shaders/op_diagmask.comp +30 -0
  452. data/ext/sources/ggml/src/ggml-kompute/kompute-shaders/op_gelu.comp +22 -0
  453. data/ext/sources/ggml/src/ggml-kompute/kompute-shaders/op_getrows.comp +17 -0
  454. data/ext/sources/ggml/src/ggml-kompute/kompute-shaders/op_getrows_f16.comp +31 -0
  455. data/ext/sources/ggml/src/ggml-kompute/kompute-shaders/op_getrows_f32.comp +31 -0
  456. data/ext/sources/ggml/src/ggml-kompute/kompute-shaders/op_getrows_q4_0.comp +38 -0
  457. data/ext/sources/ggml/src/ggml-kompute/kompute-shaders/op_getrows_q4_1.comp +39 -0
  458. data/ext/sources/ggml/src/ggml-kompute/kompute-shaders/op_getrows_q6_k.comp +44 -0
  459. data/ext/sources/ggml/src/ggml-kompute/kompute-shaders/op_mul.comp +52 -0
  460. data/ext/sources/ggml/src/ggml-kompute/kompute-shaders/op_mul_mat_f16.comp +69 -0
  461. data/ext/sources/ggml/src/ggml-kompute/kompute-shaders/op_mul_mat_mat_f32.comp +51 -0
  462. data/ext/sources/ggml/src/ggml-kompute/kompute-shaders/op_mul_mat_q4_0.comp +33 -0
  463. data/ext/sources/ggml/src/ggml-kompute/kompute-shaders/op_mul_mat_q4_1.comp +35 -0
  464. data/ext/sources/ggml/src/ggml-kompute/kompute-shaders/op_mul_mat_q4_k.comp +140 -0
  465. data/ext/sources/ggml/src/ggml-kompute/kompute-shaders/op_mul_mat_q6_k.comp +106 -0
  466. data/ext/sources/ggml/src/ggml-kompute/kompute-shaders/op_mul_mat_q8_0.comp +73 -0
  467. data/ext/sources/ggml/src/ggml-kompute/kompute-shaders/op_mul_mv_q_n.comp +52 -0
  468. data/ext/sources/ggml/src/ggml-kompute/kompute-shaders/op_mul_mv_q_n_pre.comp +28 -0
  469. data/ext/sources/ggml/src/ggml-kompute/kompute-shaders/op_norm.comp +84 -0
  470. data/ext/sources/ggml/src/ggml-kompute/kompute-shaders/op_relu.comp +21 -0
  471. data/ext/sources/ggml/src/ggml-kompute/kompute-shaders/op_rmsnorm.comp +53 -0
  472. data/ext/sources/ggml/src/ggml-kompute/kompute-shaders/op_rope_neox_f16.comp +52 -0
  473. data/ext/sources/ggml/src/ggml-kompute/kompute-shaders/op_rope_neox_f32.comp +52 -0
  474. data/ext/sources/ggml/src/ggml-kompute/kompute-shaders/op_rope_norm_f16.comp +52 -0
  475. data/ext/sources/ggml/src/ggml-kompute/kompute-shaders/op_rope_norm_f32.comp +52 -0
  476. data/ext/sources/ggml/src/ggml-kompute/kompute-shaders/op_scale.comp +19 -0
  477. data/ext/sources/ggml/src/ggml-kompute/kompute-shaders/op_scale_8.comp +23 -0
  478. data/ext/sources/ggml/src/ggml-kompute/kompute-shaders/op_silu.comp +22 -0
  479. data/ext/sources/ggml/src/ggml-kompute/kompute-shaders/op_softmax.comp +72 -0
  480. data/ext/sources/ggml/src/ggml-kompute/kompute-shaders/rope_common.comp +71 -0
  481. data/ext/sources/ggml/src/ggml-metal/CMakeLists.txt +120 -0
  482. data/ext/sources/ggml/src/ggml-metal/ggml-metal-impl.h +622 -0
  483. data/ext/{ggml → sources/ggml}/src/ggml-metal/ggml-metal.m +2178 -1064
  484. data/ext/{ggml → sources/ggml}/src/ggml-metal/ggml-metal.metal +1575 -1218
  485. data/ext/sources/ggml/src/ggml-musa/CMakeLists.txt +113 -0
  486. data/ext/sources/ggml/src/ggml-musa/mudnn.cu +112 -0
  487. data/ext/sources/ggml/src/ggml-musa/mudnn.cuh +12 -0
  488. data/ext/sources/ggml/src/ggml-opencl/CMakeLists.txt +96 -0
  489. data/ext/sources/ggml/src/ggml-opencl/ggml-opencl.cpp +5124 -0
  490. data/ext/sources/ggml/src/ggml-opencl/kernels/add.cl +83 -0
  491. data/ext/sources/ggml/src/ggml-opencl/kernels/clamp.cl +20 -0
  492. data/ext/sources/ggml/src/ggml-opencl/kernels/cpy.cl +184 -0
  493. data/ext/sources/ggml/src/ggml-opencl/kernels/cvt.cl +118 -0
  494. data/ext/sources/ggml/src/ggml-opencl/kernels/diag_mask_inf.cl +58 -0
  495. data/ext/sources/ggml/src/ggml-opencl/kernels/embed_kernel.py +26 -0
  496. data/ext/sources/ggml/src/ggml-opencl/kernels/gelu.cl +62 -0
  497. data/ext/sources/ggml/src/ggml-opencl/kernels/gemv_noshuffle.cl +268 -0
  498. data/ext/sources/ggml/src/ggml-opencl/kernels/gemv_noshuffle_general.cl +274 -0
  499. data/ext/sources/ggml/src/ggml-opencl/kernels/get_rows.cl +163 -0
  500. data/ext/sources/ggml/src/ggml-opencl/kernels/im2col_f16.cl +57 -0
  501. data/ext/sources/ggml/src/ggml-opencl/kernels/im2col_f32.cl +57 -0
  502. data/ext/sources/ggml/src/ggml-opencl/kernels/mul.cl +79 -0
  503. data/ext/sources/ggml/src/ggml-opencl/kernels/mul_mat_Ab_Bi_8x4.cl +139 -0
  504. data/ext/sources/ggml/src/ggml-opencl/kernels/mul_mv_f16_f16.cl +118 -0
  505. data/ext/sources/ggml/src/ggml-opencl/kernels/mul_mv_f16_f32.cl +118 -0
  506. data/ext/sources/ggml/src/ggml-opencl/kernels/mul_mv_f16_f32_1row.cl +94 -0
  507. data/ext/sources/ggml/src/ggml-opencl/kernels/mul_mv_f16_f32_l4.cl +84 -0
  508. data/ext/sources/ggml/src/ggml-opencl/kernels/mul_mv_f32_f32.cl +118 -0
  509. data/ext/sources/ggml/src/ggml-opencl/kernels/mul_mv_q4_0_f32.cl +192 -0
  510. data/ext/sources/ggml/src/ggml-opencl/kernels/mul_mv_q4_0_f32_1d_16x_flat.cl +307 -0
  511. data/ext/sources/ggml/src/ggml-opencl/kernels/mul_mv_q4_0_f32_1d_8x_flat.cl +265 -0
  512. data/ext/sources/ggml/src/ggml-opencl/kernels/mul_mv_q4_0_f32_8x_flat.cl +272 -0
  513. data/ext/sources/ggml/src/ggml-opencl/kernels/mul_mv_q4_0_f32_v.cl +254 -0
  514. data/ext/sources/ggml/src/ggml-opencl/kernels/mul_mv_q6_k.cl +190 -0
  515. data/ext/sources/ggml/src/ggml-opencl/kernels/norm.cl +81 -0
  516. data/ext/sources/ggml/src/ggml-opencl/kernels/relu.cl +16 -0
  517. data/ext/sources/ggml/src/ggml-opencl/kernels/rms_norm.cl +96 -0
  518. data/ext/sources/ggml/src/ggml-opencl/kernels/rope.cl +721 -0
  519. data/ext/sources/ggml/src/ggml-opencl/kernels/scale.cl +16 -0
  520. data/ext/sources/ggml/src/ggml-opencl/kernels/silu.cl +30 -0
  521. data/ext/sources/ggml/src/ggml-opencl/kernels/softmax_4_f16.cl +87 -0
  522. data/ext/sources/ggml/src/ggml-opencl/kernels/softmax_4_f32.cl +87 -0
  523. data/ext/sources/ggml/src/ggml-opencl/kernels/softmax_f16.cl +86 -0
  524. data/ext/sources/ggml/src/ggml-opencl/kernels/softmax_f32.cl +86 -0
  525. data/ext/sources/ggml/src/ggml-opencl/kernels/transpose.cl +84 -0
  526. data/ext/{ggml → sources/ggml}/src/ggml-opt.cpp +373 -190
  527. data/ext/{ggml → sources/ggml}/src/ggml-quants.c +114 -120
  528. data/ext/sources/ggml/src/ggml-rpc/CMakeLists.txt +9 -0
  529. data/ext/{ggml → sources/ggml}/src/ggml-rpc/ggml-rpc.cpp +480 -73
  530. data/ext/sources/ggml/src/ggml-sycl/CMakeLists.txt +189 -0
  531. data/ext/sources/ggml/src/ggml-sycl/backend.hpp +37 -0
  532. data/ext/sources/ggml/src/ggml-sycl/binbcast.cpp +345 -0
  533. data/ext/sources/ggml/src/ggml-sycl/binbcast.hpp +39 -0
  534. data/ext/{ggml → sources/ggml}/src/ggml-sycl/common.cpp +20 -32
  535. data/ext/sources/ggml/src/ggml-sycl/common.hpp +589 -0
  536. data/ext/{ggml → sources/ggml}/src/ggml-sycl/concat.cpp +32 -33
  537. data/ext/sources/ggml/src/ggml-sycl/concat.hpp +20 -0
  538. data/ext/{ggml → sources/ggml}/src/ggml-sycl/conv.cpp +4 -2
  539. data/ext/sources/ggml/src/ggml-sycl/conv.hpp +20 -0
  540. data/ext/{ggml → sources/ggml}/src/ggml-sycl/convert.cpp +104 -28
  541. data/ext/sources/ggml/src/ggml-sycl/convert.hpp +34 -0
  542. data/ext/sources/ggml/src/ggml-sycl/cpy.cpp +700 -0
  543. data/ext/sources/ggml/src/ggml-sycl/cpy.hpp +11 -0
  544. data/ext/sources/ggml/src/ggml-sycl/dequantize.hpp +791 -0
  545. data/ext/{ggml → sources/ggml}/src/ggml-sycl/dmmv.cpp +156 -17
  546. data/ext/sources/ggml/src/ggml-sycl/dmmv.hpp +27 -0
  547. data/ext/sources/ggml/src/ggml-sycl/dpct/helper.hpp +2957 -0
  548. data/ext/sources/ggml/src/ggml-sycl/element_wise.cpp +1511 -0
  549. data/ext/sources/ggml/src/ggml-sycl/element_wise.hpp +75 -0
  550. data/ext/sources/ggml/src/ggml-sycl/gemm.hpp +99 -0
  551. data/ext/sources/ggml/src/ggml-sycl/getrows.cpp +309 -0
  552. data/ext/sources/ggml/src/ggml-sycl/getrows.hpp +20 -0
  553. data/ext/{ggml → sources/ggml}/src/ggml-sycl/ggml-sycl.cpp +1004 -1240
  554. data/ext/sources/ggml/src/ggml-sycl/gla.cpp +106 -0
  555. data/ext/sources/ggml/src/ggml-sycl/gla.hpp +8 -0
  556. data/ext/sources/ggml/src/ggml-sycl/im2col.cpp +136 -0
  557. data/ext/sources/ggml/src/ggml-sycl/im2col.hpp +21 -0
  558. data/ext/{ggml → sources/ggml}/src/ggml-sycl/mmq.cpp +0 -1
  559. data/ext/sources/ggml/src/ggml-sycl/mmq.hpp +33 -0
  560. data/ext/{ggml → sources/ggml}/src/ggml-sycl/mmvq.cpp +261 -166
  561. data/ext/sources/ggml/src/ggml-sycl/mmvq.hpp +27 -0
  562. data/ext/{ggml → sources/ggml}/src/ggml-sycl/norm.cpp +204 -81
  563. data/ext/sources/ggml/src/ggml-sycl/norm.hpp +26 -0
  564. data/ext/{ggml → sources/ggml}/src/ggml-sycl/outprod.cpp +8 -17
  565. data/ext/sources/ggml/src/ggml-sycl/outprod.hpp +10 -0
  566. data/ext/sources/ggml/src/ggml-sycl/presets.hpp +74 -0
  567. data/ext/sources/ggml/src/ggml-sycl/quants.hpp +83 -0
  568. data/ext/sources/ggml/src/ggml-sycl/rope.cpp +361 -0
  569. data/ext/sources/ggml/src/ggml-sycl/rope.hpp +20 -0
  570. data/ext/{ggml → sources/ggml}/src/ggml-sycl/softmax.cpp +35 -25
  571. data/ext/sources/ggml/src/ggml-sycl/softmax.hpp +20 -0
  572. data/ext/sources/ggml/src/ggml-sycl/sycl_hw.cpp +13 -0
  573. data/ext/sources/ggml/src/ggml-sycl/sycl_hw.hpp +23 -0
  574. data/ext/{ggml → sources/ggml}/src/ggml-sycl/tsembd.cpp +3 -3
  575. data/ext/sources/ggml/src/ggml-sycl/tsembd.hpp +20 -0
  576. data/ext/sources/ggml/src/ggml-sycl/vecdotq.hpp +1215 -0
  577. data/ext/sources/ggml/src/ggml-sycl/wkv.cpp +293 -0
  578. data/ext/sources/ggml/src/ggml-sycl/wkv.hpp +10 -0
  579. data/ext/sources/ggml/src/ggml-vulkan/CMakeLists.txt +196 -0
  580. data/ext/sources/ggml/src/ggml-vulkan/cmake/host-toolchain.cmake.in +15 -0
  581. data/ext/{ggml → sources/ggml}/src/ggml-vulkan/ggml-vulkan.cpp +3130 -1087
  582. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/CMakeLists.txt +39 -0
  583. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/acc.comp +29 -0
  584. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/add.comp +29 -0
  585. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/argmax.comp +51 -0
  586. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/argsort.comp +69 -0
  587. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/clamp.comp +17 -0
  588. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/concat.comp +41 -0
  589. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/contig_copy.comp +49 -0
  590. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/conv2d_dw.comp +105 -0
  591. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/copy.comp +23 -0
  592. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/copy_from_quant.comp +51 -0
  593. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/copy_to_quant.comp +242 -0
  594. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/cos.comp +17 -0
  595. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/count_equal.comp +31 -0
  596. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/dequant_f32.comp +20 -0
  597. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/dequant_funcs.comp +462 -0
  598. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/dequant_funcs_cm2.comp +699 -0
  599. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/dequant_head.comp +13 -0
  600. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq1_m.comp +42 -0
  601. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq1_s.comp +35 -0
  602. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq2_s.comp +44 -0
  603. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq2_xs.comp +43 -0
  604. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq2_xxs.comp +48 -0
  605. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq3_s.comp +39 -0
  606. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq3_xxs.comp +49 -0
  607. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq4_nl.comp +32 -0
  608. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/dequant_iq4_xs.comp +34 -0
  609. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q2_k.comp +34 -0
  610. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q3_k.comp +42 -0
  611. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q4_0.comp +30 -0
  612. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q4_1.comp +32 -0
  613. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q4_k.comp +68 -0
  614. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q5_0.comp +34 -0
  615. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q5_1.comp +35 -0
  616. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q5_k.comp +70 -0
  617. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q6_k.comp +33 -0
  618. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/dequant_q8_0.comp +31 -0
  619. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/diag_mask_inf.comp +34 -0
  620. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/div.comp +27 -0
  621. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/flash_attn.comp +337 -0
  622. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/flash_attn_base.comp +162 -0
  623. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/flash_attn_cm1.comp +360 -0
  624. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/flash_attn_cm2.comp +267 -0
  625. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/flash_attn_split_k_reduce.comp +59 -0
  626. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/gelu.comp +25 -0
  627. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/gelu_quick.comp +23 -0
  628. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/generic_binary_head.comp +64 -0
  629. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/generic_head.comp +9 -0
  630. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/generic_unary_head.comp +76 -0
  631. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/get_rows.comp +33 -0
  632. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/get_rows_quant.comp +41 -0
  633. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/group_norm.comp +66 -0
  634. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/im2col.comp +100 -0
  635. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/l2_norm.comp +41 -0
  636. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/leaky_relu.comp +22 -0
  637. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/mul.comp +27 -0
  638. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_split_k_reduce.comp +48 -0
  639. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec.comp +169 -0
  640. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_base.comp +118 -0
  641. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq1_m.comp +82 -0
  642. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq1_s.comp +79 -0
  643. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq2_s.comp +90 -0
  644. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq2_xs.comp +87 -0
  645. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq2_xxs.comp +87 -0
  646. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq3_s.comp +90 -0
  647. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_iq3_xxs.comp +88 -0
  648. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_nc.comp +118 -0
  649. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_p021.comp +154 -0
  650. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_q2_k.comp +130 -0
  651. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_q3_k.comp +132 -0
  652. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_q4_k.comp +136 -0
  653. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_q5_k.comp +167 -0
  654. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/mul_mat_vec_q6_k.comp +130 -0
  655. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/mul_mm.comp +868 -0
  656. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/mul_mm_cm2.comp +441 -0
  657. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/mul_mmq.comp +442 -0
  658. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/mul_mmq_funcs.comp +99 -0
  659. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/norm.comp +44 -0
  660. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/opt_step_adamw.comp +42 -0
  661. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/pad.comp +28 -0
  662. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/pool2d.comp +74 -0
  663. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/quantize_q8_1.comp +77 -0
  664. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/relu.comp +21 -0
  665. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/repeat.comp +26 -0
  666. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/repeat_back.comp +37 -0
  667. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/rms_norm.comp +52 -0
  668. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/rms_norm_back.comp +55 -0
  669. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/rope_head.comp +58 -0
  670. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/rope_multi.comp +60 -0
  671. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/rope_neox.comp +43 -0
  672. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/rope_norm.comp +43 -0
  673. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/rope_vision.comp +47 -0
  674. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/scale.comp +24 -0
  675. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/sigmoid.comp +20 -0
  676. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/silu.comp +22 -0
  677. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/silu_back.comp +26 -0
  678. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/sin.comp +17 -0
  679. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/soft_max.comp +173 -0
  680. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/soft_max_back.comp +50 -0
  681. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/square.comp +17 -0
  682. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/sub.comp +29 -0
  683. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/sum_rows.comp +37 -0
  684. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/tanh.comp +20 -0
  685. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/test_bfloat16_support.comp +7 -0
  686. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/test_coopmat2_support.comp +7 -0
  687. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/test_coopmat_support.comp +7 -0
  688. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/test_integer_dot_support.comp +7 -0
  689. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/timestep_embedding.comp +41 -0
  690. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/types.comp +1373 -0
  691. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/upscale.comp +36 -0
  692. data/ext/{ggml → sources/ggml}/src/ggml-vulkan/vulkan-shaders/vulkan-shaders-gen.cpp +193 -35
  693. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/wkv6.comp +87 -0
  694. data/ext/sources/ggml/src/ggml-vulkan/vulkan-shaders/wkv7.comp +91 -0
  695. data/ext/{ggml → sources/ggml}/src/ggml.c +676 -1820
  696. data/ext/sources/ggml/src/gguf.cpp +1330 -0
  697. data/ext/{include → sources/include}/whisper.h +68 -2
  698. data/ext/sources/src/CMakeLists.txt +143 -0
  699. data/ext/{src → sources/src}/coreml/whisper-decoder-impl.h +27 -15
  700. data/ext/{src → sources/src}/coreml/whisper-decoder-impl.m +35 -10
  701. data/ext/{src → sources/src}/coreml/whisper-encoder-impl.h +21 -9
  702. data/ext/{src → sources/src}/coreml/whisper-encoder-impl.m +28 -3
  703. data/ext/sources/src/coreml/whisper-encoder.mm +73 -0
  704. data/ext/sources/src/whisper-arch.h +197 -0
  705. data/ext/{src → sources/src}/whisper.cpp +1905 -374
  706. data/ext/sources/tests/CMakeLists.txt +105 -0
  707. data/ext/sources/tests/earnings21/eval.mk +58 -0
  708. data/ext/sources/tests/earnings21/eval.py +68 -0
  709. data/ext/sources/tests/earnings21/normalizers/__init__.py +2 -0
  710. data/ext/sources/tests/earnings21/normalizers/basic.py +80 -0
  711. data/ext/sources/tests/earnings21/normalizers/english.json +1741 -0
  712. data/ext/sources/tests/earnings21/normalizers/english.py +550 -0
  713. data/ext/sources/tests/earnings21/requirements.txt +6 -0
  714. data/ext/sources/tests/en-0-ref.txt +1 -0
  715. data/ext/sources/tests/en-1-ref.txt +1 -0
  716. data/ext/sources/tests/en-2-ref.txt +1 -0
  717. data/ext/sources/tests/es-0-ref.txt +1 -0
  718. data/ext/sources/tests/librispeech/eval.mk +39 -0
  719. data/ext/sources/tests/librispeech/eval.py +47 -0
  720. data/ext/sources/tests/librispeech/normalizers/__init__.py +2 -0
  721. data/ext/sources/tests/librispeech/normalizers/basic.py +80 -0
  722. data/ext/sources/tests/librispeech/normalizers/english.json +1741 -0
  723. data/ext/sources/tests/librispeech/normalizers/english.py +550 -0
  724. data/ext/sources/tests/librispeech/requirements.txt +6 -0
  725. data/ext/sources/tests/run-tests.sh +130 -0
  726. data/ext/sources/tests/test-c.c +3 -0
  727. data/ext/sources/tests/test-vad-full.cpp +54 -0
  728. data/ext/sources/tests/test-vad.cpp +83 -0
  729. data/ext/sources/tests/test-whisper.js +58 -0
  730. data/extsources.rb +33 -5
  731. data/lib/whisper/model/uri.rb +149 -128
  732. data/sig/whisper.rbs +480 -0
  733. data/tests/helper.rb +28 -0
  734. data/tests/test_callback.rb +45 -3
  735. data/tests/test_error.rb +2 -2
  736. data/tests/test_model.rb +38 -0
  737. data/tests/test_package.rb +18 -3
  738. data/tests/test_params.rb +145 -8
  739. data/tests/test_segment.rb +10 -19
  740. data/tests/test_vad.rb +19 -0
  741. data/tests/test_vad_params.rb +103 -0
  742. data/tests/test_whisper.rb +37 -37
  743. data/whispercpp.gemspec +5 -4
  744. metadata +766 -111
  745. data/ext/cpu.mk +0 -9
  746. data/ext/examples/dr_wav.h +0 -8815
  747. data/ext/ggml/src/ggml-cann/aclnn_ops.h +0 -592
  748. data/ext/ggml/src/ggml-cpu/ggml-cpu-aarch64.cpp +0 -4262
  749. data/ext/ggml/src/ggml-cpu/ggml-cpu.c +0 -14123
  750. data/ext/ggml/src/ggml-cpu/llamafile/sgemm.cpp +0 -1884
  751. data/ext/ggml/src/ggml-cpu/llamafile/sgemm.h +0 -14
  752. data/ext/ggml/src/ggml-metal/ggml-metal-impl.h +0 -288
  753. data/ext/ggml/src/ggml-sycl/element_wise.cpp +0 -1030
  754. data/ext/ggml/src/ggml-sycl/im2col.cpp +0 -126
  755. data/ext/ggml/src/ggml-sycl/rope.cpp +0 -276
  756. data/ext/ggml/src/ggml-sycl/wkv6.cpp +0 -141
  757. data/ext/metal-embed.mk +0 -17
  758. data/ext/metal.mk +0 -6
  759. data/ext/ruby_whisper.cpp +0 -1909
  760. data/ext/scripts/get-flags.mk +0 -38
  761. data/lib/whisper.rb +0 -2
  762. /data/ext/{ggml → sources/ggml}/include/ggml-blas.h +0 -0
  763. /data/ext/{ggml → sources/ggml}/include/ggml-cann.h +0 -0
  764. /data/ext/{ggml → sources/ggml}/include/ggml-cuda.h +0 -0
  765. /data/ext/{ggml → sources/ggml}/include/ggml-kompute.h +0 -0
  766. /data/ext/{ggml → sources/ggml}/include/ggml-opencl.h +0 -0
  767. /data/ext/{ggml → sources/ggml}/include/ggml-sycl.h +0 -0
  768. /data/ext/{ggml → sources/ggml}/src/ggml-amx/common.h +0 -0
  769. /data/ext/{ggml → sources/ggml}/src/ggml-amx/ggml-amx.cpp +0 -0
  770. /data/ext/{ggml → sources/ggml}/src/ggml-amx/mmq.cpp +0 -0
  771. /data/ext/{ggml → sources/ggml}/src/ggml-amx/mmq.h +0 -0
  772. /data/ext/{ggml → sources/ggml}/src/ggml-blas/ggml-blas.cpp +0 -0
  773. /data/ext/{ggml → sources/ggml}/src/ggml-cann/kernels/ascendc_kernels.h +0 -0
  774. /data/ext/{ggml → sources/ggml}/src/ggml-cann/kernels/get_row_f16.cpp +0 -0
  775. /data/ext/{ggml → sources/ggml}/src/ggml-cann/kernels/get_row_f32.cpp +0 -0
  776. /data/ext/{ggml → sources/ggml}/src/ggml-cann/kernels/get_row_q4_0.cpp +0 -0
  777. /data/ext/{ggml → sources/ggml}/src/ggml-cann/kernels/get_row_q8_0.cpp +0 -0
  778. /data/ext/{ggml → sources/ggml}/src/ggml-cann/kernels/quantize_f16_q8_0.cpp +0 -0
  779. /data/ext/{ggml → sources/ggml}/src/ggml-cann/kernels/quantize_f32_q8_0.cpp +0 -0
  780. /data/ext/{ggml → sources/ggml}/src/ggml-cann/kernels/quantize_float_to_q4_0.cpp +0 -0
  781. /data/ext/{ggml → sources/ggml}/src/ggml-cpu/amx/amx.h +0 -0
  782. /data/ext/{ggml → sources/ggml}/src/ggml-cpu/amx/common.h +0 -0
  783. /data/ext/{ggml → sources/ggml}/src/ggml-cpu/amx/mmq.cpp +0 -0
  784. /data/ext/{ggml → sources/ggml}/src/ggml-cpu/amx/mmq.h +0 -0
  785. /data/ext/{ggml → sources/ggml}/src/ggml-cpu/ggml-cpu-aarch64.h +0 -0
  786. /data/ext/{ggml → sources/ggml}/src/ggml-cpu/ggml-cpu-hbm.cpp +0 -0
  787. /data/ext/{ggml → sources/ggml}/src/ggml-cpu/ggml-cpu-hbm.h +0 -0
  788. /data/ext/{ggml → sources/ggml}/src/ggml-cpu/ggml-cpu-quants.h +0 -0
  789. /data/ext/{ggml → sources/ggml}/src/ggml-cpu/ggml-cpu-traits.cpp +0 -0
  790. /data/ext/{ggml → sources/ggml}/src/ggml-cpu/ggml-cpu-traits.h +0 -0
  791. /data/ext/{ggml → sources/ggml}/src/ggml-kompute/ggml-kompute.cpp +0 -0
  792. /data/ext/{ggml → sources/ggml}/src/ggml-quants.h +0 -0
  793. /data/ext/{ggml → sources/ggml}/src/ggml-threading.cpp +0 -0
  794. /data/ext/{ggml → sources/ggml}/src/ggml-threading.h +0 -0
  795. /data/ext/{src → sources/src}/coreml/whisper-encoder.h +0 -0
  796. /data/ext/{src → sources/src}/openvino/whisper-openvino-encoder.cpp +0 -0
  797. /data/ext/{src → sources/src}/openvino/whisper-openvino-encoder.h +0 -0
@@ -0,0 +1,1746 @@
1
+ #include "llama-arch.h"
2
+
3
+ #include "llama-impl.h"
4
+
5
+ #include <map>
6
+
7
+ static const std::map<llm_arch, const char *> LLM_ARCH_NAMES = {
8
+ { LLM_ARCH_LLAMA, "llama" },
9
+ { LLM_ARCH_LLAMA4, "llama4" },
10
+ { LLM_ARCH_DECI, "deci" },
11
+ { LLM_ARCH_FALCON, "falcon" },
12
+ { LLM_ARCH_GROK, "grok" },
13
+ { LLM_ARCH_GPT2, "gpt2" },
14
+ { LLM_ARCH_GPTJ, "gptj" },
15
+ { LLM_ARCH_GPTNEOX, "gptneox" },
16
+ { LLM_ARCH_MPT, "mpt" },
17
+ { LLM_ARCH_BAICHUAN, "baichuan" },
18
+ { LLM_ARCH_STARCODER, "starcoder" },
19
+ { LLM_ARCH_REFACT, "refact" },
20
+ { LLM_ARCH_BERT, "bert" },
21
+ { LLM_ARCH_NOMIC_BERT, "nomic-bert" },
22
+ { LLM_ARCH_NOMIC_BERT_MOE, "nomic-bert-moe" },
23
+ { LLM_ARCH_JINA_BERT_V2, "jina-bert-v2" },
24
+ { LLM_ARCH_BLOOM, "bloom" },
25
+ { LLM_ARCH_STABLELM, "stablelm" },
26
+ { LLM_ARCH_QWEN, "qwen" },
27
+ { LLM_ARCH_QWEN2, "qwen2" },
28
+ { LLM_ARCH_QWEN2MOE, "qwen2moe" },
29
+ { LLM_ARCH_QWEN2VL, "qwen2vl" },
30
+ { LLM_ARCH_QWEN3, "qwen3" },
31
+ { LLM_ARCH_QWEN3MOE, "qwen3moe" },
32
+ { LLM_ARCH_PHI2, "phi2" },
33
+ { LLM_ARCH_PHI3, "phi3" },
34
+ { LLM_ARCH_PHIMOE, "phimoe" },
35
+ { LLM_ARCH_PLAMO, "plamo" },
36
+ { LLM_ARCH_CODESHELL, "codeshell" },
37
+ { LLM_ARCH_ORION, "orion" },
38
+ { LLM_ARCH_INTERNLM2, "internlm2" },
39
+ { LLM_ARCH_MINICPM, "minicpm" },
40
+ { LLM_ARCH_MINICPM3, "minicpm3" },
41
+ { LLM_ARCH_GEMMA, "gemma" },
42
+ { LLM_ARCH_GEMMA2, "gemma2" },
43
+ { LLM_ARCH_GEMMA3, "gemma3" },
44
+ { LLM_ARCH_STARCODER2, "starcoder2" },
45
+ { LLM_ARCH_MAMBA, "mamba" },
46
+ { LLM_ARCH_XVERSE, "xverse" },
47
+ { LLM_ARCH_COMMAND_R, "command-r" },
48
+ { LLM_ARCH_COHERE2, "cohere2" },
49
+ { LLM_ARCH_DBRX, "dbrx" },
50
+ { LLM_ARCH_OLMO, "olmo" },
51
+ { LLM_ARCH_OLMO2, "olmo2" },
52
+ { LLM_ARCH_OLMOE, "olmoe" },
53
+ { LLM_ARCH_OPENELM, "openelm" },
54
+ { LLM_ARCH_ARCTIC, "arctic" },
55
+ { LLM_ARCH_DEEPSEEK, "deepseek" },
56
+ { LLM_ARCH_DEEPSEEK2, "deepseek2" },
57
+ { LLM_ARCH_CHATGLM, "chatglm" },
58
+ { LLM_ARCH_GLM4, "glm4" },
59
+ { LLM_ARCH_BITNET, "bitnet" },
60
+ { LLM_ARCH_T5, "t5" },
61
+ { LLM_ARCH_T5ENCODER, "t5encoder" },
62
+ { LLM_ARCH_JAIS, "jais" },
63
+ { LLM_ARCH_NEMOTRON, "nemotron" },
64
+ { LLM_ARCH_EXAONE, "exaone" },
65
+ { LLM_ARCH_RWKV6, "rwkv6" },
66
+ { LLM_ARCH_RWKV6QWEN2, "rwkv6qwen2" },
67
+ { LLM_ARCH_RWKV7, "rwkv7" },
68
+ { LLM_ARCH_ARWKV7, "arwkv7" },
69
+ { LLM_ARCH_GRANITE, "granite" },
70
+ { LLM_ARCH_GRANITE_MOE, "granitemoe" },
71
+ { LLM_ARCH_CHAMELEON, "chameleon" },
72
+ { LLM_ARCH_WAVTOKENIZER_DEC, "wavtokenizer-dec" },
73
+ { LLM_ARCH_PLM, "plm" },
74
+ { LLM_ARCH_BAILINGMOE, "bailingmoe" },
75
+ { LLM_ARCH_UNKNOWN, "(unknown)" },
76
+ };
77
+
78
+ static const std::map<llm_kv, const char *> LLM_KV_NAMES = {
79
+ { LLM_KV_GENERAL_TYPE, "general.type" },
80
+ { LLM_KV_GENERAL_ARCHITECTURE, "general.architecture" },
81
+ { LLM_KV_GENERAL_QUANTIZATION_VERSION, "general.quantization_version" },
82
+ { LLM_KV_GENERAL_ALIGNMENT, "general.alignment" },
83
+ { LLM_KV_GENERAL_FILE_TYPE, "general.file_type" },
84
+ { LLM_KV_GENERAL_NAME, "general.name" },
85
+ { LLM_KV_GENERAL_AUTHOR, "general.author" },
86
+ { LLM_KV_GENERAL_VERSION, "general.version" },
87
+ { LLM_KV_GENERAL_URL, "general.url" },
88
+ { LLM_KV_GENERAL_DESCRIPTION, "general.description" },
89
+ { LLM_KV_GENERAL_LICENSE, "general.license" },
90
+ { LLM_KV_GENERAL_SOURCE_URL, "general.source.url" },
91
+ { LLM_KV_GENERAL_SOURCE_HF_REPO, "general.source.huggingface.repository" },
92
+
93
+ { LLM_KV_VOCAB_SIZE, "%s.vocab_size" },
94
+ { LLM_KV_CONTEXT_LENGTH, "%s.context_length" },
95
+ { LLM_KV_EMBEDDING_LENGTH, "%s.embedding_length" },
96
+ { LLM_KV_FEATURES_LENGTH, "%s.features_length" },
97
+ { LLM_KV_BLOCK_COUNT, "%s.block_count" },
98
+ { LLM_KV_LEADING_DENSE_BLOCK_COUNT, "%s.leading_dense_block_count" },
99
+ { LLM_KV_FEED_FORWARD_LENGTH, "%s.feed_forward_length" },
100
+ { LLM_KV_EXPERT_FEED_FORWARD_LENGTH, "%s.expert_feed_forward_length" },
101
+ { LLM_KV_EXPERT_SHARED_FEED_FORWARD_LENGTH, "%s.expert_shared_feed_forward_length" },
102
+ { LLM_KV_USE_PARALLEL_RESIDUAL, "%s.use_parallel_residual" },
103
+ { LLM_KV_TENSOR_DATA_LAYOUT, "%s.tensor_data_layout" },
104
+ { LLM_KV_EXPERT_COUNT, "%s.expert_count" },
105
+ { LLM_KV_EXPERT_USED_COUNT, "%s.expert_used_count" },
106
+ { LLM_KV_EXPERT_SHARED_COUNT, "%s.expert_shared_count" },
107
+ { LLM_KV_EXPERT_WEIGHTS_SCALE, "%s.expert_weights_scale" },
108
+ { LLM_KV_EXPERT_WEIGHTS_NORM, "%s.expert_weights_norm" },
109
+ { LLM_KV_EXPERT_GATING_FUNC, "%s.expert_gating_func" },
110
+ { LLM_KV_MOE_EVERY_N_LAYERS, "%s.moe_every_n_layers" },
111
+ { LLM_KV_POOLING_TYPE, "%s.pooling_type" },
112
+ { LLM_KV_LOGIT_SCALE, "%s.logit_scale" },
113
+ { LLM_KV_DECODER_START_TOKEN_ID, "%s.decoder_start_token_id" },
114
+ { LLM_KV_ATTN_LOGIT_SOFTCAPPING, "%s.attn_logit_softcapping" },
115
+ { LLM_KV_FINAL_LOGIT_SOFTCAPPING, "%s.final_logit_softcapping" },
116
+ { LLM_KV_SWIN_NORM, "%s.swin_norm" },
117
+ { LLM_KV_RESCALE_EVERY_N_LAYERS, "%s.rescale_every_n_layers" },
118
+ { LLM_KV_TIME_MIX_EXTRA_DIM, "%s.time_mix_extra_dim" },
119
+ { LLM_KV_TIME_DECAY_EXTRA_DIM, "%s.time_decay_extra_dim" },
120
+ { LLM_KV_RESIDUAL_SCALE, "%s.residual_scale" },
121
+ { LLM_KV_EMBEDDING_SCALE, "%s.embedding_scale" },
122
+ { LLM_KV_TOKEN_SHIFT_COUNT, "%s.token_shift_count" },
123
+ { LLM_KV_INTERLEAVE_MOE_LAYER_STEP, "%s.interleave_moe_layer_step" },
124
+
125
+ { LLM_KV_ATTENTION_HEAD_COUNT, "%s.attention.head_count" },
126
+ { LLM_KV_ATTENTION_HEAD_COUNT_KV, "%s.attention.head_count_kv" },
127
+ { LLM_KV_ATTENTION_MAX_ALIBI_BIAS, "%s.attention.max_alibi_bias" },
128
+ { LLM_KV_ATTENTION_CLAMP_KQV, "%s.attention.clamp_kqv" },
129
+ { LLM_KV_ATTENTION_KEY_LENGTH, "%s.attention.key_length" },
130
+ { LLM_KV_ATTENTION_VALUE_LENGTH, "%s.attention.value_length" },
131
+ { LLM_KV_ATTENTION_LAYERNORM_EPS, "%s.attention.layer_norm_epsilon" },
132
+ { LLM_KV_ATTENTION_LAYERNORM_RMS_EPS, "%s.attention.layer_norm_rms_epsilon" },
133
+ { LLM_KV_ATTENTION_GROUPNORM_EPS, "%s.attention.group_norm_epsilon" },
134
+ { LLM_KV_ATTENTION_GROUPNORM_GROUPS, "%s.attention.group_norm_groups" },
135
+ { LLM_KV_ATTENTION_CAUSAL, "%s.attention.causal" },
136
+ { LLM_KV_ATTENTION_Q_LORA_RANK, "%s.attention.q_lora_rank" },
137
+ { LLM_KV_ATTENTION_KV_LORA_RANK, "%s.attention.kv_lora_rank" },
138
+ { LLM_KV_ATTENTION_DECAY_LORA_RANK, "%s.attention.decay_lora_rank" },
139
+ { LLM_KV_ATTENTION_ICLR_LORA_RANK, "%s.attention.iclr_lora_rank" },
140
+ { LLM_KV_ATTENTION_VALUE_RESIDUAL_MIX_LORA_RANK, "%s.attention.value_residual_mix_lora_rank" },
141
+ { LLM_KV_ATTENTION_GATE_LORA_RANK, "%s.attention.gate_lora_rank" },
142
+ { LLM_KV_ATTENTION_RELATIVE_BUCKETS_COUNT, "%s.attention.relative_buckets_count" },
143
+ { LLM_KV_ATTENTION_SLIDING_WINDOW, "%s.attention.sliding_window" },
144
+ { LLM_KV_ATTENTION_SCALE, "%s.attention.scale" },
145
+ { LLM_KV_ATTENTION_KEY_LENGTH_MLA, "%s.attention.key_length_mla" },
146
+ { LLM_KV_ATTENTION_VALUE_LENGTH_MLA, "%s.attention.value_length_mla" },
147
+
148
+ { LLM_KV_ROPE_DIMENSION_COUNT, "%s.rope.dimension_count" },
149
+ { LLM_KV_ROPE_DIMENSION_SECTIONS, "%s.rope.dimension_sections" },
150
+ { LLM_KV_ROPE_FREQ_BASE, "%s.rope.freq_base" },
151
+ { LLM_KV_ROPE_SCALE_LINEAR, "%s.rope.scale_linear" },
152
+ { LLM_KV_ROPE_SCALING_TYPE, "%s.rope.scaling.type" },
153
+ { LLM_KV_ROPE_SCALING_FACTOR, "%s.rope.scaling.factor" },
154
+ { LLM_KV_ROPE_SCALING_ATTN_FACTOR, "%s.rope.scaling.attn_factor" },
155
+ { LLM_KV_ROPE_SCALING_ORIG_CTX_LEN, "%s.rope.scaling.original_context_length" },
156
+ { LLM_KV_ROPE_SCALING_FINETUNED, "%s.rope.scaling.finetuned" },
157
+ { LLM_KV_ROPE_SCALING_YARN_LOG_MUL, "%s.rope.scaling.yarn_log_multiplier" },
158
+
159
+ { LLM_KV_SPLIT_NO, "split.no" },
160
+ { LLM_KV_SPLIT_COUNT, "split.count" },
161
+ { LLM_KV_SPLIT_TENSORS_COUNT, "split.tensors.count" },
162
+
163
+ { LLM_KV_SSM_CONV_KERNEL, "%s.ssm.conv_kernel" },
164
+ { LLM_KV_SSM_INNER_SIZE, "%s.ssm.inner_size" },
165
+ { LLM_KV_SSM_STATE_SIZE, "%s.ssm.state_size" },
166
+ { LLM_KV_SSM_TIME_STEP_RANK, "%s.ssm.time_step_rank" },
167
+ { LLM_KV_SSM_DT_B_C_RMS, "%s.ssm.dt_b_c_rms" },
168
+
169
+ { LLM_KV_WKV_HEAD_SIZE, "%s.wkv.head_size" },
170
+
171
+ { LLM_KV_POSNET_EMBEDDING_LENGTH, "%s.posnet.embedding_length" },
172
+ { LLM_KV_POSNET_BLOCK_COUNT, "%s.posnet.block_count" },
173
+
174
+ { LLM_KV_CONVNEXT_EMBEDDING_LENGTH, "%s.convnext.embedding_length" },
175
+ { LLM_KV_CONVNEXT_BLOCK_COUNT, "%s.convnext.block_count" },
176
+
177
+ { LLM_KV_TOKENIZER_MODEL, "tokenizer.ggml.model" },
178
+ { LLM_KV_TOKENIZER_PRE, "tokenizer.ggml.pre" },
179
+ { LLM_KV_TOKENIZER_LIST, "tokenizer.ggml.tokens" },
180
+ { LLM_KV_TOKENIZER_TOKEN_TYPE, "tokenizer.ggml.token_type" },
181
+ { LLM_KV_TOKENIZER_TOKEN_TYPE_COUNT, "tokenizer.ggml.token_type_count" },
182
+ { LLM_KV_TOKENIZER_SCORES, "tokenizer.ggml.scores" },
183
+ { LLM_KV_TOKENIZER_MERGES, "tokenizer.ggml.merges" },
184
+ { LLM_KV_TOKENIZER_BOS_ID, "tokenizer.ggml.bos_token_id" },
185
+ { LLM_KV_TOKENIZER_EOS_ID, "tokenizer.ggml.eos_token_id" },
186
+ { LLM_KV_TOKENIZER_EOT_ID, "tokenizer.ggml.eot_token_id" },
187
+ { LLM_KV_TOKENIZER_EOM_ID, "tokenizer.ggml.eom_token_id" },
188
+ { LLM_KV_TOKENIZER_UNK_ID, "tokenizer.ggml.unknown_token_id" },
189
+ { LLM_KV_TOKENIZER_SEP_ID, "tokenizer.ggml.seperator_token_id" },
190
+ { LLM_KV_TOKENIZER_PAD_ID, "tokenizer.ggml.padding_token_id" },
191
+ { LLM_KV_TOKENIZER_CLS_ID, "tokenizer.ggml.cls_token_id" },
192
+ { LLM_KV_TOKENIZER_MASK_ID, "tokenizer.ggml.mask_token_id" },
193
+ { LLM_KV_TOKENIZER_ADD_BOS, "tokenizer.ggml.add_bos_token" },
194
+ { LLM_KV_TOKENIZER_ADD_EOS, "tokenizer.ggml.add_eos_token" },
195
+ { LLM_KV_TOKENIZER_ADD_PREFIX, "tokenizer.ggml.add_space_prefix" },
196
+ { LLM_KV_TOKENIZER_REMOVE_EXTRA_WS, "tokenizer.ggml.remove_extra_whitespaces" },
197
+ { LLM_KV_TOKENIZER_PRECOMPILED_CHARSMAP, "tokenizer.ggml.precompiled_charsmap" },
198
+ { LLM_KV_TOKENIZER_HF_JSON, "tokenizer.huggingface.json" },
199
+ { LLM_KV_TOKENIZER_RWKV, "tokenizer.rwkv.world" },
200
+ { LLM_KV_TOKENIZER_CHAT_TEMPLATE, "tokenizer.chat_template" },
201
+ { LLM_KV_TOKENIZER_CHAT_TEMPLATE_N, "tokenizer.chat_template.%s" },
202
+ { LLM_KV_TOKENIZER_FIM_PRE_ID, "tokenizer.ggml.fim_pre_token_id" },
203
+ { LLM_KV_TOKENIZER_FIM_SUF_ID, "tokenizer.ggml.fim_suf_token_id" },
204
+ { LLM_KV_TOKENIZER_FIM_MID_ID, "tokenizer.ggml.fim_mid_token_id" },
205
+ { LLM_KV_TOKENIZER_FIM_PAD_ID, "tokenizer.ggml.fim_pad_token_id" },
206
+ { LLM_KV_TOKENIZER_FIM_REP_ID, "tokenizer.ggml.fim_rep_token_id" },
207
+ { LLM_KV_TOKENIZER_FIM_SEP_ID, "tokenizer.ggml.fim_sep_token_id" },
208
+
209
+ { LLM_KV_ADAPTER_TYPE, "adapter.type" },
210
+ { LLM_KV_ADAPTER_LORA_ALPHA, "adapter.lora.alpha" },
211
+
212
+ // deprecated
213
+ { LLM_KV_TOKENIZER_PREFIX_ID, "tokenizer.ggml.prefix_token_id" },
214
+ { LLM_KV_TOKENIZER_SUFFIX_ID, "tokenizer.ggml.suffix_token_id" },
215
+ { LLM_KV_TOKENIZER_MIDDLE_ID, "tokenizer.ggml.middle_token_id" },
216
+ };
217
+
218
+ static const std::map<llm_arch, std::map<llm_tensor, const char *>> LLM_TENSOR_NAMES = {
219
+ {
220
+ LLM_ARCH_LLAMA,
221
+ {
222
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
223
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
224
+ { LLM_TENSOR_OUTPUT, "output" },
225
+ { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },
226
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
227
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
228
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
229
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
230
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
231
+ { LLM_TENSOR_ATTN_ROT_EMBD, "blk.%d.attn_rot_embd" },
232
+ { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },
233
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
234
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
235
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
236
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
237
+ { LLM_TENSOR_FFN_GATE_EXP, "blk.%d.ffn_gate.%d" },
238
+ { LLM_TENSOR_FFN_DOWN_EXP, "blk.%d.ffn_down.%d" },
239
+ { LLM_TENSOR_FFN_UP_EXP, "blk.%d.ffn_up.%d" },
240
+ { LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" },
241
+ { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },
242
+ { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },
243
+ },
244
+ },
245
+ {
246
+ LLM_ARCH_LLAMA4,
247
+ {
248
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
249
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
250
+ { LLM_TENSOR_OUTPUT, "output" },
251
+ { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },
252
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
253
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
254
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
255
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
256
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
257
+ { LLM_TENSOR_ATTN_ROT_EMBD, "blk.%d.attn_rot_embd" },
258
+ { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },
259
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
260
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
261
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
262
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
263
+ { LLM_TENSOR_FFN_GATE_EXP, "blk.%d.ffn_gate.%d" },
264
+ { LLM_TENSOR_FFN_DOWN_EXP, "blk.%d.ffn_down.%d" },
265
+ { LLM_TENSOR_FFN_UP_EXP, "blk.%d.ffn_up.%d" },
266
+ { LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" },
267
+ { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },
268
+ { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },
269
+ { LLM_TENSOR_FFN_GATE_SHEXP, "blk.%d.ffn_gate_shexp" },
270
+ { LLM_TENSOR_FFN_DOWN_SHEXP, "blk.%d.ffn_down_shexp" },
271
+ { LLM_TENSOR_FFN_UP_SHEXP, "blk.%d.ffn_up_shexp" },
272
+ },
273
+ },
274
+ {
275
+ LLM_ARCH_DECI,
276
+ {
277
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
278
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
279
+ { LLM_TENSOR_OUTPUT, "output" },
280
+ { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },
281
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
282
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
283
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
284
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
285
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
286
+ { LLM_TENSOR_ATTN_ROT_EMBD, "blk.%d.attn_rot_embd" },
287
+ { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },
288
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
289
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
290
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
291
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
292
+ { LLM_TENSOR_FFN_GATE_EXP, "blk.%d.ffn_gate.%d" },
293
+ { LLM_TENSOR_FFN_DOWN_EXP, "blk.%d.ffn_down.%d" },
294
+ { LLM_TENSOR_FFN_UP_EXP, "blk.%d.ffn_up.%d" },
295
+ { LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" },
296
+ { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },
297
+ { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },
298
+ },
299
+ },
300
+ {
301
+ LLM_ARCH_BAICHUAN,
302
+ {
303
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
304
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
305
+ { LLM_TENSOR_OUTPUT, "output" },
306
+ { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },
307
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
308
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
309
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
310
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
311
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
312
+ { LLM_TENSOR_ATTN_ROT_EMBD, "blk.%d.attn_rot_embd" },
313
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
314
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
315
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
316
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
317
+ },
318
+ },
319
+ {
320
+ LLM_ARCH_FALCON,
321
+ {
322
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
323
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
324
+ { LLM_TENSOR_OUTPUT, "output" },
325
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
326
+ { LLM_TENSOR_ATTN_NORM_2, "blk.%d.attn_norm_2" },
327
+ { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },
328
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
329
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
330
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
331
+ },
332
+ },
333
+ {
334
+ LLM_ARCH_GROK,
335
+ {
336
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
337
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
338
+ { LLM_TENSOR_OUTPUT, "output" },
339
+ { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },
340
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
341
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
342
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
343
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
344
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
345
+ { LLM_TENSOR_ATTN_ROT_EMBD, "blk.%d.attn_rot_embd" },
346
+ { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },
347
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
348
+ { LLM_TENSOR_FFN_GATE_EXP, "blk.%d.ffn_gate.%d" },
349
+ { LLM_TENSOR_FFN_DOWN_EXP, "blk.%d.ffn_down.%d" },
350
+ { LLM_TENSOR_FFN_UP_EXP, "blk.%d.ffn_up.%d" },
351
+ { LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" },
352
+ { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },
353
+ { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },
354
+ { LLM_TENSOR_LAYER_OUT_NORM, "blk.%d.layer_output_norm" },
355
+ { LLM_TENSOR_ATTN_OUT_NORM, "blk.%d.attn_output_norm" },
356
+ },
357
+ },
358
+ {
359
+ LLM_ARCH_GPT2,
360
+ {
361
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
362
+ { LLM_TENSOR_POS_EMBD, "position_embd" },
363
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
364
+ { LLM_TENSOR_OUTPUT, "output" },
365
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
366
+ { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },
367
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
368
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
369
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
370
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
371
+ },
372
+ },
373
+ {
374
+ LLM_ARCH_GPTJ,
375
+ {
376
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
377
+ },
378
+ },
379
+ {
380
+ LLM_ARCH_GPTNEOX,
381
+ {
382
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
383
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
384
+ { LLM_TENSOR_OUTPUT, "output" },
385
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
386
+ { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },
387
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
388
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
389
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
390
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
391
+ },
392
+ },
393
+ {
394
+ LLM_ARCH_MPT,
395
+ {
396
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
397
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
398
+ { LLM_TENSOR_OUTPUT, "output"},
399
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
400
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
401
+ { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },
402
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
403
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
404
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
405
+ { LLM_TENSOR_FFN_ACT, "blk.%d.ffn.act" },
406
+ { LLM_TENSOR_POS_EMBD, "position_embd" },
407
+ { LLM_TENSOR_ATTN_Q_NORM, "blk.%d.attn_q_norm"},
408
+ { LLM_TENSOR_ATTN_K_NORM, "blk.%d.attn_k_norm"},
409
+ },
410
+ },
411
+ {
412
+ LLM_ARCH_STARCODER,
413
+ {
414
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
415
+ { LLM_TENSOR_POS_EMBD, "position_embd" },
416
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
417
+ { LLM_TENSOR_OUTPUT, "output" },
418
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
419
+ { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },
420
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
421
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
422
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
423
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
424
+ },
425
+ },
426
+ {
427
+ LLM_ARCH_REFACT,
428
+ {
429
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
430
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
431
+ { LLM_TENSOR_OUTPUT, "output" },
432
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
433
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
434
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
435
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
436
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
437
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
438
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
439
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
440
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
441
+ },
442
+ },
443
+ {
444
+ LLM_ARCH_BERT,
445
+ {
446
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
447
+ { LLM_TENSOR_TOKEN_EMBD_NORM, "token_embd_norm" },
448
+ { LLM_TENSOR_TOKEN_TYPES, "token_types" },
449
+ { LLM_TENSOR_POS_EMBD, "position_embd" },
450
+ { LLM_TENSOR_ATTN_OUT_NORM, "blk.%d.attn_output_norm" },
451
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
452
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
453
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
454
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
455
+ { LLM_TENSOR_LAYER_OUT_NORM, "blk.%d.layer_output_norm" },
456
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
457
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
458
+ { LLM_TENSOR_CLS, "cls" },
459
+ { LLM_TENSOR_CLS_OUT, "cls.output" },
460
+ },
461
+ },
462
+ {
463
+ LLM_ARCH_NOMIC_BERT,
464
+ {
465
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
466
+ { LLM_TENSOR_TOKEN_EMBD_NORM, "token_embd_norm" },
467
+ { LLM_TENSOR_TOKEN_TYPES, "token_types" },
468
+ { LLM_TENSOR_ATTN_OUT_NORM, "blk.%d.attn_output_norm" },
469
+ { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },
470
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
471
+ { LLM_TENSOR_LAYER_OUT_NORM, "blk.%d.layer_output_norm" },
472
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
473
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
474
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
475
+ },
476
+ },
477
+ {
478
+ LLM_ARCH_NOMIC_BERT_MOE,
479
+ {
480
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
481
+ { LLM_TENSOR_TOKEN_EMBD_NORM, "token_embd_norm" },
482
+ { LLM_TENSOR_TOKEN_TYPES, "token_types" },
483
+ { LLM_TENSOR_ATTN_OUT_NORM, "blk.%d.attn_output_norm" },
484
+ { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },
485
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
486
+ { LLM_TENSOR_LAYER_OUT_NORM, "blk.%d.layer_output_norm" },
487
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
488
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
489
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
490
+ { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },
491
+ { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },
492
+ { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },
493
+ },
494
+ },
495
+ {
496
+ LLM_ARCH_JINA_BERT_V2,
497
+ {
498
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
499
+ { LLM_TENSOR_TOKEN_EMBD_NORM, "token_embd_norm" },
500
+ { LLM_TENSOR_TOKEN_TYPES, "token_types" },
501
+ { LLM_TENSOR_ATTN_NORM_2, "blk.%d.attn_norm_2" },
502
+ { LLM_TENSOR_ATTN_OUT_NORM, "blk.%d.attn_output_norm" },
503
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
504
+ { LLM_TENSOR_ATTN_Q_NORM, "blk.%d.attn_q_norm" },
505
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
506
+ { LLM_TENSOR_ATTN_K_NORM, "blk.%d.attn_k_norm" },
507
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
508
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
509
+ { LLM_TENSOR_LAYER_OUT_NORM, "blk.%d.layer_output_norm" },
510
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
511
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
512
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
513
+ { LLM_TENSOR_CLS, "cls" },
514
+ },
515
+ },
516
+ {
517
+ LLM_ARCH_BLOOM,
518
+ {
519
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
520
+ { LLM_TENSOR_TOKEN_EMBD_NORM, "token_embd_norm" },
521
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
522
+ { LLM_TENSOR_OUTPUT, "output" },
523
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
524
+ { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },
525
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
526
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
527
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
528
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
529
+ },
530
+ },
531
+ {
532
+ LLM_ARCH_STABLELM,
533
+ {
534
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
535
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
536
+ { LLM_TENSOR_OUTPUT, "output" },
537
+ { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },
538
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
539
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
540
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
541
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
542
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
543
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
544
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
545
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
546
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
547
+ { LLM_TENSOR_ATTN_Q_NORM, "blk.%d.attn_q_norm" },
548
+ { LLM_TENSOR_ATTN_K_NORM, "blk.%d.attn_k_norm" },
549
+ },
550
+ },
551
+ {
552
+ LLM_ARCH_QWEN,
553
+ {
554
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
555
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
556
+ { LLM_TENSOR_OUTPUT, "output" },
557
+ { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },
558
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
559
+ { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },
560
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
561
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
562
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
563
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
564
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
565
+ },
566
+ },
567
+ {
568
+ LLM_ARCH_QWEN2,
569
+ {
570
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
571
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
572
+ { LLM_TENSOR_OUTPUT, "output" },
573
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
574
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
575
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
576
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
577
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
578
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
579
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
580
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
581
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
582
+ },
583
+ },
584
+ {
585
+ LLM_ARCH_QWEN2VL,
586
+ {
587
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
588
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
589
+ { LLM_TENSOR_OUTPUT, "output" },
590
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
591
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
592
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
593
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
594
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
595
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
596
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
597
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
598
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
599
+ },
600
+ },
601
+ {
602
+ LLM_ARCH_QWEN2MOE,
603
+ {
604
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
605
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
606
+ { LLM_TENSOR_OUTPUT, "output" },
607
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
608
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
609
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
610
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
611
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
612
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
613
+ { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },
614
+ { LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" },
615
+ { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },
616
+ { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },
617
+ { LLM_TENSOR_FFN_GATE_INP_SHEXP, "blk.%d.ffn_gate_inp_shexp" },
618
+ { LLM_TENSOR_FFN_GATE_SHEXP, "blk.%d.ffn_gate_shexp" },
619
+ { LLM_TENSOR_FFN_DOWN_SHEXP, "blk.%d.ffn_down_shexp" },
620
+ { LLM_TENSOR_FFN_UP_SHEXP, "blk.%d.ffn_up_shexp" },
621
+ },
622
+ },
623
+ {
624
+ LLM_ARCH_QWEN3,
625
+ {
626
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
627
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
628
+ { LLM_TENSOR_OUTPUT, "output" },
629
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
630
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
631
+ { LLM_TENSOR_ATTN_Q_NORM, "blk.%d.attn_q_norm" },
632
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
633
+ { LLM_TENSOR_ATTN_K_NORM, "blk.%d.attn_k_norm" },
634
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
635
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
636
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
637
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
638
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
639
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
640
+ },
641
+ },
642
+ {
643
+ LLM_ARCH_QWEN3MOE,
644
+ {
645
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
646
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
647
+ { LLM_TENSOR_OUTPUT, "output" },
648
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
649
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
650
+ { LLM_TENSOR_ATTN_Q_NORM, "blk.%d.attn_q_norm" },
651
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
652
+ { LLM_TENSOR_ATTN_K_NORM, "blk.%d.attn_k_norm" },
653
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
654
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
655
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
656
+ { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },
657
+ { LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" },
658
+ { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },
659
+ { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },
660
+ },
661
+ },
662
+ {
663
+ LLM_ARCH_PHI2,
664
+ {
665
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
666
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
667
+ { LLM_TENSOR_OUTPUT, "output" },
668
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
669
+ { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },
670
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
671
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
672
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
673
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
674
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
675
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
676
+ },
677
+ },
678
+ {
679
+ LLM_ARCH_PHI3,
680
+ {
681
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
682
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
683
+ { LLM_TENSOR_OUTPUT, "output" },
684
+ { LLM_TENSOR_ROPE_FACTORS_LONG, "rope_factors_long" },
685
+ { LLM_TENSOR_ROPE_FACTORS_SHORT, "rope_factors_short" },
686
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
687
+ { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },
688
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
689
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
690
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
691
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
692
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
693
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
694
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
695
+ },
696
+ },
697
+ {
698
+ LLM_ARCH_PHIMOE,
699
+ {
700
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
701
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
702
+ { LLM_TENSOR_OUTPUT, "output" },
703
+ { LLM_TENSOR_ROPE_FACTORS_LONG, "rope_factors_long" },
704
+ { LLM_TENSOR_ROPE_FACTORS_SHORT, "rope_factors_short" },
705
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
706
+ { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },
707
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
708
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
709
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
710
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
711
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
712
+ { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },
713
+ { LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" },
714
+ { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },
715
+ { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },
716
+ },
717
+ },
718
+ {
719
+ LLM_ARCH_PLAMO,
720
+ {
721
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
722
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
723
+ { LLM_TENSOR_OUTPUT, "output" },
724
+ { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },
725
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
726
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
727
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
728
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
729
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
730
+ { LLM_TENSOR_ATTN_ROT_EMBD, "blk.%d.attn_rot_embd" },
731
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
732
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
733
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
734
+ },
735
+ },
736
+ {
737
+ LLM_ARCH_CODESHELL,
738
+ {
739
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
740
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
741
+ { LLM_TENSOR_OUTPUT, "output" },
742
+ { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },
743
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
744
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
745
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
746
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
747
+ { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },
748
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
749
+ { LLM_TENSOR_ATTN_ROT_EMBD, "blk.%d.attn_rot_embd" },
750
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
751
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
752
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
753
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
754
+ },
755
+ },
756
+ {
757
+ LLM_ARCH_ORION,
758
+ {
759
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
760
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
761
+ { LLM_TENSOR_OUTPUT, "output" },
762
+ { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },
763
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
764
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
765
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
766
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
767
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
768
+ { LLM_TENSOR_ATTN_ROT_EMBD, "blk.%d.attn_rot_embd" },
769
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
770
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
771
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
772
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
773
+ },
774
+ },
775
+ {
776
+ LLM_ARCH_INTERNLM2,
777
+ {
778
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
779
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
780
+ { LLM_TENSOR_OUTPUT, "output" },
781
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
782
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
783
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
784
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
785
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
786
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
787
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
788
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
789
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
790
+ },
791
+ },
792
+ {
793
+ LLM_ARCH_MINICPM,
794
+ {
795
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
796
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
797
+ { LLM_TENSOR_OUTPUT, "output" },
798
+ { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },
799
+ { LLM_TENSOR_ROPE_FACTORS_LONG, "rope_factors_long" },
800
+ { LLM_TENSOR_ROPE_FACTORS_SHORT, "rope_factors_short" },
801
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
802
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
803
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
804
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
805
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
806
+ { LLM_TENSOR_ATTN_ROT_EMBD, "blk.%d.attn_rot_embd" },
807
+ { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },
808
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
809
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
810
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
811
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
812
+ { LLM_TENSOR_FFN_GATE_EXP, "blk.%d.ffn_gate.%d" },
813
+ { LLM_TENSOR_FFN_DOWN_EXP, "blk.%d.ffn_down.%d" },
814
+ { LLM_TENSOR_FFN_UP_EXP, "blk.%d.ffn_up.%d" },
815
+ },
816
+ },
817
+ {
818
+ LLM_ARCH_MINICPM3,
819
+ {
820
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
821
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
822
+ { LLM_TENSOR_OUTPUT, "output" },
823
+ { LLM_TENSOR_ROPE_FACTORS_LONG, "rope_factors_long" },
824
+ { LLM_TENSOR_ROPE_FACTORS_SHORT, "rope_factors_short" },
825
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
826
+ { LLM_TENSOR_ATTN_Q_A_NORM, "blk.%d.attn_q_a_norm" },
827
+ { LLM_TENSOR_ATTN_KV_A_NORM, "blk.%d.attn_kv_a_norm" },
828
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
829
+ { LLM_TENSOR_ATTN_Q_A, "blk.%d.attn_q_a" },
830
+ { LLM_TENSOR_ATTN_Q_B, "blk.%d.attn_q_b" },
831
+ { LLM_TENSOR_ATTN_KV_A_MQA, "blk.%d.attn_kv_a_mqa" },
832
+ { LLM_TENSOR_ATTN_KV_B, "blk.%d.attn_kv_b" },
833
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
834
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
835
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
836
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
837
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
838
+ },
839
+ },
840
+ {
841
+ LLM_ARCH_GEMMA,
842
+ {
843
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
844
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
845
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
846
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
847
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
848
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
849
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
850
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
851
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
852
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
853
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
854
+ },
855
+ },
856
+ {
857
+ LLM_ARCH_GEMMA2,
858
+ {
859
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
860
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
861
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
862
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
863
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
864
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
865
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
866
+ { LLM_TENSOR_ATTN_POST_NORM, "blk.%d.post_attention_norm" },
867
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
868
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
869
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
870
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
871
+ { LLM_TENSOR_FFN_POST_NORM, "blk.%d.post_ffw_norm" },
872
+ },
873
+ },
874
+ {
875
+ LLM_ARCH_GEMMA3,
876
+ {
877
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
878
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
879
+ { LLM_TENSOR_OUTPUT, "output" },
880
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
881
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
882
+ { LLM_TENSOR_ATTN_Q_NORM, "blk.%d.attn_q_norm" },
883
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
884
+ { LLM_TENSOR_ATTN_K_NORM, "blk.%d.attn_k_norm" },
885
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
886
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
887
+ { LLM_TENSOR_ATTN_POST_NORM, "blk.%d.post_attention_norm" },
888
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
889
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
890
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
891
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
892
+ { LLM_TENSOR_FFN_POST_NORM, "blk.%d.post_ffw_norm" },
893
+ },
894
+ },
895
+ {
896
+ LLM_ARCH_STARCODER2,
897
+ {
898
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
899
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
900
+ { LLM_TENSOR_OUTPUT, "output" },
901
+ { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },
902
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
903
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
904
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
905
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
906
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
907
+ { LLM_TENSOR_ATTN_ROT_EMBD, "blk.%d.attn_rot_embd" },
908
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
909
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
910
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
911
+ },
912
+ },
913
+ {
914
+ LLM_ARCH_MAMBA,
915
+ {
916
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
917
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
918
+ { LLM_TENSOR_OUTPUT, "output" },
919
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
920
+ { LLM_TENSOR_SSM_IN, "blk.%d.ssm_in" },
921
+ { LLM_TENSOR_SSM_CONV1D, "blk.%d.ssm_conv1d" },
922
+ { LLM_TENSOR_SSM_X, "blk.%d.ssm_x" },
923
+ { LLM_TENSOR_SSM_DT, "blk.%d.ssm_dt" },
924
+ { LLM_TENSOR_SSM_A, "blk.%d.ssm_a" },
925
+ { LLM_TENSOR_SSM_D, "blk.%d.ssm_d" },
926
+ { LLM_TENSOR_SSM_OUT, "blk.%d.ssm_out" },
927
+ },
928
+ },
929
+ {
930
+ LLM_ARCH_XVERSE,
931
+ {
932
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
933
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
934
+ { LLM_TENSOR_OUTPUT, "output" },
935
+ { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },
936
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
937
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
938
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
939
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
940
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
941
+ { LLM_TENSOR_ATTN_ROT_EMBD, "blk.%d.attn_rot_embd" },
942
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
943
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
944
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
945
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
946
+ },
947
+ },
948
+ {
949
+ LLM_ARCH_COMMAND_R,
950
+ {
951
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
952
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
953
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
954
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
955
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
956
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
957
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
958
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
959
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
960
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
961
+ { LLM_TENSOR_ATTN_Q_NORM, "blk.%d.attn_q_norm" },
962
+ { LLM_TENSOR_ATTN_K_NORM, "blk.%d.attn_k_norm" },
963
+ },
964
+ },
965
+ {
966
+ LLM_ARCH_COHERE2,
967
+ {
968
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
969
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
970
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
971
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
972
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
973
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
974
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
975
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
976
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
977
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
978
+ },
979
+ },
980
+ {
981
+ LLM_ARCH_DBRX,
982
+ {
983
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
984
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
985
+ { LLM_TENSOR_OUTPUT, "output" },
986
+ { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },
987
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
988
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
989
+ { LLM_TENSOR_ATTN_OUT_NORM, "blk.%d.attn_output_norm" },
990
+ { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },
991
+ { LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" },
992
+ { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },
993
+ { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },
994
+ },
995
+ },
996
+ {
997
+ LLM_ARCH_OLMO,
998
+ {
999
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1000
+ { LLM_TENSOR_OUTPUT, "output" },
1001
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1002
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
1003
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
1004
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1005
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
1006
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1007
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1008
+ },
1009
+ },
1010
+ {
1011
+ LLM_ARCH_OLMO2,
1012
+ {
1013
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1014
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1015
+ { LLM_TENSOR_OUTPUT, "output" },
1016
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1017
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
1018
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
1019
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1020
+ { LLM_TENSOR_ATTN_POST_NORM, "blk.%d.post_attention_norm" },
1021
+ { LLM_TENSOR_ATTN_Q_NORM, "blk.%d.attn_q_norm" },
1022
+ { LLM_TENSOR_ATTN_K_NORM, "blk.%d.attn_k_norm" },
1023
+ { LLM_TENSOR_FFN_POST_NORM, "blk.%d.post_ffw_norm" },
1024
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
1025
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1026
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1027
+ },
1028
+ },
1029
+ {
1030
+ LLM_ARCH_OLMOE,
1031
+ {
1032
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1033
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1034
+ { LLM_TENSOR_OUTPUT, "output" },
1035
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1036
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1037
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
1038
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
1039
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1040
+ { LLM_TENSOR_ATTN_Q_NORM, "blk.%d.attn_q_norm" },
1041
+ { LLM_TENSOR_ATTN_K_NORM, "blk.%d.attn_k_norm" },
1042
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1043
+ { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },
1044
+ { LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" },
1045
+ { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },
1046
+ { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },
1047
+ },
1048
+ },
1049
+ {
1050
+ LLM_ARCH_OPENELM,
1051
+ {
1052
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1053
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1054
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1055
+ { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },
1056
+ { LLM_TENSOR_ATTN_Q_NORM, "blk.%d.attn_q_norm" },
1057
+ { LLM_TENSOR_ATTN_K_NORM, "blk.%d.attn_k_norm" },
1058
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1059
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1060
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
1061
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1062
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1063
+ },
1064
+ },
1065
+ {
1066
+ LLM_ARCH_ARCTIC,
1067
+ {
1068
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1069
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1070
+ { LLM_TENSOR_OUTPUT, "output" },
1071
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1072
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1073
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
1074
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
1075
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1076
+ { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },
1077
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1078
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
1079
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1080
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1081
+ { LLM_TENSOR_FFN_NORM_EXPS, "blk.%d.ffn_norm_exps" },
1082
+ { LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" },
1083
+ { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },
1084
+ { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },
1085
+ },
1086
+ },
1087
+ {
1088
+ LLM_ARCH_DEEPSEEK,
1089
+ {
1090
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1091
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1092
+ { LLM_TENSOR_OUTPUT, "output" },
1093
+ { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },
1094
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1095
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1096
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
1097
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
1098
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1099
+ { LLM_TENSOR_ATTN_ROT_EMBD, "blk.%d.attn_rot_embd" },
1100
+ { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },
1101
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1102
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
1103
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1104
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1105
+ { LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" },
1106
+ { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },
1107
+ { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },
1108
+ { LLM_TENSOR_FFN_GATE_INP_SHEXP, "blk.%d.ffn_gate_inp_shexp" },
1109
+ { LLM_TENSOR_FFN_GATE_SHEXP, "blk.%d.ffn_gate_shexp" },
1110
+ { LLM_TENSOR_FFN_DOWN_SHEXP, "blk.%d.ffn_down_shexp" },
1111
+ { LLM_TENSOR_FFN_UP_SHEXP, "blk.%d.ffn_up_shexp" },
1112
+ },
1113
+ },
1114
+ {
1115
+ LLM_ARCH_DEEPSEEK2,
1116
+ {
1117
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1118
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1119
+ { LLM_TENSOR_OUTPUT, "output" },
1120
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1121
+ { LLM_TENSOR_ATTN_Q_A_NORM, "blk.%d.attn_q_a_norm" },
1122
+ { LLM_TENSOR_ATTN_KV_A_NORM, "blk.%d.attn_kv_a_norm" },
1123
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1124
+ { LLM_TENSOR_ATTN_Q_A, "blk.%d.attn_q_a" },
1125
+ { LLM_TENSOR_ATTN_Q_B, "blk.%d.attn_q_b" },
1126
+ { LLM_TENSOR_ATTN_KV_A_MQA, "blk.%d.attn_kv_a_mqa" },
1127
+ { LLM_TENSOR_ATTN_KV_B, "blk.%d.attn_kv_b" },
1128
+ { LLM_TENSOR_ATTN_K_B, "blk.%d.attn_k_b" },
1129
+ { LLM_TENSOR_ATTN_V_B, "blk.%d.attn_v_b" },
1130
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1131
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1132
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
1133
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1134
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1135
+ { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },
1136
+ { LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" },
1137
+ { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },
1138
+ { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },
1139
+ { LLM_TENSOR_FFN_GATE_INP_SHEXP, "blk.%d.ffn_gate_inp_shexp" },
1140
+ { LLM_TENSOR_FFN_GATE_SHEXP, "blk.%d.ffn_gate_shexp" },
1141
+ { LLM_TENSOR_FFN_DOWN_SHEXP, "blk.%d.ffn_down_shexp" },
1142
+ { LLM_TENSOR_FFN_UP_SHEXP, "blk.%d.ffn_up_shexp" },
1143
+ { LLM_TENSOR_FFN_EXP_PROBS_B, "blk.%d.exp_probs_b" },
1144
+ },
1145
+ },
1146
+ {
1147
+ LLM_ARCH_PLM,
1148
+ {
1149
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1150
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1151
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1152
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1153
+ { LLM_TENSOR_ATTN_KV_A_MQA, "blk.%d.attn_kv_a_mqa" },
1154
+ { LLM_TENSOR_ATTN_KV_A_NORM, "blk.%d.attn_kv_a_norm" },
1155
+ { LLM_TENSOR_ATTN_KV_B, "blk.%d.attn_kv_b" },
1156
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1157
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1158
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1159
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1160
+ },
1161
+ },
1162
+ {
1163
+ LLM_ARCH_CHATGLM,
1164
+ {
1165
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1166
+ { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },
1167
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1168
+ { LLM_TENSOR_OUTPUT, "output" },
1169
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1170
+ { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },
1171
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1172
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
1173
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
1174
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1175
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1176
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1177
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1178
+ },
1179
+ },
1180
+ {
1181
+ LLM_ARCH_GLM4,
1182
+ {
1183
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1184
+ { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },
1185
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1186
+ { LLM_TENSOR_OUTPUT, "output" },
1187
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1188
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1189
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
1190
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
1191
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1192
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1193
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1194
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1195
+ { LLM_TENSOR_ATTN_POST_NORM, "blk.%d.post_attention_norm" },
1196
+ { LLM_TENSOR_FFN_POST_NORM, "blk.%d.post_ffw_norm" },
1197
+ },
1198
+ },
1199
+ {
1200
+ LLM_ARCH_BITNET,
1201
+ {
1202
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1203
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1204
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1205
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
1206
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
1207
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1208
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1209
+ { LLM_TENSOR_ATTN_SUB_NORM, "blk.%d.attn_sub_norm" },
1210
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
1211
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1212
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1213
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1214
+ { LLM_TENSOR_FFN_SUB_NORM, "blk.%d.ffn_sub_norm" },
1215
+ },
1216
+ },
1217
+ {
1218
+ LLM_ARCH_T5,
1219
+ {
1220
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1221
+ { LLM_TENSOR_OUTPUT, "output" },
1222
+ { LLM_TENSOR_DEC_OUTPUT_NORM, "dec.output_norm" },
1223
+ { LLM_TENSOR_DEC_ATTN_NORM, "dec.blk.%d.attn_norm" },
1224
+ { LLM_TENSOR_DEC_ATTN_Q, "dec.blk.%d.attn_q" },
1225
+ { LLM_TENSOR_DEC_ATTN_K, "dec.blk.%d.attn_k" },
1226
+ { LLM_TENSOR_DEC_ATTN_V, "dec.blk.%d.attn_v" },
1227
+ { LLM_TENSOR_DEC_ATTN_OUT, "dec.blk.%d.attn_o" },
1228
+ { LLM_TENSOR_DEC_ATTN_REL_B, "dec.blk.%d.attn_rel_b" },
1229
+ { LLM_TENSOR_DEC_CROSS_ATTN_NORM, "dec.blk.%d.cross_attn_norm" },
1230
+ { LLM_TENSOR_DEC_CROSS_ATTN_Q, "dec.blk.%d.cross_attn_q" },
1231
+ { LLM_TENSOR_DEC_CROSS_ATTN_K, "dec.blk.%d.cross_attn_k" },
1232
+ { LLM_TENSOR_DEC_CROSS_ATTN_V, "dec.blk.%d.cross_attn_v" },
1233
+ { LLM_TENSOR_DEC_CROSS_ATTN_OUT, "dec.blk.%d.cross_attn_o" },
1234
+ { LLM_TENSOR_DEC_CROSS_ATTN_REL_B, "dec.blk.%d.cross_attn_rel_b" },
1235
+ { LLM_TENSOR_DEC_FFN_NORM, "dec.blk.%d.ffn_norm" },
1236
+ { LLM_TENSOR_DEC_FFN_GATE, "dec.blk.%d.ffn_gate" },
1237
+ { LLM_TENSOR_DEC_FFN_DOWN, "dec.blk.%d.ffn_down" },
1238
+ { LLM_TENSOR_DEC_FFN_UP, "dec.blk.%d.ffn_up" },
1239
+ { LLM_TENSOR_ENC_OUTPUT_NORM, "enc.output_norm" },
1240
+ { LLM_TENSOR_ENC_ATTN_NORM, "enc.blk.%d.attn_norm" },
1241
+ { LLM_TENSOR_ENC_ATTN_Q, "enc.blk.%d.attn_q" },
1242
+ { LLM_TENSOR_ENC_ATTN_K, "enc.blk.%d.attn_k" },
1243
+ { LLM_TENSOR_ENC_ATTN_V, "enc.blk.%d.attn_v" },
1244
+ { LLM_TENSOR_ENC_ATTN_OUT, "enc.blk.%d.attn_o" },
1245
+ { LLM_TENSOR_ENC_ATTN_REL_B, "enc.blk.%d.attn_rel_b" },
1246
+ { LLM_TENSOR_ENC_FFN_NORM, "enc.blk.%d.ffn_norm" },
1247
+ { LLM_TENSOR_ENC_FFN_GATE, "enc.blk.%d.ffn_gate" },
1248
+ { LLM_TENSOR_ENC_FFN_DOWN, "enc.blk.%d.ffn_down" },
1249
+ { LLM_TENSOR_ENC_FFN_UP, "enc.blk.%d.ffn_up" },
1250
+ },
1251
+ },
1252
+ {
1253
+ LLM_ARCH_T5ENCODER,
1254
+ {
1255
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1256
+ { LLM_TENSOR_OUTPUT, "output" },
1257
+ { LLM_TENSOR_ENC_OUTPUT_NORM, "enc.output_norm" },
1258
+ { LLM_TENSOR_ENC_ATTN_NORM, "enc.blk.%d.attn_norm" },
1259
+ { LLM_TENSOR_ENC_ATTN_Q, "enc.blk.%d.attn_q" },
1260
+ { LLM_TENSOR_ENC_ATTN_K, "enc.blk.%d.attn_k" },
1261
+ { LLM_TENSOR_ENC_ATTN_V, "enc.blk.%d.attn_v" },
1262
+ { LLM_TENSOR_ENC_ATTN_OUT, "enc.blk.%d.attn_o" },
1263
+ { LLM_TENSOR_ENC_ATTN_REL_B, "enc.blk.%d.attn_rel_b" },
1264
+ { LLM_TENSOR_ENC_FFN_NORM, "enc.blk.%d.ffn_norm" },
1265
+ { LLM_TENSOR_ENC_FFN_GATE, "enc.blk.%d.ffn_gate" },
1266
+ { LLM_TENSOR_ENC_FFN_DOWN, "enc.blk.%d.ffn_down" },
1267
+ { LLM_TENSOR_ENC_FFN_UP, "enc.blk.%d.ffn_up" },
1268
+ },
1269
+ },
1270
+ {
1271
+ LLM_ARCH_JAIS,
1272
+ {
1273
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1274
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1275
+ { LLM_TENSOR_OUTPUT, "output" },
1276
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1277
+ { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },
1278
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1279
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1280
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1281
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
1282
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1283
+ },
1284
+ },
1285
+ {
1286
+ LLM_ARCH_NEMOTRON,
1287
+ {
1288
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1289
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1290
+ { LLM_TENSOR_OUTPUT, "output" },
1291
+ { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },
1292
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1293
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1294
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
1295
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
1296
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1297
+ { LLM_TENSOR_ATTN_ROT_EMBD, "blk.%d.attn_rot_embd" },
1298
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1299
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1300
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1301
+ },
1302
+ },
1303
+ {
1304
+ LLM_ARCH_EXAONE,
1305
+ {
1306
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1307
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1308
+ { LLM_TENSOR_OUTPUT, "output" },
1309
+ { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },
1310
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1311
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1312
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
1313
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
1314
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1315
+ { LLM_TENSOR_ATTN_ROT_EMBD, "blk.%d.attn_rot_embd" },
1316
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1317
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
1318
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1319
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1320
+ },
1321
+ },
1322
+ {
1323
+ LLM_ARCH_RWKV6,
1324
+ {
1325
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1326
+ { LLM_TENSOR_TOKEN_EMBD_NORM, "token_embd_norm" },
1327
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1328
+ { LLM_TENSOR_OUTPUT, "output" },
1329
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1330
+ { LLM_TENSOR_ATTN_NORM_2, "blk.%d.attn_norm_2" },
1331
+ { LLM_TENSOR_TIME_MIX_W1, "blk.%d.time_mix_w1" },
1332
+ { LLM_TENSOR_TIME_MIX_W2, "blk.%d.time_mix_w2" },
1333
+ { LLM_TENSOR_TIME_MIX_LERP_X, "blk.%d.time_mix_lerp_x" },
1334
+ { LLM_TENSOR_TIME_MIX_LERP_W, "blk.%d.time_mix_lerp_w" },
1335
+ { LLM_TENSOR_TIME_MIX_LERP_K, "blk.%d.time_mix_lerp_k" },
1336
+ { LLM_TENSOR_TIME_MIX_LERP_V, "blk.%d.time_mix_lerp_v" },
1337
+ { LLM_TENSOR_TIME_MIX_LERP_R, "blk.%d.time_mix_lerp_r" },
1338
+ { LLM_TENSOR_TIME_MIX_LERP_G, "blk.%d.time_mix_lerp_g" },
1339
+ { LLM_TENSOR_TIME_MIX_LERP_FUSED, "blk.%d.time_mix_lerp_fused" },
1340
+ { LLM_TENSOR_TIME_MIX_FIRST, "blk.%d.time_mix_first" },
1341
+ { LLM_TENSOR_TIME_MIX_DECAY, "blk.%d.time_mix_decay" },
1342
+ { LLM_TENSOR_TIME_MIX_DECAY_W1, "blk.%d.time_mix_decay_w1" },
1343
+ { LLM_TENSOR_TIME_MIX_DECAY_W2, "blk.%d.time_mix_decay_w2" },
1344
+ { LLM_TENSOR_TIME_MIX_KEY, "blk.%d.time_mix_key" },
1345
+ { LLM_TENSOR_TIME_MIX_VALUE, "blk.%d.time_mix_value" },
1346
+ { LLM_TENSOR_TIME_MIX_RECEPTANCE, "blk.%d.time_mix_receptance" },
1347
+ { LLM_TENSOR_TIME_MIX_GATE, "blk.%d.time_mix_gate" },
1348
+ { LLM_TENSOR_TIME_MIX_LN, "blk.%d.time_mix_ln" },
1349
+ { LLM_TENSOR_TIME_MIX_OUTPUT, "blk.%d.time_mix_output" },
1350
+ { LLM_TENSOR_CHANNEL_MIX_LERP_K, "blk.%d.channel_mix_lerp_k" },
1351
+ { LLM_TENSOR_CHANNEL_MIX_LERP_R, "blk.%d.channel_mix_lerp_r" },
1352
+ { LLM_TENSOR_CHANNEL_MIX_KEY, "blk.%d.channel_mix_key" },
1353
+ { LLM_TENSOR_CHANNEL_MIX_VALUE, "blk.%d.channel_mix_value" },
1354
+ { LLM_TENSOR_CHANNEL_MIX_RECEPTANCE, "blk.%d.channel_mix_receptance" },
1355
+ },
1356
+ },
1357
+ {
1358
+ LLM_ARCH_RWKV6QWEN2,
1359
+ {
1360
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1361
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1362
+ { LLM_TENSOR_OUTPUT, "output" },
1363
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1364
+ { LLM_TENSOR_TIME_MIX_W1, "blk.%d.time_mix_w1" },
1365
+ { LLM_TENSOR_TIME_MIX_W2, "blk.%d.time_mix_w2" },
1366
+ { LLM_TENSOR_TIME_MIX_LERP_X, "blk.%d.time_mix_lerp_x" },
1367
+ { LLM_TENSOR_TIME_MIX_LERP_FUSED, "blk.%d.time_mix_lerp_fused" },
1368
+ { LLM_TENSOR_TIME_MIX_FIRST, "blk.%d.time_mix_first" },
1369
+ { LLM_TENSOR_TIME_MIX_DECAY, "blk.%d.time_mix_decay" },
1370
+ { LLM_TENSOR_TIME_MIX_DECAY_W1, "blk.%d.time_mix_decay_w1" },
1371
+ { LLM_TENSOR_TIME_MIX_DECAY_W2, "blk.%d.time_mix_decay_w2" },
1372
+ { LLM_TENSOR_TIME_MIX_KEY, "blk.%d.time_mix_key" },
1373
+ { LLM_TENSOR_TIME_MIX_VALUE, "blk.%d.time_mix_value" },
1374
+ { LLM_TENSOR_TIME_MIX_RECEPTANCE, "blk.%d.time_mix_receptance" },
1375
+ { LLM_TENSOR_TIME_MIX_GATE, "blk.%d.time_mix_gate" },
1376
+ { LLM_TENSOR_TIME_MIX_OUTPUT, "blk.%d.time_mix_output" },
1377
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1378
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
1379
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1380
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1381
+ },
1382
+ },
1383
+ {
1384
+ LLM_ARCH_RWKV7,
1385
+ {
1386
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1387
+ { LLM_TENSOR_TOKEN_EMBD_NORM, "token_embd_norm" },
1388
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1389
+ { LLM_TENSOR_OUTPUT, "output" },
1390
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1391
+ { LLM_TENSOR_ATTN_NORM_2, "blk.%d.attn_norm_2" },
1392
+ { LLM_TENSOR_TIME_MIX_W0, "blk.%d.time_mix_w0" },
1393
+ { LLM_TENSOR_TIME_MIX_W1, "blk.%d.time_mix_w1" },
1394
+ { LLM_TENSOR_TIME_MIX_W2, "blk.%d.time_mix_w2" },
1395
+ { LLM_TENSOR_TIME_MIX_A0, "blk.%d.time_mix_a0" },
1396
+ { LLM_TENSOR_TIME_MIX_A1, "blk.%d.time_mix_a1" },
1397
+ { LLM_TENSOR_TIME_MIX_A2, "blk.%d.time_mix_a2" },
1398
+ { LLM_TENSOR_TIME_MIX_V0, "blk.%d.time_mix_v0" },
1399
+ { LLM_TENSOR_TIME_MIX_V1, "blk.%d.time_mix_v1" },
1400
+ { LLM_TENSOR_TIME_MIX_V2, "blk.%d.time_mix_v2" },
1401
+ { LLM_TENSOR_TIME_MIX_G1, "blk.%d.time_mix_g1" },
1402
+ { LLM_TENSOR_TIME_MIX_G2, "blk.%d.time_mix_g2" },
1403
+ { LLM_TENSOR_TIME_MIX_K_K, "blk.%d.time_mix_k_k" },
1404
+ { LLM_TENSOR_TIME_MIX_K_A, "blk.%d.time_mix_k_a" },
1405
+ { LLM_TENSOR_TIME_MIX_R_K, "blk.%d.time_mix_r_k" },
1406
+ { LLM_TENSOR_TIME_MIX_LERP_FUSED, "blk.%d.time_mix_lerp_fused" },
1407
+ { LLM_TENSOR_TIME_MIX_KEY, "blk.%d.time_mix_key" },
1408
+ { LLM_TENSOR_TIME_MIX_VALUE, "blk.%d.time_mix_value" },
1409
+ { LLM_TENSOR_TIME_MIX_RECEPTANCE, "blk.%d.time_mix_receptance" },
1410
+ { LLM_TENSOR_TIME_MIX_LN, "blk.%d.time_mix_ln" },
1411
+ { LLM_TENSOR_TIME_MIX_OUTPUT, "blk.%d.time_mix_output" },
1412
+ { LLM_TENSOR_CHANNEL_MIX_LERP_K, "blk.%d.channel_mix_lerp_k" },
1413
+ { LLM_TENSOR_CHANNEL_MIX_KEY, "blk.%d.channel_mix_key" },
1414
+ { LLM_TENSOR_CHANNEL_MIX_VALUE, "blk.%d.channel_mix_value" },
1415
+ },
1416
+ },
1417
+ {
1418
+ LLM_ARCH_ARWKV7,
1419
+ {
1420
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1421
+ { LLM_TENSOR_TOKEN_EMBD_NORM, "token_embd_norm" },
1422
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1423
+ { LLM_TENSOR_OUTPUT, "output" },
1424
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1425
+ { LLM_TENSOR_TIME_MIX_W0, "blk.%d.time_mix_w0" },
1426
+ { LLM_TENSOR_TIME_MIX_W1, "blk.%d.time_mix_w1" },
1427
+ { LLM_TENSOR_TIME_MIX_W2, "blk.%d.time_mix_w2" },
1428
+ { LLM_TENSOR_TIME_MIX_A0, "blk.%d.time_mix_a0" },
1429
+ { LLM_TENSOR_TIME_MIX_A1, "blk.%d.time_mix_a1" },
1430
+ { LLM_TENSOR_TIME_MIX_A2, "blk.%d.time_mix_a2" },
1431
+ { LLM_TENSOR_TIME_MIX_V0, "blk.%d.time_mix_v0" },
1432
+ { LLM_TENSOR_TIME_MIX_V1, "blk.%d.time_mix_v1" },
1433
+ { LLM_TENSOR_TIME_MIX_V2, "blk.%d.time_mix_v2" },
1434
+ { LLM_TENSOR_TIME_MIX_G1, "blk.%d.time_mix_g1" },
1435
+ { LLM_TENSOR_TIME_MIX_G2, "blk.%d.time_mix_g2" },
1436
+ { LLM_TENSOR_TIME_MIX_K_K, "blk.%d.time_mix_k_k" },
1437
+ { LLM_TENSOR_TIME_MIX_K_A, "blk.%d.time_mix_k_a" },
1438
+ { LLM_TENSOR_TIME_MIX_R_K, "blk.%d.time_mix_r_k" },
1439
+ { LLM_TENSOR_TIME_MIX_LERP_FUSED, "blk.%d.time_mix_lerp_fused" },
1440
+ { LLM_TENSOR_TIME_MIX_KEY, "blk.%d.time_mix_key" },
1441
+ { LLM_TENSOR_TIME_MIX_VALUE, "blk.%d.time_mix_value" },
1442
+ { LLM_TENSOR_TIME_MIX_RECEPTANCE, "blk.%d.time_mix_receptance" },
1443
+ { LLM_TENSOR_TIME_MIX_LN, "blk.%d.time_mix_ln" },
1444
+ { LLM_TENSOR_TIME_MIX_OUTPUT, "blk.%d.time_mix_output" },
1445
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1446
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
1447
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1448
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1449
+ },
1450
+ },
1451
+ {
1452
+ LLM_ARCH_GRANITE,
1453
+ {
1454
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1455
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1456
+ { LLM_TENSOR_OUTPUT, "output" },
1457
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1458
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1459
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
1460
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
1461
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1462
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1463
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
1464
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1465
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1466
+ },
1467
+ },
1468
+ {
1469
+ LLM_ARCH_GRANITE_MOE,
1470
+ {
1471
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1472
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1473
+ { LLM_TENSOR_OUTPUT, "output" },
1474
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1475
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1476
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
1477
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
1478
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1479
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1480
+ { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },
1481
+ { LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" },
1482
+ { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },
1483
+ { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },
1484
+ { LLM_TENSOR_FFN_GATE_SHEXP, "blk.%d.ffn_gate_shexp" },
1485
+ { LLM_TENSOR_FFN_DOWN_SHEXP, "blk.%d.ffn_down_shexp" },
1486
+ { LLM_TENSOR_FFN_UP_SHEXP, "blk.%d.ffn_up_shexp" },
1487
+ },
1488
+ },
1489
+ {
1490
+ LLM_ARCH_CHAMELEON,
1491
+ {
1492
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1493
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1494
+ { LLM_TENSOR_OUTPUT, "output" },
1495
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1496
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1497
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
1498
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
1499
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1500
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1501
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
1502
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1503
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1504
+ { LLM_TENSOR_ATTN_Q_NORM, "blk.%d.attn_q_norm" },
1505
+ { LLM_TENSOR_ATTN_K_NORM, "blk.%d.attn_k_norm" },
1506
+ },
1507
+ },
1508
+ {
1509
+ LLM_ARCH_WAVTOKENIZER_DEC,
1510
+ {
1511
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1512
+ { LLM_TENSOR_TOKEN_EMBD_NORM, "token_embd_norm" },
1513
+ { LLM_TENSOR_CONV1D, "conv1d" },
1514
+ { LLM_TENSOR_CONVNEXT_DW, "convnext.%d.dw" },
1515
+ { LLM_TENSOR_CONVNEXT_NORM, "convnext.%d.norm" },
1516
+ { LLM_TENSOR_CONVNEXT_PW1, "convnext.%d.pw1" },
1517
+ { LLM_TENSOR_CONVNEXT_PW2, "convnext.%d.pw2" },
1518
+ { LLM_TENSOR_CONVNEXT_GAMMA, "convnext.%d.gamma" },
1519
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1520
+ { LLM_TENSOR_OUTPUT, "output" },
1521
+ { LLM_TENSOR_POS_NET_CONV1, "posnet.%d.conv1" },
1522
+ { LLM_TENSOR_POS_NET_CONV2, "posnet.%d.conv2" },
1523
+ { LLM_TENSOR_POS_NET_NORM, "posnet.%d.norm" },
1524
+ { LLM_TENSOR_POS_NET_NORM1, "posnet.%d.norm1" },
1525
+ { LLM_TENSOR_POS_NET_NORM2, "posnet.%d.norm2" },
1526
+ { LLM_TENSOR_POS_NET_ATTN_NORM, "posnet.%d.attn_norm" },
1527
+ { LLM_TENSOR_POS_NET_ATTN_Q, "posnet.%d.attn_q" },
1528
+ { LLM_TENSOR_POS_NET_ATTN_K, "posnet.%d.attn_k" },
1529
+ { LLM_TENSOR_POS_NET_ATTN_V, "posnet.%d.attn_v" },
1530
+ { LLM_TENSOR_POS_NET_ATTN_OUT, "posnet.%d.attn_output" },
1531
+ },
1532
+ },
1533
+ {
1534
+ LLM_ARCH_BAILINGMOE,
1535
+ {
1536
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1537
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1538
+ { LLM_TENSOR_OUTPUT, "output" },
1539
+ { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },
1540
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1541
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1542
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
1543
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
1544
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1545
+ { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },
1546
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1547
+ { LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" },
1548
+ { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },
1549
+ { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },
1550
+ { LLM_TENSOR_FFN_GATE_INP_SHEXP, "blk.%d.ffn_gate_inp_shexp" },
1551
+ { LLM_TENSOR_FFN_GATE_SHEXP, "blk.%d.ffn_gate_shexp" },
1552
+ { LLM_TENSOR_FFN_DOWN_SHEXP, "blk.%d.ffn_down_shexp" },
1553
+ { LLM_TENSOR_FFN_UP_SHEXP, "blk.%d.ffn_up_shexp" },
1554
+ },
1555
+ },
1556
+ {
1557
+ LLM_ARCH_UNKNOWN,
1558
+ {
1559
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1560
+ },
1561
+ },
1562
+ };
1563
+
1564
+ static const std::map<llm_tensor, llm_tensor_info> LLM_TENSOR_INFOS = {
1565
+ {LLM_TENSOR_TOKEN_EMBD, {LLM_TENSOR_LAYER_INPUT, GGML_OP_GET_ROWS}},
1566
+ {LLM_TENSOR_POS_EMBD, {LLM_TENSOR_LAYER_INPUT, GGML_OP_GET_ROWS}},
1567
+ {LLM_TENSOR_TOKEN_EMBD_NORM, {LLM_TENSOR_LAYER_INPUT, GGML_OP_GET_ROWS}},
1568
+ {LLM_TENSOR_TOKEN_TYPES, {LLM_TENSOR_LAYER_INPUT, GGML_OP_GET_ROWS}},
1569
+ {LLM_TENSOR_OUTPUT, {LLM_TENSOR_LAYER_OUTPUT, GGML_OP_MUL_MAT}},
1570
+ {LLM_TENSOR_CLS, {LLM_TENSOR_LAYER_OUTPUT, GGML_OP_MUL_MAT}},
1571
+ {LLM_TENSOR_CLS_OUT, {LLM_TENSOR_LAYER_OUTPUT, GGML_OP_MUL_MAT}},
1572
+ {LLM_TENSOR_OUTPUT_NORM, {LLM_TENSOR_LAYER_OUTPUT, GGML_OP_MUL}},
1573
+ {LLM_TENSOR_DEC_OUTPUT_NORM, {LLM_TENSOR_LAYER_OUTPUT, GGML_OP_MUL}},
1574
+ {LLM_TENSOR_ENC_OUTPUT_NORM, {LLM_TENSOR_LAYER_OUTPUT, GGML_OP_MUL}},
1575
+ {LLM_TENSOR_ROPE_FREQS, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_ROPE}},
1576
+ {LLM_TENSOR_ROPE_FACTORS_LONG, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_ROPE}},
1577
+ {LLM_TENSOR_ROPE_FACTORS_SHORT, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_ROPE}},
1578
+ {LLM_TENSOR_ATTN_Q, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1579
+ {LLM_TENSOR_ATTN_K, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1580
+ {LLM_TENSOR_ATTN_V, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1581
+ {LLM_TENSOR_ATTN_QKV, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1582
+ {LLM_TENSOR_ATTN_OUT, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1583
+ {LLM_TENSOR_FFN_GATE, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1584
+ {LLM_TENSOR_FFN_DOWN, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1585
+ {LLM_TENSOR_FFN_UP, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1586
+ {LLM_TENSOR_FFN_DOWN_SHEXP, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1587
+ {LLM_TENSOR_FFN_GATE_SHEXP, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1588
+ {LLM_TENSOR_FFN_UP_SHEXP, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1589
+ {LLM_TENSOR_ATTN_Q_A, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1590
+ {LLM_TENSOR_ATTN_Q_B, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1591
+ {LLM_TENSOR_ATTN_KV_A_MQA, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1592
+ {LLM_TENSOR_ATTN_KV_B, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1593
+ {LLM_TENSOR_ATTN_K_B, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1594
+ {LLM_TENSOR_ATTN_V_B, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1595
+ {LLM_TENSOR_DEC_ATTN_Q, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1596
+ {LLM_TENSOR_DEC_ATTN_K, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1597
+ {LLM_TENSOR_DEC_ATTN_V, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1598
+ {LLM_TENSOR_DEC_ATTN_OUT, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1599
+ {LLM_TENSOR_DEC_CROSS_ATTN_Q, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1600
+ {LLM_TENSOR_DEC_CROSS_ATTN_K, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1601
+ {LLM_TENSOR_DEC_CROSS_ATTN_V, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1602
+ {LLM_TENSOR_DEC_CROSS_ATTN_OUT, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1603
+ {LLM_TENSOR_DEC_FFN_GATE, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1604
+ {LLM_TENSOR_DEC_FFN_DOWN, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1605
+ {LLM_TENSOR_DEC_FFN_UP, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1606
+ {LLM_TENSOR_ENC_ATTN_Q, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1607
+ {LLM_TENSOR_ENC_ATTN_K, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1608
+ {LLM_TENSOR_ENC_ATTN_V, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1609
+ {LLM_TENSOR_ENC_ATTN_OUT, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1610
+ {LLM_TENSOR_ENC_FFN_GATE, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1611
+ {LLM_TENSOR_ENC_FFN_DOWN, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1612
+ {LLM_TENSOR_ENC_FFN_UP, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1613
+ {LLM_TENSOR_FFN_GATE_INP_SHEXP, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1614
+ {LLM_TENSOR_FFN_GATE_INP, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1615
+ {LLM_TENSOR_SSM_IN, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1616
+ {LLM_TENSOR_SSM_X, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1617
+ {LLM_TENSOR_SSM_DT, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1618
+ {LLM_TENSOR_SSM_OUT, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1619
+ {LLM_TENSOR_TIME_MIX_W1, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1620
+ {LLM_TENSOR_TIME_MIX_W2, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1621
+ {LLM_TENSOR_TIME_MIX_A1, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1622
+ {LLM_TENSOR_TIME_MIX_A2, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1623
+ {LLM_TENSOR_TIME_MIX_V1, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1624
+ {LLM_TENSOR_TIME_MIX_V2, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1625
+ {LLM_TENSOR_TIME_MIX_G1, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1626
+ {LLM_TENSOR_TIME_MIX_G2, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1627
+ {LLM_TENSOR_TIME_MIX_DECAY_W1, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1628
+ {LLM_TENSOR_TIME_MIX_DECAY_W2, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1629
+ {LLM_TENSOR_TIME_MIX_KEY, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1630
+ {LLM_TENSOR_TIME_MIX_VALUE, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1631
+ {LLM_TENSOR_TIME_MIX_RECEPTANCE, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1632
+ {LLM_TENSOR_TIME_MIX_GATE, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1633
+ {LLM_TENSOR_TIME_MIX_OUTPUT, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1634
+ {LLM_TENSOR_CHANNEL_MIX_KEY, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1635
+ {LLM_TENSOR_CHANNEL_MIX_RECEPTANCE, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1636
+ {LLM_TENSOR_CHANNEL_MIX_VALUE, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1637
+ {LLM_TENSOR_FFN_ACT, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_DIV}},
1638
+ {LLM_TENSOR_SSM_CONV1D, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_SSM_CONV}},
1639
+ {LLM_TENSOR_SSM_A, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_SSM_SCAN}},
1640
+ {LLM_TENSOR_SSM_D, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
1641
+ {LLM_TENSOR_TIME_MIX_LERP_X, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
1642
+ {LLM_TENSOR_TIME_MIX_LN, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
1643
+ {LLM_TENSOR_CHANNEL_MIX_LERP_K, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
1644
+ {LLM_TENSOR_CHANNEL_MIX_LERP_R, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
1645
+ {LLM_TENSOR_TIME_MIX_K_K, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
1646
+ {LLM_TENSOR_TIME_MIX_K_A, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
1647
+ {LLM_TENSOR_TIME_MIX_R_K, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
1648
+ {LLM_TENSOR_TIME_MIX_LERP_W, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_ADD}},
1649
+ {LLM_TENSOR_TIME_MIX_LERP_K, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_ADD}},
1650
+ {LLM_TENSOR_TIME_MIX_LERP_V, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_ADD}},
1651
+ {LLM_TENSOR_TIME_MIX_LERP_R, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_ADD}},
1652
+ {LLM_TENSOR_TIME_MIX_LERP_G, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_ADD}},
1653
+ {LLM_TENSOR_TIME_MIX_LERP_FUSED, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_ADD}},
1654
+ {LLM_TENSOR_TIME_MIX_DECAY, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_ADD}},
1655
+ {LLM_TENSOR_TIME_MIX_W0, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_ADD}},
1656
+ {LLM_TENSOR_TIME_MIX_A0, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_ADD}},
1657
+ {LLM_TENSOR_TIME_MIX_V0, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_ADD}},
1658
+ {LLM_TENSOR_TIME_MIX_FIRST, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_RWKV_WKV6}},
1659
+ {LLM_TENSOR_ATTN_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
1660
+ {LLM_TENSOR_ATTN_NORM_2, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
1661
+ {LLM_TENSOR_ATTN_OUT_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
1662
+ {LLM_TENSOR_ATTN_POST_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
1663
+ {LLM_TENSOR_FFN_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
1664
+ {LLM_TENSOR_FFN_POST_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
1665
+ {LLM_TENSOR_FFN_NORM_EXPS, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
1666
+ {LLM_TENSOR_ATTN_Q_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
1667
+ {LLM_TENSOR_ATTN_K_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
1668
+ {LLM_TENSOR_LAYER_OUT_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
1669
+ {LLM_TENSOR_ATTN_Q_A_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
1670
+ {LLM_TENSOR_ATTN_KV_A_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
1671
+ {LLM_TENSOR_ATTN_SUB_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
1672
+ {LLM_TENSOR_FFN_SUB_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
1673
+ {LLM_TENSOR_DEC_ATTN_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
1674
+ {LLM_TENSOR_DEC_CROSS_ATTN_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
1675
+ {LLM_TENSOR_DEC_FFN_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
1676
+ {LLM_TENSOR_ENC_ATTN_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
1677
+ {LLM_TENSOR_ENC_FFN_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
1678
+ {LLM_TENSOR_DEC_ATTN_REL_B, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_GET_ROWS}},
1679
+ {LLM_TENSOR_ENC_ATTN_REL_B, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_GET_ROWS}},
1680
+ {LLM_TENSOR_FFN_DOWN_EXPS, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT_ID}},
1681
+ {LLM_TENSOR_FFN_GATE_EXPS, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT_ID}},
1682
+ {LLM_TENSOR_FFN_UP_EXPS, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT_ID}},
1683
+ {LLM_TENSOR_FFN_EXP_PROBS_B, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_ADD}},
1684
+ // this tensor is loaded for T5, but never used
1685
+ {LLM_TENSOR_DEC_CROSS_ATTN_REL_B, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_NONE}},
1686
+ {LLM_TENSOR_CONV1D, {LLM_TENSOR_LAYER_INPUT, GGML_OP_IM2COL}},
1687
+ {LLM_TENSOR_POS_NET_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
1688
+ {LLM_TENSOR_POS_NET_NORM1, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
1689
+ {LLM_TENSOR_POS_NET_NORM2, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
1690
+ {LLM_TENSOR_POS_NET_CONV1, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_IM2COL}},
1691
+ {LLM_TENSOR_POS_NET_CONV2, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_IM2COL}},
1692
+ {LLM_TENSOR_POS_NET_ATTN_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
1693
+ {LLM_TENSOR_POS_NET_ATTN_Q, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1694
+ {LLM_TENSOR_POS_NET_ATTN_K, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1695
+ {LLM_TENSOR_POS_NET_ATTN_V, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1696
+ {LLM_TENSOR_POS_NET_ATTN_OUT, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1697
+ {LLM_TENSOR_CONVNEXT_DW, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_IM2COL}},
1698
+ {LLM_TENSOR_CONVNEXT_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
1699
+ {LLM_TENSOR_CONVNEXT_PW1, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1700
+ {LLM_TENSOR_CONVNEXT_PW2, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
1701
+ {LLM_TENSOR_CONVNEXT_GAMMA, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
1702
+ };
1703
+
1704
+ LLM_KV::LLM_KV(llm_arch arch, const char * suffix) : arch(arch), suffix(suffix) {}
1705
+
1706
+ std::string LLM_KV::operator()(llm_kv kv) const {
1707
+ return suffix ? ::format(LLM_KV_NAMES.at(kv), LLM_ARCH_NAMES.at(arch), suffix)
1708
+ : ::format(LLM_KV_NAMES.at(kv), LLM_ARCH_NAMES.at(arch));
1709
+ }
1710
+
1711
+ std::string LLM_TN_IMPL::str() const {
1712
+ if (LLM_TENSOR_NAMES.at(arch).find(tensor) == LLM_TENSOR_NAMES.at(arch).end()) {
1713
+ return "__missing__";
1714
+ }
1715
+
1716
+ std::string name = ::format(LLM_TENSOR_NAMES.at(arch).at(tensor), bid, xid);
1717
+
1718
+ if (suffix != nullptr) {
1719
+ name += ".";
1720
+ name += suffix;
1721
+ }
1722
+
1723
+ return name;
1724
+ }
1725
+
1726
+ const char * llm_arch_name(llm_arch arch) {
1727
+ auto it = LLM_ARCH_NAMES.find(arch);
1728
+ if (it == LLM_ARCH_NAMES.end()) {
1729
+ return "unknown";
1730
+ }
1731
+ return it->second;
1732
+ }
1733
+
1734
+ llm_arch llm_arch_from_string(const std::string & name) {
1735
+ for (const auto & kv : LLM_ARCH_NAMES) { // NOLINT
1736
+ if (kv.second == name) {
1737
+ return kv.first;
1738
+ }
1739
+ }
1740
+
1741
+ return LLM_ARCH_UNKNOWN;
1742
+ }
1743
+
1744
+ const llm_tensor_info & llm_tensor_info_for(llm_tensor tensor) {
1745
+ return LLM_TENSOR_INFOS.at(tensor);
1746
+ }