local-llm-rn 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (626) hide show
  1. package/cpp/CMakeLists.txt +285 -0
  2. package/cpp/common/CMakeLists.txt +149 -0
  3. package/cpp/common/arg.cpp +3799 -0
  4. package/cpp/common/arg.h +131 -0
  5. package/cpp/common/base64.hpp +392 -0
  6. package/cpp/common/build-info.cpp.in +4 -0
  7. package/cpp/common/chat-parser-xml-toolcall.cpp +879 -0
  8. package/cpp/common/chat-parser-xml-toolcall.h +45 -0
  9. package/cpp/common/chat-parser.cpp +1649 -0
  10. package/cpp/common/chat-parser.h +133 -0
  11. package/cpp/common/chat-peg-parser.cpp +124 -0
  12. package/cpp/common/chat-peg-parser.h +105 -0
  13. package/cpp/common/chat.cpp +3355 -0
  14. package/cpp/common/chat.h +252 -0
  15. package/cpp/common/common.cpp +1824 -0
  16. package/cpp/common/common.h +930 -0
  17. package/cpp/common/console.cpp +1137 -0
  18. package/cpp/common/console.h +41 -0
  19. package/cpp/common/debug.cpp +167 -0
  20. package/cpp/common/debug.h +43 -0
  21. package/cpp/common/download.cpp +792 -0
  22. package/cpp/common/download.h +84 -0
  23. package/cpp/common/http.h +84 -0
  24. package/cpp/common/jinja/README.md +88 -0
  25. package/cpp/common/jinja/caps.cpp +285 -0
  26. package/cpp/common/jinja/caps.h +30 -0
  27. package/cpp/common/jinja/lexer.cpp +341 -0
  28. package/cpp/common/jinja/lexer.h +157 -0
  29. package/cpp/common/jinja/parser.cpp +591 -0
  30. package/cpp/common/jinja/parser.h +21 -0
  31. package/cpp/common/jinja/runtime.cpp +867 -0
  32. package/cpp/common/jinja/runtime.h +638 -0
  33. package/cpp/common/jinja/string.cpp +213 -0
  34. package/cpp/common/jinja/string.h +61 -0
  35. package/cpp/common/jinja/utils.h +149 -0
  36. package/cpp/common/jinja/value.cpp +1393 -0
  37. package/cpp/common/jinja/value.h +756 -0
  38. package/cpp/common/json-partial.cpp +324 -0
  39. package/cpp/common/json-partial.h +39 -0
  40. package/cpp/common/json-schema-to-grammar.cpp +1153 -0
  41. package/cpp/common/json-schema-to-grammar.h +43 -0
  42. package/cpp/common/llguidance.cpp +258 -0
  43. package/cpp/common/log.cpp +446 -0
  44. package/cpp/common/log.h +119 -0
  45. package/cpp/common/ngram-cache.cpp +285 -0
  46. package/cpp/common/ngram-cache.h +101 -0
  47. package/cpp/common/ngram-map.cpp +530 -0
  48. package/cpp/common/ngram-map.h +115 -0
  49. package/cpp/common/ngram-mod.cpp +60 -0
  50. package/cpp/common/ngram-mod.h +38 -0
  51. package/cpp/common/peg-parser.cpp +1712 -0
  52. package/cpp/common/peg-parser.h +459 -0
  53. package/cpp/common/preset.cpp +483 -0
  54. package/cpp/common/preset.h +83 -0
  55. package/cpp/common/regex-partial.cpp +204 -0
  56. package/cpp/common/regex-partial.h +56 -0
  57. package/cpp/common/sampling.cpp +745 -0
  58. package/cpp/common/sampling.h +119 -0
  59. package/cpp/common/speculative.cpp +1074 -0
  60. package/cpp/common/speculative.h +41 -0
  61. package/cpp/common/unicode.cpp +64 -0
  62. package/cpp/common/unicode.h +22 -0
  63. package/cpp/ggml/CMakeLists.txt +494 -0
  64. package/cpp/ggml/cmake/GitVars.cmake +22 -0
  65. package/cpp/ggml/cmake/common.cmake +50 -0
  66. package/cpp/ggml/cmake/ggml-config.cmake.in +191 -0
  67. package/cpp/ggml/include/ggml-alloc.h +85 -0
  68. package/cpp/ggml/include/ggml-backend.h +373 -0
  69. package/cpp/ggml/include/ggml-blas.h +25 -0
  70. package/cpp/ggml/include/ggml-cann.h +123 -0
  71. package/cpp/ggml/include/ggml-cpp.h +39 -0
  72. package/cpp/ggml/include/ggml-cpu.h +151 -0
  73. package/cpp/ggml/include/ggml-cuda.h +47 -0
  74. package/cpp/ggml/include/ggml-hexagon.h +19 -0
  75. package/cpp/ggml/include/ggml-metal.h +61 -0
  76. package/cpp/ggml/include/ggml-opencl.h +26 -0
  77. package/cpp/ggml/include/ggml-opt.h +256 -0
  78. package/cpp/ggml/include/ggml-rpc.h +30 -0
  79. package/cpp/ggml/include/ggml-sycl.h +49 -0
  80. package/cpp/ggml/include/ggml-virtgpu.h +14 -0
  81. package/cpp/ggml/include/ggml-vulkan.h +29 -0
  82. package/cpp/ggml/include/ggml-webgpu.h +19 -0
  83. package/cpp/ggml/include/ggml-zdnn.h +17 -0
  84. package/cpp/ggml/include/ggml-zendnn.h +22 -0
  85. package/cpp/ggml/include/ggml.h +2753 -0
  86. package/cpp/ggml/include/gguf.h +204 -0
  87. package/cpp/ggml/src/CMakeLists.txt +492 -0
  88. package/cpp/ggml/src/ggml-alloc.c +1244 -0
  89. package/cpp/ggml/src/ggml-backend-dl.cpp +48 -0
  90. package/cpp/ggml/src/ggml-backend-dl.h +45 -0
  91. package/cpp/ggml/src/ggml-backend-impl.h +255 -0
  92. package/cpp/ggml/src/ggml-backend-reg.cpp +566 -0
  93. package/cpp/ggml/src/ggml-backend.cpp +2270 -0
  94. package/cpp/ggml/src/ggml-blas/CMakeLists.txt +101 -0
  95. package/cpp/ggml/src/ggml-blas/ggml-blas.cpp +518 -0
  96. package/cpp/ggml/src/ggml-common.h +1878 -0
  97. package/cpp/ggml/src/ggml-cpu/CMakeLists.txt +691 -0
  98. package/cpp/ggml/src/ggml-cpu/amx/amx.cpp +247 -0
  99. package/cpp/ggml/src/ggml-cpu/amx/amx.h +8 -0
  100. package/cpp/ggml/src/ggml-cpu/amx/common.h +91 -0
  101. package/cpp/ggml/src/ggml-cpu/amx/mmq.cpp +2512 -0
  102. package/cpp/ggml/src/ggml-cpu/amx/mmq.h +10 -0
  103. package/cpp/ggml/src/ggml-cpu/arch/arm/cpu-feats.cpp +98 -0
  104. package/cpp/ggml/src/ggml-cpu/arch/arm/quants.c +4052 -0
  105. package/cpp/ggml/src/ggml-cpu/arch/arm/repack.cpp +4935 -0
  106. package/cpp/ggml/src/ggml-cpu/arch/loongarch/quants.c +2159 -0
  107. package/cpp/ggml/src/ggml-cpu/arch/powerpc/cpu-feats.cpp +82 -0
  108. package/cpp/ggml/src/ggml-cpu/arch/powerpc/quants.c +2305 -0
  109. package/cpp/ggml/src/ggml-cpu/arch/riscv/cpu-feats.cpp +38 -0
  110. package/cpp/ggml/src/ggml-cpu/arch/riscv/quants.c +2726 -0
  111. package/cpp/ggml/src/ggml-cpu/arch/riscv/repack.cpp +342 -0
  112. package/cpp/ggml/src/ggml-cpu/arch/s390/cpu-feats.cpp +50 -0
  113. package/cpp/ggml/src/ggml-cpu/arch/s390/quants.c +1468 -0
  114. package/cpp/ggml/src/ggml-cpu/arch/wasm/quants.c +1221 -0
  115. package/cpp/ggml/src/ggml-cpu/arch/x86/cpu-feats.cpp +327 -0
  116. package/cpp/ggml/src/ggml-cpu/arch/x86/quants.c +3820 -0
  117. package/cpp/ggml/src/ggml-cpu/arch/x86/repack.cpp +6307 -0
  118. package/cpp/ggml/src/ggml-cpu/arch-fallback.h +313 -0
  119. package/cpp/ggml/src/ggml-cpu/binary-ops.cpp +154 -0
  120. package/cpp/ggml/src/ggml-cpu/binary-ops.h +16 -0
  121. package/cpp/ggml/src/ggml-cpu/cmake/FindSIMD.cmake +100 -0
  122. package/cpp/ggml/src/ggml-cpu/common.h +95 -0
  123. package/cpp/ggml/src/ggml-cpu/ggml-cpu-impl.h +529 -0
  124. package/cpp/ggml/src/ggml-cpu/ggml-cpu.c +3734 -0
  125. package/cpp/ggml/src/ggml-cpu/ggml-cpu.cpp +701 -0
  126. package/cpp/ggml/src/ggml-cpu/hbm.cpp +55 -0
  127. package/cpp/ggml/src/ggml-cpu/hbm.h +8 -0
  128. package/cpp/ggml/src/ggml-cpu/kleidiai/kernels.cpp +938 -0
  129. package/cpp/ggml/src/ggml-cpu/kleidiai/kernels.h +90 -0
  130. package/cpp/ggml/src/ggml-cpu/kleidiai/kleidiai.cpp +798 -0
  131. package/cpp/ggml/src/ggml-cpu/kleidiai/kleidiai.h +17 -0
  132. package/cpp/ggml/src/ggml-cpu/llamafile/sgemm.cpp +4033 -0
  133. package/cpp/ggml/src/ggml-cpu/llamafile/sgemm.h +25 -0
  134. package/cpp/ggml/src/ggml-cpu/ops.cpp +10978 -0
  135. package/cpp/ggml/src/ggml-cpu/ops.h +116 -0
  136. package/cpp/ggml/src/ggml-cpu/quants.c +1193 -0
  137. package/cpp/ggml/src/ggml-cpu/quants.h +97 -0
  138. package/cpp/ggml/src/ggml-cpu/repack.cpp +3316 -0
  139. package/cpp/ggml/src/ggml-cpu/repack.h +173 -0
  140. package/cpp/ggml/src/ggml-cpu/simd-gemm.h +136 -0
  141. package/cpp/ggml/src/ggml-cpu/simd-mappings.h +1279 -0
  142. package/cpp/ggml/src/ggml-cpu/spacemit/ime.cpp +1025 -0
  143. package/cpp/ggml/src/ggml-cpu/spacemit/ime.h +13 -0
  144. package/cpp/ggml/src/ggml-cpu/spacemit/ime1_kernels.cpp +3196 -0
  145. package/cpp/ggml/src/ggml-cpu/spacemit/ime_kernels.h +26 -0
  146. package/cpp/ggml/src/ggml-cpu/traits.cpp +36 -0
  147. package/cpp/ggml/src/ggml-cpu/traits.h +38 -0
  148. package/cpp/ggml/src/ggml-cpu/unary-ops.cpp +337 -0
  149. package/cpp/ggml/src/ggml-cpu/unary-ops.h +35 -0
  150. package/cpp/ggml/src/ggml-cpu/vec.cpp +629 -0
  151. package/cpp/ggml/src/ggml-cpu/vec.h +1585 -0
  152. package/cpp/ggml/src/ggml-hexagon/CMakeLists.txt +117 -0
  153. package/cpp/ggml/src/ggml-hexagon/ggml-hexagon.cpp +3232 -0
  154. package/cpp/ggml/src/ggml-hexagon/htp/CMakeLists.txt +45 -0
  155. package/cpp/ggml/src/ggml-hexagon/htp/act-ops.c +815 -0
  156. package/cpp/ggml/src/ggml-hexagon/htp/argsort-ops.c +281 -0
  157. package/cpp/ggml/src/ggml-hexagon/htp/binary-ops.c +827 -0
  158. package/cpp/ggml/src/ggml-hexagon/htp/cmake-toolchain.cmake +157 -0
  159. package/cpp/ggml/src/ggml-hexagon/htp/cpy-ops.c +251 -0
  160. package/cpp/ggml/src/ggml-hexagon/htp/flash-attn-ops.c +666 -0
  161. package/cpp/ggml/src/ggml-hexagon/htp/get-rows-ops.c +111 -0
  162. package/cpp/ggml/src/ggml-hexagon/htp/hex-dma.c +63 -0
  163. package/cpp/ggml/src/ggml-hexagon/htp/hex-dma.h +182 -0
  164. package/cpp/ggml/src/ggml-hexagon/htp/hex-dump.h +77 -0
  165. package/cpp/ggml/src/ggml-hexagon/htp/hex-fastdiv.h +37 -0
  166. package/cpp/ggml/src/ggml-hexagon/htp/hex-utils.h +51 -0
  167. package/cpp/ggml/src/ggml-hexagon/htp/htp-ctx.h +35 -0
  168. package/cpp/ggml/src/ggml-hexagon/htp/htp-msg.h +154 -0
  169. package/cpp/ggml/src/ggml-hexagon/htp/htp-ops.h +65 -0
  170. package/cpp/ggml/src/ggml-hexagon/htp/htp_iface.idl +16 -0
  171. package/cpp/ggml/src/ggml-hexagon/htp/hvx-arith.h +470 -0
  172. package/cpp/ggml/src/ggml-hexagon/htp/hvx-base.h +173 -0
  173. package/cpp/ggml/src/ggml-hexagon/htp/hvx-copy.h +245 -0
  174. package/cpp/ggml/src/ggml-hexagon/htp/hvx-div.h +116 -0
  175. package/cpp/ggml/src/ggml-hexagon/htp/hvx-dump.h +129 -0
  176. package/cpp/ggml/src/ggml-hexagon/htp/hvx-exp.h +215 -0
  177. package/cpp/ggml/src/ggml-hexagon/htp/hvx-floor.h +100 -0
  178. package/cpp/ggml/src/ggml-hexagon/htp/hvx-inverse.h +176 -0
  179. package/cpp/ggml/src/ggml-hexagon/htp/hvx-reduce.h +266 -0
  180. package/cpp/ggml/src/ggml-hexagon/htp/hvx-scale.h +133 -0
  181. package/cpp/ggml/src/ggml-hexagon/htp/hvx-sigmoid.h +141 -0
  182. package/cpp/ggml/src/ggml-hexagon/htp/hvx-sqrt.h +126 -0
  183. package/cpp/ggml/src/ggml-hexagon/htp/hvx-types.h +36 -0
  184. package/cpp/ggml/src/ggml-hexagon/htp/hvx-utils.h +18 -0
  185. package/cpp/ggml/src/ggml-hexagon/htp/main.c +1150 -0
  186. package/cpp/ggml/src/ggml-hexagon/htp/matmul-ops.c +2595 -0
  187. package/cpp/ggml/src/ggml-hexagon/htp/rope-ops.c +498 -0
  188. package/cpp/ggml/src/ggml-hexagon/htp/set-rows-ops.c +167 -0
  189. package/cpp/ggml/src/ggml-hexagon/htp/softmax-ops.c +421 -0
  190. package/cpp/ggml/src/ggml-hexagon/htp/sum-rows-ops.c +130 -0
  191. package/cpp/ggml/src/ggml-hexagon/htp/unary-ops.c +384 -0
  192. package/cpp/ggml/src/ggml-hexagon/htp/worker-pool.c +293 -0
  193. package/cpp/ggml/src/ggml-hexagon/htp/worker-pool.h +57 -0
  194. package/cpp/ggml/src/ggml-hexagon/htp-drv.cpp +418 -0
  195. package/cpp/ggml/src/ggml-hexagon/htp-drv.h +121 -0
  196. package/cpp/ggml/src/ggml-hexagon/libdl.h +79 -0
  197. package/cpp/ggml/src/ggml-hexagon/libggml-htp.inf +38 -0
  198. package/cpp/ggml/src/ggml-hexagon/op-desc.h +153 -0
  199. package/cpp/ggml/src/ggml-impl.h +724 -0
  200. package/cpp/ggml/src/ggml-metal/CMakeLists.txt +124 -0
  201. package/cpp/ggml/src/ggml-metal/ggml-metal-common.cpp +457 -0
  202. package/cpp/ggml/src/ggml-metal/ggml-metal-common.h +52 -0
  203. package/cpp/ggml/src/ggml-metal/ggml-metal-context.h +41 -0
  204. package/cpp/ggml/src/ggml-metal/ggml-metal-context.m +702 -0
  205. package/cpp/ggml/src/ggml-metal/ggml-metal-device.cpp +1890 -0
  206. package/cpp/ggml/src/ggml-metal/ggml-metal-device.h +290 -0
  207. package/cpp/ggml/src/ggml-metal/ggml-metal-device.m +1749 -0
  208. package/cpp/ggml/src/ggml-metal/ggml-metal-impl.h +1054 -0
  209. package/cpp/ggml/src/ggml-metal/ggml-metal-ops.cpp +4370 -0
  210. package/cpp/ggml/src/ggml-metal/ggml-metal-ops.h +94 -0
  211. package/cpp/ggml/src/ggml-metal/ggml-metal.cpp +937 -0
  212. package/cpp/ggml/src/ggml-metal/ggml-metal.metal +9819 -0
  213. package/cpp/ggml/src/ggml-musa/CMakeLists.txt +125 -0
  214. package/cpp/ggml/src/ggml-musa/mudnn.cu +112 -0
  215. package/cpp/ggml/src/ggml-musa/mudnn.cuh +12 -0
  216. package/cpp/ggml/src/ggml-opencl/CMakeLists.txt +150 -0
  217. package/cpp/ggml/src/ggml-opencl/ggml-opencl.cpp +11553 -0
  218. package/cpp/ggml/src/ggml-opencl/kernels/add.cl +190 -0
  219. package/cpp/ggml/src/ggml-opencl/kernels/add_id.cl +42 -0
  220. package/cpp/ggml/src/ggml-opencl/kernels/argsort.cl +86 -0
  221. package/cpp/ggml/src/ggml-opencl/kernels/clamp.cl +20 -0
  222. package/cpp/ggml/src/ggml-opencl/kernels/concat.cl +51 -0
  223. package/cpp/ggml/src/ggml-opencl/kernels/conv2d.cl +185 -0
  224. package/cpp/ggml/src/ggml-opencl/kernels/conv2d_f16_f32.cl +176 -0
  225. package/cpp/ggml/src/ggml-opencl/kernels/cpy.cl +184 -0
  226. package/cpp/ggml/src/ggml-opencl/kernels/cvt.cl +417 -0
  227. package/cpp/ggml/src/ggml-opencl/kernels/diag_mask_inf.cl +58 -0
  228. package/cpp/ggml/src/ggml-opencl/kernels/div.cl +138 -0
  229. package/cpp/ggml/src/ggml-opencl/kernels/embed_kernel.py +26 -0
  230. package/cpp/ggml/src/ggml-opencl/kernels/expm1.cl +113 -0
  231. package/cpp/ggml/src/ggml-opencl/kernels/fill.cl +17 -0
  232. package/cpp/ggml/src/ggml-opencl/kernels/flash_attn_f16.cl +370 -0
  233. package/cpp/ggml/src/ggml-opencl/kernels/flash_attn_f32.cl +371 -0
  234. package/cpp/ggml/src/ggml-opencl/kernels/flash_attn_f32_f16.cl +373 -0
  235. package/cpp/ggml/src/ggml-opencl/kernels/gelu.cl +89 -0
  236. package/cpp/ggml/src/ggml-opencl/kernels/gemm_moe_mxfp4_f32.cl +162 -0
  237. package/cpp/ggml/src/ggml-opencl/kernels/gemv_moe_mxfp4_f32.cl +156 -0
  238. package/cpp/ggml/src/ggml-opencl/kernels/gemv_noshuffle.cl +268 -0
  239. package/cpp/ggml/src/ggml-opencl/kernels/gemv_noshuffle_general.cl +274 -0
  240. package/cpp/ggml/src/ggml-opencl/kernels/gemv_noshuffle_general_q8_0_f32.cl +195 -0
  241. package/cpp/ggml/src/ggml-opencl/kernels/get_rows.cl +187 -0
  242. package/cpp/ggml/src/ggml-opencl/kernels/glu.cl +378 -0
  243. package/cpp/ggml/src/ggml-opencl/kernels/group_norm.cl +121 -0
  244. package/cpp/ggml/src/ggml-opencl/kernels/im2col_f16.cl +57 -0
  245. package/cpp/ggml/src/ggml-opencl/kernels/im2col_f32.cl +57 -0
  246. package/cpp/ggml/src/ggml-opencl/kernels/mean.cl +140 -0
  247. package/cpp/ggml/src/ggml-opencl/kernels/mul.cl +152 -0
  248. package/cpp/ggml/src/ggml-opencl/kernels/mul_mat_Ab_Bi_8x4.cl +139 -0
  249. package/cpp/ggml/src/ggml-opencl/kernels/mul_mat_f16_f32.cl +130 -0
  250. package/cpp/ggml/src/ggml-opencl/kernels/mul_mm_f16_f32_kq_kqv.cl +273 -0
  251. package/cpp/ggml/src/ggml-opencl/kernels/mul_mm_f16_f32_l4_lm.cl +146 -0
  252. package/cpp/ggml/src/ggml-opencl/kernels/mul_mm_f32_f32_l4_lm.cl +147 -0
  253. package/cpp/ggml/src/ggml-opencl/kernels/mul_mm_q4_0_f32_l4_lm.cl +163 -0
  254. package/cpp/ggml/src/ggml-opencl/kernels/mul_mm_q4_1_f32_l4_lm.cl +165 -0
  255. package/cpp/ggml/src/ggml-opencl/kernels/mul_mm_q6_k_f32_l4_lm.cl +158 -0
  256. package/cpp/ggml/src/ggml-opencl/kernels/mul_mm_q8_0_f32_8x4.cl +129 -0
  257. package/cpp/ggml/src/ggml-opencl/kernels/mul_mm_q8_0_f32_l4_lm.cl +154 -0
  258. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_f16_f16.cl +118 -0
  259. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_f16_f32.cl +118 -0
  260. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_f16_f32_1row.cl +94 -0
  261. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_f16_f32_l4.cl +84 -0
  262. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_f32_f32.cl +118 -0
  263. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_id_mxfp4_f32.cl +189 -0
  264. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_id_mxfp4_f32_flat.cl +176 -0
  265. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_id_q4_0_f32_8x_flat.cl +283 -0
  266. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_id_q8_0_f32.cl +140 -0
  267. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_id_q8_0_f32_flat.cl +222 -0
  268. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_mxfp4_f32.cl +144 -0
  269. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_mxfp4_f32_flat.cl +167 -0
  270. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_q4_0_f32.cl +192 -0
  271. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_q4_0_f32_1d_16x_flat.cl +307 -0
  272. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_q4_0_f32_1d_8x_flat.cl +265 -0
  273. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_q4_0_f32_8x_flat.cl +272 -0
  274. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_q4_0_f32_v.cl +254 -0
  275. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_q4_1_f32.cl +219 -0
  276. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_q4_1_f32_flat.cl +229 -0
  277. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_q4_k_f32.cl +180 -0
  278. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_q6_k_f32.cl +194 -0
  279. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_q6_k_f32_flat.cl +194 -0
  280. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_q8_0_f32.cl +125 -0
  281. package/cpp/ggml/src/ggml-opencl/kernels/mul_mv_q8_0_f32_flat.cl +202 -0
  282. package/cpp/ggml/src/ggml-opencl/kernels/norm.cl +161 -0
  283. package/cpp/ggml/src/ggml-opencl/kernels/pad.cl +39 -0
  284. package/cpp/ggml/src/ggml-opencl/kernels/relu.cl +16 -0
  285. package/cpp/ggml/src/ggml-opencl/kernels/repeat.cl +38 -0
  286. package/cpp/ggml/src/ggml-opencl/kernels/rms_norm.cl +190 -0
  287. package/cpp/ggml/src/ggml-opencl/kernels/rope.cl +747 -0
  288. package/cpp/ggml/src/ggml-opencl/kernels/scale.cl +27 -0
  289. package/cpp/ggml/src/ggml-opencl/kernels/set_rows.cl +208 -0
  290. package/cpp/ggml/src/ggml-opencl/kernels/sigmoid.cl +29 -0
  291. package/cpp/ggml/src/ggml-opencl/kernels/silu.cl +30 -0
  292. package/cpp/ggml/src/ggml-opencl/kernels/softmax_4_f16.cl +108 -0
  293. package/cpp/ggml/src/ggml-opencl/kernels/softmax_4_f32.cl +108 -0
  294. package/cpp/ggml/src/ggml-opencl/kernels/softmax_f16.cl +107 -0
  295. package/cpp/ggml/src/ggml-opencl/kernels/softmax_f32.cl +107 -0
  296. package/cpp/ggml/src/ggml-opencl/kernels/softplus.cl +116 -0
  297. package/cpp/ggml/src/ggml-opencl/kernels/solve_tri.cl +51 -0
  298. package/cpp/ggml/src/ggml-opencl/kernels/sqr.cl +53 -0
  299. package/cpp/ggml/src/ggml-opencl/kernels/sqrt.cl +53 -0
  300. package/cpp/ggml/src/ggml-opencl/kernels/ssm_conv.cl +77 -0
  301. package/cpp/ggml/src/ggml-opencl/kernels/sub.cl +138 -0
  302. package/cpp/ggml/src/ggml-opencl/kernels/sum_rows.cl +140 -0
  303. package/cpp/ggml/src/ggml-opencl/kernels/tanh.cl +109 -0
  304. package/cpp/ggml/src/ggml-opencl/kernels/transpose.cl +117 -0
  305. package/cpp/ggml/src/ggml-opencl/kernels/tri.cl +32 -0
  306. package/cpp/ggml/src/ggml-opencl/kernels/tsembd.cl +48 -0
  307. package/cpp/ggml/src/ggml-opencl/kernels/upscale.cl +120 -0
  308. package/cpp/ggml/src/ggml-opt.cpp +1093 -0
  309. package/cpp/ggml/src/ggml-quants.c +5325 -0
  310. package/cpp/ggml/src/ggml-quants.h +106 -0
  311. package/cpp/ggml/src/ggml-rpc/CMakeLists.txt +9 -0
  312. package/cpp/ggml/src/ggml-rpc/ggml-rpc.cpp +2118 -0
  313. package/cpp/ggml/src/ggml-threading.cpp +12 -0
  314. package/cpp/ggml/src/ggml-threading.h +14 -0
  315. package/cpp/ggml/src/ggml-virtgpu/CMakeLists.txt +70 -0
  316. package/cpp/ggml/src/ggml-virtgpu/apir_cs_ggml-rpc-front.cpp +87 -0
  317. package/cpp/ggml/src/ggml-virtgpu/backend/CMakeLists.txt +21 -0
  318. package/cpp/ggml/src/ggml-virtgpu/backend/apir_cs_ggml-rpc-back.cpp +115 -0
  319. package/cpp/ggml/src/ggml-virtgpu/backend/backend-convert.h +13 -0
  320. package/cpp/ggml/src/ggml-virtgpu/backend/backend-dispatched-backend.cpp +102 -0
  321. package/cpp/ggml/src/ggml-virtgpu/backend/backend-dispatched-buffer-type.cpp +105 -0
  322. package/cpp/ggml/src/ggml-virtgpu/backend/backend-dispatched-buffer.cpp +179 -0
  323. package/cpp/ggml/src/ggml-virtgpu/backend/backend-dispatched-device.cpp +148 -0
  324. package/cpp/ggml/src/ggml-virtgpu/backend/backend-dispatched.cpp +51 -0
  325. package/cpp/ggml/src/ggml-virtgpu/backend/backend-dispatched.gen.h +73 -0
  326. package/cpp/ggml/src/ggml-virtgpu/backend/backend-dispatched.h +27 -0
  327. package/cpp/ggml/src/ggml-virtgpu/backend/backend-virgl-apir.h +32 -0
  328. package/cpp/ggml/src/ggml-virtgpu/backend/backend.cpp +144 -0
  329. package/cpp/ggml/src/ggml-virtgpu/backend/shared/api_remoting.h +95 -0
  330. package/cpp/ggml/src/ggml-virtgpu/backend/shared/apir_backend.gen.h +94 -0
  331. package/cpp/ggml/src/ggml-virtgpu/backend/shared/apir_backend.h +50 -0
  332. package/cpp/ggml/src/ggml-virtgpu/backend/shared/apir_cs.h +378 -0
  333. package/cpp/ggml/src/ggml-virtgpu/backend/shared/apir_cs_ggml.h +232 -0
  334. package/cpp/ggml/src/ggml-virtgpu/backend/shared/apir_cs_rpc.h +58 -0
  335. package/cpp/ggml/src/ggml-virtgpu/ggml-backend-buffer-type.cpp +81 -0
  336. package/cpp/ggml/src/ggml-virtgpu/ggml-backend-buffer.cpp +119 -0
  337. package/cpp/ggml/src/ggml-virtgpu/ggml-backend-device.cpp +158 -0
  338. package/cpp/ggml/src/ggml-virtgpu/ggml-backend-reg.cpp +213 -0
  339. package/cpp/ggml/src/ggml-virtgpu/ggml-backend.cpp +69 -0
  340. package/cpp/ggml/src/ggml-virtgpu/ggml-remoting.h +71 -0
  341. package/cpp/ggml/src/ggml-virtgpu/ggmlremoting_functions.yaml +166 -0
  342. package/cpp/ggml/src/ggml-virtgpu/include/apir_hw.h +9 -0
  343. package/cpp/ggml/src/ggml-virtgpu/regenerate_remoting.py +333 -0
  344. package/cpp/ggml/src/ggml-virtgpu/virtgpu-apir.h +15 -0
  345. package/cpp/ggml/src/ggml-virtgpu/virtgpu-forward-backend.cpp +58 -0
  346. package/cpp/ggml/src/ggml-virtgpu/virtgpu-forward-buffer-type.cpp +110 -0
  347. package/cpp/ggml/src/ggml-virtgpu/virtgpu-forward-buffer.cpp +173 -0
  348. package/cpp/ggml/src/ggml-virtgpu/virtgpu-forward-device.cpp +192 -0
  349. package/cpp/ggml/src/ggml-virtgpu/virtgpu-forward-impl.h +36 -0
  350. package/cpp/ggml/src/ggml-virtgpu/virtgpu-forward.gen.h +53 -0
  351. package/cpp/ggml/src/ggml-virtgpu/virtgpu-shm.cpp +98 -0
  352. package/cpp/ggml/src/ggml-virtgpu/virtgpu-shm.h +23 -0
  353. package/cpp/ggml/src/ggml-virtgpu/virtgpu-utils.cpp +179 -0
  354. package/cpp/ggml/src/ggml-virtgpu/virtgpu-utils.h +86 -0
  355. package/cpp/ggml/src/ggml-virtgpu/virtgpu.cpp +544 -0
  356. package/cpp/ggml/src/ggml-virtgpu/virtgpu.h +117 -0
  357. package/cpp/ggml/src/ggml-webgpu/CMakeLists.txt +80 -0
  358. package/cpp/ggml/src/ggml-webgpu/ggml-webgpu-shader-lib.hpp +1231 -0
  359. package/cpp/ggml/src/ggml-webgpu/ggml-webgpu.cpp +3150 -0
  360. package/cpp/ggml/src/ggml-webgpu/pre_wgsl.hpp +778 -0
  361. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/argmax.wgsl +72 -0
  362. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/argsort.wgsl +106 -0
  363. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/argsort_merge.wgsl +134 -0
  364. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/binary.wgsl +107 -0
  365. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/common_decls.tmpl +923 -0
  366. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/cpy.tmpl.wgsl +107 -0
  367. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/cumsum.wgsl +66 -0
  368. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/embed_wgsl.py +182 -0
  369. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/flash_attn.wgsl +636 -0
  370. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/get_rows.wgsl +668 -0
  371. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/glu.tmpl.wgsl +323 -0
  372. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/memset.wgsl +40 -0
  373. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/mul_mat.wgsl +713 -0
  374. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/mul_mat_decls.tmpl +103 -0
  375. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/mul_mat_reg_tile.wgsl +138 -0
  376. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/mul_mat_subgroup_matrix.wgsl +188 -0
  377. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/mul_mat_vec.wgsl +194 -0
  378. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/pad.wgsl +86 -0
  379. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/rms_norm.wgsl +123 -0
  380. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/rope.tmpl.wgsl +295 -0
  381. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/scale.wgsl +63 -0
  382. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/set_rows.wgsl +109 -0
  383. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/soft_max.tmpl.wgsl +345 -0
  384. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/sum_rows.wgsl +55 -0
  385. package/cpp/ggml/src/ggml-webgpu/wgsl-shaders/unary.wgsl +193 -0
  386. package/cpp/ggml/src/ggml-zdnn/CMakeLists.txt +36 -0
  387. package/cpp/ggml/src/ggml-zdnn/common.hpp +59 -0
  388. package/cpp/ggml/src/ggml-zdnn/ggml-zdnn.cpp +633 -0
  389. package/cpp/ggml/src/ggml-zdnn/mmf.cpp +80 -0
  390. package/cpp/ggml/src/ggml-zdnn/mmf.hpp +12 -0
  391. package/cpp/ggml/src/ggml-zdnn/utils.cpp +79 -0
  392. package/cpp/ggml/src/ggml-zdnn/utils.hpp +19 -0
  393. package/cpp/ggml/src/ggml-zendnn/CMakeLists.txt +92 -0
  394. package/cpp/ggml/src/ggml-zendnn/ggml-zendnn.cpp +469 -0
  395. package/cpp/ggml/src/ggml.c +7669 -0
  396. package/cpp/ggml/src/ggml.cpp +26 -0
  397. package/cpp/ggml/src/gguf.cpp +1699 -0
  398. package/cpp/include/llama-cpp.h +32 -0
  399. package/cpp/include/llama.h +1568 -0
  400. package/cpp/mtmd/CMakeLists.txt +98 -0
  401. package/cpp/mtmd/README.md +63 -0
  402. package/cpp/mtmd/clip-graph.h +117 -0
  403. package/cpp/mtmd/clip-impl.h +586 -0
  404. package/cpp/mtmd/clip-model.h +390 -0
  405. package/cpp/mtmd/clip.cpp +4154 -0
  406. package/cpp/mtmd/clip.h +121 -0
  407. package/cpp/mtmd/deprecation-warning.cpp +22 -0
  408. package/cpp/mtmd/legacy-models/convert_image_encoder_to_gguf.py +412 -0
  409. package/cpp/mtmd/legacy-models/glmedge-convert-image-encoder-to-gguf.py +280 -0
  410. package/cpp/mtmd/legacy-models/glmedge-surgery.py +33 -0
  411. package/cpp/mtmd/legacy-models/llava_surgery.py +38 -0
  412. package/cpp/mtmd/legacy-models/llava_surgery_v2.py +180 -0
  413. package/cpp/mtmd/legacy-models/minicpmv-convert-image-encoder-to-gguf.py +892 -0
  414. package/cpp/mtmd/legacy-models/minicpmv-surgery.py +47 -0
  415. package/cpp/mtmd/models/cogvlm.cpp +98 -0
  416. package/cpp/mtmd/models/conformer.cpp +216 -0
  417. package/cpp/mtmd/models/glm4v.cpp +122 -0
  418. package/cpp/mtmd/models/internvl.cpp +69 -0
  419. package/cpp/mtmd/models/kimik25.cpp +101 -0
  420. package/cpp/mtmd/models/kimivl.cpp +63 -0
  421. package/cpp/mtmd/models/llama4.cpp +96 -0
  422. package/cpp/mtmd/models/llava.cpp +374 -0
  423. package/cpp/mtmd/models/minicpmv.cpp +114 -0
  424. package/cpp/mtmd/models/mobilenetv5.cpp +451 -0
  425. package/cpp/mtmd/models/models.h +128 -0
  426. package/cpp/mtmd/models/nemotron-v2-vl.cpp +35 -0
  427. package/cpp/mtmd/models/paddleocr.cpp +52 -0
  428. package/cpp/mtmd/models/pixtral.cpp +86 -0
  429. package/cpp/mtmd/models/qwen2vl.cpp +183 -0
  430. package/cpp/mtmd/models/qwen3vl.cpp +193 -0
  431. package/cpp/mtmd/models/siglip.cpp +86 -0
  432. package/cpp/mtmd/models/whisper-enc.cpp +115 -0
  433. package/cpp/mtmd/models/youtuvl.cpp +179 -0
  434. package/cpp/mtmd/mtmd-audio.cpp +730 -0
  435. package/cpp/mtmd/mtmd-audio.h +113 -0
  436. package/cpp/mtmd/mtmd-cli.cpp +437 -0
  437. package/cpp/mtmd/mtmd-helper.cpp +521 -0
  438. package/cpp/mtmd/mtmd-helper.h +96 -0
  439. package/cpp/mtmd/mtmd.cpp +1156 -0
  440. package/cpp/mtmd/mtmd.h +319 -0
  441. package/cpp/mtmd/requirements.txt +5 -0
  442. package/cpp/mtmd/test-1.jpeg +0 -0
  443. package/cpp/mtmd/test-2.mp3 +0 -0
  444. package/cpp/mtmd/tests.sh +192 -0
  445. package/cpp/src/CMakeLists.txt +169 -0
  446. package/cpp/src/llama-adapter.cpp +488 -0
  447. package/cpp/src/llama-adapter.h +89 -0
  448. package/cpp/src/llama-arch.cpp +2855 -0
  449. package/cpp/src/llama-arch.h +619 -0
  450. package/cpp/src/llama-batch.cpp +917 -0
  451. package/cpp/src/llama-batch.h +173 -0
  452. package/cpp/src/llama-chat.cpp +896 -0
  453. package/cpp/src/llama-chat.h +71 -0
  454. package/cpp/src/llama-context.cpp +3512 -0
  455. package/cpp/src/llama-context.h +359 -0
  456. package/cpp/src/llama-cparams.cpp +5 -0
  457. package/cpp/src/llama-cparams.h +44 -0
  458. package/cpp/src/llama-grammar.cpp +1464 -0
  459. package/cpp/src/llama-grammar.h +194 -0
  460. package/cpp/src/llama-graph.cpp +2685 -0
  461. package/cpp/src/llama-graph.h +1026 -0
  462. package/cpp/src/llama-hparams.cpp +234 -0
  463. package/cpp/src/llama-hparams.h +339 -0
  464. package/cpp/src/llama-impl.cpp +171 -0
  465. package/cpp/src/llama-impl.h +73 -0
  466. package/cpp/src/llama-io.cpp +15 -0
  467. package/cpp/src/llama-io.h +35 -0
  468. package/cpp/src/llama-kv-cache-iswa.cpp +330 -0
  469. package/cpp/src/llama-kv-cache-iswa.h +137 -0
  470. package/cpp/src/llama-kv-cache.cpp +2271 -0
  471. package/cpp/src/llama-kv-cache.h +388 -0
  472. package/cpp/src/llama-kv-cells.h +533 -0
  473. package/cpp/src/llama-memory-hybrid-iswa.cpp +275 -0
  474. package/cpp/src/llama-memory-hybrid-iswa.h +140 -0
  475. package/cpp/src/llama-memory-hybrid.cpp +268 -0
  476. package/cpp/src/llama-memory-hybrid.h +139 -0
  477. package/cpp/src/llama-memory-recurrent.cpp +1165 -0
  478. package/cpp/src/llama-memory-recurrent.h +182 -0
  479. package/cpp/src/llama-memory.cpp +59 -0
  480. package/cpp/src/llama-memory.h +122 -0
  481. package/cpp/src/llama-mmap.cpp +785 -0
  482. package/cpp/src/llama-mmap.h +92 -0
  483. package/cpp/src/llama-model-loader.cpp +1414 -0
  484. package/cpp/src/llama-model-loader.h +203 -0
  485. package/cpp/src/llama-model-saver.cpp +286 -0
  486. package/cpp/src/llama-model-saver.h +37 -0
  487. package/cpp/src/llama-model.cpp +9253 -0
  488. package/cpp/src/llama-model.h +576 -0
  489. package/cpp/src/llama-quant.cpp +1119 -0
  490. package/cpp/src/llama-quant.h +1 -0
  491. package/cpp/src/llama-sampler.cpp +3885 -0
  492. package/cpp/src/llama-sampler.h +42 -0
  493. package/cpp/src/llama-vocab.cpp +3970 -0
  494. package/cpp/src/llama-vocab.h +187 -0
  495. package/cpp/src/llama.cpp +1313 -0
  496. package/cpp/src/models/afmoe.cpp +191 -0
  497. package/cpp/src/models/apertus.cpp +125 -0
  498. package/cpp/src/models/arcee.cpp +135 -0
  499. package/cpp/src/models/arctic.cpp +138 -0
  500. package/cpp/src/models/arwkv7.cpp +86 -0
  501. package/cpp/src/models/baichuan.cpp +122 -0
  502. package/cpp/src/models/bailingmoe.cpp +144 -0
  503. package/cpp/src/models/bailingmoe2.cpp +135 -0
  504. package/cpp/src/models/bert.cpp +178 -0
  505. package/cpp/src/models/bitnet.cpp +160 -0
  506. package/cpp/src/models/bloom.cpp +101 -0
  507. package/cpp/src/models/chameleon.cpp +178 -0
  508. package/cpp/src/models/chatglm.cpp +132 -0
  509. package/cpp/src/models/codeshell.cpp +111 -0
  510. package/cpp/src/models/cogvlm.cpp +102 -0
  511. package/cpp/src/models/cohere2-iswa.cpp +134 -0
  512. package/cpp/src/models/command-r.cpp +122 -0
  513. package/cpp/src/models/dbrx.cpp +123 -0
  514. package/cpp/src/models/deci.cpp +135 -0
  515. package/cpp/src/models/deepseek.cpp +144 -0
  516. package/cpp/src/models/deepseek2.cpp +262 -0
  517. package/cpp/src/models/delta-net-base.cpp +376 -0
  518. package/cpp/src/models/dots1.cpp +134 -0
  519. package/cpp/src/models/dream.cpp +105 -0
  520. package/cpp/src/models/ernie4-5-moe.cpp +150 -0
  521. package/cpp/src/models/ernie4-5.cpp +110 -0
  522. package/cpp/src/models/eurobert.cpp +97 -0
  523. package/cpp/src/models/exaone-moe.cpp +146 -0
  524. package/cpp/src/models/exaone.cpp +114 -0
  525. package/cpp/src/models/exaone4.cpp +123 -0
  526. package/cpp/src/models/falcon-h1.cpp +111 -0
  527. package/cpp/src/models/falcon.cpp +120 -0
  528. package/cpp/src/models/gemma-embedding.cpp +116 -0
  529. package/cpp/src/models/gemma.cpp +112 -0
  530. package/cpp/src/models/gemma2-iswa.cpp +128 -0
  531. package/cpp/src/models/gemma3.cpp +155 -0
  532. package/cpp/src/models/gemma3n-iswa.cpp +384 -0
  533. package/cpp/src/models/glm4-moe.cpp +170 -0
  534. package/cpp/src/models/glm4.cpp +157 -0
  535. package/cpp/src/models/gpt2.cpp +105 -0
  536. package/cpp/src/models/gptneox.cpp +144 -0
  537. package/cpp/src/models/granite-hybrid.cpp +196 -0
  538. package/cpp/src/models/granite.cpp +211 -0
  539. package/cpp/src/models/grok.cpp +159 -0
  540. package/cpp/src/models/grovemoe.cpp +141 -0
  541. package/cpp/src/models/hunyuan-dense.cpp +132 -0
  542. package/cpp/src/models/hunyuan-moe.cpp +154 -0
  543. package/cpp/src/models/internlm2.cpp +120 -0
  544. package/cpp/src/models/jais.cpp +86 -0
  545. package/cpp/src/models/jais2.cpp +123 -0
  546. package/cpp/src/models/jamba.cpp +106 -0
  547. package/cpp/src/models/kimi-linear.cpp +392 -0
  548. package/cpp/src/models/lfm2.cpp +190 -0
  549. package/cpp/src/models/llada-moe.cpp +122 -0
  550. package/cpp/src/models/llada.cpp +99 -0
  551. package/cpp/src/models/llama-iswa.cpp +178 -0
  552. package/cpp/src/models/llama.cpp +168 -0
  553. package/cpp/src/models/maincoder.cpp +117 -0
  554. package/cpp/src/models/mamba-base.cpp +285 -0
  555. package/cpp/src/models/mamba.cpp +54 -0
  556. package/cpp/src/models/mimo2-iswa.cpp +123 -0
  557. package/cpp/src/models/minicpm3.cpp +200 -0
  558. package/cpp/src/models/minimax-m2.cpp +124 -0
  559. package/cpp/src/models/mistral3.cpp +160 -0
  560. package/cpp/src/models/models.h +684 -0
  561. package/cpp/src/models/modern-bert.cpp +109 -0
  562. package/cpp/src/models/mpt.cpp +126 -0
  563. package/cpp/src/models/nemotron-h.cpp +148 -0
  564. package/cpp/src/models/nemotron.cpp +122 -0
  565. package/cpp/src/models/neo-bert.cpp +104 -0
  566. package/cpp/src/models/olmo.cpp +121 -0
  567. package/cpp/src/models/olmo2.cpp +150 -0
  568. package/cpp/src/models/olmoe.cpp +124 -0
  569. package/cpp/src/models/openai-moe-iswa.cpp +127 -0
  570. package/cpp/src/models/openelm.cpp +124 -0
  571. package/cpp/src/models/orion.cpp +123 -0
  572. package/cpp/src/models/paddleocr.cpp +122 -0
  573. package/cpp/src/models/pangu-embedded.cpp +121 -0
  574. package/cpp/src/models/phi2.cpp +121 -0
  575. package/cpp/src/models/phi3.cpp +152 -0
  576. package/cpp/src/models/plamo.cpp +110 -0
  577. package/cpp/src/models/plamo2.cpp +318 -0
  578. package/cpp/src/models/plamo3.cpp +128 -0
  579. package/cpp/src/models/plm.cpp +169 -0
  580. package/cpp/src/models/qwen.cpp +108 -0
  581. package/cpp/src/models/qwen2.cpp +126 -0
  582. package/cpp/src/models/qwen2moe.cpp +151 -0
  583. package/cpp/src/models/qwen2vl.cpp +117 -0
  584. package/cpp/src/models/qwen3.cpp +117 -0
  585. package/cpp/src/models/qwen35.cpp +386 -0
  586. package/cpp/src/models/qwen35moe.cpp +420 -0
  587. package/cpp/src/models/qwen3moe.cpp +124 -0
  588. package/cpp/src/models/qwen3next.cpp +525 -0
  589. package/cpp/src/models/qwen3vl-moe.cpp +140 -0
  590. package/cpp/src/models/qwen3vl.cpp +132 -0
  591. package/cpp/src/models/refact.cpp +94 -0
  592. package/cpp/src/models/rnd1.cpp +126 -0
  593. package/cpp/src/models/rwkv6-base.cpp +164 -0
  594. package/cpp/src/models/rwkv6.cpp +94 -0
  595. package/cpp/src/models/rwkv6qwen2.cpp +86 -0
  596. package/cpp/src/models/rwkv7-base.cpp +137 -0
  597. package/cpp/src/models/rwkv7.cpp +90 -0
  598. package/cpp/src/models/seed-oss.cpp +124 -0
  599. package/cpp/src/models/smallthinker.cpp +126 -0
  600. package/cpp/src/models/smollm3.cpp +128 -0
  601. package/cpp/src/models/stablelm.cpp +146 -0
  602. package/cpp/src/models/starcoder.cpp +100 -0
  603. package/cpp/src/models/starcoder2.cpp +121 -0
  604. package/cpp/src/models/step35-iswa.cpp +168 -0
  605. package/cpp/src/models/t5-dec.cpp +166 -0
  606. package/cpp/src/models/t5-enc.cpp +96 -0
  607. package/cpp/src/models/wavtokenizer-dec.cpp +149 -0
  608. package/cpp/src/models/xverse.cpp +108 -0
  609. package/cpp/src/unicode-data.cpp +7034 -0
  610. package/cpp/src/unicode-data.h +20 -0
  611. package/cpp/src/unicode.cpp +1103 -0
  612. package/cpp/src/unicode.h +111 -0
  613. package/cpp/vendor/nlohmann/json.hpp +25526 -0
  614. package/cpp/vendor/nlohmann/json_fwd.hpp +187 -0
  615. package/cpp/vendor/stb/stb_image.h +7988 -0
  616. package/ios/LocalLLM-Bridging-Header.h +2 -0
  617. package/ios/LocalLLM.h +5 -0
  618. package/ios/LocalLLM.mm +1267 -0
  619. package/local-llm-rn.podspec +60 -0
  620. package/package.json +35 -0
  621. package/src/NativeLocalLLM.ts +73 -0
  622. package/src/device.ts +50 -0
  623. package/src/download-adapter.ts +17 -0
  624. package/src/index.ts +21 -0
  625. package/src/native-bridge.ts +142 -0
  626. package/src/rn-downloader.ts +37 -0
@@ -0,0 +1,2855 @@
1
+ #include "llama-arch.h"
2
+
3
+ #include "llama-impl.h"
4
+
5
+ #include <map>
6
+ #include <set>
7
+
8
+ static const std::map<llm_arch, const char *> LLM_ARCH_NAMES = {
9
+ { LLM_ARCH_CLIP, "clip" }, // dummy, only used by llama-quantize
10
+ { LLM_ARCH_LLAMA, "llama" },
11
+ { LLM_ARCH_LLAMA4, "llama4" },
12
+ { LLM_ARCH_DECI, "deci" },
13
+ { LLM_ARCH_FALCON, "falcon" },
14
+ { LLM_ARCH_GROK, "grok" },
15
+ { LLM_ARCH_GPT2, "gpt2" },
16
+ { LLM_ARCH_GPTJ, "gptj" },
17
+ { LLM_ARCH_GPTNEOX, "gptneox" },
18
+ { LLM_ARCH_MPT, "mpt" },
19
+ { LLM_ARCH_BAICHUAN, "baichuan" },
20
+ { LLM_ARCH_STARCODER, "starcoder" },
21
+ { LLM_ARCH_REFACT, "refact" },
22
+ { LLM_ARCH_BERT, "bert" },
23
+ { LLM_ARCH_MODERN_BERT, "modern-bert" },
24
+ { LLM_ARCH_NOMIC_BERT, "nomic-bert" },
25
+ { LLM_ARCH_NOMIC_BERT_MOE, "nomic-bert-moe" },
26
+ { LLM_ARCH_NEO_BERT, "neo-bert" },
27
+ { LLM_ARCH_JINA_BERT_V2, "jina-bert-v2" },
28
+ { LLM_ARCH_JINA_BERT_V3, "jina-bert-v3" },
29
+ { LLM_ARCH_EUROBERT, "eurobert" },
30
+ { LLM_ARCH_BLOOM, "bloom" },
31
+ { LLM_ARCH_STABLELM, "stablelm" },
32
+ { LLM_ARCH_QWEN, "qwen" },
33
+ { LLM_ARCH_QWEN2, "qwen2" },
34
+ { LLM_ARCH_QWEN2MOE, "qwen2moe" },
35
+ { LLM_ARCH_QWEN2VL, "qwen2vl" },
36
+ { LLM_ARCH_QWEN3, "qwen3" },
37
+ { LLM_ARCH_QWEN3MOE, "qwen3moe" },
38
+ { LLM_ARCH_QWEN3NEXT, "qwen3next" },
39
+ { LLM_ARCH_QWEN3VL, "qwen3vl" },
40
+ { LLM_ARCH_QWEN3VLMOE, "qwen3vlmoe" },
41
+ { LLM_ARCH_QWEN35, "qwen35" },
42
+ { LLM_ARCH_QWEN35MOE, "qwen35moe" },
43
+ { LLM_ARCH_PHI2, "phi2" },
44
+ { LLM_ARCH_PHI3, "phi3" },
45
+ { LLM_ARCH_PHIMOE, "phimoe" },
46
+ { LLM_ARCH_PLAMO, "plamo" },
47
+ { LLM_ARCH_PLAMO2, "plamo2" },
48
+ { LLM_ARCH_PLAMO3, "plamo3" },
49
+ { LLM_ARCH_CODESHELL, "codeshell" },
50
+ { LLM_ARCH_ORION, "orion" },
51
+ { LLM_ARCH_INTERNLM2, "internlm2" },
52
+ { LLM_ARCH_MINICPM, "minicpm" },
53
+ { LLM_ARCH_MINICPM3, "minicpm3" },
54
+ { LLM_ARCH_GEMMA, "gemma" },
55
+ { LLM_ARCH_GEMMA2, "gemma2" },
56
+ { LLM_ARCH_GEMMA3, "gemma3" },
57
+ { LLM_ARCH_GEMMA3N, "gemma3n" },
58
+ { LLM_ARCH_GEMMA_EMBEDDING, "gemma-embedding" },
59
+ { LLM_ARCH_STARCODER2, "starcoder2" },
60
+ { LLM_ARCH_MAMBA, "mamba" },
61
+ { LLM_ARCH_MAMBA2, "mamba2" },
62
+ { LLM_ARCH_JAMBA, "jamba" },
63
+ { LLM_ARCH_FALCON_H1, "falcon-h1" },
64
+ { LLM_ARCH_XVERSE, "xverse" },
65
+ { LLM_ARCH_COMMAND_R, "command-r" },
66
+ { LLM_ARCH_COHERE2, "cohere2" },
67
+ { LLM_ARCH_DBRX, "dbrx" },
68
+ { LLM_ARCH_OLMO, "olmo" },
69
+ { LLM_ARCH_OLMO2, "olmo2" },
70
+ { LLM_ARCH_OLMOE, "olmoe" },
71
+ { LLM_ARCH_OPENELM, "openelm" },
72
+ { LLM_ARCH_ARCTIC, "arctic" },
73
+ { LLM_ARCH_DEEPSEEK, "deepseek" },
74
+ { LLM_ARCH_DEEPSEEK2, "deepseek2" },
75
+ { LLM_ARCH_CHATGLM, "chatglm" },
76
+ { LLM_ARCH_GLM4, "glm4" },
77
+ { LLM_ARCH_GLM4_MOE, "glm4moe" },
78
+ { LLM_ARCH_GLM_DSA, "glm-dsa" },
79
+ { LLM_ARCH_BITNET, "bitnet" },
80
+ { LLM_ARCH_T5, "t5" },
81
+ { LLM_ARCH_T5ENCODER, "t5encoder" },
82
+ { LLM_ARCH_JAIS, "jais" },
83
+ { LLM_ARCH_JAIS2, "jais2" },
84
+ { LLM_ARCH_NEMOTRON, "nemotron" },
85
+ { LLM_ARCH_NEMOTRON_H, "nemotron_h" },
86
+ { LLM_ARCH_NEMOTRON_H_MOE, "nemotron_h_moe" },
87
+ { LLM_ARCH_EXAONE, "exaone" },
88
+ { LLM_ARCH_EXAONE4, "exaone4" },
89
+ { LLM_ARCH_EXAONE_MOE, "exaone-moe" },
90
+ { LLM_ARCH_RWKV6, "rwkv6" },
91
+ { LLM_ARCH_RWKV6QWEN2, "rwkv6qwen2" },
92
+ { LLM_ARCH_RWKV7, "rwkv7" },
93
+ { LLM_ARCH_ARWKV7, "arwkv7" },
94
+ { LLM_ARCH_GRANITE, "granite" },
95
+ { LLM_ARCH_GRANITE_MOE, "granitemoe" },
96
+ { LLM_ARCH_GRANITE_HYBRID, "granitehybrid" },
97
+ { LLM_ARCH_CHAMELEON, "chameleon" },
98
+ { LLM_ARCH_WAVTOKENIZER_DEC, "wavtokenizer-dec" },
99
+ { LLM_ARCH_PLM, "plm" },
100
+ { LLM_ARCH_BAILINGMOE, "bailingmoe" },
101
+ { LLM_ARCH_BAILINGMOE2, "bailingmoe2" },
102
+ { LLM_ARCH_DOTS1, "dots1" },
103
+ { LLM_ARCH_ARCEE, "arcee" },
104
+ { LLM_ARCH_AFMOE, "afmoe" },
105
+ { LLM_ARCH_ERNIE4_5, "ernie4_5" },
106
+ { LLM_ARCH_ERNIE4_5_MOE, "ernie4_5-moe" },
107
+ { LLM_ARCH_HUNYUAN_MOE, "hunyuan-moe" },
108
+ { LLM_ARCH_HUNYUAN_DENSE, "hunyuan-dense" },
109
+ { LLM_ARCH_SMOLLM3, "smollm3" },
110
+ { LLM_ARCH_OPENAI_MOE, "gpt-oss" },
111
+ { LLM_ARCH_LFM2, "lfm2" },
112
+ { LLM_ARCH_LFM2MOE, "lfm2moe" },
113
+ { LLM_ARCH_DREAM, "dream" },
114
+ { LLM_ARCH_SMALLTHINKER, "smallthinker" },
115
+ { LLM_ARCH_LLADA, "llada" },
116
+ { LLM_ARCH_LLADA_MOE, "llada-moe" },
117
+ { LLM_ARCH_SEED_OSS, "seed_oss" },
118
+ { LLM_ARCH_GROVEMOE, "grovemoe" },
119
+ { LLM_ARCH_APERTUS, "apertus" },
120
+ { LLM_ARCH_MINIMAX_M2, "minimax-m2" },
121
+ { LLM_ARCH_COGVLM, "cogvlm" },
122
+ { LLM_ARCH_RND1, "rnd1" },
123
+ { LLM_ARCH_PANGU_EMBED, "pangu-embedded" },
124
+ { LLM_ARCH_MISTRAL3, "mistral3" },
125
+ { LLM_ARCH_PADDLEOCR, "paddleocr" },
126
+ { LLM_ARCH_MIMO2, "mimo2" },
127
+ { LLM_ARCH_STEP35, "step35" },
128
+ { LLM_ARCH_LLAMA_EMBED, "llama-embed" },
129
+ { LLM_ARCH_MAINCODER, "maincoder" },
130
+ { LLM_ARCH_KIMI_LINEAR, "kimi-linear" },
131
+ { LLM_ARCH_UNKNOWN, "(unknown)" },
132
+ };
133
+
134
+ static const std::map<llm_kv, const char *> LLM_KV_NAMES = {
135
+ { LLM_KV_GENERAL_TYPE, "general.type" },
136
+ { LLM_KV_GENERAL_ARCHITECTURE, "general.architecture" },
137
+ { LLM_KV_GENERAL_QUANTIZATION_VERSION, "general.quantization_version" },
138
+ { LLM_KV_GENERAL_ALIGNMENT, "general.alignment" },
139
+ { LLM_KV_GENERAL_FILE_TYPE, "general.file_type" },
140
+ { LLM_KV_GENERAL_SAMPLING_SEQUENCE, "general.sampling.sequence" },
141
+ { LLM_KV_GENERAL_SAMPLING_TOP_K, "general.sampling.top_k" },
142
+ { LLM_KV_GENERAL_SAMPLING_TOP_P, "general.sampling.top_p" },
143
+ { LLM_KV_GENERAL_SAMPLING_MIN_P, "general.sampling.min_p" },
144
+ { LLM_KV_GENERAL_SAMPLING_XTC_PROBABILITY, "general.sampling.xtc_probability" },
145
+ { LLM_KV_GENERAL_SAMPLING_XTC_THRESHOLD, "general.sampling.xtc_threshold" },
146
+ { LLM_KV_GENERAL_SAMPLING_TEMP, "general.sampling.temp" },
147
+ { LLM_KV_GENERAL_SAMPLING_PENALTY_LAST_N, "general.sampling.penalty_last_n" },
148
+ { LLM_KV_GENERAL_SAMPLING_PENALTY_REPEAT, "general.sampling.penalty_repeat" },
149
+ { LLM_KV_GENERAL_SAMPLING_MIROSTAT, "general.sampling.mirostat" },
150
+ { LLM_KV_GENERAL_SAMPLING_MIROSTAT_TAU, "general.sampling.mirostat_tau" },
151
+ { LLM_KV_GENERAL_SAMPLING_MIROSTAT_ETA, "general.sampling.mirostat_eta" },
152
+ { LLM_KV_GENERAL_NAME, "general.name" },
153
+ { LLM_KV_GENERAL_AUTHOR, "general.author" },
154
+ { LLM_KV_GENERAL_VERSION, "general.version" },
155
+ { LLM_KV_GENERAL_URL, "general.url" },
156
+ { LLM_KV_GENERAL_DESCRIPTION, "general.description" },
157
+ { LLM_KV_GENERAL_LICENSE, "general.license" },
158
+ { LLM_KV_GENERAL_SOURCE_URL, "general.source.url" },
159
+ { LLM_KV_GENERAL_SOURCE_HF_REPO, "general.source.huggingface.repository" },
160
+
161
+ { LLM_KV_VOCAB_SIZE, "%s.vocab_size" },
162
+ { LLM_KV_CONTEXT_LENGTH, "%s.context_length" },
163
+ { LLM_KV_EMBEDDING_LENGTH, "%s.embedding_length" },
164
+ { LLM_KV_EMBEDDING_LENGTH_OUT, "%s.embedding_length_out" },
165
+ { LLM_KV_FEATURES_LENGTH, "%s.features_length" },
166
+ { LLM_KV_BLOCK_COUNT, "%s.block_count" },
167
+ { LLM_KV_LEADING_DENSE_BLOCK_COUNT, "%s.leading_dense_block_count" },
168
+ { LLM_KV_FEED_FORWARD_LENGTH, "%s.feed_forward_length" },
169
+ { LLM_KV_EXPERT_FEED_FORWARD_LENGTH, "%s.expert_feed_forward_length" },
170
+ { LLM_KV_EXPERT_SHARED_FEED_FORWARD_LENGTH, "%s.expert_shared_feed_forward_length" },
171
+ { LLM_KV_EXPERT_CHUNK_FEED_FORWARD_LENGTH, "%s.expert_chunk_feed_forward_length" },
172
+ { LLM_KV_SWIGLU_CLAMP_EXP, "%s.swiglu_clamp_exp" },
173
+ { LLM_KV_SWIGLU_CLAMP_SHEXP, "%s.swiglu_clamp_shexp" },
174
+ { LLM_KV_USE_PARALLEL_RESIDUAL, "%s.use_parallel_residual" },
175
+ { LLM_KV_TENSOR_DATA_LAYOUT, "%s.tensor_data_layout" },
176
+ { LLM_KV_EXPERT_COUNT, "%s.expert_count" },
177
+ { LLM_KV_EXPERT_USED_COUNT, "%s.expert_used_count" },
178
+ { LLM_KV_EXPERT_SHARED_COUNT, "%s.expert_shared_count" },
179
+ { LLM_KV_EXPERT_GROUP_COUNT, "%s.expert_group_count" },
180
+ { LLM_KV_EXPERT_GROUP_USED_COUNT, "%s.expert_group_used_count" },
181
+ { LLM_KV_EXPERT_WEIGHTS_SCALE, "%s.expert_weights_scale" },
182
+ { LLM_KV_EXPERT_WEIGHTS_NORM, "%s.expert_weights_norm" },
183
+ { LLM_KV_EXPERT_GATING_FUNC, "%s.expert_gating_func" },
184
+ { LLM_KV_EXPERT_GROUP_SCALE, "%s.expert_group_scale" },
185
+ { LLM_KV_EXPERTS_PER_GROUP, "%s.experts_per_group" },
186
+ { LLM_KV_MOE_EVERY_N_LAYERS, "%s.moe_every_n_layers" },
187
+ { LLM_KV_NEXTN_PREDICT_LAYERS, "%s.nextn_predict_layers" },
188
+ { LLM_KV_NUM_DEEPSTACK_LAYERS, "%s.n_deepstack_layers" },
189
+ { LLM_KV_POOLING_TYPE, "%s.pooling_type" },
190
+ { LLM_KV_LOGIT_SCALE, "%s.logit_scale" },
191
+ { LLM_KV_DECODER_START_TOKEN_ID, "%s.decoder_start_token_id" },
192
+ { LLM_KV_DECODER_BLOCK_COUNT, "%s.decoder_block_count" },
193
+ { LLM_KV_ATTN_LOGIT_SOFTCAPPING, "%s.attn_logit_softcapping" },
194
+ { LLM_KV_ROUTER_LOGIT_SOFTCAPPING, "%s.router_logit_softcapping" },
195
+ { LLM_KV_FINAL_LOGIT_SOFTCAPPING, "%s.final_logit_softcapping" },
196
+ { LLM_KV_SWIN_NORM, "%s.swin_norm" },
197
+ { LLM_KV_RESCALE_EVERY_N_LAYERS, "%s.rescale_every_n_layers" },
198
+ { LLM_KV_TIME_MIX_EXTRA_DIM, "%s.time_mix_extra_dim" },
199
+ { LLM_KV_TIME_DECAY_EXTRA_DIM, "%s.time_decay_extra_dim" },
200
+ { LLM_KV_RESIDUAL_SCALE, "%s.residual_scale" },
201
+ { LLM_KV_EMBEDDING_SCALE, "%s.embedding_scale" },
202
+ { LLM_KV_TOKEN_SHIFT_COUNT, "%s.token_shift_count" },
203
+ { LLM_KV_INTERLEAVE_MOE_LAYER_STEP, "%s.interleave_moe_layer_step" },
204
+ { LLM_KV_FULL_ATTENTION_INTERVAL, "%s.full_attention_interval" },
205
+
206
+ { LLM_KV_ATTENTION_HEAD_COUNT, "%s.attention.head_count" },
207
+ { LLM_KV_ATTENTION_HEAD_COUNT_KV, "%s.attention.head_count_kv" },
208
+ { LLM_KV_ATTENTION_MAX_ALIBI_BIAS, "%s.attention.max_alibi_bias" },
209
+ { LLM_KV_ATTENTION_CLAMP_KQV, "%s.attention.clamp_kqv" },
210
+ { LLM_KV_ATTENTION_KEY_LENGTH, "%s.attention.key_length" },
211
+ { LLM_KV_ATTENTION_VALUE_LENGTH, "%s.attention.value_length" },
212
+ { LLM_KV_ATTENTION_LAYERNORM_EPS, "%s.attention.layer_norm_epsilon" },
213
+ { LLM_KV_ATTENTION_LAYERNORM_RMS_EPS, "%s.attention.layer_norm_rms_epsilon" },
214
+ { LLM_KV_ATTENTION_GROUPNORM_EPS, "%s.attention.group_norm_epsilon" },
215
+ { LLM_KV_ATTENTION_GROUPNORM_GROUPS, "%s.attention.group_norm_groups" },
216
+ { LLM_KV_ATTENTION_CAUSAL, "%s.attention.causal" },
217
+ { LLM_KV_ATTENTION_Q_LORA_RANK, "%s.attention.q_lora_rank" },
218
+ { LLM_KV_ATTENTION_KV_LORA_RANK, "%s.attention.kv_lora_rank" },
219
+ { LLM_KV_ATTENTION_DECAY_LORA_RANK, "%s.attention.decay_lora_rank" },
220
+ { LLM_KV_ATTENTION_ICLR_LORA_RANK, "%s.attention.iclr_lora_rank" },
221
+ { LLM_KV_ATTENTION_VALUE_RESIDUAL_MIX_LORA_RANK, "%s.attention.value_residual_mix_lora_rank" },
222
+ { LLM_KV_ATTENTION_GATE_LORA_RANK, "%s.attention.gate_lora_rank" },
223
+ { LLM_KV_ATTENTION_RELATIVE_BUCKETS_COUNT, "%s.attention.relative_buckets_count" },
224
+ { LLM_KV_ATTENTION_SLIDING_WINDOW, "%s.attention.sliding_window" },
225
+ { LLM_KV_ATTENTION_SLIDING_WINDOW_PATTERN, "%s.attention.sliding_window_pattern" },
226
+ { LLM_KV_ATTENTION_SCALE, "%s.attention.scale" },
227
+ { LLM_KV_ATTENTION_OUTPUT_SCALE, "%s.attention.output_scale" },
228
+ { LLM_KV_ATTENTION_TEMPERATURE_LENGTH, "%s.attention.temperature_length" },
229
+ { LLM_KV_ATTENTION_TEMPERATURE_SCALE, "%s.attention.temperature_scale" },
230
+ { LLM_KV_ATTENTION_KEY_LENGTH_MLA, "%s.attention.key_length_mla" },
231
+ { LLM_KV_ATTENTION_VALUE_LENGTH_MLA, "%s.attention.value_length_mla" },
232
+ { LLM_KV_ATTENTION_INDEXER_HEAD_COUNT, "%s.attention.indexer.head_count" },
233
+ { LLM_KV_ATTENTION_INDEXER_KEY_LENGTH, "%s.attention.indexer.key_length" },
234
+ { LLM_KV_ATTENTION_INDEXER_TOP_K, "%s.attention.indexer.top_k" },
235
+
236
+ { LLM_KV_ROPE_DIMENSION_COUNT, "%s.rope.dimension_count" },
237
+ { LLM_KV_ROPE_DIMENSION_SECTIONS, "%s.rope.dimension_sections" },
238
+ { LLM_KV_ROPE_FREQ_BASE, "%s.rope.freq_base" },
239
+ { LLM_KV_ROPE_FREQ_BASE_SWA, "%s.rope.freq_base_swa" },
240
+ { LLM_KV_ROPE_SCALE_LINEAR, "%s.rope.scale_linear" },
241
+ { LLM_KV_ROPE_SCALING_TYPE, "%s.rope.scaling.type" },
242
+ { LLM_KV_ROPE_SCALING_FACTOR, "%s.rope.scaling.factor" },
243
+ { LLM_KV_ROPE_SCALING_ATTN_FACTOR, "%s.rope.scaling.attn_factor" },
244
+ { LLM_KV_ROPE_SCALING_ORIG_CTX_LEN, "%s.rope.scaling.original_context_length" },
245
+ { LLM_KV_ROPE_SCALING_FINETUNED, "%s.rope.scaling.finetuned" },
246
+ { LLM_KV_ROPE_SCALING_YARN_LOG_MUL, "%s.rope.scaling.yarn_log_multiplier" },
247
+ { LLM_KV_ROPE_SCALING_YARN_EXT_FACTOR, "%s.rope.scaling.yarn_ext_factor" },
248
+ { LLM_KV_ROPE_SCALING_YARN_ATTN_FACTOR, "%s.rope.scaling.yarn_attn_factor" },
249
+ { LLM_KV_ROPE_SCALING_YARN_BETA_FAST, "%s.rope.scaling.yarn_beta_fast" },
250
+ { LLM_KV_ROPE_SCALING_YARN_BETA_SLOW, "%s.rope.scaling.yarn_beta_slow" },
251
+
252
+ { LLM_KV_SPLIT_NO, "split.no" },
253
+ { LLM_KV_SPLIT_COUNT, "split.count" },
254
+ { LLM_KV_SPLIT_TENSORS_COUNT, "split.tensors.count" },
255
+
256
+ { LLM_KV_SSM_CONV_KERNEL, "%s.ssm.conv_kernel" },
257
+ { LLM_KV_SSM_INNER_SIZE, "%s.ssm.inner_size" },
258
+ { LLM_KV_SSM_STATE_SIZE, "%s.ssm.state_size" },
259
+ { LLM_KV_SSM_TIME_STEP_RANK, "%s.ssm.time_step_rank" },
260
+ { LLM_KV_SSM_GROUP_COUNT, "%s.ssm.group_count" },
261
+ { LLM_KV_SSM_DT_B_C_RMS, "%s.ssm.dt_b_c_rms" },
262
+
263
+ { LLM_KV_KDA_HEAD_DIM, "%s.kda.head_dim" },
264
+
265
+ { LLM_KV_WKV_HEAD_SIZE, "%s.wkv.head_size" },
266
+
267
+ { LLM_KV_POSNET_EMBEDDING_LENGTH, "%s.posnet.embedding_length" },
268
+ { LLM_KV_POSNET_BLOCK_COUNT, "%s.posnet.block_count" },
269
+
270
+ { LLM_KV_CONVNEXT_EMBEDDING_LENGTH, "%s.convnext.embedding_length" },
271
+ { LLM_KV_CONVNEXT_BLOCK_COUNT, "%s.convnext.block_count" },
272
+
273
+ { LLM_KV_CLASSIFIER_OUTPUT_LABELS, "%s.classifier.output_labels" },
274
+
275
+ { LLM_KV_SHORTCONV_L_CACHE, "%s.shortconv.l_cache" },
276
+ // sentence-transformers dense modules feature dims
277
+ { LLM_KV_DENSE_2_FEAT_IN, "%s.dense_2_feat_in" },
278
+ { LLM_KV_DENSE_2_FEAT_OUT, "%s.dense_2_feat_out" },
279
+ { LLM_KV_DENSE_3_FEAT_IN, "%s.dense_3_feat_in" },
280
+ { LLM_KV_DENSE_3_FEAT_OUT, "%s.dense_3_feat_out" },
281
+
282
+ { LLM_KV_TOKENIZER_MODEL, "tokenizer.ggml.model" },
283
+ { LLM_KV_TOKENIZER_PRE, "tokenizer.ggml.pre" },
284
+ { LLM_KV_TOKENIZER_LIST, "tokenizer.ggml.tokens" },
285
+ { LLM_KV_TOKENIZER_TOKEN_TYPE, "tokenizer.ggml.token_type" },
286
+ { LLM_KV_TOKENIZER_TOKEN_TYPE_COUNT, "tokenizer.ggml.token_type_count" },
287
+ { LLM_KV_TOKENIZER_SCORES, "tokenizer.ggml.scores" },
288
+ { LLM_KV_TOKENIZER_MERGES, "tokenizer.ggml.merges" },
289
+ { LLM_KV_TOKENIZER_BOS_ID, "tokenizer.ggml.bos_token_id" },
290
+ { LLM_KV_TOKENIZER_EOS_ID, "tokenizer.ggml.eos_token_id" },
291
+ { LLM_KV_TOKENIZER_EOT_ID, "tokenizer.ggml.eot_token_id" },
292
+ { LLM_KV_TOKENIZER_EOM_ID, "tokenizer.ggml.eom_token_id" },
293
+ { LLM_KV_TOKENIZER_UNK_ID, "tokenizer.ggml.unknown_token_id" },
294
+ { LLM_KV_TOKENIZER_SEP_ID, "tokenizer.ggml.seperator_token_id" },
295
+ { LLM_KV_TOKENIZER_PAD_ID, "tokenizer.ggml.padding_token_id" },
296
+ { LLM_KV_TOKENIZER_CLS_ID, "tokenizer.ggml.cls_token_id" },
297
+ { LLM_KV_TOKENIZER_MASK_ID, "tokenizer.ggml.mask_token_id" },
298
+ { LLM_KV_TOKENIZER_ADD_BOS, "tokenizer.ggml.add_bos_token" },
299
+ { LLM_KV_TOKENIZER_ADD_EOS, "tokenizer.ggml.add_eos_token" },
300
+ { LLM_KV_TOKENIZER_ADD_SEP, "tokenizer.ggml.add_sep_token" },
301
+ { LLM_KV_TOKENIZER_ADD_PREFIX, "tokenizer.ggml.add_space_prefix" },
302
+ { LLM_KV_TOKENIZER_REMOVE_EXTRA_WS, "tokenizer.ggml.remove_extra_whitespaces" },
303
+ { LLM_KV_TOKENIZER_PRECOMPILED_CHARSMAP, "tokenizer.ggml.precompiled_charsmap" },
304
+ { LLM_KV_TOKENIZER_HF_JSON, "tokenizer.huggingface.json" },
305
+ { LLM_KV_TOKENIZER_RWKV, "tokenizer.rwkv.world" },
306
+ { LLM_KV_TOKENIZER_CHAT_TEMPLATE, "tokenizer.chat_template" },
307
+ { LLM_KV_TOKENIZER_FIM_PRE_ID, "tokenizer.ggml.fim_pre_token_id" },
308
+ { LLM_KV_TOKENIZER_FIM_SUF_ID, "tokenizer.ggml.fim_suf_token_id" },
309
+ { LLM_KV_TOKENIZER_FIM_MID_ID, "tokenizer.ggml.fim_mid_token_id" },
310
+ { LLM_KV_TOKENIZER_FIM_PAD_ID, "tokenizer.ggml.fim_pad_token_id" },
311
+ { LLM_KV_TOKENIZER_FIM_REP_ID, "tokenizer.ggml.fim_rep_token_id" },
312
+ { LLM_KV_TOKENIZER_FIM_SEP_ID, "tokenizer.ggml.fim_sep_token_id" },
313
+
314
+ { LLM_KV_ADAPTER_TYPE, "adapter.type" },
315
+ { LLM_KV_ADAPTER_LORA_ALPHA, "adapter.lora.alpha" },
316
+ { LLM_KV_ADAPTER_LORA_TASK_NAME, "adapter.lora.task_name" },
317
+ { LLM_KV_ADAPTER_LORA_PROMPT_PREFIX, "adapter.lora.prompt_prefix" },
318
+ { LLM_KV_ADAPTER_ALORA_INVOCATION_TOKENS, "adapter.alora.invocation_tokens" },
319
+
320
+ { LLM_KV_XIELU_ALPHA_N, "xielu.alpha_n" },
321
+ { LLM_KV_XIELU_ALPHA_P, "xielu.alpha_p" },
322
+ { LLM_KV_XIELU_BETA, "xielu.beta" },
323
+ { LLM_KV_XIELU_EPS, "xielu.eps" },
324
+
325
+ // deprecated
326
+ { LLM_KV_TOKENIZER_PREFIX_ID, "tokenizer.ggml.prefix_token_id" },
327
+ { LLM_KV_TOKENIZER_SUFFIX_ID, "tokenizer.ggml.suffix_token_id" },
328
+ { LLM_KV_TOKENIZER_MIDDLE_ID, "tokenizer.ggml.middle_token_id" },
329
+ };
330
+
331
+ static const std::map<llm_tensor, const char *> LLM_TENSOR_NAMES = {
332
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
333
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
334
+ { LLM_TENSOR_OUTPUT_NORM_LFM2, "token_embd_norm" }, // fix for wrong tensor name
335
+ { LLM_TENSOR_OUTPUT, "output" },
336
+ { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },
337
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
338
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
339
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
340
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
341
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
342
+ { LLM_TENSOR_ATTN_ROT_EMBD, "blk.%d.attn_rot_embd" },
343
+ { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },
344
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
345
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
346
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
347
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
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_GATE_UP_EXPS, "blk.%d.ffn_gate_up_exps" },
353
+ { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },
354
+ { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },
355
+ { LLM_TENSOR_ATTN_POST_NORM, "blk.%d.post_attention_norm" },
356
+ { LLM_TENSOR_ATTN_Q_NORM, "blk.%d.attn_q_norm" },
357
+ { LLM_TENSOR_ATTN_K_NORM, "blk.%d.attn_k_norm" },
358
+ { LLM_TENSOR_ATTN_GATE, "blk.%d.attn_gate" },
359
+ { LLM_TENSOR_FFN_POST_NORM, "blk.%d.post_ffw_norm" },
360
+ { LLM_TENSOR_FFN_GATE_SHEXP, "blk.%d.ffn_gate_shexp" },
361
+ { LLM_TENSOR_FFN_UP_SHEXP, "blk.%d.ffn_up_shexp" },
362
+ { LLM_TENSOR_FFN_DOWN_SHEXP, "blk.%d.ffn_down_shexp" },
363
+ { LLM_TENSOR_FFN_EXP_PROBS_B, "blk.%d.exp_probs_b" },
364
+ { LLM_TENSOR_ATTN_NORM_2, "blk.%d.attn_norm_2" },
365
+ { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },
366
+ { LLM_TENSOR_LAYER_OUT_NORM, "blk.%d.layer_output_norm" },
367
+ { LLM_TENSOR_ATTN_OUT_NORM, "blk.%d.attn_output_norm" },
368
+ { LLM_TENSOR_POS_EMBD, "position_embd" },
369
+ { LLM_TENSOR_FFN_ACT, "blk.%d.ffn.act" },
370
+ { LLM_TENSOR_TOKEN_EMBD_NORM, "token_embd_norm" },
371
+ { LLM_TENSOR_TOKEN_TYPES, "token_types" },
372
+ { LLM_TENSOR_CLS, "cls" },
373
+ { LLM_TENSOR_CLS_OUT, "cls.output" },
374
+ { LLM_TENSOR_CLS_NORM, "cls.norm" },
375
+ { LLM_TENSOR_ENC_OUTPUT_NORM, "enc.output_norm" },
376
+ { LLM_TENSOR_FFN_GATE_INP_SHEXP, "blk.%d.ffn_gate_inp_shexp" },
377
+ { LLM_TENSOR_SSM_A_NOSCAN, "blk.%d.ssm_a" },
378
+ { LLM_TENSOR_SSM_CONV1D, "blk.%d.ssm_conv1d" },
379
+ { LLM_TENSOR_SSM_DT, "blk.%d.ssm_dt" },
380
+ { LLM_TENSOR_SSM_BETA_ALPHA, "blk.%d.ssm_ba" },
381
+ { LLM_TENSOR_SSM_ALPHA, "blk.%d.ssm_alpha" },
382
+ { LLM_TENSOR_SSM_IN, "blk.%d.ssm_in" },
383
+ { LLM_TENSOR_SSM_NORM, "blk.%d.ssm_norm" },
384
+ { LLM_TENSOR_SSM_OUT, "blk.%d.ssm_out" },
385
+ { LLM_TENSOR_ROPE_FACTORS_LONG, "rope_factors_long" },
386
+ { LLM_TENSOR_ROPE_FACTORS_SHORT, "rope_factors_short" },
387
+ { LLM_TENSOR_SSM_X, "blk.%d.ssm_x" },
388
+ { LLM_TENSOR_SSM_A, "blk.%d.ssm_a" },
389
+ { LLM_TENSOR_SSM_D, "blk.%d.ssm_d" },
390
+ { LLM_TENSOR_SSM_DT_NORM, "blk.%d.ssm_dt_norm" },
391
+ { LLM_TENSOR_SSM_B_NORM, "blk.%d.ssm_b_norm" },
392
+ { LLM_TENSOR_SSM_C_NORM, "blk.%d.ssm_c_norm" },
393
+ { LLM_TENSOR_SSM_CONV1D_Q, "blk.%d.ssm_conv1d_q" },
394
+ { LLM_TENSOR_SSM_CONV1D_K, "blk.%d.ssm_conv1d_k" },
395
+ { LLM_TENSOR_SSM_CONV1D_V, "blk.%d.ssm_conv1d_v" },
396
+ { LLM_TENSOR_SSM_F_A, "blk.%d.ssm_f_a" },
397
+ { LLM_TENSOR_SSM_F_B, "blk.%d.ssm_f_b" },
398
+ { LLM_TENSOR_SSM_BETA, "blk.%d.ssm_beta" },
399
+ { LLM_TENSOR_SSM_G_A, "blk.%d.ssm_g_a" },
400
+ { LLM_TENSOR_SSM_G_B, "blk.%d.ssm_g_b" },
401
+ { LLM_TENSOR_SSM_NORM, "blk.%d.ssm_norm" },
402
+ { LLM_TENSOR_ATTN_Q_A_NORM, "blk.%d.attn_q_a_norm" },
403
+ { LLM_TENSOR_ATTN_KV_A_NORM, "blk.%d.attn_kv_a_norm" },
404
+ { LLM_TENSOR_ATTN_Q_A, "blk.%d.attn_q_a" },
405
+ { LLM_TENSOR_ATTN_Q_B, "blk.%d.attn_q_b" },
406
+ { LLM_TENSOR_ATTN_KV_A_MQA, "blk.%d.attn_kv_a_mqa" },
407
+ { LLM_TENSOR_ATTN_KV_B, "blk.%d.attn_kv_b" },
408
+ { LLM_TENSOR_PER_LAYER_TOKEN_EMBD, "per_layer_token_embd" },
409
+ { LLM_TENSOR_PER_LAYER_MODEL_PROJ, "per_layer_model_proj" },
410
+ { LLM_TENSOR_PER_LAYER_PROJ_NORM, "per_layer_proj_norm" },
411
+ { LLM_TENSOR_ALTUP_UNEMBD_PROJ, "altup_unembd_proj" },
412
+ { LLM_TENSOR_ALTUP_PROJ, "altup_proj" },
413
+ { LLM_TENSOR_PER_LAYER_INP_GATE, "blk.%d.inp_gate" },
414
+ { LLM_TENSOR_PER_LAYER_PROJ, "blk.%d.proj" },
415
+ { LLM_TENSOR_PER_LAYER_POST_NORM, "blk.%d.post_norm" },
416
+ { LLM_TENSOR_ALTUP_CORRECT_COEF, "blk.%d.altup_correct_coef" },
417
+ { LLM_TENSOR_ALTUP_CORRECT_SCALE, "blk.%d.altup_correct_scale" },
418
+ { LLM_TENSOR_ALTUP_PREDICT_COEF, "blk.%d.altup_predict_coef" },
419
+ { LLM_TENSOR_ALTUP_ROUTER, "blk.%d.altup_router" },
420
+ { LLM_TENSOR_ALTUP_ROUTER_NORM, "blk.%d.altup_router_norm" },
421
+ { LLM_TENSOR_LAUREL_L, "blk.%d.laurel_l" },
422
+ { LLM_TENSOR_LAUREL_R, "blk.%d.laurel_r" },
423
+ { LLM_TENSOR_LAUREL_POST_NORM, "blk.%d.laurel_post_norm" },
424
+ { LLM_TENSOR_DENSE_2_OUT, "dense_2" },
425
+ { LLM_TENSOR_DENSE_3_OUT, "dense_3" },
426
+ { LLM_TENSOR_FFN_NORM_EXPS, "blk.%d.ffn_norm_exps" },
427
+ { LLM_TENSOR_ATTN_K_B, "blk.%d.attn_k_b" },
428
+ { LLM_TENSOR_ATTN_V_B, "blk.%d.attn_v_b" },
429
+ { LLM_TENSOR_NEXTN_EH_PROJ, "blk.%d.nextn.eh_proj" },
430
+ { LLM_TENSOR_NEXTN_EMBED_TOKENS, "blk.%d.nextn.embed_tokens" },
431
+ { LLM_TENSOR_NEXTN_ENORM, "blk.%d.nextn.enorm" },
432
+ { LLM_TENSOR_NEXTN_HNORM, "blk.%d.nextn.hnorm" },
433
+ { LLM_TENSOR_NEXTN_SHARED_HEAD_HEAD, "blk.%d.nextn.shared_head_head" },
434
+ { LLM_TENSOR_NEXTN_SHARED_HEAD_NORM, "blk.%d.nextn.shared_head_norm" },
435
+ { LLM_TENSOR_ATTN_SUB_NORM, "blk.%d.attn_sub_norm" },
436
+ { LLM_TENSOR_FFN_SUB_NORM, "blk.%d.ffn_sub_norm" },
437
+ { LLM_TENSOR_DEC_OUTPUT_NORM, "dec.output_norm" },
438
+ { LLM_TENSOR_DEC_ATTN_NORM, "dec.blk.%d.attn_norm" },
439
+ { LLM_TENSOR_DEC_ATTN_Q, "dec.blk.%d.attn_q" },
440
+ { LLM_TENSOR_DEC_ATTN_K, "dec.blk.%d.attn_k" },
441
+ { LLM_TENSOR_DEC_ATTN_V, "dec.blk.%d.attn_v" },
442
+ { LLM_TENSOR_DEC_ATTN_OUT, "dec.blk.%d.attn_o" },
443
+ { LLM_TENSOR_DEC_ATTN_REL_B, "dec.blk.%d.attn_rel_b" },
444
+ { LLM_TENSOR_DEC_CROSS_ATTN_NORM, "dec.blk.%d.cross_attn_norm" },
445
+ { LLM_TENSOR_DEC_CROSS_ATTN_Q, "dec.blk.%d.cross_attn_q" },
446
+ { LLM_TENSOR_DEC_CROSS_ATTN_K, "dec.blk.%d.cross_attn_k" },
447
+ { LLM_TENSOR_DEC_CROSS_ATTN_V, "dec.blk.%d.cross_attn_v" },
448
+ { LLM_TENSOR_DEC_CROSS_ATTN_OUT, "dec.blk.%d.cross_attn_o" },
449
+ { LLM_TENSOR_DEC_CROSS_ATTN_REL_B, "dec.blk.%d.cross_attn_rel_b" },
450
+ { LLM_TENSOR_DEC_FFN_NORM, "dec.blk.%d.ffn_norm" },
451
+ { LLM_TENSOR_DEC_FFN_GATE, "dec.blk.%d.ffn_gate" },
452
+ { LLM_TENSOR_DEC_FFN_DOWN, "dec.blk.%d.ffn_down" },
453
+ { LLM_TENSOR_DEC_FFN_UP, "dec.blk.%d.ffn_up" },
454
+ { LLM_TENSOR_ENC_ATTN_NORM, "enc.blk.%d.attn_norm" },
455
+ { LLM_TENSOR_ENC_ATTN_Q, "enc.blk.%d.attn_q" },
456
+ { LLM_TENSOR_ENC_ATTN_K, "enc.blk.%d.attn_k" },
457
+ { LLM_TENSOR_ENC_ATTN_V, "enc.blk.%d.attn_v" },
458
+ { LLM_TENSOR_ENC_ATTN_OUT, "enc.blk.%d.attn_o" },
459
+ { LLM_TENSOR_ENC_ATTN_REL_B, "enc.blk.%d.attn_rel_b" },
460
+ { LLM_TENSOR_ENC_FFN_NORM, "enc.blk.%d.ffn_norm" },
461
+ { LLM_TENSOR_ENC_FFN_GATE, "enc.blk.%d.ffn_gate" },
462
+ { LLM_TENSOR_ENC_FFN_DOWN, "enc.blk.%d.ffn_down" },
463
+ { LLM_TENSOR_ENC_FFN_UP, "enc.blk.%d.ffn_up" },
464
+ { LLM_TENSOR_TIME_MIX_W1, "blk.%d.time_mix_w1" },
465
+ { LLM_TENSOR_TIME_MIX_W2, "blk.%d.time_mix_w2" },
466
+ { LLM_TENSOR_TIME_MIX_LERP_X, "blk.%d.time_mix_lerp_x" },
467
+ { LLM_TENSOR_TIME_MIX_LERP_W, "blk.%d.time_mix_lerp_w" },
468
+ { LLM_TENSOR_TIME_MIX_LERP_K, "blk.%d.time_mix_lerp_k" },
469
+ { LLM_TENSOR_TIME_MIX_LERP_V, "blk.%d.time_mix_lerp_v" },
470
+ { LLM_TENSOR_TIME_MIX_LERP_R, "blk.%d.time_mix_lerp_r" },
471
+ { LLM_TENSOR_TIME_MIX_LERP_G, "blk.%d.time_mix_lerp_g" },
472
+ { LLM_TENSOR_TIME_MIX_LERP_FUSED, "blk.%d.time_mix_lerp_fused" },
473
+ { LLM_TENSOR_TIME_MIX_FIRST, "blk.%d.time_mix_first" },
474
+ { LLM_TENSOR_TIME_MIX_DECAY, "blk.%d.time_mix_decay" },
475
+ { LLM_TENSOR_TIME_MIX_DECAY_W1, "blk.%d.time_mix_decay_w1" },
476
+ { LLM_TENSOR_TIME_MIX_DECAY_W2, "blk.%d.time_mix_decay_w2" },
477
+ { LLM_TENSOR_TIME_MIX_KEY, "blk.%d.time_mix_key" },
478
+ { LLM_TENSOR_TIME_MIX_VALUE, "blk.%d.time_mix_value" },
479
+ { LLM_TENSOR_TIME_MIX_RECEPTANCE, "blk.%d.time_mix_receptance" },
480
+ { LLM_TENSOR_TIME_MIX_GATE, "blk.%d.time_mix_gate" },
481
+ { LLM_TENSOR_TIME_MIX_LN, "blk.%d.time_mix_ln" },
482
+ { LLM_TENSOR_TIME_MIX_OUTPUT, "blk.%d.time_mix_output" },
483
+ { LLM_TENSOR_CHANNEL_MIX_LERP_K, "blk.%d.channel_mix_lerp_k" },
484
+ { LLM_TENSOR_CHANNEL_MIX_LERP_R, "blk.%d.channel_mix_lerp_r" },
485
+ { LLM_TENSOR_CHANNEL_MIX_KEY, "blk.%d.channel_mix_key" },
486
+ { LLM_TENSOR_CHANNEL_MIX_VALUE, "blk.%d.channel_mix_value" },
487
+ { LLM_TENSOR_CHANNEL_MIX_RECEPTANCE, "blk.%d.channel_mix_receptance" },
488
+ { LLM_TENSOR_TIME_MIX_W0, "blk.%d.time_mix_w0" },
489
+ { LLM_TENSOR_TIME_MIX_A0, "blk.%d.time_mix_a0" },
490
+ { LLM_TENSOR_TIME_MIX_A1, "blk.%d.time_mix_a1" },
491
+ { LLM_TENSOR_TIME_MIX_A2, "blk.%d.time_mix_a2" },
492
+ { LLM_TENSOR_TIME_MIX_V0, "blk.%d.time_mix_v0" },
493
+ { LLM_TENSOR_TIME_MIX_V1, "blk.%d.time_mix_v1" },
494
+ { LLM_TENSOR_TIME_MIX_V2, "blk.%d.time_mix_v2" },
495
+ { LLM_TENSOR_TIME_MIX_G1, "blk.%d.time_mix_g1" },
496
+ { LLM_TENSOR_TIME_MIX_G2, "blk.%d.time_mix_g2" },
497
+ { LLM_TENSOR_TIME_MIX_K_K, "blk.%d.time_mix_k_k" },
498
+ { LLM_TENSOR_TIME_MIX_K_A, "blk.%d.time_mix_k_a" },
499
+ { LLM_TENSOR_TIME_MIX_R_K, "blk.%d.time_mix_r_k" },
500
+ { LLM_TENSOR_CONV1D, "conv1d" },
501
+ { LLM_TENSOR_CONVNEXT_DW, "convnext.%d.dw" },
502
+ { LLM_TENSOR_CONVNEXT_NORM, "convnext.%d.norm" },
503
+ { LLM_TENSOR_CONVNEXT_PW1, "convnext.%d.pw1" },
504
+ { LLM_TENSOR_CONVNEXT_PW2, "convnext.%d.pw2" },
505
+ { LLM_TENSOR_CONVNEXT_GAMMA, "convnext.%d.gamma" },
506
+ { LLM_TENSOR_POS_NET_CONV1, "posnet.%d.conv1" },
507
+ { LLM_TENSOR_POS_NET_CONV2, "posnet.%d.conv2" },
508
+ { LLM_TENSOR_POS_NET_NORM, "posnet.%d.norm" },
509
+ { LLM_TENSOR_POS_NET_NORM1, "posnet.%d.norm1" },
510
+ { LLM_TENSOR_POS_NET_NORM2, "posnet.%d.norm2" },
511
+ { LLM_TENSOR_POS_NET_ATTN_NORM, "posnet.%d.attn_norm" },
512
+ { LLM_TENSOR_POS_NET_ATTN_Q, "posnet.%d.attn_q" },
513
+ { LLM_TENSOR_POS_NET_ATTN_K, "posnet.%d.attn_k" },
514
+ { LLM_TENSOR_POS_NET_ATTN_V, "posnet.%d.attn_v" },
515
+ { LLM_TENSOR_POS_NET_ATTN_OUT, "posnet.%d.attn_output" },
516
+ { LLM_TENSOR_ATTN_SINKS, "blk.%d.attn_sinks" },
517
+ { LLM_TENSOR_SHORTCONV_CONV, "blk.%d.shortconv.conv" },
518
+ { LLM_TENSOR_SHORTCONV_INPROJ, "blk.%d.shortconv.in_proj" },
519
+ { LLM_TENSOR_SHORTCONV_OUTPROJ, "blk.%d.shortconv.out_proj" },
520
+ { LLM_TENSOR_FFN_GATE_CHEXPS, "blk.%d.ffn_gate_chexps" },
521
+ { LLM_TENSOR_FFN_DOWN_CHEXPS, "blk.%d.ffn_down_chexps" },
522
+ { LLM_TENSOR_FFN_UP_CHEXPS, "blk.%d.ffn_up_chexps" },
523
+ { LLM_TENSOR_VISEXP_ATTN_QKV, "blk.%d.vis_attn_qkv" },
524
+ { LLM_TENSOR_VISEXP_ATTN_OUT, "blk.%d.vis_attn_output" },
525
+ { LLM_TENSOR_VISEXP_FFN_GATE, "blk.%d.vis_gate" },
526
+ { LLM_TENSOR_VISEXP_FFN_DOWN, "blk.%d.vis_down" },
527
+ { LLM_TENSOR_VISEXP_FFN_UP, "blk.%d.vis_up" },
528
+ { LLM_TENSOR_INDEXER_K_NORM, "blk.%d.indexer.k_norm" },
529
+ { LLM_TENSOR_INDEXER_PROJ, "blk.%d.indexer.proj" },
530
+ { LLM_TENSOR_INDEXER_ATTN_K, "blk.%d.indexer.attn_k" },
531
+ { LLM_TENSOR_INDEXER_ATTN_Q_B, "blk.%d.indexer.attn_q_b" },
532
+ };
533
+
534
+ static std::set<llm_tensor> llm_get_tensor_names(llm_arch arch) {
535
+ switch (arch) {
536
+ case LLM_ARCH_CLIP:
537
+ return {};
538
+ case LLM_ARCH_LLAMA:
539
+ case LLM_ARCH_DECI:
540
+ case LLM_ARCH_MISTRAL3:
541
+ case LLM_ARCH_LLAMA_EMBED:
542
+ return {
543
+ LLM_TENSOR_TOKEN_EMBD,
544
+ LLM_TENSOR_OUTPUT_NORM,
545
+ LLM_TENSOR_OUTPUT,
546
+ LLM_TENSOR_ROPE_FREQS,
547
+ LLM_TENSOR_ATTN_NORM,
548
+ LLM_TENSOR_ATTN_Q,
549
+ LLM_TENSOR_ATTN_K,
550
+ LLM_TENSOR_ATTN_V,
551
+ LLM_TENSOR_ATTN_OUT,
552
+ LLM_TENSOR_ATTN_ROT_EMBD,
553
+ LLM_TENSOR_FFN_GATE_INP,
554
+ LLM_TENSOR_FFN_NORM,
555
+ LLM_TENSOR_FFN_GATE,
556
+ LLM_TENSOR_FFN_DOWN,
557
+ LLM_TENSOR_FFN_UP,
558
+ LLM_TENSOR_FFN_GATE_EXP,
559
+ LLM_TENSOR_FFN_DOWN_EXP,
560
+ LLM_TENSOR_FFN_UP_EXP,
561
+ LLM_TENSOR_FFN_GATE_EXPS,
562
+ LLM_TENSOR_FFN_DOWN_EXPS,
563
+ LLM_TENSOR_FFN_UP_EXPS,
564
+ };
565
+ case LLM_ARCH_ARCEE:
566
+ case LLM_ARCH_STARCODER2:
567
+ case LLM_ARCH_NEMOTRON:
568
+ return {
569
+ LLM_TENSOR_TOKEN_EMBD,
570
+ LLM_TENSOR_OUTPUT_NORM,
571
+ LLM_TENSOR_OUTPUT,
572
+ LLM_TENSOR_ROPE_FREQS,
573
+ LLM_TENSOR_ATTN_NORM,
574
+ LLM_TENSOR_ATTN_Q,
575
+ LLM_TENSOR_ATTN_K,
576
+ LLM_TENSOR_ATTN_V,
577
+ LLM_TENSOR_ATTN_OUT,
578
+ LLM_TENSOR_ATTN_ROT_EMBD,
579
+ LLM_TENSOR_FFN_NORM,
580
+ LLM_TENSOR_FFN_DOWN,
581
+ LLM_TENSOR_FFN_UP,
582
+ };
583
+ case LLM_ARCH_AFMOE:
584
+ return {
585
+ LLM_TENSOR_TOKEN_EMBD,
586
+ LLM_TENSOR_OUTPUT_NORM,
587
+ LLM_TENSOR_OUTPUT,
588
+ LLM_TENSOR_ATTN_NORM,
589
+ LLM_TENSOR_ATTN_POST_NORM,
590
+ LLM_TENSOR_ATTN_Q,
591
+ LLM_TENSOR_ATTN_K,
592
+ LLM_TENSOR_ATTN_V,
593
+ LLM_TENSOR_ATTN_OUT,
594
+ LLM_TENSOR_ATTN_Q_NORM,
595
+ LLM_TENSOR_ATTN_K_NORM,
596
+ LLM_TENSOR_ATTN_GATE,
597
+ LLM_TENSOR_FFN_NORM,
598
+ LLM_TENSOR_FFN_POST_NORM,
599
+ LLM_TENSOR_FFN_GATE_INP,
600
+ LLM_TENSOR_FFN_GATE,
601
+ LLM_TENSOR_FFN_DOWN,
602
+ LLM_TENSOR_FFN_UP,
603
+ LLM_TENSOR_FFN_GATE_EXPS,
604
+ LLM_TENSOR_FFN_DOWN_EXPS,
605
+ LLM_TENSOR_FFN_UP_EXPS,
606
+ LLM_TENSOR_FFN_GATE_SHEXP,
607
+ LLM_TENSOR_FFN_UP_SHEXP,
608
+ LLM_TENSOR_FFN_DOWN_SHEXP,
609
+ LLM_TENSOR_FFN_EXP_PROBS_B,
610
+ };
611
+ case LLM_ARCH_LLAMA4:
612
+ return {
613
+ LLM_TENSOR_TOKEN_EMBD,
614
+ LLM_TENSOR_OUTPUT_NORM,
615
+ LLM_TENSOR_OUTPUT,
616
+ LLM_TENSOR_ROPE_FREQS,
617
+ LLM_TENSOR_ATTN_NORM,
618
+ LLM_TENSOR_ATTN_Q,
619
+ LLM_TENSOR_ATTN_K,
620
+ LLM_TENSOR_ATTN_V,
621
+ LLM_TENSOR_ATTN_OUT,
622
+ LLM_TENSOR_ATTN_ROT_EMBD,
623
+ LLM_TENSOR_FFN_GATE_INP,
624
+ LLM_TENSOR_FFN_NORM,
625
+ LLM_TENSOR_FFN_GATE,
626
+ LLM_TENSOR_FFN_DOWN,
627
+ LLM_TENSOR_FFN_UP,
628
+ LLM_TENSOR_FFN_GATE_EXP,
629
+ LLM_TENSOR_FFN_DOWN_EXP,
630
+ LLM_TENSOR_FFN_UP_EXP,
631
+ LLM_TENSOR_FFN_GATE_EXPS,
632
+ LLM_TENSOR_FFN_DOWN_EXPS,
633
+ LLM_TENSOR_FFN_UP_EXPS,
634
+ LLM_TENSOR_FFN_GATE_SHEXP,
635
+ LLM_TENSOR_FFN_DOWN_SHEXP,
636
+ LLM_TENSOR_FFN_UP_SHEXP,
637
+ };
638
+ case LLM_ARCH_BAICHUAN:
639
+ case LLM_ARCH_ORION:
640
+ case LLM_ARCH_XVERSE:
641
+ case LLM_ARCH_EXAONE:
642
+ return {
643
+ LLM_TENSOR_TOKEN_EMBD,
644
+ LLM_TENSOR_OUTPUT_NORM,
645
+ LLM_TENSOR_OUTPUT,
646
+ LLM_TENSOR_ROPE_FREQS,
647
+ LLM_TENSOR_ATTN_NORM,
648
+ LLM_TENSOR_ATTN_Q,
649
+ LLM_TENSOR_ATTN_K,
650
+ LLM_TENSOR_ATTN_V,
651
+ LLM_TENSOR_ATTN_OUT,
652
+ LLM_TENSOR_ATTN_ROT_EMBD,
653
+ LLM_TENSOR_FFN_NORM,
654
+ LLM_TENSOR_FFN_GATE,
655
+ LLM_TENSOR_FFN_DOWN,
656
+ LLM_TENSOR_FFN_UP,
657
+ };
658
+ case LLM_ARCH_FALCON:
659
+ return {
660
+ LLM_TENSOR_TOKEN_EMBD,
661
+ LLM_TENSOR_OUTPUT_NORM,
662
+ LLM_TENSOR_OUTPUT,
663
+ LLM_TENSOR_ATTN_NORM,
664
+ LLM_TENSOR_ATTN_NORM_2,
665
+ LLM_TENSOR_ATTN_QKV,
666
+ LLM_TENSOR_ATTN_OUT,
667
+ LLM_TENSOR_FFN_DOWN,
668
+ LLM_TENSOR_FFN_UP,
669
+ };
670
+ case LLM_ARCH_GROK:
671
+ return {
672
+ LLM_TENSOR_TOKEN_EMBD,
673
+ LLM_TENSOR_OUTPUT_NORM,
674
+ LLM_TENSOR_OUTPUT,
675
+ LLM_TENSOR_ROPE_FREQS,
676
+ LLM_TENSOR_ATTN_NORM,
677
+ LLM_TENSOR_ATTN_Q,
678
+ LLM_TENSOR_ATTN_K,
679
+ LLM_TENSOR_ATTN_V,
680
+ LLM_TENSOR_ATTN_OUT,
681
+ LLM_TENSOR_ATTN_ROT_EMBD,
682
+ LLM_TENSOR_FFN_GATE_INP,
683
+ LLM_TENSOR_FFN_NORM,
684
+ LLM_TENSOR_FFN_GATE,
685
+ LLM_TENSOR_FFN_DOWN,
686
+ LLM_TENSOR_FFN_UP,
687
+ LLM_TENSOR_FFN_GATE_EXP,
688
+ LLM_TENSOR_FFN_DOWN_EXP,
689
+ LLM_TENSOR_FFN_UP_EXP,
690
+ LLM_TENSOR_FFN_GATE_EXPS,
691
+ LLM_TENSOR_FFN_DOWN_EXPS,
692
+ LLM_TENSOR_FFN_UP_EXPS,
693
+ LLM_TENSOR_FFN_POST_NORM,
694
+ LLM_TENSOR_LAYER_OUT_NORM,
695
+ LLM_TENSOR_ATTN_OUT_NORM,
696
+ };
697
+ case LLM_ARCH_GPT2:
698
+ case LLM_ARCH_STARCODER:
699
+ return {
700
+ LLM_TENSOR_TOKEN_EMBD,
701
+ LLM_TENSOR_POS_EMBD,
702
+ LLM_TENSOR_OUTPUT_NORM,
703
+ LLM_TENSOR_OUTPUT,
704
+ LLM_TENSOR_ATTN_NORM,
705
+ LLM_TENSOR_ATTN_QKV,
706
+ LLM_TENSOR_ATTN_OUT,
707
+ LLM_TENSOR_FFN_NORM,
708
+ LLM_TENSOR_FFN_UP,
709
+ LLM_TENSOR_FFN_DOWN,
710
+ };
711
+ case LLM_ARCH_GPTNEOX:
712
+ return {
713
+ LLM_TENSOR_TOKEN_EMBD,
714
+ LLM_TENSOR_OUTPUT_NORM,
715
+ LLM_TENSOR_OUTPUT,
716
+ LLM_TENSOR_ATTN_NORM,
717
+ LLM_TENSOR_ATTN_QKV,
718
+ LLM_TENSOR_ATTN_OUT,
719
+ LLM_TENSOR_FFN_NORM,
720
+ LLM_TENSOR_FFN_DOWN,
721
+ LLM_TENSOR_FFN_UP,
722
+ };
723
+ case LLM_ARCH_MPT:
724
+ return {
725
+ LLM_TENSOR_TOKEN_EMBD,
726
+ LLM_TENSOR_OUTPUT_NORM,
727
+ LLM_TENSOR_OUTPUT,
728
+ LLM_TENSOR_ATTN_NORM,
729
+ LLM_TENSOR_FFN_NORM,
730
+ LLM_TENSOR_ATTN_QKV,
731
+ LLM_TENSOR_ATTN_OUT,
732
+ LLM_TENSOR_FFN_DOWN,
733
+ LLM_TENSOR_FFN_UP,
734
+ LLM_TENSOR_FFN_ACT,
735
+ LLM_TENSOR_POS_EMBD,
736
+ LLM_TENSOR_ATTN_Q_NORM,
737
+ LLM_TENSOR_ATTN_K_NORM,
738
+ };
739
+ case LLM_ARCH_REFACT:
740
+ case LLM_ARCH_QWEN2:
741
+ case LLM_ARCH_QWEN2VL:
742
+ case LLM_ARCH_INTERNLM2:
743
+ case LLM_ARCH_GRANITE:
744
+ case LLM_ARCH_ERNIE4_5:
745
+ case LLM_ARCH_PADDLEOCR:
746
+ case LLM_ARCH_SMOLLM3:
747
+ case LLM_ARCH_DREAM:
748
+ case LLM_ARCH_LLADA:
749
+ case LLM_ARCH_PANGU_EMBED:
750
+ return {
751
+ LLM_TENSOR_TOKEN_EMBD,
752
+ LLM_TENSOR_OUTPUT_NORM,
753
+ LLM_TENSOR_OUTPUT,
754
+ LLM_TENSOR_ATTN_NORM,
755
+ LLM_TENSOR_ATTN_Q,
756
+ LLM_TENSOR_ATTN_K,
757
+ LLM_TENSOR_ATTN_V,
758
+ LLM_TENSOR_ATTN_OUT,
759
+ LLM_TENSOR_FFN_NORM,
760
+ LLM_TENSOR_FFN_GATE,
761
+ LLM_TENSOR_FFN_DOWN,
762
+ LLM_TENSOR_FFN_UP,
763
+ };
764
+ case LLM_ARCH_BERT:
765
+ return {
766
+ LLM_TENSOR_TOKEN_EMBD,
767
+ LLM_TENSOR_TOKEN_EMBD_NORM,
768
+ LLM_TENSOR_TOKEN_TYPES,
769
+ LLM_TENSOR_POS_EMBD,
770
+ LLM_TENSOR_ATTN_OUT_NORM,
771
+ LLM_TENSOR_ATTN_QKV,
772
+ LLM_TENSOR_ATTN_Q,
773
+ LLM_TENSOR_ATTN_K,
774
+ LLM_TENSOR_ATTN_V,
775
+ LLM_TENSOR_ATTN_OUT,
776
+ LLM_TENSOR_LAYER_OUT_NORM,
777
+ LLM_TENSOR_FFN_DOWN,
778
+ LLM_TENSOR_FFN_UP,
779
+ LLM_TENSOR_CLS,
780
+ LLM_TENSOR_CLS_OUT,
781
+ };
782
+ case LLM_ARCH_NOMIC_BERT:
783
+ return {
784
+ LLM_TENSOR_TOKEN_EMBD,
785
+ LLM_TENSOR_TOKEN_EMBD_NORM,
786
+ LLM_TENSOR_TOKEN_TYPES,
787
+ LLM_TENSOR_ATTN_OUT_NORM,
788
+ LLM_TENSOR_ATTN_QKV,
789
+ LLM_TENSOR_ATTN_OUT,
790
+ LLM_TENSOR_LAYER_OUT_NORM,
791
+ LLM_TENSOR_FFN_GATE,
792
+ LLM_TENSOR_FFN_DOWN,
793
+ LLM_TENSOR_FFN_UP,
794
+ };
795
+ case LLM_ARCH_NOMIC_BERT_MOE:
796
+ return {
797
+ LLM_TENSOR_TOKEN_EMBD,
798
+ LLM_TENSOR_TOKEN_EMBD_NORM,
799
+ LLM_TENSOR_TOKEN_TYPES,
800
+ LLM_TENSOR_ATTN_OUT_NORM,
801
+ LLM_TENSOR_ATTN_QKV,
802
+ LLM_TENSOR_ATTN_OUT,
803
+ LLM_TENSOR_LAYER_OUT_NORM,
804
+ LLM_TENSOR_FFN_GATE,
805
+ LLM_TENSOR_FFN_DOWN,
806
+ LLM_TENSOR_FFN_UP,
807
+ LLM_TENSOR_FFN_GATE_INP,
808
+ LLM_TENSOR_FFN_DOWN_EXPS,
809
+ LLM_TENSOR_FFN_UP_EXPS,
810
+ };
811
+ case LLM_ARCH_NEO_BERT:
812
+ return {
813
+ LLM_TENSOR_TOKEN_EMBD,
814
+ LLM_TENSOR_ATTN_NORM,
815
+ LLM_TENSOR_ATTN_QKV,
816
+ LLM_TENSOR_ATTN_OUT,
817
+ LLM_TENSOR_FFN_NORM,
818
+ LLM_TENSOR_FFN_DOWN,
819
+ LLM_TENSOR_FFN_UP,
820
+ LLM_TENSOR_ENC_OUTPUT_NORM,
821
+ LLM_TENSOR_CLS,
822
+ LLM_TENSOR_CLS_OUT,
823
+ };
824
+ case LLM_ARCH_EUROBERT:
825
+ return {
826
+ LLM_TENSOR_TOKEN_EMBD,
827
+ LLM_TENSOR_OUTPUT_NORM,
828
+ LLM_TENSOR_ATTN_NORM,
829
+ LLM_TENSOR_ATTN_Q,
830
+ LLM_TENSOR_ATTN_K,
831
+ LLM_TENSOR_ATTN_V,
832
+ LLM_TENSOR_ATTN_OUT,
833
+ LLM_TENSOR_FFN_NORM,
834
+ LLM_TENSOR_FFN_GATE,
835
+ LLM_TENSOR_FFN_UP,
836
+ LLM_TENSOR_FFN_DOWN,
837
+ };
838
+ case LLM_ARCH_MODERN_BERT:
839
+ return {
840
+ LLM_TENSOR_TOKEN_EMBD,
841
+ LLM_TENSOR_TOKEN_EMBD_NORM,
842
+ LLM_TENSOR_OUTPUT_NORM,
843
+ LLM_TENSOR_ATTN_NORM,
844
+ LLM_TENSOR_ATTN_OUT,
845
+ LLM_TENSOR_ATTN_QKV,
846
+ LLM_TENSOR_FFN_DOWN,
847
+ LLM_TENSOR_FFN_UP,
848
+ LLM_TENSOR_FFN_NORM,
849
+ LLM_TENSOR_CLS,
850
+ LLM_TENSOR_CLS_OUT,
851
+ LLM_TENSOR_CLS_NORM,
852
+ };
853
+ case LLM_ARCH_JINA_BERT_V2:
854
+ return {
855
+ LLM_TENSOR_TOKEN_EMBD,
856
+ LLM_TENSOR_TOKEN_EMBD_NORM,
857
+ LLM_TENSOR_TOKEN_TYPES,
858
+ LLM_TENSOR_ATTN_NORM_2,
859
+ LLM_TENSOR_ATTN_OUT_NORM,
860
+ LLM_TENSOR_ATTN_Q,
861
+ LLM_TENSOR_ATTN_Q_NORM,
862
+ LLM_TENSOR_ATTN_K,
863
+ LLM_TENSOR_ATTN_K_NORM,
864
+ LLM_TENSOR_ATTN_V,
865
+ LLM_TENSOR_ATTN_OUT,
866
+ LLM_TENSOR_LAYER_OUT_NORM,
867
+ LLM_TENSOR_FFN_DOWN,
868
+ LLM_TENSOR_FFN_GATE,
869
+ LLM_TENSOR_FFN_UP,
870
+ LLM_TENSOR_CLS,
871
+ };
872
+ case LLM_ARCH_JINA_BERT_V3:
873
+ return {
874
+ LLM_TENSOR_TOKEN_EMBD,
875
+ LLM_TENSOR_TOKEN_EMBD_NORM,
876
+ LLM_TENSOR_TOKEN_TYPES,
877
+ LLM_TENSOR_ATTN_OUT_NORM,
878
+ LLM_TENSOR_ATTN_QKV,
879
+ LLM_TENSOR_ATTN_OUT,
880
+ LLM_TENSOR_FFN_DOWN,
881
+ LLM_TENSOR_FFN_UP,
882
+ LLM_TENSOR_LAYER_OUT_NORM,
883
+ };
884
+ case LLM_ARCH_BLOOM:
885
+ return {
886
+ LLM_TENSOR_TOKEN_EMBD,
887
+ LLM_TENSOR_TOKEN_EMBD_NORM,
888
+ LLM_TENSOR_OUTPUT_NORM,
889
+ LLM_TENSOR_OUTPUT,
890
+ LLM_TENSOR_ATTN_NORM,
891
+ LLM_TENSOR_ATTN_QKV,
892
+ LLM_TENSOR_ATTN_OUT,
893
+ LLM_TENSOR_FFN_NORM,
894
+ LLM_TENSOR_FFN_UP,
895
+ LLM_TENSOR_FFN_DOWN,
896
+ };
897
+ case LLM_ARCH_STABLELM:
898
+ return {
899
+ LLM_TENSOR_TOKEN_EMBD,
900
+ LLM_TENSOR_OUTPUT_NORM,
901
+ LLM_TENSOR_OUTPUT,
902
+ LLM_TENSOR_ROPE_FREQS,
903
+ LLM_TENSOR_ATTN_NORM,
904
+ LLM_TENSOR_ATTN_Q,
905
+ LLM_TENSOR_ATTN_K,
906
+ LLM_TENSOR_ATTN_V,
907
+ LLM_TENSOR_ATTN_OUT,
908
+ LLM_TENSOR_FFN_NORM,
909
+ LLM_TENSOR_FFN_GATE,
910
+ LLM_TENSOR_FFN_DOWN,
911
+ LLM_TENSOR_FFN_UP,
912
+ LLM_TENSOR_ATTN_Q_NORM,
913
+ LLM_TENSOR_ATTN_K_NORM,
914
+ };
915
+ case LLM_ARCH_QWEN:
916
+ return {
917
+ LLM_TENSOR_TOKEN_EMBD,
918
+ LLM_TENSOR_OUTPUT_NORM,
919
+ LLM_TENSOR_OUTPUT,
920
+ LLM_TENSOR_ROPE_FREQS,
921
+ LLM_TENSOR_ATTN_NORM,
922
+ LLM_TENSOR_ATTN_QKV,
923
+ LLM_TENSOR_ATTN_OUT,
924
+ LLM_TENSOR_FFN_NORM,
925
+ LLM_TENSOR_FFN_GATE,
926
+ LLM_TENSOR_FFN_DOWN,
927
+ LLM_TENSOR_FFN_UP,
928
+ };
929
+ case LLM_ARCH_QWEN2MOE:
930
+ return {
931
+ LLM_TENSOR_TOKEN_EMBD,
932
+ LLM_TENSOR_OUTPUT_NORM,
933
+ LLM_TENSOR_OUTPUT,
934
+ LLM_TENSOR_ATTN_NORM,
935
+ LLM_TENSOR_ATTN_Q,
936
+ LLM_TENSOR_ATTN_K,
937
+ LLM_TENSOR_ATTN_V,
938
+ LLM_TENSOR_ATTN_OUT,
939
+ LLM_TENSOR_FFN_NORM,
940
+ LLM_TENSOR_FFN_GATE_INP,
941
+ LLM_TENSOR_FFN_GATE_EXPS,
942
+ LLM_TENSOR_FFN_DOWN_EXPS,
943
+ LLM_TENSOR_FFN_UP_EXPS,
944
+ LLM_TENSOR_FFN_GATE_INP_SHEXP,
945
+ LLM_TENSOR_FFN_GATE_SHEXP,
946
+ LLM_TENSOR_FFN_DOWN_SHEXP,
947
+ LLM_TENSOR_FFN_UP_SHEXP,
948
+ };
949
+ case LLM_ARCH_QWEN3:
950
+ return {
951
+ LLM_TENSOR_TOKEN_EMBD,
952
+ LLM_TENSOR_OUTPUT_NORM,
953
+ LLM_TENSOR_OUTPUT,
954
+ LLM_TENSOR_CLS_OUT,
955
+ LLM_TENSOR_ATTN_NORM,
956
+ LLM_TENSOR_ATTN_Q,
957
+ LLM_TENSOR_ATTN_Q_NORM,
958
+ LLM_TENSOR_ATTN_K,
959
+ LLM_TENSOR_ATTN_K_NORM,
960
+ LLM_TENSOR_ATTN_V,
961
+ LLM_TENSOR_ATTN_OUT,
962
+ LLM_TENSOR_FFN_NORM,
963
+ LLM_TENSOR_FFN_GATE,
964
+ LLM_TENSOR_FFN_DOWN,
965
+ LLM_TENSOR_FFN_UP,
966
+ };
967
+ case LLM_ARCH_QWEN3MOE:
968
+ case LLM_ARCH_QWEN3VLMOE:
969
+ case LLM_ARCH_OLMOE:
970
+ case LLM_ARCH_LLADA_MOE:
971
+ case LLM_ARCH_RND1:
972
+ return {
973
+ LLM_TENSOR_TOKEN_EMBD,
974
+ LLM_TENSOR_OUTPUT_NORM,
975
+ LLM_TENSOR_OUTPUT,
976
+ LLM_TENSOR_ATTN_NORM,
977
+ LLM_TENSOR_ATTN_Q,
978
+ LLM_TENSOR_ATTN_Q_NORM,
979
+ LLM_TENSOR_ATTN_K,
980
+ LLM_TENSOR_ATTN_K_NORM,
981
+ LLM_TENSOR_ATTN_V,
982
+ LLM_TENSOR_ATTN_OUT,
983
+ LLM_TENSOR_FFN_NORM,
984
+ LLM_TENSOR_FFN_GATE_INP,
985
+ LLM_TENSOR_FFN_GATE_EXPS,
986
+ LLM_TENSOR_FFN_DOWN_EXPS,
987
+ LLM_TENSOR_FFN_UP_EXPS,
988
+ };
989
+ case LLM_ARCH_QWEN3NEXT:
990
+ return {
991
+ LLM_TENSOR_TOKEN_EMBD,
992
+ LLM_TENSOR_OUTPUT_NORM,
993
+ LLM_TENSOR_OUTPUT,
994
+ LLM_TENSOR_ATTN_NORM,
995
+ LLM_TENSOR_ATTN_POST_NORM,
996
+ LLM_TENSOR_ATTN_Q,
997
+ LLM_TENSOR_ATTN_Q_NORM,
998
+ LLM_TENSOR_ATTN_K,
999
+ LLM_TENSOR_ATTN_K_NORM,
1000
+ LLM_TENSOR_ATTN_V,
1001
+ LLM_TENSOR_ATTN_OUT,
1002
+ LLM_TENSOR_ATTN_QKV,
1003
+ LLM_TENSOR_ATTN_GATE,
1004
+ LLM_TENSOR_FFN_GATE_INP,
1005
+ LLM_TENSOR_FFN_GATE_EXPS,
1006
+ LLM_TENSOR_FFN_DOWN_EXPS,
1007
+ LLM_TENSOR_FFN_UP_EXPS,
1008
+ LLM_TENSOR_FFN_GATE_UP_EXPS,
1009
+ LLM_TENSOR_FFN_GATE_INP_SHEXP,
1010
+ LLM_TENSOR_FFN_GATE_SHEXP,
1011
+ LLM_TENSOR_FFN_DOWN_SHEXP,
1012
+ LLM_TENSOR_FFN_UP_SHEXP,
1013
+ LLM_TENSOR_SSM_A_NOSCAN,
1014
+ LLM_TENSOR_SSM_CONV1D,
1015
+ LLM_TENSOR_SSM_DT,
1016
+ LLM_TENSOR_SSM_BETA_ALPHA,
1017
+ LLM_TENSOR_SSM_IN,
1018
+ LLM_TENSOR_SSM_NORM,
1019
+ LLM_TENSOR_SSM_OUT,
1020
+ };
1021
+ case LLM_ARCH_QWEN35:
1022
+ return {
1023
+ LLM_TENSOR_TOKEN_EMBD,
1024
+ LLM_TENSOR_OUTPUT_NORM,
1025
+ LLM_TENSOR_OUTPUT,
1026
+ LLM_TENSOR_ATTN_NORM,
1027
+ LLM_TENSOR_ATTN_POST_NORM,
1028
+ LLM_TENSOR_ATTN_Q,
1029
+ LLM_TENSOR_ATTN_Q_NORM,
1030
+ LLM_TENSOR_ATTN_K,
1031
+ LLM_TENSOR_ATTN_K_NORM,
1032
+ LLM_TENSOR_ATTN_V,
1033
+ LLM_TENSOR_ATTN_OUT,
1034
+ LLM_TENSOR_ATTN_QKV,
1035
+ LLM_TENSOR_ATTN_GATE,
1036
+ LLM_TENSOR_FFN_GATE,
1037
+ LLM_TENSOR_FFN_DOWN,
1038
+ LLM_TENSOR_FFN_UP,
1039
+ LLM_TENSOR_SSM_A_NOSCAN,
1040
+ LLM_TENSOR_SSM_CONV1D,
1041
+ LLM_TENSOR_SSM_DT,
1042
+ LLM_TENSOR_SSM_BETA,
1043
+ LLM_TENSOR_SSM_ALPHA,
1044
+ LLM_TENSOR_SSM_NORM,
1045
+ LLM_TENSOR_SSM_OUT,
1046
+ };
1047
+ case LLM_ARCH_QWEN35MOE:
1048
+ return {
1049
+ LLM_TENSOR_TOKEN_EMBD,
1050
+ LLM_TENSOR_OUTPUT_NORM,
1051
+ LLM_TENSOR_OUTPUT,
1052
+ LLM_TENSOR_ATTN_NORM,
1053
+ LLM_TENSOR_ATTN_POST_NORM,
1054
+ LLM_TENSOR_ATTN_Q,
1055
+ LLM_TENSOR_ATTN_Q_NORM,
1056
+ LLM_TENSOR_ATTN_K,
1057
+ LLM_TENSOR_ATTN_K_NORM,
1058
+ LLM_TENSOR_ATTN_V,
1059
+ LLM_TENSOR_ATTN_OUT,
1060
+ LLM_TENSOR_ATTN_QKV,
1061
+ LLM_TENSOR_ATTN_GATE,
1062
+ LLM_TENSOR_FFN_GATE_INP,
1063
+ LLM_TENSOR_FFN_GATE_EXPS,
1064
+ LLM_TENSOR_FFN_DOWN_EXPS,
1065
+ LLM_TENSOR_FFN_UP_EXPS,
1066
+ LLM_TENSOR_FFN_GATE_UP_EXPS,
1067
+ LLM_TENSOR_FFN_GATE_INP_SHEXP,
1068
+ LLM_TENSOR_FFN_GATE_SHEXP,
1069
+ LLM_TENSOR_FFN_DOWN_SHEXP,
1070
+ LLM_TENSOR_FFN_UP_SHEXP,
1071
+ LLM_TENSOR_SSM_A_NOSCAN,
1072
+ LLM_TENSOR_SSM_CONV1D,
1073
+ LLM_TENSOR_SSM_DT,
1074
+ LLM_TENSOR_SSM_BETA,
1075
+ LLM_TENSOR_SSM_ALPHA,
1076
+ LLM_TENSOR_SSM_NORM,
1077
+ LLM_TENSOR_SSM_OUT,
1078
+ };
1079
+ case LLM_ARCH_QWEN3VL:
1080
+ case LLM_ARCH_CHAMELEON:
1081
+ case LLM_ARCH_HUNYUAN_DENSE:
1082
+ return {
1083
+ LLM_TENSOR_TOKEN_EMBD,
1084
+ LLM_TENSOR_OUTPUT_NORM,
1085
+ LLM_TENSOR_OUTPUT,
1086
+ LLM_TENSOR_ATTN_NORM,
1087
+ LLM_TENSOR_ATTN_Q,
1088
+ LLM_TENSOR_ATTN_Q_NORM,
1089
+ LLM_TENSOR_ATTN_K,
1090
+ LLM_TENSOR_ATTN_K_NORM,
1091
+ LLM_TENSOR_ATTN_V,
1092
+ LLM_TENSOR_ATTN_OUT,
1093
+ LLM_TENSOR_FFN_NORM,
1094
+ LLM_TENSOR_FFN_GATE,
1095
+ LLM_TENSOR_FFN_DOWN,
1096
+ LLM_TENSOR_FFN_UP,
1097
+ };
1098
+ case LLM_ARCH_PHI2:
1099
+ return {
1100
+ LLM_TENSOR_TOKEN_EMBD,
1101
+ LLM_TENSOR_OUTPUT_NORM,
1102
+ LLM_TENSOR_OUTPUT,
1103
+ LLM_TENSOR_ATTN_NORM,
1104
+ LLM_TENSOR_ATTN_QKV,
1105
+ LLM_TENSOR_ATTN_Q,
1106
+ LLM_TENSOR_ATTN_K,
1107
+ LLM_TENSOR_ATTN_V,
1108
+ LLM_TENSOR_ATTN_OUT,
1109
+ LLM_TENSOR_FFN_DOWN,
1110
+ LLM_TENSOR_FFN_UP,
1111
+ };
1112
+ case LLM_ARCH_PHI3:
1113
+ return {
1114
+ LLM_TENSOR_TOKEN_EMBD,
1115
+ LLM_TENSOR_OUTPUT_NORM,
1116
+ LLM_TENSOR_OUTPUT,
1117
+ LLM_TENSOR_ROPE_FACTORS_LONG,
1118
+ LLM_TENSOR_ROPE_FACTORS_SHORT,
1119
+ LLM_TENSOR_ATTN_NORM,
1120
+ LLM_TENSOR_ATTN_QKV,
1121
+ LLM_TENSOR_ATTN_Q,
1122
+ LLM_TENSOR_ATTN_K,
1123
+ LLM_TENSOR_ATTN_V,
1124
+ LLM_TENSOR_ATTN_OUT,
1125
+ LLM_TENSOR_FFN_NORM,
1126
+ LLM_TENSOR_FFN_DOWN,
1127
+ LLM_TENSOR_FFN_UP,
1128
+ };
1129
+ case LLM_ARCH_PHIMOE:
1130
+ return {
1131
+ LLM_TENSOR_TOKEN_EMBD,
1132
+ LLM_TENSOR_OUTPUT_NORM,
1133
+ LLM_TENSOR_OUTPUT,
1134
+ LLM_TENSOR_ROPE_FACTORS_LONG,
1135
+ LLM_TENSOR_ROPE_FACTORS_SHORT,
1136
+ LLM_TENSOR_ATTN_NORM,
1137
+ LLM_TENSOR_ATTN_QKV,
1138
+ LLM_TENSOR_ATTN_Q,
1139
+ LLM_TENSOR_ATTN_K,
1140
+ LLM_TENSOR_ATTN_V,
1141
+ LLM_TENSOR_ATTN_OUT,
1142
+ LLM_TENSOR_FFN_NORM,
1143
+ LLM_TENSOR_FFN_GATE_INP,
1144
+ LLM_TENSOR_FFN_GATE_EXPS,
1145
+ LLM_TENSOR_FFN_DOWN_EXPS,
1146
+ LLM_TENSOR_FFN_UP_EXPS,
1147
+ };
1148
+ case LLM_ARCH_PLAMO:
1149
+ return {
1150
+ LLM_TENSOR_TOKEN_EMBD,
1151
+ LLM_TENSOR_OUTPUT_NORM,
1152
+ LLM_TENSOR_OUTPUT,
1153
+ LLM_TENSOR_ROPE_FREQS,
1154
+ LLM_TENSOR_ATTN_NORM,
1155
+ LLM_TENSOR_ATTN_Q,
1156
+ LLM_TENSOR_ATTN_K,
1157
+ LLM_TENSOR_ATTN_V,
1158
+ LLM_TENSOR_ATTN_OUT,
1159
+ LLM_TENSOR_ATTN_ROT_EMBD,
1160
+ LLM_TENSOR_FFN_GATE,
1161
+ LLM_TENSOR_FFN_DOWN,
1162
+ LLM_TENSOR_FFN_UP,
1163
+ };
1164
+ case LLM_ARCH_PLAMO2:
1165
+ return {
1166
+ LLM_TENSOR_TOKEN_EMBD,
1167
+ LLM_TENSOR_OUTPUT_NORM,
1168
+ LLM_TENSOR_OUTPUT,
1169
+ LLM_TENSOR_ROPE_FREQS,
1170
+ LLM_TENSOR_ATTN_NORM,
1171
+ LLM_TENSOR_ATTN_QKV,
1172
+ LLM_TENSOR_ATTN_Q_NORM,
1173
+ LLM_TENSOR_ATTN_K_NORM,
1174
+ LLM_TENSOR_ATTN_OUT,
1175
+ LLM_TENSOR_ATTN_ROT_EMBD,
1176
+ LLM_TENSOR_FFN_NORM,
1177
+ LLM_TENSOR_FFN_DOWN,
1178
+ LLM_TENSOR_FFN_UP,
1179
+ LLM_TENSOR_SSM_IN,
1180
+ LLM_TENSOR_SSM_CONV1D,
1181
+ LLM_TENSOR_SSM_X,
1182
+ LLM_TENSOR_SSM_DT,
1183
+ LLM_TENSOR_SSM_A,
1184
+ LLM_TENSOR_SSM_D,
1185
+ LLM_TENSOR_SSM_OUT,
1186
+ LLM_TENSOR_SSM_DT_NORM,
1187
+ LLM_TENSOR_SSM_B_NORM,
1188
+ LLM_TENSOR_SSM_C_NORM,
1189
+ LLM_TENSOR_ATTN_POST_NORM,
1190
+ LLM_TENSOR_FFN_POST_NORM,
1191
+ };
1192
+ case LLM_ARCH_PLAMO3:
1193
+ return {
1194
+ LLM_TENSOR_TOKEN_EMBD,
1195
+ LLM_TENSOR_OUTPUT_NORM,
1196
+ LLM_TENSOR_OUTPUT,
1197
+ LLM_TENSOR_ATTN_NORM,
1198
+ LLM_TENSOR_ATTN_QKV,
1199
+ LLM_TENSOR_ATTN_Q_NORM,
1200
+ LLM_TENSOR_ATTN_K_NORM,
1201
+ LLM_TENSOR_ATTN_OUT,
1202
+ LLM_TENSOR_ATTN_POST_NORM,
1203
+ LLM_TENSOR_FFN_NORM,
1204
+ LLM_TENSOR_FFN_POST_NORM,
1205
+ LLM_TENSOR_FFN_DOWN,
1206
+ LLM_TENSOR_FFN_UP,
1207
+ };
1208
+ case LLM_ARCH_CODESHELL:
1209
+ return {
1210
+ LLM_TENSOR_TOKEN_EMBD,
1211
+ LLM_TENSOR_OUTPUT_NORM,
1212
+ LLM_TENSOR_OUTPUT,
1213
+ LLM_TENSOR_ROPE_FREQS,
1214
+ LLM_TENSOR_ATTN_NORM,
1215
+ LLM_TENSOR_ATTN_Q,
1216
+ LLM_TENSOR_ATTN_K,
1217
+ LLM_TENSOR_ATTN_V,
1218
+ LLM_TENSOR_ATTN_QKV,
1219
+ LLM_TENSOR_ATTN_OUT,
1220
+ LLM_TENSOR_ATTN_ROT_EMBD,
1221
+ LLM_TENSOR_FFN_NORM,
1222
+ LLM_TENSOR_FFN_GATE,
1223
+ LLM_TENSOR_FFN_DOWN,
1224
+ LLM_TENSOR_FFN_UP,
1225
+ };
1226
+ case LLM_ARCH_MINICPM:
1227
+ return {
1228
+ LLM_TENSOR_TOKEN_EMBD,
1229
+ LLM_TENSOR_OUTPUT_NORM,
1230
+ LLM_TENSOR_OUTPUT,
1231
+ LLM_TENSOR_ROPE_FREQS,
1232
+ LLM_TENSOR_ROPE_FACTORS_LONG,
1233
+ LLM_TENSOR_ROPE_FACTORS_SHORT,
1234
+ LLM_TENSOR_ATTN_NORM,
1235
+ LLM_TENSOR_ATTN_Q,
1236
+ LLM_TENSOR_ATTN_K,
1237
+ LLM_TENSOR_ATTN_V,
1238
+ LLM_TENSOR_ATTN_OUT,
1239
+ LLM_TENSOR_ATTN_ROT_EMBD,
1240
+ LLM_TENSOR_FFN_GATE_INP,
1241
+ LLM_TENSOR_FFN_NORM,
1242
+ LLM_TENSOR_FFN_GATE,
1243
+ LLM_TENSOR_FFN_DOWN,
1244
+ LLM_TENSOR_FFN_UP,
1245
+ LLM_TENSOR_FFN_GATE_EXP,
1246
+ LLM_TENSOR_FFN_DOWN_EXP,
1247
+ LLM_TENSOR_FFN_UP_EXP,
1248
+ };
1249
+ case LLM_ARCH_MINICPM3:
1250
+ return {
1251
+ LLM_TENSOR_TOKEN_EMBD,
1252
+ LLM_TENSOR_OUTPUT_NORM,
1253
+ LLM_TENSOR_OUTPUT,
1254
+ LLM_TENSOR_ROPE_FACTORS_LONG,
1255
+ LLM_TENSOR_ROPE_FACTORS_SHORT,
1256
+ LLM_TENSOR_ATTN_NORM,
1257
+ LLM_TENSOR_ATTN_Q_A_NORM,
1258
+ LLM_TENSOR_ATTN_KV_A_NORM,
1259
+ LLM_TENSOR_ATTN_Q,
1260
+ LLM_TENSOR_ATTN_Q_A,
1261
+ LLM_TENSOR_ATTN_Q_B,
1262
+ LLM_TENSOR_ATTN_KV_A_MQA,
1263
+ LLM_TENSOR_ATTN_KV_B,
1264
+ LLM_TENSOR_ATTN_OUT,
1265
+ LLM_TENSOR_FFN_NORM,
1266
+ LLM_TENSOR_FFN_GATE,
1267
+ LLM_TENSOR_FFN_UP,
1268
+ LLM_TENSOR_FFN_DOWN,
1269
+ };
1270
+ case LLM_ARCH_GEMMA:
1271
+ return {
1272
+ LLM_TENSOR_TOKEN_EMBD,
1273
+ LLM_TENSOR_OUTPUT_NORM,
1274
+ LLM_TENSOR_ATTN_NORM,
1275
+ LLM_TENSOR_ATTN_Q,
1276
+ LLM_TENSOR_ATTN_K,
1277
+ LLM_TENSOR_ATTN_V,
1278
+ LLM_TENSOR_ATTN_OUT,
1279
+ LLM_TENSOR_FFN_NORM,
1280
+ LLM_TENSOR_FFN_GATE,
1281
+ LLM_TENSOR_FFN_DOWN,
1282
+ LLM_TENSOR_FFN_UP,
1283
+ };
1284
+ case LLM_ARCH_GEMMA2:
1285
+ return {
1286
+ LLM_TENSOR_TOKEN_EMBD,
1287
+ LLM_TENSOR_OUTPUT_NORM,
1288
+ LLM_TENSOR_ATTN_NORM,
1289
+ LLM_TENSOR_ATTN_Q,
1290
+ LLM_TENSOR_ATTN_K,
1291
+ LLM_TENSOR_ATTN_V,
1292
+ LLM_TENSOR_ATTN_OUT,
1293
+ LLM_TENSOR_ATTN_POST_NORM,
1294
+ LLM_TENSOR_FFN_NORM,
1295
+ LLM_TENSOR_FFN_GATE,
1296
+ LLM_TENSOR_FFN_DOWN,
1297
+ LLM_TENSOR_FFN_UP,
1298
+ LLM_TENSOR_FFN_POST_NORM,
1299
+ };
1300
+ case LLM_ARCH_GEMMA3:
1301
+ return {
1302
+ LLM_TENSOR_TOKEN_EMBD,
1303
+ LLM_TENSOR_OUTPUT_NORM,
1304
+ LLM_TENSOR_OUTPUT,
1305
+ LLM_TENSOR_ATTN_NORM,
1306
+ LLM_TENSOR_ATTN_Q,
1307
+ LLM_TENSOR_ATTN_Q_NORM,
1308
+ LLM_TENSOR_ATTN_K,
1309
+ LLM_TENSOR_ATTN_K_NORM,
1310
+ LLM_TENSOR_ATTN_V,
1311
+ LLM_TENSOR_ATTN_OUT,
1312
+ LLM_TENSOR_ATTN_POST_NORM,
1313
+ LLM_TENSOR_FFN_NORM,
1314
+ LLM_TENSOR_FFN_GATE,
1315
+ LLM_TENSOR_FFN_DOWN,
1316
+ LLM_TENSOR_FFN_UP,
1317
+ LLM_TENSOR_FFN_POST_NORM,
1318
+ };
1319
+ case LLM_ARCH_GEMMA3N:
1320
+ return {
1321
+ LLM_TENSOR_TOKEN_EMBD,
1322
+ LLM_TENSOR_OUTPUT_NORM,
1323
+ LLM_TENSOR_ATTN_NORM,
1324
+ LLM_TENSOR_ATTN_Q,
1325
+ LLM_TENSOR_ATTN_Q_NORM,
1326
+ LLM_TENSOR_ATTN_K,
1327
+ LLM_TENSOR_ATTN_K_NORM,
1328
+ LLM_TENSOR_ATTN_V,
1329
+ LLM_TENSOR_ATTN_OUT,
1330
+ LLM_TENSOR_ATTN_POST_NORM,
1331
+ LLM_TENSOR_FFN_NORM,
1332
+ LLM_TENSOR_FFN_GATE,
1333
+ LLM_TENSOR_FFN_DOWN,
1334
+ LLM_TENSOR_FFN_UP,
1335
+ LLM_TENSOR_FFN_POST_NORM,
1336
+ LLM_TENSOR_PER_LAYER_TOKEN_EMBD,
1337
+ LLM_TENSOR_PER_LAYER_MODEL_PROJ,
1338
+ LLM_TENSOR_PER_LAYER_PROJ_NORM,
1339
+ LLM_TENSOR_ALTUP_UNEMBD_PROJ,
1340
+ LLM_TENSOR_ALTUP_PROJ,
1341
+ LLM_TENSOR_PER_LAYER_INP_GATE,
1342
+ LLM_TENSOR_PER_LAYER_PROJ,
1343
+ LLM_TENSOR_PER_LAYER_POST_NORM,
1344
+ LLM_TENSOR_ALTUP_CORRECT_COEF,
1345
+ LLM_TENSOR_ALTUP_CORRECT_SCALE,
1346
+ LLM_TENSOR_ALTUP_PREDICT_COEF,
1347
+ LLM_TENSOR_ALTUP_ROUTER,
1348
+ LLM_TENSOR_ALTUP_ROUTER_NORM,
1349
+ LLM_TENSOR_LAUREL_L,
1350
+ LLM_TENSOR_LAUREL_R,
1351
+ LLM_TENSOR_LAUREL_POST_NORM,
1352
+ };
1353
+ case LLM_ARCH_GEMMA_EMBEDDING:
1354
+ return {
1355
+ LLM_TENSOR_TOKEN_EMBD,
1356
+ LLM_TENSOR_OUTPUT_NORM,
1357
+ LLM_TENSOR_OUTPUT,
1358
+ LLM_TENSOR_DENSE_2_OUT,
1359
+ LLM_TENSOR_DENSE_3_OUT,
1360
+ LLM_TENSOR_ATTN_NORM,
1361
+ LLM_TENSOR_ATTN_Q,
1362
+ LLM_TENSOR_ATTN_Q_NORM,
1363
+ LLM_TENSOR_ATTN_K,
1364
+ LLM_TENSOR_ATTN_K_NORM,
1365
+ LLM_TENSOR_ATTN_V,
1366
+ LLM_TENSOR_ATTN_OUT,
1367
+ LLM_TENSOR_ATTN_POST_NORM,
1368
+ LLM_TENSOR_FFN_NORM,
1369
+ LLM_TENSOR_FFN_GATE,
1370
+ LLM_TENSOR_FFN_DOWN,
1371
+ LLM_TENSOR_FFN_UP,
1372
+ LLM_TENSOR_FFN_POST_NORM,
1373
+ };
1374
+ case LLM_ARCH_MAMBA:
1375
+ return {
1376
+ LLM_TENSOR_TOKEN_EMBD,
1377
+ LLM_TENSOR_OUTPUT_NORM,
1378
+ LLM_TENSOR_OUTPUT,
1379
+ LLM_TENSOR_ATTN_NORM,
1380
+ LLM_TENSOR_SSM_IN,
1381
+ LLM_TENSOR_SSM_CONV1D,
1382
+ LLM_TENSOR_SSM_X,
1383
+ LLM_TENSOR_SSM_DT,
1384
+ LLM_TENSOR_SSM_A,
1385
+ LLM_TENSOR_SSM_D,
1386
+ LLM_TENSOR_SSM_OUT,
1387
+ };
1388
+ case LLM_ARCH_MAMBA2:
1389
+ return {
1390
+ LLM_TENSOR_TOKEN_EMBD,
1391
+ LLM_TENSOR_OUTPUT_NORM,
1392
+ LLM_TENSOR_OUTPUT,
1393
+ LLM_TENSOR_ATTN_NORM,
1394
+ LLM_TENSOR_SSM_IN,
1395
+ LLM_TENSOR_SSM_CONV1D,
1396
+ LLM_TENSOR_SSM_DT,
1397
+ LLM_TENSOR_SSM_A,
1398
+ LLM_TENSOR_SSM_D,
1399
+ LLM_TENSOR_SSM_NORM,
1400
+ LLM_TENSOR_SSM_OUT,
1401
+ };
1402
+ case LLM_ARCH_JAMBA:
1403
+ return {
1404
+ LLM_TENSOR_TOKEN_EMBD,
1405
+ LLM_TENSOR_OUTPUT_NORM,
1406
+ LLM_TENSOR_OUTPUT,
1407
+ LLM_TENSOR_ATTN_NORM,
1408
+ LLM_TENSOR_SSM_IN,
1409
+ LLM_TENSOR_SSM_CONV1D,
1410
+ LLM_TENSOR_SSM_X,
1411
+ LLM_TENSOR_SSM_DT,
1412
+ LLM_TENSOR_SSM_DT_NORM,
1413
+ LLM_TENSOR_SSM_A,
1414
+ LLM_TENSOR_SSM_B_NORM,
1415
+ LLM_TENSOR_SSM_C_NORM,
1416
+ LLM_TENSOR_SSM_D,
1417
+ LLM_TENSOR_SSM_OUT,
1418
+ LLM_TENSOR_ATTN_Q,
1419
+ LLM_TENSOR_ATTN_K,
1420
+ LLM_TENSOR_ATTN_V,
1421
+ LLM_TENSOR_ATTN_OUT,
1422
+ LLM_TENSOR_FFN_GATE_INP,
1423
+ LLM_TENSOR_FFN_NORM,
1424
+ LLM_TENSOR_FFN_GATE,
1425
+ LLM_TENSOR_FFN_DOWN,
1426
+ LLM_TENSOR_FFN_UP,
1427
+ LLM_TENSOR_FFN_GATE_EXPS,
1428
+ LLM_TENSOR_FFN_DOWN_EXPS,
1429
+ LLM_TENSOR_FFN_UP_EXPS,
1430
+ };
1431
+ case LLM_ARCH_FALCON_H1:
1432
+ return {
1433
+ LLM_TENSOR_TOKEN_EMBD,
1434
+ LLM_TENSOR_OUTPUT,
1435
+ LLM_TENSOR_OUTPUT_NORM,
1436
+ LLM_TENSOR_ATTN_NORM,
1437
+ LLM_TENSOR_ATTN_Q,
1438
+ LLM_TENSOR_ATTN_K,
1439
+ LLM_TENSOR_ATTN_V,
1440
+ LLM_TENSOR_ATTN_OUT,
1441
+ LLM_TENSOR_SSM_IN,
1442
+ LLM_TENSOR_SSM_CONV1D,
1443
+ LLM_TENSOR_SSM_DT,
1444
+ LLM_TENSOR_SSM_A,
1445
+ LLM_TENSOR_SSM_D,
1446
+ LLM_TENSOR_SSM_NORM,
1447
+ LLM_TENSOR_SSM_OUT,
1448
+ LLM_TENSOR_FFN_NORM,
1449
+ LLM_TENSOR_FFN_GATE,
1450
+ LLM_TENSOR_FFN_DOWN,
1451
+ LLM_TENSOR_FFN_UP,
1452
+ };
1453
+ case LLM_ARCH_COMMAND_R:
1454
+ return {
1455
+ LLM_TENSOR_TOKEN_EMBD,
1456
+ LLM_TENSOR_OUTPUT_NORM,
1457
+ LLM_TENSOR_ATTN_NORM,
1458
+ LLM_TENSOR_ATTN_Q,
1459
+ LLM_TENSOR_ATTN_K,
1460
+ LLM_TENSOR_ATTN_V,
1461
+ LLM_TENSOR_ATTN_OUT,
1462
+ LLM_TENSOR_FFN_GATE,
1463
+ LLM_TENSOR_FFN_DOWN,
1464
+ LLM_TENSOR_FFN_UP,
1465
+ LLM_TENSOR_ATTN_Q_NORM,
1466
+ LLM_TENSOR_ATTN_K_NORM,
1467
+ };
1468
+ case LLM_ARCH_COHERE2:
1469
+ return {
1470
+ LLM_TENSOR_TOKEN_EMBD,
1471
+ LLM_TENSOR_OUTPUT_NORM,
1472
+ LLM_TENSOR_ATTN_NORM,
1473
+ LLM_TENSOR_ATTN_Q,
1474
+ LLM_TENSOR_ATTN_K,
1475
+ LLM_TENSOR_ATTN_V,
1476
+ LLM_TENSOR_ATTN_OUT,
1477
+ LLM_TENSOR_FFN_GATE,
1478
+ LLM_TENSOR_FFN_DOWN,
1479
+ LLM_TENSOR_FFN_UP,
1480
+ };
1481
+ case LLM_ARCH_DBRX:
1482
+ return {
1483
+ LLM_TENSOR_TOKEN_EMBD,
1484
+ LLM_TENSOR_OUTPUT_NORM,
1485
+ LLM_TENSOR_OUTPUT,
1486
+ LLM_TENSOR_ATTN_QKV,
1487
+ LLM_TENSOR_ATTN_NORM,
1488
+ LLM_TENSOR_ATTN_OUT,
1489
+ LLM_TENSOR_ATTN_OUT_NORM,
1490
+ LLM_TENSOR_FFN_GATE_INP,
1491
+ LLM_TENSOR_FFN_GATE_EXPS,
1492
+ LLM_TENSOR_FFN_DOWN_EXPS,
1493
+ LLM_TENSOR_FFN_UP_EXPS,
1494
+ };
1495
+ case LLM_ARCH_OLMO:
1496
+ return {
1497
+ LLM_TENSOR_TOKEN_EMBD,
1498
+ LLM_TENSOR_OUTPUT,
1499
+ LLM_TENSOR_ATTN_Q,
1500
+ LLM_TENSOR_ATTN_K,
1501
+ LLM_TENSOR_ATTN_V,
1502
+ LLM_TENSOR_ATTN_OUT,
1503
+ LLM_TENSOR_FFN_GATE,
1504
+ LLM_TENSOR_FFN_DOWN,
1505
+ LLM_TENSOR_FFN_UP,
1506
+ };
1507
+ case LLM_ARCH_OLMO2:
1508
+ return {
1509
+ LLM_TENSOR_TOKEN_EMBD,
1510
+ LLM_TENSOR_OUTPUT_NORM,
1511
+ LLM_TENSOR_OUTPUT,
1512
+ LLM_TENSOR_ATTN_Q,
1513
+ LLM_TENSOR_ATTN_K,
1514
+ LLM_TENSOR_ATTN_V,
1515
+ LLM_TENSOR_ATTN_OUT,
1516
+ LLM_TENSOR_ATTN_POST_NORM,
1517
+ LLM_TENSOR_ATTN_Q_NORM,
1518
+ LLM_TENSOR_ATTN_K_NORM,
1519
+ LLM_TENSOR_FFN_POST_NORM,
1520
+ LLM_TENSOR_FFN_GATE,
1521
+ LLM_TENSOR_FFN_DOWN,
1522
+ LLM_TENSOR_FFN_UP,
1523
+ };
1524
+ case LLM_ARCH_OPENELM:
1525
+ return {
1526
+ LLM_TENSOR_TOKEN_EMBD,
1527
+ LLM_TENSOR_OUTPUT_NORM,
1528
+ LLM_TENSOR_ATTN_NORM,
1529
+ LLM_TENSOR_ATTN_QKV,
1530
+ LLM_TENSOR_ATTN_Q_NORM,
1531
+ LLM_TENSOR_ATTN_K_NORM,
1532
+ LLM_TENSOR_ATTN_OUT,
1533
+ LLM_TENSOR_FFN_NORM,
1534
+ LLM_TENSOR_FFN_GATE,
1535
+ LLM_TENSOR_FFN_DOWN,
1536
+ LLM_TENSOR_FFN_UP,
1537
+ };
1538
+ case LLM_ARCH_ARCTIC:
1539
+ return {
1540
+ LLM_TENSOR_TOKEN_EMBD,
1541
+ LLM_TENSOR_OUTPUT_NORM,
1542
+ LLM_TENSOR_OUTPUT,
1543
+ LLM_TENSOR_ATTN_NORM,
1544
+ LLM_TENSOR_ATTN_Q,
1545
+ LLM_TENSOR_ATTN_K,
1546
+ LLM_TENSOR_ATTN_V,
1547
+ LLM_TENSOR_ATTN_OUT,
1548
+ LLM_TENSOR_FFN_GATE_INP,
1549
+ LLM_TENSOR_FFN_NORM,
1550
+ LLM_TENSOR_FFN_GATE,
1551
+ LLM_TENSOR_FFN_DOWN,
1552
+ LLM_TENSOR_FFN_UP,
1553
+ LLM_TENSOR_FFN_NORM_EXPS,
1554
+ LLM_TENSOR_FFN_GATE_EXPS,
1555
+ LLM_TENSOR_FFN_DOWN_EXPS,
1556
+ LLM_TENSOR_FFN_UP_EXPS,
1557
+ };
1558
+ case LLM_ARCH_DEEPSEEK:
1559
+ return {
1560
+ LLM_TENSOR_TOKEN_EMBD,
1561
+ LLM_TENSOR_OUTPUT_NORM,
1562
+ LLM_TENSOR_OUTPUT,
1563
+ LLM_TENSOR_ROPE_FREQS,
1564
+ LLM_TENSOR_ATTN_NORM,
1565
+ LLM_TENSOR_ATTN_Q,
1566
+ LLM_TENSOR_ATTN_K,
1567
+ LLM_TENSOR_ATTN_V,
1568
+ LLM_TENSOR_ATTN_OUT,
1569
+ LLM_TENSOR_ATTN_ROT_EMBD,
1570
+ LLM_TENSOR_FFN_GATE_INP,
1571
+ LLM_TENSOR_FFN_NORM,
1572
+ LLM_TENSOR_FFN_GATE,
1573
+ LLM_TENSOR_FFN_DOWN,
1574
+ LLM_TENSOR_FFN_UP,
1575
+ LLM_TENSOR_FFN_GATE_EXPS,
1576
+ LLM_TENSOR_FFN_DOWN_EXPS,
1577
+ LLM_TENSOR_FFN_UP_EXPS,
1578
+ LLM_TENSOR_FFN_GATE_INP_SHEXP,
1579
+ LLM_TENSOR_FFN_GATE_SHEXP,
1580
+ LLM_TENSOR_FFN_DOWN_SHEXP,
1581
+ LLM_TENSOR_FFN_UP_SHEXP,
1582
+ };
1583
+ case LLM_ARCH_DEEPSEEK2:
1584
+ return {
1585
+ LLM_TENSOR_TOKEN_EMBD,
1586
+ LLM_TENSOR_OUTPUT_NORM,
1587
+ LLM_TENSOR_OUTPUT,
1588
+ LLM_TENSOR_ATTN_NORM,
1589
+ LLM_TENSOR_ATTN_Q_A_NORM,
1590
+ LLM_TENSOR_ATTN_KV_A_NORM,
1591
+ LLM_TENSOR_ATTN_Q,
1592
+ LLM_TENSOR_ATTN_Q_A,
1593
+ LLM_TENSOR_ATTN_Q_B,
1594
+ LLM_TENSOR_ATTN_KV_A_MQA,
1595
+ LLM_TENSOR_ATTN_KV_B,
1596
+ LLM_TENSOR_ATTN_K_B,
1597
+ LLM_TENSOR_ATTN_V_B,
1598
+ LLM_TENSOR_ATTN_OUT,
1599
+ LLM_TENSOR_FFN_NORM,
1600
+ LLM_TENSOR_FFN_GATE,
1601
+ LLM_TENSOR_FFN_UP,
1602
+ LLM_TENSOR_FFN_DOWN,
1603
+ LLM_TENSOR_FFN_GATE_INP,
1604
+ LLM_TENSOR_FFN_GATE_EXPS,
1605
+ LLM_TENSOR_FFN_DOWN_EXPS,
1606
+ LLM_TENSOR_FFN_UP_EXPS,
1607
+ LLM_TENSOR_FFN_GATE_UP_EXPS,
1608
+ LLM_TENSOR_FFN_GATE_INP_SHEXP,
1609
+ LLM_TENSOR_FFN_GATE_SHEXP,
1610
+ LLM_TENSOR_FFN_DOWN_SHEXP,
1611
+ LLM_TENSOR_FFN_UP_SHEXP,
1612
+ LLM_TENSOR_FFN_EXP_PROBS_B,
1613
+ };
1614
+ case LLM_ARCH_PLM:
1615
+ return {
1616
+ LLM_TENSOR_TOKEN_EMBD,
1617
+ LLM_TENSOR_OUTPUT_NORM,
1618
+ LLM_TENSOR_ATTN_NORM,
1619
+ LLM_TENSOR_ATTN_Q,
1620
+ LLM_TENSOR_ATTN_KV_A_MQA,
1621
+ LLM_TENSOR_ATTN_KV_A_NORM,
1622
+ LLM_TENSOR_ATTN_KV_B,
1623
+ LLM_TENSOR_ATTN_OUT,
1624
+ LLM_TENSOR_FFN_NORM,
1625
+ LLM_TENSOR_FFN_DOWN,
1626
+ LLM_TENSOR_FFN_UP,
1627
+ };
1628
+ case LLM_ARCH_CHATGLM:
1629
+ return {
1630
+ LLM_TENSOR_TOKEN_EMBD,
1631
+ LLM_TENSOR_ROPE_FREQS,
1632
+ LLM_TENSOR_OUTPUT_NORM,
1633
+ LLM_TENSOR_OUTPUT,
1634
+ LLM_TENSOR_ATTN_NORM,
1635
+ LLM_TENSOR_ATTN_QKV,
1636
+ LLM_TENSOR_ATTN_Q,
1637
+ LLM_TENSOR_ATTN_K,
1638
+ LLM_TENSOR_ATTN_V,
1639
+ LLM_TENSOR_ATTN_OUT,
1640
+ LLM_TENSOR_FFN_NORM,
1641
+ LLM_TENSOR_FFN_UP,
1642
+ LLM_TENSOR_FFN_DOWN,
1643
+ };
1644
+ case LLM_ARCH_GLM4:
1645
+ return {
1646
+ LLM_TENSOR_TOKEN_EMBD,
1647
+ LLM_TENSOR_ROPE_FREQS,
1648
+ LLM_TENSOR_OUTPUT_NORM,
1649
+ LLM_TENSOR_OUTPUT,
1650
+ LLM_TENSOR_ATTN_NORM,
1651
+ LLM_TENSOR_ATTN_Q,
1652
+ LLM_TENSOR_ATTN_K,
1653
+ LLM_TENSOR_ATTN_V,
1654
+ LLM_TENSOR_ATTN_OUT,
1655
+ LLM_TENSOR_FFN_NORM,
1656
+ LLM_TENSOR_FFN_UP,
1657
+ LLM_TENSOR_FFN_DOWN,
1658
+ LLM_TENSOR_ATTN_POST_NORM,
1659
+ LLM_TENSOR_FFN_POST_NORM,
1660
+ LLM_TENSOR_NEXTN_EH_PROJ,
1661
+ LLM_TENSOR_NEXTN_EMBED_TOKENS,
1662
+ LLM_TENSOR_NEXTN_ENORM,
1663
+ LLM_TENSOR_NEXTN_HNORM,
1664
+ LLM_TENSOR_NEXTN_SHARED_HEAD_HEAD,
1665
+ LLM_TENSOR_NEXTN_SHARED_HEAD_NORM,
1666
+ };
1667
+ case LLM_ARCH_GLM4_MOE:
1668
+ return {
1669
+ LLM_TENSOR_TOKEN_EMBD,
1670
+ LLM_TENSOR_OUTPUT_NORM,
1671
+ LLM_TENSOR_OUTPUT,
1672
+ LLM_TENSOR_ATTN_NORM,
1673
+ LLM_TENSOR_ATTN_POST_NORM,
1674
+ LLM_TENSOR_ATTN_Q,
1675
+ LLM_TENSOR_ATTN_K,
1676
+ LLM_TENSOR_ATTN_V,
1677
+ LLM_TENSOR_ATTN_OUT,
1678
+ LLM_TENSOR_ATTN_Q_NORM,
1679
+ LLM_TENSOR_ATTN_K_NORM,
1680
+ LLM_TENSOR_FFN_GATE,
1681
+ LLM_TENSOR_FFN_DOWN,
1682
+ LLM_TENSOR_FFN_UP,
1683
+ LLM_TENSOR_FFN_GATE_INP,
1684
+ LLM_TENSOR_FFN_GATE_EXPS,
1685
+ LLM_TENSOR_FFN_DOWN_EXPS,
1686
+ LLM_TENSOR_FFN_UP_EXPS,
1687
+ LLM_TENSOR_FFN_GATE_SHEXP,
1688
+ LLM_TENSOR_FFN_DOWN_SHEXP,
1689
+ LLM_TENSOR_FFN_UP_SHEXP,
1690
+ LLM_TENSOR_FFN_EXP_PROBS_B,
1691
+ LLM_TENSOR_NEXTN_EH_PROJ,
1692
+ LLM_TENSOR_NEXTN_EMBED_TOKENS,
1693
+ LLM_TENSOR_NEXTN_ENORM,
1694
+ LLM_TENSOR_NEXTN_HNORM,
1695
+ LLM_TENSOR_NEXTN_SHARED_HEAD_HEAD,
1696
+ LLM_TENSOR_NEXTN_SHARED_HEAD_NORM,
1697
+ };
1698
+ case LLM_ARCH_GLM_DSA:
1699
+ return {
1700
+ LLM_TENSOR_TOKEN_EMBD,
1701
+ LLM_TENSOR_OUTPUT_NORM,
1702
+ LLM_TENSOR_OUTPUT,
1703
+ LLM_TENSOR_ATTN_NORM,
1704
+ LLM_TENSOR_ATTN_Q_A_NORM,
1705
+ LLM_TENSOR_ATTN_KV_A_NORM,
1706
+ LLM_TENSOR_ATTN_Q,
1707
+ LLM_TENSOR_ATTN_Q_A,
1708
+ LLM_TENSOR_ATTN_Q_B,
1709
+ LLM_TENSOR_ATTN_KV_A_MQA,
1710
+ LLM_TENSOR_ATTN_KV_B,
1711
+ LLM_TENSOR_ATTN_K_B,
1712
+ LLM_TENSOR_ATTN_V_B,
1713
+ LLM_TENSOR_ATTN_OUT,
1714
+ LLM_TENSOR_FFN_NORM,
1715
+ LLM_TENSOR_FFN_GATE,
1716
+ LLM_TENSOR_FFN_UP,
1717
+ LLM_TENSOR_FFN_DOWN,
1718
+ LLM_TENSOR_FFN_GATE_INP,
1719
+ LLM_TENSOR_FFN_GATE_EXPS,
1720
+ LLM_TENSOR_FFN_DOWN_EXPS,
1721
+ LLM_TENSOR_FFN_UP_EXPS,
1722
+ LLM_TENSOR_FFN_GATE_INP_SHEXP,
1723
+ LLM_TENSOR_FFN_GATE_SHEXP,
1724
+ LLM_TENSOR_FFN_DOWN_SHEXP,
1725
+ LLM_TENSOR_FFN_UP_SHEXP,
1726
+ LLM_TENSOR_FFN_EXP_PROBS_B,
1727
+ LLM_TENSOR_INDEXER_K_NORM,
1728
+ LLM_TENSOR_INDEXER_PROJ,
1729
+ LLM_TENSOR_INDEXER_ATTN_K,
1730
+ LLM_TENSOR_INDEXER_ATTN_Q_B,
1731
+ LLM_TENSOR_NEXTN_EH_PROJ,
1732
+ LLM_TENSOR_NEXTN_EMBED_TOKENS,
1733
+ LLM_TENSOR_NEXTN_ENORM,
1734
+ LLM_TENSOR_NEXTN_HNORM,
1735
+ LLM_TENSOR_NEXTN_SHARED_HEAD_HEAD,
1736
+ LLM_TENSOR_NEXTN_SHARED_HEAD_NORM,
1737
+ };
1738
+ case LLM_ARCH_BITNET:
1739
+ return {
1740
+ LLM_TENSOR_TOKEN_EMBD,
1741
+ LLM_TENSOR_OUTPUT_NORM,
1742
+ LLM_TENSOR_ATTN_Q,
1743
+ LLM_TENSOR_ATTN_K,
1744
+ LLM_TENSOR_ATTN_V,
1745
+ LLM_TENSOR_ATTN_OUT,
1746
+ LLM_TENSOR_ATTN_NORM,
1747
+ LLM_TENSOR_ATTN_SUB_NORM,
1748
+ LLM_TENSOR_FFN_GATE,
1749
+ LLM_TENSOR_FFN_DOWN,
1750
+ LLM_TENSOR_FFN_UP,
1751
+ LLM_TENSOR_FFN_NORM,
1752
+ LLM_TENSOR_FFN_SUB_NORM,
1753
+ };
1754
+ case LLM_ARCH_T5:
1755
+ return {
1756
+ LLM_TENSOR_TOKEN_EMBD,
1757
+ LLM_TENSOR_OUTPUT,
1758
+ LLM_TENSOR_DEC_OUTPUT_NORM,
1759
+ LLM_TENSOR_DEC_ATTN_NORM,
1760
+ LLM_TENSOR_DEC_ATTN_Q,
1761
+ LLM_TENSOR_DEC_ATTN_K,
1762
+ LLM_TENSOR_DEC_ATTN_V,
1763
+ LLM_TENSOR_DEC_ATTN_OUT,
1764
+ LLM_TENSOR_DEC_ATTN_REL_B,
1765
+ LLM_TENSOR_DEC_CROSS_ATTN_NORM,
1766
+ LLM_TENSOR_DEC_CROSS_ATTN_Q,
1767
+ LLM_TENSOR_DEC_CROSS_ATTN_K,
1768
+ LLM_TENSOR_DEC_CROSS_ATTN_V,
1769
+ LLM_TENSOR_DEC_CROSS_ATTN_OUT,
1770
+ LLM_TENSOR_DEC_CROSS_ATTN_REL_B,
1771
+ LLM_TENSOR_DEC_FFN_NORM,
1772
+ LLM_TENSOR_DEC_FFN_GATE,
1773
+ LLM_TENSOR_DEC_FFN_DOWN,
1774
+ LLM_TENSOR_DEC_FFN_UP,
1775
+ LLM_TENSOR_ENC_OUTPUT_NORM,
1776
+ LLM_TENSOR_ENC_ATTN_NORM,
1777
+ LLM_TENSOR_ENC_ATTN_Q,
1778
+ LLM_TENSOR_ENC_ATTN_K,
1779
+ LLM_TENSOR_ENC_ATTN_V,
1780
+ LLM_TENSOR_ENC_ATTN_OUT,
1781
+ LLM_TENSOR_ENC_ATTN_REL_B,
1782
+ LLM_TENSOR_ENC_FFN_NORM,
1783
+ LLM_TENSOR_ENC_FFN_GATE,
1784
+ LLM_TENSOR_ENC_FFN_DOWN,
1785
+ LLM_TENSOR_ENC_FFN_UP,
1786
+ };
1787
+ case LLM_ARCH_T5ENCODER:
1788
+ return {
1789
+ LLM_TENSOR_TOKEN_EMBD,
1790
+ LLM_TENSOR_OUTPUT,
1791
+ LLM_TENSOR_ENC_OUTPUT_NORM,
1792
+ LLM_TENSOR_ENC_ATTN_NORM,
1793
+ LLM_TENSOR_ENC_ATTN_Q,
1794
+ LLM_TENSOR_ENC_ATTN_K,
1795
+ LLM_TENSOR_ENC_ATTN_V,
1796
+ LLM_TENSOR_ENC_ATTN_OUT,
1797
+ LLM_TENSOR_ENC_ATTN_REL_B,
1798
+ LLM_TENSOR_ENC_FFN_NORM,
1799
+ LLM_TENSOR_ENC_FFN_GATE,
1800
+ LLM_TENSOR_ENC_FFN_DOWN,
1801
+ LLM_TENSOR_ENC_FFN_UP,
1802
+ };
1803
+ case LLM_ARCH_JAIS:
1804
+ return {
1805
+ LLM_TENSOR_TOKEN_EMBD,
1806
+ LLM_TENSOR_OUTPUT_NORM,
1807
+ LLM_TENSOR_OUTPUT,
1808
+ LLM_TENSOR_ATTN_NORM,
1809
+ LLM_TENSOR_ATTN_QKV,
1810
+ LLM_TENSOR_ATTN_OUT,
1811
+ LLM_TENSOR_FFN_NORM,
1812
+ LLM_TENSOR_FFN_UP,
1813
+ LLM_TENSOR_FFN_GATE,
1814
+ LLM_TENSOR_FFN_DOWN,
1815
+ };
1816
+ case LLM_ARCH_JAIS2:
1817
+ return {
1818
+ LLM_TENSOR_TOKEN_EMBD,
1819
+ LLM_TENSOR_OUTPUT_NORM,
1820
+ LLM_TENSOR_OUTPUT,
1821
+ LLM_TENSOR_ATTN_NORM,
1822
+ LLM_TENSOR_ATTN_Q,
1823
+ LLM_TENSOR_ATTN_K,
1824
+ LLM_TENSOR_ATTN_V,
1825
+ LLM_TENSOR_ATTN_OUT,
1826
+ LLM_TENSOR_FFN_NORM,
1827
+ LLM_TENSOR_FFN_UP,
1828
+ LLM_TENSOR_FFN_DOWN,
1829
+ };
1830
+ case LLM_ARCH_NEMOTRON_H:
1831
+ return {
1832
+ LLM_TENSOR_TOKEN_EMBD,
1833
+ LLM_TENSOR_OUTPUT_NORM,
1834
+ LLM_TENSOR_OUTPUT,
1835
+ LLM_TENSOR_ATTN_NORM,
1836
+ LLM_TENSOR_SSM_IN,
1837
+ LLM_TENSOR_SSM_CONV1D,
1838
+ LLM_TENSOR_SSM_DT,
1839
+ LLM_TENSOR_SSM_A,
1840
+ LLM_TENSOR_SSM_D,
1841
+ LLM_TENSOR_SSM_NORM,
1842
+ LLM_TENSOR_SSM_OUT,
1843
+ LLM_TENSOR_ATTN_Q,
1844
+ LLM_TENSOR_ATTN_K,
1845
+ LLM_TENSOR_ATTN_V,
1846
+ LLM_TENSOR_ATTN_OUT,
1847
+ LLM_TENSOR_FFN_DOWN,
1848
+ LLM_TENSOR_FFN_UP,
1849
+ };
1850
+ case LLM_ARCH_NEMOTRON_H_MOE:
1851
+ return {
1852
+ LLM_TENSOR_TOKEN_EMBD,
1853
+ LLM_TENSOR_OUTPUT_NORM,
1854
+ LLM_TENSOR_OUTPUT,
1855
+ LLM_TENSOR_ATTN_NORM,
1856
+ // mamba(2) ssm layers
1857
+ LLM_TENSOR_SSM_IN,
1858
+ LLM_TENSOR_SSM_CONV1D,
1859
+ LLM_TENSOR_SSM_DT,
1860
+ LLM_TENSOR_SSM_A,
1861
+ LLM_TENSOR_SSM_D,
1862
+ LLM_TENSOR_SSM_NORM,
1863
+ LLM_TENSOR_SSM_OUT,
1864
+ // attention layers
1865
+ LLM_TENSOR_ATTN_Q,
1866
+ LLM_TENSOR_ATTN_K,
1867
+ LLM_TENSOR_ATTN_V,
1868
+ LLM_TENSOR_ATTN_OUT,
1869
+ // dense FFN
1870
+ LLM_TENSOR_FFN_DOWN,
1871
+ LLM_TENSOR_FFN_UP,
1872
+ // MoE FFN (for MoE layers)
1873
+ LLM_TENSOR_FFN_GATE_INP,
1874
+ LLM_TENSOR_FFN_UP_EXPS,
1875
+ LLM_TENSOR_FFN_DOWN_EXPS,
1876
+ LLM_TENSOR_FFN_EXP_PROBS_B,
1877
+ // MoE shared expert layer
1878
+ LLM_TENSOR_FFN_DOWN_SHEXP,
1879
+ LLM_TENSOR_FFN_UP_SHEXP,
1880
+ };
1881
+ case LLM_ARCH_EXAONE4:
1882
+ return {
1883
+ LLM_TENSOR_TOKEN_EMBD,
1884
+ LLM_TENSOR_OUTPUT_NORM,
1885
+ LLM_TENSOR_OUTPUT,
1886
+ LLM_TENSOR_ROPE_FREQS,
1887
+ LLM_TENSOR_ATTN_Q,
1888
+ LLM_TENSOR_ATTN_Q_NORM,
1889
+ LLM_TENSOR_ATTN_K,
1890
+ LLM_TENSOR_ATTN_K_NORM,
1891
+ LLM_TENSOR_ATTN_V,
1892
+ LLM_TENSOR_ATTN_OUT,
1893
+ LLM_TENSOR_ATTN_POST_NORM,
1894
+ LLM_TENSOR_FFN_GATE,
1895
+ LLM_TENSOR_FFN_DOWN,
1896
+ LLM_TENSOR_FFN_UP,
1897
+ LLM_TENSOR_FFN_POST_NORM,
1898
+ };
1899
+ case LLM_ARCH_EXAONE_MOE:
1900
+ return {
1901
+ LLM_TENSOR_TOKEN_EMBD,
1902
+ LLM_TENSOR_OUTPUT_NORM,
1903
+ LLM_TENSOR_OUTPUT,
1904
+ LLM_TENSOR_ROPE_FREQS,
1905
+ LLM_TENSOR_ATTN_NORM,
1906
+ LLM_TENSOR_ATTN_Q,
1907
+ LLM_TENSOR_ATTN_Q_NORM,
1908
+ LLM_TENSOR_ATTN_K,
1909
+ LLM_TENSOR_ATTN_K_NORM,
1910
+ LLM_TENSOR_ATTN_V,
1911
+ LLM_TENSOR_ATTN_OUT,
1912
+ LLM_TENSOR_FFN_NORM,
1913
+ LLM_TENSOR_FFN_GATE,
1914
+ LLM_TENSOR_FFN_DOWN,
1915
+ LLM_TENSOR_FFN_UP,
1916
+ LLM_TENSOR_FFN_GATE_INP,
1917
+ LLM_TENSOR_FFN_GATE_EXPS,
1918
+ LLM_TENSOR_FFN_DOWN_EXPS,
1919
+ LLM_TENSOR_FFN_UP_EXPS,
1920
+ LLM_TENSOR_FFN_GATE_SHEXP,
1921
+ LLM_TENSOR_FFN_UP_SHEXP,
1922
+ LLM_TENSOR_FFN_DOWN_SHEXP,
1923
+ LLM_TENSOR_FFN_EXP_PROBS_B,
1924
+ LLM_TENSOR_NEXTN_EH_PROJ,
1925
+ LLM_TENSOR_NEXTN_EMBED_TOKENS,
1926
+ LLM_TENSOR_NEXTN_ENORM,
1927
+ LLM_TENSOR_NEXTN_HNORM,
1928
+ LLM_TENSOR_NEXTN_SHARED_HEAD_HEAD,
1929
+ LLM_TENSOR_NEXTN_SHARED_HEAD_NORM,
1930
+ };
1931
+ case LLM_ARCH_RWKV6:
1932
+ return {
1933
+ LLM_TENSOR_TOKEN_EMBD,
1934
+ LLM_TENSOR_TOKEN_EMBD_NORM,
1935
+ LLM_TENSOR_OUTPUT_NORM,
1936
+ LLM_TENSOR_OUTPUT,
1937
+ LLM_TENSOR_ATTN_NORM,
1938
+ LLM_TENSOR_ATTN_NORM_2,
1939
+ LLM_TENSOR_TIME_MIX_W1,
1940
+ LLM_TENSOR_TIME_MIX_W2,
1941
+ LLM_TENSOR_TIME_MIX_LERP_X,
1942
+ LLM_TENSOR_TIME_MIX_LERP_W,
1943
+ LLM_TENSOR_TIME_MIX_LERP_K,
1944
+ LLM_TENSOR_TIME_MIX_LERP_V,
1945
+ LLM_TENSOR_TIME_MIX_LERP_R,
1946
+ LLM_TENSOR_TIME_MIX_LERP_G,
1947
+ LLM_TENSOR_TIME_MIX_LERP_FUSED,
1948
+ LLM_TENSOR_TIME_MIX_FIRST,
1949
+ LLM_TENSOR_TIME_MIX_DECAY,
1950
+ LLM_TENSOR_TIME_MIX_DECAY_W1,
1951
+ LLM_TENSOR_TIME_MIX_DECAY_W2,
1952
+ LLM_TENSOR_TIME_MIX_KEY,
1953
+ LLM_TENSOR_TIME_MIX_VALUE,
1954
+ LLM_TENSOR_TIME_MIX_RECEPTANCE,
1955
+ LLM_TENSOR_TIME_MIX_GATE,
1956
+ LLM_TENSOR_TIME_MIX_LN,
1957
+ LLM_TENSOR_TIME_MIX_OUTPUT,
1958
+ LLM_TENSOR_CHANNEL_MIX_LERP_K,
1959
+ LLM_TENSOR_CHANNEL_MIX_LERP_R,
1960
+ LLM_TENSOR_CHANNEL_MIX_KEY,
1961
+ LLM_TENSOR_CHANNEL_MIX_VALUE,
1962
+ LLM_TENSOR_CHANNEL_MIX_RECEPTANCE,
1963
+ };
1964
+ case LLM_ARCH_RWKV6QWEN2:
1965
+ return {
1966
+ LLM_TENSOR_TOKEN_EMBD,
1967
+ LLM_TENSOR_OUTPUT_NORM,
1968
+ LLM_TENSOR_OUTPUT,
1969
+ LLM_TENSOR_ATTN_NORM,
1970
+ LLM_TENSOR_TIME_MIX_W1,
1971
+ LLM_TENSOR_TIME_MIX_W2,
1972
+ LLM_TENSOR_TIME_MIX_LERP_X,
1973
+ LLM_TENSOR_TIME_MIX_LERP_FUSED,
1974
+ LLM_TENSOR_TIME_MIX_FIRST,
1975
+ LLM_TENSOR_TIME_MIX_DECAY,
1976
+ LLM_TENSOR_TIME_MIX_DECAY_W1,
1977
+ LLM_TENSOR_TIME_MIX_DECAY_W2,
1978
+ LLM_TENSOR_TIME_MIX_KEY,
1979
+ LLM_TENSOR_TIME_MIX_VALUE,
1980
+ LLM_TENSOR_TIME_MIX_RECEPTANCE,
1981
+ LLM_TENSOR_TIME_MIX_GATE,
1982
+ LLM_TENSOR_TIME_MIX_OUTPUT,
1983
+ LLM_TENSOR_FFN_NORM,
1984
+ LLM_TENSOR_FFN_GATE,
1985
+ LLM_TENSOR_FFN_DOWN,
1986
+ LLM_TENSOR_FFN_UP,
1987
+ };
1988
+ case LLM_ARCH_RWKV7:
1989
+ return {
1990
+ LLM_TENSOR_TOKEN_EMBD,
1991
+ LLM_TENSOR_TOKEN_EMBD_NORM,
1992
+ LLM_TENSOR_OUTPUT_NORM,
1993
+ LLM_TENSOR_OUTPUT,
1994
+ LLM_TENSOR_ATTN_NORM,
1995
+ LLM_TENSOR_ATTN_NORM_2,
1996
+ LLM_TENSOR_TIME_MIX_W0,
1997
+ LLM_TENSOR_TIME_MIX_W1,
1998
+ LLM_TENSOR_TIME_MIX_W2,
1999
+ LLM_TENSOR_TIME_MIX_A0,
2000
+ LLM_TENSOR_TIME_MIX_A1,
2001
+ LLM_TENSOR_TIME_MIX_A2,
2002
+ LLM_TENSOR_TIME_MIX_V0,
2003
+ LLM_TENSOR_TIME_MIX_V1,
2004
+ LLM_TENSOR_TIME_MIX_V2,
2005
+ LLM_TENSOR_TIME_MIX_G1,
2006
+ LLM_TENSOR_TIME_MIX_G2,
2007
+ LLM_TENSOR_TIME_MIX_K_K,
2008
+ LLM_TENSOR_TIME_MIX_K_A,
2009
+ LLM_TENSOR_TIME_MIX_R_K,
2010
+ LLM_TENSOR_TIME_MIX_LERP_FUSED,
2011
+ LLM_TENSOR_TIME_MIX_KEY,
2012
+ LLM_TENSOR_TIME_MIX_VALUE,
2013
+ LLM_TENSOR_TIME_MIX_RECEPTANCE,
2014
+ LLM_TENSOR_TIME_MIX_LN,
2015
+ LLM_TENSOR_TIME_MIX_OUTPUT,
2016
+ LLM_TENSOR_CHANNEL_MIX_LERP_K,
2017
+ LLM_TENSOR_CHANNEL_MIX_KEY,
2018
+ LLM_TENSOR_CHANNEL_MIX_VALUE,
2019
+ };
2020
+ case LLM_ARCH_ARWKV7:
2021
+ return {
2022
+ LLM_TENSOR_TOKEN_EMBD,
2023
+ LLM_TENSOR_TOKEN_EMBD_NORM,
2024
+ LLM_TENSOR_OUTPUT_NORM,
2025
+ LLM_TENSOR_OUTPUT,
2026
+ LLM_TENSOR_ATTN_NORM,
2027
+ LLM_TENSOR_TIME_MIX_W0,
2028
+ LLM_TENSOR_TIME_MIX_W1,
2029
+ LLM_TENSOR_TIME_MIX_W2,
2030
+ LLM_TENSOR_TIME_MIX_A0,
2031
+ LLM_TENSOR_TIME_MIX_A1,
2032
+ LLM_TENSOR_TIME_MIX_A2,
2033
+ LLM_TENSOR_TIME_MIX_V0,
2034
+ LLM_TENSOR_TIME_MIX_V1,
2035
+ LLM_TENSOR_TIME_MIX_V2,
2036
+ LLM_TENSOR_TIME_MIX_G1,
2037
+ LLM_TENSOR_TIME_MIX_G2,
2038
+ LLM_TENSOR_TIME_MIX_K_K,
2039
+ LLM_TENSOR_TIME_MIX_K_A,
2040
+ LLM_TENSOR_TIME_MIX_R_K,
2041
+ LLM_TENSOR_TIME_MIX_LERP_FUSED,
2042
+ LLM_TENSOR_TIME_MIX_KEY,
2043
+ LLM_TENSOR_TIME_MIX_VALUE,
2044
+ LLM_TENSOR_TIME_MIX_RECEPTANCE,
2045
+ LLM_TENSOR_TIME_MIX_LN,
2046
+ LLM_TENSOR_TIME_MIX_OUTPUT,
2047
+ LLM_TENSOR_FFN_NORM,
2048
+ LLM_TENSOR_FFN_GATE,
2049
+ LLM_TENSOR_FFN_DOWN,
2050
+ LLM_TENSOR_FFN_UP,
2051
+ };
2052
+ case LLM_ARCH_GRANITE_MOE:
2053
+ return {
2054
+ LLM_TENSOR_TOKEN_EMBD,
2055
+ LLM_TENSOR_OUTPUT_NORM,
2056
+ LLM_TENSOR_OUTPUT,
2057
+ LLM_TENSOR_ATTN_NORM,
2058
+ LLM_TENSOR_ATTN_Q,
2059
+ LLM_TENSOR_ATTN_K,
2060
+ LLM_TENSOR_ATTN_V,
2061
+ LLM_TENSOR_ATTN_OUT,
2062
+ LLM_TENSOR_FFN_NORM,
2063
+ LLM_TENSOR_FFN_GATE_INP,
2064
+ LLM_TENSOR_FFN_GATE_EXPS,
2065
+ LLM_TENSOR_FFN_DOWN_EXPS,
2066
+ LLM_TENSOR_FFN_UP_EXPS,
2067
+ LLM_TENSOR_FFN_GATE_SHEXP,
2068
+ LLM_TENSOR_FFN_DOWN_SHEXP,
2069
+ LLM_TENSOR_FFN_UP_SHEXP,
2070
+ };
2071
+ case LLM_ARCH_GRANITE_HYBRID:
2072
+ return {
2073
+ LLM_TENSOR_TOKEN_EMBD,
2074
+ LLM_TENSOR_OUTPUT_NORM,
2075
+ LLM_TENSOR_OUTPUT,
2076
+ LLM_TENSOR_ATTN_NORM,
2077
+ LLM_TENSOR_SSM_IN,
2078
+ LLM_TENSOR_SSM_CONV1D,
2079
+ LLM_TENSOR_SSM_DT,
2080
+ LLM_TENSOR_SSM_A,
2081
+ LLM_TENSOR_SSM_D,
2082
+ LLM_TENSOR_SSM_NORM,
2083
+ LLM_TENSOR_SSM_OUT,
2084
+ LLM_TENSOR_ATTN_Q,
2085
+ LLM_TENSOR_ATTN_K,
2086
+ LLM_TENSOR_ATTN_V,
2087
+ LLM_TENSOR_ATTN_OUT,
2088
+ LLM_TENSOR_FFN_NORM,
2089
+ LLM_TENSOR_FFN_GATE,
2090
+ LLM_TENSOR_FFN_DOWN,
2091
+ LLM_TENSOR_FFN_UP,
2092
+ LLM_TENSOR_FFN_NORM,
2093
+ LLM_TENSOR_FFN_GATE_INP,
2094
+ LLM_TENSOR_FFN_GATE_EXPS,
2095
+ LLM_TENSOR_FFN_DOWN_EXPS,
2096
+ LLM_TENSOR_FFN_UP_EXPS,
2097
+ LLM_TENSOR_FFN_GATE_SHEXP,
2098
+ LLM_TENSOR_FFN_DOWN_SHEXP,
2099
+ LLM_TENSOR_FFN_UP_SHEXP,
2100
+ };
2101
+ case LLM_ARCH_WAVTOKENIZER_DEC:
2102
+ return {
2103
+ LLM_TENSOR_TOKEN_EMBD,
2104
+ LLM_TENSOR_TOKEN_EMBD_NORM,
2105
+ LLM_TENSOR_CONV1D,
2106
+ LLM_TENSOR_CONVNEXT_DW,
2107
+ LLM_TENSOR_CONVNEXT_NORM,
2108
+ LLM_TENSOR_CONVNEXT_PW1,
2109
+ LLM_TENSOR_CONVNEXT_PW2,
2110
+ LLM_TENSOR_CONVNEXT_GAMMA,
2111
+ LLM_TENSOR_OUTPUT_NORM,
2112
+ LLM_TENSOR_OUTPUT,
2113
+ LLM_TENSOR_POS_NET_CONV1,
2114
+ LLM_TENSOR_POS_NET_CONV2,
2115
+ LLM_TENSOR_POS_NET_NORM,
2116
+ LLM_TENSOR_POS_NET_NORM1,
2117
+ LLM_TENSOR_POS_NET_NORM2,
2118
+ LLM_TENSOR_POS_NET_ATTN_NORM,
2119
+ LLM_TENSOR_POS_NET_ATTN_Q,
2120
+ LLM_TENSOR_POS_NET_ATTN_K,
2121
+ LLM_TENSOR_POS_NET_ATTN_V,
2122
+ LLM_TENSOR_POS_NET_ATTN_OUT,
2123
+ };
2124
+ case LLM_ARCH_BAILINGMOE:
2125
+ return {
2126
+ LLM_TENSOR_TOKEN_EMBD,
2127
+ LLM_TENSOR_OUTPUT_NORM,
2128
+ LLM_TENSOR_OUTPUT,
2129
+ LLM_TENSOR_ROPE_FREQS,
2130
+ LLM_TENSOR_ATTN_NORM,
2131
+ LLM_TENSOR_ATTN_Q,
2132
+ LLM_TENSOR_ATTN_K,
2133
+ LLM_TENSOR_ATTN_V,
2134
+ LLM_TENSOR_ATTN_OUT,
2135
+ LLM_TENSOR_FFN_GATE_INP,
2136
+ LLM_TENSOR_FFN_NORM,
2137
+ LLM_TENSOR_FFN_GATE_EXPS,
2138
+ LLM_TENSOR_FFN_DOWN_EXPS,
2139
+ LLM_TENSOR_FFN_UP_EXPS,
2140
+ LLM_TENSOR_FFN_GATE_INP_SHEXP,
2141
+ LLM_TENSOR_FFN_GATE_SHEXP,
2142
+ LLM_TENSOR_FFN_DOWN_SHEXP,
2143
+ LLM_TENSOR_FFN_UP_SHEXP,
2144
+ };
2145
+ case LLM_ARCH_BAILINGMOE2:
2146
+ return {
2147
+ LLM_TENSOR_TOKEN_EMBD,
2148
+ LLM_TENSOR_OUTPUT_NORM,
2149
+ LLM_TENSOR_OUTPUT,
2150
+ LLM_TENSOR_ATTN_NORM,
2151
+ LLM_TENSOR_ATTN_Q_NORM,
2152
+ LLM_TENSOR_ATTN_K_NORM,
2153
+ LLM_TENSOR_ATTN_QKV,
2154
+ LLM_TENSOR_ATTN_OUT,
2155
+ LLM_TENSOR_FFN_GATE_INP,
2156
+ LLM_TENSOR_FFN_EXP_PROBS_B,
2157
+ LLM_TENSOR_FFN_NORM,
2158
+ LLM_TENSOR_FFN_GATE,
2159
+ LLM_TENSOR_FFN_DOWN,
2160
+ LLM_TENSOR_FFN_UP,
2161
+ LLM_TENSOR_FFN_GATE_EXPS,
2162
+ LLM_TENSOR_FFN_DOWN_EXPS,
2163
+ LLM_TENSOR_FFN_UP_EXPS,
2164
+ LLM_TENSOR_FFN_GATE_SHEXP,
2165
+ LLM_TENSOR_FFN_DOWN_SHEXP,
2166
+ LLM_TENSOR_FFN_UP_SHEXP,
2167
+ LLM_TENSOR_NEXTN_EH_PROJ,
2168
+ LLM_TENSOR_NEXTN_EMBED_TOKENS,
2169
+ LLM_TENSOR_NEXTN_ENORM,
2170
+ LLM_TENSOR_NEXTN_HNORM,
2171
+ LLM_TENSOR_NEXTN_SHARED_HEAD_HEAD,
2172
+ LLM_TENSOR_NEXTN_SHARED_HEAD_NORM,
2173
+ LLM_TENSOR_LAYER_OUT_NORM,
2174
+ };
2175
+ case LLM_ARCH_DOTS1:
2176
+ return {
2177
+ LLM_TENSOR_TOKEN_EMBD,
2178
+ LLM_TENSOR_OUTPUT_NORM,
2179
+ LLM_TENSOR_OUTPUT,
2180
+ LLM_TENSOR_ATTN_NORM,
2181
+ LLM_TENSOR_ATTN_Q,
2182
+ LLM_TENSOR_ATTN_Q_NORM,
2183
+ LLM_TENSOR_ATTN_K,
2184
+ LLM_TENSOR_ATTN_K_NORM,
2185
+ LLM_TENSOR_ATTN_V,
2186
+ LLM_TENSOR_ATTN_OUT,
2187
+ LLM_TENSOR_FFN_NORM,
2188
+ LLM_TENSOR_FFN_GATE,
2189
+ LLM_TENSOR_FFN_UP,
2190
+ LLM_TENSOR_FFN_DOWN,
2191
+ LLM_TENSOR_FFN_GATE_INP,
2192
+ LLM_TENSOR_FFN_GATE_EXPS,
2193
+ LLM_TENSOR_FFN_DOWN_EXPS,
2194
+ LLM_TENSOR_FFN_UP_EXPS,
2195
+ LLM_TENSOR_FFN_GATE_INP_SHEXP,
2196
+ LLM_TENSOR_FFN_GATE_SHEXP,
2197
+ LLM_TENSOR_FFN_DOWN_SHEXP,
2198
+ LLM_TENSOR_FFN_UP_SHEXP,
2199
+ LLM_TENSOR_FFN_EXP_PROBS_B,
2200
+ };
2201
+ case LLM_ARCH_ERNIE4_5_MOE:
2202
+ return {
2203
+ LLM_TENSOR_TOKEN_EMBD,
2204
+ LLM_TENSOR_OUTPUT_NORM,
2205
+ LLM_TENSOR_OUTPUT,
2206
+ LLM_TENSOR_ATTN_NORM,
2207
+ LLM_TENSOR_ATTN_Q,
2208
+ LLM_TENSOR_ATTN_K,
2209
+ LLM_TENSOR_ATTN_V,
2210
+ LLM_TENSOR_ATTN_OUT,
2211
+ LLM_TENSOR_FFN_NORM,
2212
+ LLM_TENSOR_FFN_GATE,
2213
+ LLM_TENSOR_FFN_DOWN,
2214
+ LLM_TENSOR_FFN_UP,
2215
+ LLM_TENSOR_FFN_GATE_INP,
2216
+ LLM_TENSOR_FFN_GATE_SHEXP,
2217
+ LLM_TENSOR_FFN_DOWN_SHEXP,
2218
+ LLM_TENSOR_FFN_UP_SHEXP,
2219
+ LLM_TENSOR_FFN_GATE_EXPS,
2220
+ LLM_TENSOR_FFN_DOWN_EXPS,
2221
+ LLM_TENSOR_FFN_UP_EXPS,
2222
+ LLM_TENSOR_FFN_EXP_PROBS_B,
2223
+ };
2224
+ case LLM_ARCH_HUNYUAN_MOE:
2225
+ return {
2226
+ LLM_TENSOR_TOKEN_EMBD,
2227
+ LLM_TENSOR_OUTPUT_NORM,
2228
+ LLM_TENSOR_OUTPUT,
2229
+ LLM_TENSOR_ATTN_NORM,
2230
+ LLM_TENSOR_ATTN_Q,
2231
+ LLM_TENSOR_ATTN_Q_NORM,
2232
+ LLM_TENSOR_ATTN_K,
2233
+ LLM_TENSOR_ATTN_K_NORM,
2234
+ LLM_TENSOR_ATTN_V,
2235
+ LLM_TENSOR_ATTN_OUT,
2236
+ LLM_TENSOR_FFN_GATE_INP,
2237
+ LLM_TENSOR_FFN_NORM,
2238
+ LLM_TENSOR_FFN_GATE_SHEXP,
2239
+ LLM_TENSOR_FFN_DOWN_SHEXP,
2240
+ LLM_TENSOR_FFN_UP_SHEXP,
2241
+ LLM_TENSOR_FFN_GATE_EXPS,
2242
+ LLM_TENSOR_FFN_DOWN_EXPS,
2243
+ LLM_TENSOR_FFN_UP_EXPS,
2244
+ };
2245
+ case LLM_ARCH_OPENAI_MOE:
2246
+ return {
2247
+ LLM_TENSOR_TOKEN_EMBD,
2248
+ LLM_TENSOR_OUTPUT_NORM,
2249
+ LLM_TENSOR_OUTPUT,
2250
+ LLM_TENSOR_ATTN_NORM,
2251
+ LLM_TENSOR_ATTN_POST_NORM,
2252
+ LLM_TENSOR_ATTN_Q,
2253
+ LLM_TENSOR_ATTN_K,
2254
+ LLM_TENSOR_ATTN_V,
2255
+ LLM_TENSOR_ATTN_OUT,
2256
+ LLM_TENSOR_ATTN_SINKS,
2257
+ LLM_TENSOR_FFN_GATE_INP,
2258
+ LLM_TENSOR_FFN_GATE_EXPS,
2259
+ LLM_TENSOR_FFN_DOWN_EXPS,
2260
+ LLM_TENSOR_FFN_UP_EXPS,
2261
+ };
2262
+ case LLM_ARCH_LFM2:
2263
+ return {
2264
+ LLM_TENSOR_ATTN_NORM,
2265
+ LLM_TENSOR_ATTN_Q,
2266
+ LLM_TENSOR_ATTN_K,
2267
+ LLM_TENSOR_ATTN_V,
2268
+ LLM_TENSOR_ATTN_OUT,
2269
+ LLM_TENSOR_ATTN_K_NORM,
2270
+ LLM_TENSOR_ATTN_Q_NORM,
2271
+ LLM_TENSOR_FFN_DOWN,
2272
+ LLM_TENSOR_FFN_GATE,
2273
+ LLM_TENSOR_FFN_NORM,
2274
+ LLM_TENSOR_FFN_UP,
2275
+ LLM_TENSOR_SHORTCONV_CONV,
2276
+ LLM_TENSOR_SHORTCONV_INPROJ,
2277
+ LLM_TENSOR_SHORTCONV_OUTPROJ,
2278
+ LLM_TENSOR_TOKEN_EMBD,
2279
+ LLM_TENSOR_OUTPUT_NORM_LFM2,
2280
+ LLM_TENSOR_OUTPUT,
2281
+ LLM_TENSOR_DENSE_2_OUT,
2282
+ };
2283
+ case LLM_ARCH_LFM2MOE:
2284
+ return {
2285
+ LLM_TENSOR_ATTN_NORM,
2286
+ LLM_TENSOR_ATTN_Q,
2287
+ LLM_TENSOR_ATTN_K,
2288
+ LLM_TENSOR_ATTN_V,
2289
+ LLM_TENSOR_ATTN_OUT,
2290
+ LLM_TENSOR_ATTN_K_NORM,
2291
+ LLM_TENSOR_ATTN_Q_NORM,
2292
+ LLM_TENSOR_FFN_DOWN,
2293
+ LLM_TENSOR_FFN_GATE,
2294
+ LLM_TENSOR_FFN_NORM,
2295
+ LLM_TENSOR_FFN_UP,
2296
+ LLM_TENSOR_SHORTCONV_CONV,
2297
+ LLM_TENSOR_SHORTCONV_INPROJ,
2298
+ LLM_TENSOR_SHORTCONV_OUTPROJ,
2299
+ LLM_TENSOR_TOKEN_EMBD,
2300
+ LLM_TENSOR_OUTPUT_NORM_LFM2,
2301
+ LLM_TENSOR_FFN_GATE_INP,
2302
+ LLM_TENSOR_FFN_GATE_EXPS,
2303
+ LLM_TENSOR_FFN_DOWN_EXPS,
2304
+ LLM_TENSOR_FFN_UP_EXPS,
2305
+ LLM_TENSOR_FFN_EXP_PROBS_B,
2306
+ };
2307
+ case LLM_ARCH_SMALLTHINKER:
2308
+ return {
2309
+ LLM_TENSOR_TOKEN_EMBD,
2310
+ LLM_TENSOR_OUTPUT_NORM,
2311
+ LLM_TENSOR_OUTPUT,
2312
+ LLM_TENSOR_ATTN_NORM,
2313
+ LLM_TENSOR_ATTN_Q,
2314
+ LLM_TENSOR_ATTN_K,
2315
+ LLM_TENSOR_ATTN_V,
2316
+ LLM_TENSOR_ATTN_OUT,
2317
+ LLM_TENSOR_FFN_NORM,
2318
+ LLM_TENSOR_FFN_GATE,
2319
+ LLM_TENSOR_FFN_DOWN,
2320
+ LLM_TENSOR_FFN_UP,
2321
+ LLM_TENSOR_FFN_GATE_INP,
2322
+ LLM_TENSOR_FFN_GATE_EXPS,
2323
+ LLM_TENSOR_FFN_DOWN_EXPS,
2324
+ LLM_TENSOR_FFN_UP_EXPS,
2325
+ };
2326
+ case LLM_ARCH_APERTUS:
2327
+ return {
2328
+ LLM_TENSOR_TOKEN_EMBD,
2329
+ LLM_TENSOR_OUTPUT_NORM,
2330
+ LLM_TENSOR_OUTPUT,
2331
+ LLM_TENSOR_ROPE_FREQS,
2332
+ LLM_TENSOR_ATTN_NORM,
2333
+ LLM_TENSOR_ATTN_Q,
2334
+ LLM_TENSOR_ATTN_K,
2335
+ LLM_TENSOR_ATTN_V,
2336
+ LLM_TENSOR_ATTN_OUT,
2337
+ LLM_TENSOR_ATTN_Q_NORM,
2338
+ LLM_TENSOR_ATTN_K_NORM,
2339
+ LLM_TENSOR_FFN_NORM,
2340
+ LLM_TENSOR_FFN_DOWN,
2341
+ LLM_TENSOR_FFN_UP,
2342
+ };
2343
+ case LLM_ARCH_SEED_OSS:
2344
+ return {
2345
+ LLM_TENSOR_TOKEN_EMBD,
2346
+ LLM_TENSOR_OUTPUT_NORM,
2347
+ LLM_TENSOR_OUTPUT,
2348
+ LLM_TENSOR_ATTN_NORM,
2349
+ LLM_TENSOR_ATTN_Q,
2350
+ LLM_TENSOR_ATTN_K,
2351
+ LLM_TENSOR_ATTN_V,
2352
+ LLM_TENSOR_ATTN_OUT,
2353
+ LLM_TENSOR_ATTN_POST_NORM,
2354
+ LLM_TENSOR_FFN_GATE,
2355
+ LLM_TENSOR_FFN_DOWN,
2356
+ LLM_TENSOR_FFN_UP,
2357
+ };
2358
+ case LLM_ARCH_GROVEMOE:
2359
+ return {
2360
+ LLM_TENSOR_TOKEN_EMBD,
2361
+ LLM_TENSOR_OUTPUT_NORM,
2362
+ LLM_TENSOR_OUTPUT,
2363
+ LLM_TENSOR_ATTN_NORM,
2364
+ LLM_TENSOR_ATTN_Q,
2365
+ LLM_TENSOR_ATTN_Q_NORM,
2366
+ LLM_TENSOR_ATTN_K,
2367
+ LLM_TENSOR_ATTN_K_NORM,
2368
+ LLM_TENSOR_ATTN_V,
2369
+ LLM_TENSOR_ATTN_OUT,
2370
+ LLM_TENSOR_FFN_NORM,
2371
+ LLM_TENSOR_FFN_GATE_INP,
2372
+ LLM_TENSOR_FFN_GATE_EXPS,
2373
+ LLM_TENSOR_FFN_DOWN_EXPS,
2374
+ LLM_TENSOR_FFN_UP_EXPS,
2375
+ LLM_TENSOR_FFN_GATE_CHEXPS,
2376
+ LLM_TENSOR_FFN_DOWN_CHEXPS,
2377
+ LLM_TENSOR_FFN_UP_CHEXPS,
2378
+ };
2379
+ case LLM_ARCH_MINIMAX_M2:
2380
+ return {
2381
+ LLM_TENSOR_TOKEN_EMBD,
2382
+ LLM_TENSOR_OUTPUT_NORM,
2383
+ LLM_TENSOR_OUTPUT,
2384
+ LLM_TENSOR_ATTN_NORM,
2385
+ LLM_TENSOR_ATTN_Q,
2386
+ LLM_TENSOR_ATTN_K,
2387
+ LLM_TENSOR_ATTN_V,
2388
+ LLM_TENSOR_ATTN_OUT,
2389
+ LLM_TENSOR_ATTN_Q_NORM,
2390
+ LLM_TENSOR_ATTN_K_NORM,
2391
+ LLM_TENSOR_FFN_NORM,
2392
+ LLM_TENSOR_FFN_GATE_INP,
2393
+ LLM_TENSOR_FFN_GATE_EXPS,
2394
+ LLM_TENSOR_FFN_DOWN_EXPS,
2395
+ LLM_TENSOR_FFN_UP_EXPS,
2396
+ LLM_TENSOR_FFN_EXP_PROBS_B,
2397
+ };
2398
+ case LLM_ARCH_COGVLM:
2399
+ return {
2400
+ LLM_TENSOR_TOKEN_EMBD,
2401
+ LLM_TENSOR_OUTPUT_NORM,
2402
+ LLM_TENSOR_OUTPUT,
2403
+ LLM_TENSOR_ATTN_NORM,
2404
+ LLM_TENSOR_ATTN_QKV,
2405
+ LLM_TENSOR_ATTN_OUT,
2406
+ LLM_TENSOR_FFN_NORM,
2407
+ LLM_TENSOR_FFN_GATE,
2408
+ LLM_TENSOR_FFN_DOWN,
2409
+ LLM_TENSOR_FFN_UP,
2410
+ LLM_TENSOR_VISEXP_ATTN_QKV,
2411
+ LLM_TENSOR_VISEXP_ATTN_OUT,
2412
+ LLM_TENSOR_VISEXP_FFN_GATE,
2413
+ LLM_TENSOR_VISEXP_FFN_DOWN,
2414
+ LLM_TENSOR_VISEXP_FFN_UP,
2415
+ };
2416
+ case LLM_ARCH_MIMO2:
2417
+ return {
2418
+ LLM_TENSOR_TOKEN_EMBD,
2419
+ LLM_TENSOR_OUTPUT_NORM,
2420
+ LLM_TENSOR_OUTPUT,
2421
+ LLM_TENSOR_ATTN_NORM,
2422
+ LLM_TENSOR_ATTN_Q,
2423
+ LLM_TENSOR_ATTN_K,
2424
+ LLM_TENSOR_ATTN_V,
2425
+ LLM_TENSOR_ATTN_SINKS,
2426
+ LLM_TENSOR_ATTN_OUT,
2427
+ LLM_TENSOR_FFN_NORM,
2428
+ LLM_TENSOR_FFN_GATE,
2429
+ LLM_TENSOR_FFN_DOWN,
2430
+ LLM_TENSOR_FFN_UP,
2431
+ LLM_TENSOR_FFN_GATE_INP,
2432
+ LLM_TENSOR_FFN_GATE_EXPS,
2433
+ LLM_TENSOR_FFN_DOWN_EXPS,
2434
+ LLM_TENSOR_FFN_UP_EXPS,
2435
+ LLM_TENSOR_FFN_EXP_PROBS_B,
2436
+ };
2437
+ case LLM_ARCH_STEP35:
2438
+ return {
2439
+ LLM_TENSOR_TOKEN_EMBD,
2440
+ LLM_TENSOR_OUTPUT_NORM,
2441
+ LLM_TENSOR_OUTPUT,
2442
+ LLM_TENSOR_ROPE_FREQS,
2443
+ LLM_TENSOR_ROPE_FACTORS_LONG,
2444
+ LLM_TENSOR_ROPE_FACTORS_SHORT,
2445
+ LLM_TENSOR_ATTN_NORM,
2446
+ LLM_TENSOR_ATTN_Q,
2447
+ LLM_TENSOR_ATTN_Q_NORM,
2448
+ LLM_TENSOR_ATTN_K,
2449
+ LLM_TENSOR_ATTN_K_NORM,
2450
+ LLM_TENSOR_ATTN_V,
2451
+ LLM_TENSOR_ATTN_GATE,
2452
+ LLM_TENSOR_ATTN_OUT,
2453
+ LLM_TENSOR_FFN_NORM,
2454
+ LLM_TENSOR_FFN_GATE,
2455
+ LLM_TENSOR_FFN_DOWN,
2456
+ LLM_TENSOR_FFN_UP,
2457
+ LLM_TENSOR_FFN_GATE_INP,
2458
+ LLM_TENSOR_FFN_GATE_EXPS,
2459
+ LLM_TENSOR_FFN_DOWN_EXPS,
2460
+ LLM_TENSOR_FFN_UP_EXPS,
2461
+ LLM_TENSOR_FFN_GATE_SHEXP,
2462
+ LLM_TENSOR_FFN_UP_SHEXP,
2463
+ LLM_TENSOR_FFN_DOWN_SHEXP,
2464
+ LLM_TENSOR_FFN_EXP_PROBS_B,
2465
+ };
2466
+ case LLM_ARCH_GPTJ:
2467
+ case LLM_ARCH_UNKNOWN:
2468
+ return {
2469
+ LLM_TENSOR_TOKEN_EMBD,
2470
+ };
2471
+ case LLM_ARCH_MAINCODER:
2472
+ return {
2473
+ LLM_TENSOR_TOKEN_EMBD,
2474
+ LLM_TENSOR_OUTPUT_NORM,
2475
+ LLM_TENSOR_OUTPUT,
2476
+ LLM_TENSOR_ATTN_NORM,
2477
+ LLM_TENSOR_ATTN_Q,
2478
+ LLM_TENSOR_ATTN_Q_NORM,
2479
+ LLM_TENSOR_ATTN_K,
2480
+ LLM_TENSOR_ATTN_K_NORM,
2481
+ LLM_TENSOR_ATTN_V,
2482
+ LLM_TENSOR_ATTN_OUT,
2483
+ LLM_TENSOR_FFN_NORM,
2484
+ LLM_TENSOR_FFN_GATE,
2485
+ LLM_TENSOR_FFN_DOWN,
2486
+ LLM_TENSOR_FFN_UP,
2487
+ };
2488
+ case LLM_ARCH_KIMI_LINEAR:
2489
+ return {
2490
+ LLM_TENSOR_TOKEN_EMBD,
2491
+ LLM_TENSOR_OUTPUT_NORM,
2492
+ LLM_TENSOR_OUTPUT,
2493
+ LLM_TENSOR_ROPE_FREQS,
2494
+ LLM_TENSOR_ATTN_NORM,
2495
+ LLM_TENSOR_ATTN_Q,
2496
+ LLM_TENSOR_ATTN_K,
2497
+ LLM_TENSOR_ATTN_V,
2498
+ LLM_TENSOR_ATTN_OUT,
2499
+ LLM_TENSOR_FFN_NORM,
2500
+ // Dense FFN (layer 0 only)
2501
+ LLM_TENSOR_FFN_GATE,
2502
+ LLM_TENSOR_FFN_DOWN,
2503
+ LLM_TENSOR_FFN_UP,
2504
+ // MoE FFN (layers 1+)
2505
+ LLM_TENSOR_FFN_GATE_INP,
2506
+ LLM_TENSOR_FFN_GATE_EXPS,
2507
+ LLM_TENSOR_FFN_DOWN_EXPS,
2508
+ LLM_TENSOR_FFN_UP_EXPS,
2509
+ LLM_TENSOR_FFN_EXP_PROBS_B,
2510
+ // Shared experts
2511
+ LLM_TENSOR_FFN_GATE_SHEXP,
2512
+ LLM_TENSOR_FFN_DOWN_SHEXP,
2513
+ LLM_TENSOR_FFN_UP_SHEXP,
2514
+ // KDA (using SSM_ enum prefix, keeping GGUF names for backward compat)
2515
+ LLM_TENSOR_SSM_CONV1D_Q,
2516
+ LLM_TENSOR_SSM_CONV1D_K,
2517
+ LLM_TENSOR_SSM_CONV1D_V,
2518
+ LLM_TENSOR_SSM_F_A,
2519
+ LLM_TENSOR_SSM_F_B,
2520
+ LLM_TENSOR_SSM_BETA,
2521
+ LLM_TENSOR_SSM_A,
2522
+ LLM_TENSOR_SSM_G_A,
2523
+ LLM_TENSOR_SSM_G_B,
2524
+ LLM_TENSOR_SSM_DT,
2525
+ LLM_TENSOR_SSM_NORM,
2526
+ // MLA
2527
+ LLM_TENSOR_ATTN_Q_A,
2528
+ LLM_TENSOR_ATTN_Q_B,
2529
+ LLM_TENSOR_ATTN_Q_A_NORM,
2530
+ LLM_TENSOR_ATTN_KV_A_MQA,
2531
+ LLM_TENSOR_ATTN_KV_B,
2532
+ LLM_TENSOR_ATTN_K_B,
2533
+ LLM_TENSOR_ATTN_V_B,
2534
+ LLM_TENSOR_ATTN_KV_A_NORM,
2535
+ };
2536
+ default:
2537
+ GGML_ABORT("unknown architecture for tensor mapping");
2538
+ }
2539
+ }
2540
+
2541
+ // declare information about the model weight tensors:
2542
+ // - the layer in which the tensor is going to be used. this is needed in order to assign the correct buffer type for the weight
2543
+ // - the operator which is going to use the weight. this is needed to determine if the respective backend supports the operator
2544
+ //
2545
+ // for example, input layers are usually assigned to CPU/host buffer types
2546
+ //
2547
+ // a mismatch between the declared information and the actual layer/op in which the tensor is used can lead to sub-optimal
2548
+ // assignment of the buffer types and extra overhead during computation
2549
+ // example: https://github.com/ggml-org/llama.cpp/pull/17548
2550
+ //
2551
+ static const std::map<llm_tensor, llm_tensor_info> LLM_TENSOR_INFOS = {
2552
+ {LLM_TENSOR_TOKEN_EMBD, {LLM_TENSOR_LAYER_INPUT, GGML_OP_GET_ROWS}},
2553
+ {LLM_TENSOR_POS_EMBD, {LLM_TENSOR_LAYER_INPUT, GGML_OP_GET_ROWS}},
2554
+ {LLM_TENSOR_TOKEN_TYPES, {LLM_TENSOR_LAYER_INPUT, GGML_OP_GET_ROWS}},
2555
+ {LLM_TENSOR_TOKEN_EMBD_NORM, {LLM_TENSOR_LAYER_INPUT, GGML_OP_MUL}},
2556
+ {LLM_TENSOR_OUTPUT, {LLM_TENSOR_LAYER_OUTPUT, GGML_OP_MUL_MAT}},
2557
+ {LLM_TENSOR_CLS, {LLM_TENSOR_LAYER_OUTPUT, GGML_OP_MUL_MAT}},
2558
+ {LLM_TENSOR_CLS_OUT, {LLM_TENSOR_LAYER_OUTPUT, GGML_OP_MUL_MAT}},
2559
+ {LLM_TENSOR_CLS_NORM, {LLM_TENSOR_LAYER_OUTPUT, GGML_OP_MUL}},
2560
+ {LLM_TENSOR_DENSE_2_OUT, {LLM_TENSOR_LAYER_OUTPUT, GGML_OP_MUL_MAT}}, // Dense layer output
2561
+ {LLM_TENSOR_DENSE_3_OUT, {LLM_TENSOR_LAYER_OUTPUT, GGML_OP_MUL_MAT}}, // Dense layer output
2562
+ {LLM_TENSOR_OUTPUT_NORM, {LLM_TENSOR_LAYER_OUTPUT, GGML_OP_MUL}},
2563
+ {LLM_TENSOR_OUTPUT_NORM_LFM2, {LLM_TENSOR_LAYER_OUTPUT, GGML_OP_MUL}},
2564
+ {LLM_TENSOR_DEC_OUTPUT_NORM, {LLM_TENSOR_LAYER_OUTPUT, GGML_OP_MUL}},
2565
+ {LLM_TENSOR_ENC_OUTPUT_NORM, {LLM_TENSOR_LAYER_OUTPUT, GGML_OP_MUL}},
2566
+ {LLM_TENSOR_ROPE_FREQS, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_ROPE}},
2567
+ {LLM_TENSOR_ROPE_FACTORS_LONG, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_ROPE}},
2568
+ {LLM_TENSOR_ROPE_FACTORS_SHORT, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_ROPE}},
2569
+ {LLM_TENSOR_ATTN_Q, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2570
+ {LLM_TENSOR_ATTN_K, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2571
+ {LLM_TENSOR_ATTN_V, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2572
+ {LLM_TENSOR_ATTN_QKV, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2573
+ {LLM_TENSOR_ATTN_OUT, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2574
+ {LLM_TENSOR_ATTN_GATE, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2575
+ {LLM_TENSOR_FFN_GATE, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2576
+ {LLM_TENSOR_FFN_DOWN, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2577
+ {LLM_TENSOR_FFN_UP, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2578
+ {LLM_TENSOR_FFN_DOWN_SHEXP, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2579
+ {LLM_TENSOR_FFN_GATE_SHEXP, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2580
+ {LLM_TENSOR_FFN_UP_SHEXP, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2581
+ {LLM_TENSOR_ATTN_Q_A, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2582
+ {LLM_TENSOR_ATTN_Q_B, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2583
+ {LLM_TENSOR_ATTN_KV_A_MQA, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2584
+ {LLM_TENSOR_ATTN_KV_B, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2585
+ {LLM_TENSOR_ATTN_K_B, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2586
+ {LLM_TENSOR_ATTN_V_B, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2587
+ {LLM_TENSOR_ATTN_SINKS, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_SCALE}},
2588
+ {LLM_TENSOR_DEC_ATTN_Q, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2589
+ {LLM_TENSOR_DEC_ATTN_K, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2590
+ {LLM_TENSOR_DEC_ATTN_V, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2591
+ {LLM_TENSOR_DEC_ATTN_OUT, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2592
+ {LLM_TENSOR_DEC_CROSS_ATTN_Q, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2593
+ {LLM_TENSOR_DEC_CROSS_ATTN_K, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2594
+ {LLM_TENSOR_DEC_CROSS_ATTN_V, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2595
+ {LLM_TENSOR_DEC_CROSS_ATTN_OUT, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2596
+ {LLM_TENSOR_DEC_FFN_GATE, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2597
+ {LLM_TENSOR_DEC_FFN_DOWN, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2598
+ {LLM_TENSOR_DEC_FFN_UP, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2599
+ {LLM_TENSOR_ENC_ATTN_Q, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2600
+ {LLM_TENSOR_ENC_ATTN_K, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2601
+ {LLM_TENSOR_ENC_ATTN_V, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2602
+ {LLM_TENSOR_ENC_ATTN_OUT, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2603
+ {LLM_TENSOR_ENC_FFN_GATE, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2604
+ {LLM_TENSOR_ENC_FFN_DOWN, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2605
+ {LLM_TENSOR_ENC_FFN_UP, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2606
+ {LLM_TENSOR_FFN_GATE_INP_SHEXP, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2607
+ {LLM_TENSOR_FFN_GATE_INP, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2608
+ {LLM_TENSOR_SSM_IN, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2609
+ {LLM_TENSOR_SSM_X, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2610
+ {LLM_TENSOR_SSM_DT, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2611
+ {LLM_TENSOR_SSM_OUT, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2612
+ {LLM_TENSOR_SSM_ALPHA, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2613
+ {LLM_TENSOR_SSM_BETA_ALPHA, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2614
+ {LLM_TENSOR_TIME_MIX_W1, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2615
+ {LLM_TENSOR_TIME_MIX_W2, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2616
+ {LLM_TENSOR_TIME_MIX_A1, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2617
+ {LLM_TENSOR_TIME_MIX_A2, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2618
+ {LLM_TENSOR_TIME_MIX_V1, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2619
+ {LLM_TENSOR_TIME_MIX_V2, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2620
+ {LLM_TENSOR_TIME_MIX_G1, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2621
+ {LLM_TENSOR_TIME_MIX_G2, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2622
+ {LLM_TENSOR_TIME_MIX_DECAY_W1, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2623
+ {LLM_TENSOR_TIME_MIX_DECAY_W2, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2624
+ {LLM_TENSOR_TIME_MIX_KEY, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2625
+ {LLM_TENSOR_TIME_MIX_VALUE, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2626
+ {LLM_TENSOR_TIME_MIX_RECEPTANCE, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2627
+ {LLM_TENSOR_TIME_MIX_GATE, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2628
+ {LLM_TENSOR_TIME_MIX_OUTPUT, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2629
+ {LLM_TENSOR_CHANNEL_MIX_KEY, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2630
+ {LLM_TENSOR_CHANNEL_MIX_RECEPTANCE, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2631
+ {LLM_TENSOR_CHANNEL_MIX_VALUE, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2632
+ {LLM_TENSOR_FFN_ACT, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_DIV}},
2633
+ {LLM_TENSOR_SSM_CONV1D, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_SSM_CONV}},
2634
+ {LLM_TENSOR_SSM_A, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_SSM_SCAN}},
2635
+ {LLM_TENSOR_SSM_A_NOSCAN, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}}, // a version of SSM_A used for MUL instead of SSM_SCAN
2636
+ {LLM_TENSOR_SSM_DT_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
2637
+ {LLM_TENSOR_SSM_B_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
2638
+ {LLM_TENSOR_SSM_C_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
2639
+ {LLM_TENSOR_SSM_D, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
2640
+ {LLM_TENSOR_SSM_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
2641
+ // Kimi KDA - Conv tensors are 4D [d_conv, 1, d_inner, 1], reshaped to 2D at runtime
2642
+ {LLM_TENSOR_SSM_CONV1D_Q, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
2643
+ {LLM_TENSOR_SSM_CONV1D_K, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
2644
+ {LLM_TENSOR_SSM_CONV1D_V, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
2645
+ {LLM_TENSOR_SSM_F_A, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2646
+ {LLM_TENSOR_SSM_F_B, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2647
+ {LLM_TENSOR_SSM_BETA, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2648
+ {LLM_TENSOR_SSM_G_A, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2649
+ {LLM_TENSOR_SSM_G_B, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2650
+ {LLM_TENSOR_TIME_MIX_LERP_X, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
2651
+ {LLM_TENSOR_TIME_MIX_LN, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
2652
+ {LLM_TENSOR_CHANNEL_MIX_LERP_K, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
2653
+ {LLM_TENSOR_CHANNEL_MIX_LERP_R, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
2654
+ {LLM_TENSOR_TIME_MIX_K_K, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
2655
+ {LLM_TENSOR_TIME_MIX_K_A, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
2656
+ {LLM_TENSOR_TIME_MIX_R_K, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
2657
+ {LLM_TENSOR_TIME_MIX_LERP_W, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_ADD}},
2658
+ {LLM_TENSOR_TIME_MIX_LERP_K, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_ADD}},
2659
+ {LLM_TENSOR_TIME_MIX_LERP_V, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_ADD}},
2660
+ {LLM_TENSOR_TIME_MIX_LERP_R, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_ADD}},
2661
+ {LLM_TENSOR_TIME_MIX_LERP_G, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_ADD}},
2662
+ {LLM_TENSOR_TIME_MIX_LERP_FUSED, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_ADD}},
2663
+ {LLM_TENSOR_TIME_MIX_DECAY, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_ADD}},
2664
+ {LLM_TENSOR_TIME_MIX_W0, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_ADD}},
2665
+ {LLM_TENSOR_TIME_MIX_A0, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_ADD}},
2666
+ {LLM_TENSOR_TIME_MIX_V0, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_ADD}},
2667
+ {LLM_TENSOR_TIME_MIX_FIRST, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_RWKV_WKV6}},
2668
+ {LLM_TENSOR_ATTN_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
2669
+ {LLM_TENSOR_ATTN_NORM_2, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
2670
+ {LLM_TENSOR_ATTN_OUT_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
2671
+ {LLM_TENSOR_ATTN_POST_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
2672
+ {LLM_TENSOR_FFN_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
2673
+ {LLM_TENSOR_FFN_POST_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
2674
+ {LLM_TENSOR_FFN_NORM_EXPS, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
2675
+ {LLM_TENSOR_ATTN_Q_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
2676
+ {LLM_TENSOR_ATTN_K_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
2677
+ {LLM_TENSOR_LAYER_OUT_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
2678
+ {LLM_TENSOR_ATTN_Q_A_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
2679
+ {LLM_TENSOR_ATTN_KV_A_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
2680
+ {LLM_TENSOR_ATTN_SUB_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
2681
+ {LLM_TENSOR_FFN_SUB_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
2682
+ {LLM_TENSOR_DEC_ATTN_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
2683
+ {LLM_TENSOR_DEC_CROSS_ATTN_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
2684
+ {LLM_TENSOR_DEC_FFN_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
2685
+ {LLM_TENSOR_ENC_ATTN_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
2686
+ {LLM_TENSOR_ENC_FFN_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
2687
+ {LLM_TENSOR_DEC_ATTN_REL_B, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_GET_ROWS}},
2688
+ {LLM_TENSOR_ENC_ATTN_REL_B, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_GET_ROWS}},
2689
+ {LLM_TENSOR_FFN_DOWN_EXPS, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT_ID}},
2690
+ {LLM_TENSOR_FFN_GATE_EXPS, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT_ID}},
2691
+ {LLM_TENSOR_FFN_UP_EXPS, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT_ID}},
2692
+ {LLM_TENSOR_FFN_GATE_UP_EXPS, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT_ID}},
2693
+ {LLM_TENSOR_FFN_DOWN_CHEXPS, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT_ID}},
2694
+ {LLM_TENSOR_FFN_GATE_CHEXPS, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT_ID}},
2695
+ {LLM_TENSOR_FFN_UP_CHEXPS, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT_ID}},
2696
+ {LLM_TENSOR_FFN_EXP_PROBS_B, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_ADD}},
2697
+ // altup / laurel (gemma 3n)
2698
+ {LLM_TENSOR_PER_LAYER_TOKEN_EMBD, {LLM_TENSOR_LAYER_OUTPUT, GGML_OP_GET_ROWS}},
2699
+ {LLM_TENSOR_PER_LAYER_MODEL_PROJ, {LLM_TENSOR_LAYER_OUTPUT, GGML_OP_MUL_MAT}},
2700
+ {LLM_TENSOR_PER_LAYER_PROJ_NORM, {LLM_TENSOR_LAYER_OUTPUT, GGML_OP_MUL}},
2701
+ {LLM_TENSOR_ALTUP_PROJ, {LLM_TENSOR_LAYER_OUTPUT, GGML_OP_MUL_MAT}},
2702
+ {LLM_TENSOR_ALTUP_UNEMBD_PROJ, {LLM_TENSOR_LAYER_OUTPUT, GGML_OP_MUL_MAT}},
2703
+ {LLM_TENSOR_PER_LAYER_INP_GATE, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2704
+ {LLM_TENSOR_PER_LAYER_PROJ, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2705
+ {LLM_TENSOR_PER_LAYER_POST_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
2706
+ {LLM_TENSOR_ALTUP_CORRECT_COEF, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2707
+ {LLM_TENSOR_ALTUP_CORRECT_SCALE, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
2708
+ {LLM_TENSOR_ALTUP_PREDICT_COEF, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2709
+ {LLM_TENSOR_ALTUP_ROUTER, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2710
+ {LLM_TENSOR_ALTUP_ROUTER_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
2711
+ {LLM_TENSOR_LAUREL_L, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2712
+ {LLM_TENSOR_LAUREL_R, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2713
+ {LLM_TENSOR_LAUREL_POST_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
2714
+ // this tensor is loaded for T5, but never used
2715
+ {LLM_TENSOR_DEC_CROSS_ATTN_REL_B, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_NONE}},
2716
+ {LLM_TENSOR_CONV1D, {LLM_TENSOR_LAYER_INPUT, GGML_OP_IM2COL}},
2717
+ {LLM_TENSOR_POS_NET_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
2718
+ {LLM_TENSOR_POS_NET_NORM1, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
2719
+ {LLM_TENSOR_POS_NET_NORM2, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
2720
+ {LLM_TENSOR_POS_NET_CONV1, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_IM2COL}},
2721
+ {LLM_TENSOR_POS_NET_CONV2, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_IM2COL}},
2722
+ {LLM_TENSOR_POS_NET_ATTN_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
2723
+ {LLM_TENSOR_POS_NET_ATTN_Q, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2724
+ {LLM_TENSOR_POS_NET_ATTN_K, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2725
+ {LLM_TENSOR_POS_NET_ATTN_V, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2726
+ {LLM_TENSOR_POS_NET_ATTN_OUT, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2727
+ {LLM_TENSOR_CONVNEXT_DW, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_IM2COL}},
2728
+ {LLM_TENSOR_CONVNEXT_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
2729
+ {LLM_TENSOR_CONVNEXT_PW1, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2730
+ {LLM_TENSOR_CONVNEXT_PW2, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2731
+ {LLM_TENSOR_CONVNEXT_GAMMA, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
2732
+ {LLM_TENSOR_SHORTCONV_CONV, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_SSM_CONV}},
2733
+ {LLM_TENSOR_SHORTCONV_INPROJ, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2734
+ {LLM_TENSOR_SHORTCONV_OUTPROJ, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2735
+ {LLM_TENSOR_VISEXP_ATTN_QKV, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2736
+ {LLM_TENSOR_VISEXP_ATTN_OUT, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2737
+ {LLM_TENSOR_VISEXP_FFN_GATE, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2738
+ {LLM_TENSOR_VISEXP_FFN_DOWN, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2739
+ {LLM_TENSOR_VISEXP_FFN_UP, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2740
+ {LLM_TENSOR_INDEXER_K_NORM, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL}},
2741
+ {LLM_TENSOR_INDEXER_PROJ, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2742
+ {LLM_TENSOR_INDEXER_ATTN_K, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2743
+ {LLM_TENSOR_INDEXER_ATTN_Q_B, {LLM_TENSOR_LAYER_REPEATING, GGML_OP_MUL_MAT}},
2744
+ // NextN/MTP tensors are currently ignored (reserved for future MTP support)
2745
+ // These tensors only exist in the last layer(s) and are treated as output tensors
2746
+ {LLM_TENSOR_NEXTN_EH_PROJ, {LLM_TENSOR_LAYER_OUTPUT, GGML_OP_MUL_MAT}},
2747
+ {LLM_TENSOR_NEXTN_EMBED_TOKENS, {LLM_TENSOR_LAYER_OUTPUT, GGML_OP_GET_ROWS}},
2748
+ {LLM_TENSOR_NEXTN_ENORM, {LLM_TENSOR_LAYER_OUTPUT, GGML_OP_GET_ROWS}},
2749
+ {LLM_TENSOR_NEXTN_HNORM, {LLM_TENSOR_LAYER_OUTPUT, GGML_OP_MUL}},
2750
+ {LLM_TENSOR_NEXTN_SHARED_HEAD_HEAD, {LLM_TENSOR_LAYER_OUTPUT, GGML_OP_MUL_MAT}},
2751
+ {LLM_TENSOR_NEXTN_SHARED_HEAD_NORM, {LLM_TENSOR_LAYER_OUTPUT, GGML_OP_MUL}},
2752
+ };
2753
+
2754
+ LLM_KV::LLM_KV(llm_arch arch, const char * suffix) : arch(arch), suffix(suffix) {}
2755
+
2756
+ std::string LLM_KV::operator()(llm_kv kv) const {
2757
+ std::string name = ::format(LLM_KV_NAMES.at(kv), LLM_ARCH_NAMES.at(arch));
2758
+
2759
+ if (suffix != nullptr) {
2760
+ name += ".";
2761
+ name += suffix;
2762
+ }
2763
+
2764
+ return name;
2765
+ }
2766
+
2767
+ LLM_TN_IMPL::LLM_TN_IMPL(llm_arch arch, llm_tensor tensor, const char * suffix, int bid, int xid)
2768
+ : arch(arch), tensor(tensor), suffix(suffix), bid(bid), xid(xid),
2769
+ model_tensors(llm_get_tensor_names(arch)) {}
2770
+
2771
+ std::string LLM_TN_IMPL::str() const {
2772
+ if (LLM_TENSOR_NAMES.find(tensor) == LLM_TENSOR_NAMES.end()) {
2773
+ GGML_ABORT("unknown tensor name for tensor id %d", static_cast<int>(tensor));
2774
+ }
2775
+
2776
+ if (model_tensors.find(tensor) == model_tensors.end()) {
2777
+ return LLM_TENSOR_NAMES.at(tensor);
2778
+ }
2779
+
2780
+ std::string name = ::format(LLM_TENSOR_NAMES.at(tensor), bid, xid);
2781
+ if (suffix != nullptr) {
2782
+ name += ".";
2783
+ name += suffix;
2784
+ }
2785
+
2786
+ return name;
2787
+ }
2788
+
2789
+ const char * llm_arch_name(llm_arch arch) {
2790
+ auto it = LLM_ARCH_NAMES.find(arch);
2791
+ if (it == LLM_ARCH_NAMES.end()) {
2792
+ return "unknown";
2793
+ }
2794
+ return it->second;
2795
+ }
2796
+
2797
+ llm_arch llm_arch_from_string(const std::string & name) {
2798
+ for (const auto & kv : LLM_ARCH_NAMES) { // NOLINT
2799
+ if (kv.second == name) {
2800
+ return kv.first;
2801
+ }
2802
+ }
2803
+
2804
+ return LLM_ARCH_UNKNOWN;
2805
+ }
2806
+
2807
+ const llm_tensor_info & llm_tensor_info_for(llm_tensor tensor) {
2808
+ return LLM_TENSOR_INFOS.at(tensor);
2809
+ }
2810
+
2811
+ bool llm_arch_is_recurrent(const llm_arch & arch) {
2812
+ switch (arch) {
2813
+ case LLM_ARCH_MAMBA:
2814
+ case LLM_ARCH_MAMBA2:
2815
+ case LLM_ARCH_RWKV6:
2816
+ case LLM_ARCH_RWKV6QWEN2:
2817
+ case LLM_ARCH_RWKV7:
2818
+ case LLM_ARCH_ARWKV7:
2819
+ return true;
2820
+ default:
2821
+ return false;
2822
+ }
2823
+ }
2824
+
2825
+ bool llm_arch_is_hybrid(const llm_arch & arch) {
2826
+ switch (arch) {
2827
+ case LLM_ARCH_JAMBA:
2828
+ case LLM_ARCH_FALCON_H1:
2829
+ case LLM_ARCH_PLAMO2:
2830
+ case LLM_ARCH_GRANITE_HYBRID:
2831
+ case LLM_ARCH_LFM2:
2832
+ case LLM_ARCH_LFM2MOE:
2833
+ case LLM_ARCH_NEMOTRON_H:
2834
+ case LLM_ARCH_NEMOTRON_H_MOE:
2835
+ case LLM_ARCH_QWEN3NEXT:
2836
+ case LLM_ARCH_KIMI_LINEAR:
2837
+ case LLM_ARCH_QWEN35:
2838
+ case LLM_ARCH_QWEN35MOE:
2839
+ return true;
2840
+ default:
2841
+ return false;
2842
+ }
2843
+ }
2844
+
2845
+ bool llm_arch_is_diffusion(const llm_arch & arch) {
2846
+ switch (arch) {
2847
+ case LLM_ARCH_DREAM:
2848
+ case LLM_ARCH_LLADA:
2849
+ case LLM_ARCH_LLADA_MOE:
2850
+ case LLM_ARCH_RND1:
2851
+ return true;
2852
+ default:
2853
+ return false;
2854
+ }
2855
+ }