llama-cpp-pro 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (310) hide show
  1. package/CHANGELOG.md +295 -0
  2. package/LICENSE +21 -0
  3. package/LlamaCpp.podspec +33 -0
  4. package/LlamaCppCapacitor.podspec +33 -0
  5. package/Package.swift +29 -0
  6. package/README.md +93 -0
  7. package/android/build.gradle +88 -0
  8. package/android/src/main/AndroidManifest.xml +4 -0
  9. package/android/src/main/CMakeLists-arm64.txt +138 -0
  10. package/android/src/main/CMakeLists-x86_64.txt +141 -0
  11. package/android/src/main/CMakeLists.txt +138 -0
  12. package/android/src/main/java/ai/annadata/plugin/capacitor/LlamaCpp.java +1340 -0
  13. package/android/src/main/java/ai/annadata/plugin/capacitor/LlamaCppPlugin.java +814 -0
  14. package/android/src/main/java/ai/annadata/plugin/capacitor/ModelAdmissionController.java +214 -0
  15. package/android/src/main/jni-chat-session.cpp +261 -0
  16. package/android/src/main/jni-lora.cpp +197 -0
  17. package/android/src/main/jni-multimodal.cpp +167 -0
  18. package/android/src/main/jni-tts.cpp +290 -0
  19. package/android/src/main/jni-utils.h +148 -0
  20. package/android/src/main/jni.cpp +1808 -0
  21. package/android/src/main/jniLibs/arm64-v8a/libllama-cpp-arm64.so +0 -0
  22. package/android/src/main/res/.gitkeep +0 -0
  23. package/build-native.sh +280 -0
  24. package/cmake/desktop-metal-embed.cmake +30 -0
  25. package/cmake/desktop-sources.cmake +100 -0
  26. package/cmake/ggml-backends.cmake +44 -0
  27. package/cpp/LICENSE +21 -0
  28. package/cpp/README.md +15 -0
  29. package/cpp/anyascii.c +22223 -0
  30. package/cpp/anyascii.h +42 -0
  31. package/cpp/cap-completion.cpp +942 -0
  32. package/cpp/cap-completion.h +127 -0
  33. package/cpp/cap-embedding.cpp +193 -0
  34. package/cpp/cap-embedding.h +35 -0
  35. package/cpp/cap-ios-bridge.cpp +1810 -0
  36. package/cpp/cap-ios-bridge.h +61 -0
  37. package/cpp/cap-llama.cpp +412 -0
  38. package/cpp/cap-llama.h +161 -0
  39. package/cpp/cap-mtmd.hpp +602 -0
  40. package/cpp/cap-native-server.cpp +1095 -0
  41. package/cpp/cap-native-server.h +40 -0
  42. package/cpp/cap-tts.cpp +591 -0
  43. package/cpp/cap-tts.h +59 -0
  44. package/cpp/cap-wasm-fs.cpp +156 -0
  45. package/cpp/cap-wasm-jspi.cpp +19 -0
  46. package/cpp/cap-wasm-jspi.h +30 -0
  47. package/cpp/cap-wasm-vfs.cpp +22 -0
  48. package/cpp/chat-parser.cpp +393 -0
  49. package/cpp/chat-parser.h +120 -0
  50. package/cpp/chat.cpp +2315 -0
  51. package/cpp/chat.h +221 -0
  52. package/cpp/common.cpp +1664 -0
  53. package/cpp/common.h +744 -0
  54. package/cpp/ggml-alloc.c +1028 -0
  55. package/cpp/ggml-alloc.h +76 -0
  56. package/cpp/ggml-backend-impl.h +255 -0
  57. package/cpp/ggml-backend-reg.cpp +600 -0
  58. package/cpp/ggml-backend.cpp +2121 -0
  59. package/cpp/ggml-backend.h +354 -0
  60. package/cpp/ggml-common.h +1878 -0
  61. package/cpp/ggml-cpp.h +39 -0
  62. package/cpp/ggml-cpu/amx/amx.cpp +221 -0
  63. package/cpp/ggml-cpu/amx/amx.h +8 -0
  64. package/cpp/ggml-cpu/amx/common.h +91 -0
  65. package/cpp/ggml-cpu/amx/mmq.cpp +2512 -0
  66. package/cpp/ggml-cpu/amx/mmq.h +10 -0
  67. package/cpp/ggml-cpu/arch/arm/cpu-feats.cpp +94 -0
  68. package/cpp/ggml-cpu/arch/arm/quants.c +3650 -0
  69. package/cpp/ggml-cpu/arch/arm/repack.cpp +1891 -0
  70. package/cpp/ggml-cpu/arch/x86/cpu-feats.cpp +327 -0
  71. package/cpp/ggml-cpu/arch/x86/quants.c +3820 -0
  72. package/cpp/ggml-cpu/arch/x86/repack.cpp +6307 -0
  73. package/cpp/ggml-cpu/arch-fallback.h +215 -0
  74. package/cpp/ggml-cpu/binary-ops.cpp +158 -0
  75. package/cpp/ggml-cpu/binary-ops.h +16 -0
  76. package/cpp/ggml-cpu/common.h +73 -0
  77. package/cpp/ggml-cpu/ggml-cpu-impl.h +559 -0
  78. package/cpp/ggml-cpu/ggml-cpu.c +3578 -0
  79. package/cpp/ggml-cpu/ggml-cpu.cpp +672 -0
  80. package/cpp/ggml-cpu/ops.cpp +10587 -0
  81. package/cpp/ggml-cpu/ops.h +114 -0
  82. package/cpp/ggml-cpu/quants.c +1193 -0
  83. package/cpp/ggml-cpu/quants.h +97 -0
  84. package/cpp/ggml-cpu/repack.cpp +1982 -0
  85. package/cpp/ggml-cpu/repack.h +120 -0
  86. package/cpp/ggml-cpu/simd-mappings.h +1184 -0
  87. package/cpp/ggml-cpu/traits.cpp +36 -0
  88. package/cpp/ggml-cpu/traits.h +38 -0
  89. package/cpp/ggml-cpu/unary-ops.cpp +186 -0
  90. package/cpp/ggml-cpu/unary-ops.h +28 -0
  91. package/cpp/ggml-cpu/vec.cpp +348 -0
  92. package/cpp/ggml-cpu/vec.h +1121 -0
  93. package/cpp/ggml-cpu.h +145 -0
  94. package/cpp/ggml-impl.h +622 -0
  95. package/cpp/ggml-metal-impl.h +688 -0
  96. package/cpp/ggml-metal.h +66 -0
  97. package/cpp/ggml-metal.m +6833 -0
  98. package/cpp/ggml-metal.metal +10754 -0
  99. package/cpp/ggml-opt.cpp +1093 -0
  100. package/cpp/ggml-opt.h +256 -0
  101. package/cpp/ggml-quants.c +5324 -0
  102. package/cpp/ggml-quants.h +106 -0
  103. package/cpp/ggml-threading.cpp +12 -0
  104. package/cpp/ggml-threading.h +14 -0
  105. package/cpp/ggml.c +7108 -0
  106. package/cpp/ggml.h +2492 -0
  107. package/cpp/gguf.cpp +1358 -0
  108. package/cpp/gguf.h +202 -0
  109. package/cpp/json-partial.cpp +256 -0
  110. package/cpp/json-partial.h +38 -0
  111. package/cpp/json-schema-to-grammar.cpp +985 -0
  112. package/cpp/json-schema-to-grammar.h +21 -0
  113. package/cpp/llama-adapter.cpp +388 -0
  114. package/cpp/llama-adapter.h +76 -0
  115. package/cpp/llama-arch.cpp +2355 -0
  116. package/cpp/llama-arch.h +499 -0
  117. package/cpp/llama-batch.cpp +875 -0
  118. package/cpp/llama-batch.h +160 -0
  119. package/cpp/llama-chat.cpp +783 -0
  120. package/cpp/llama-chat.h +65 -0
  121. package/cpp/llama-context.cpp +2788 -0
  122. package/cpp/llama-context.h +306 -0
  123. package/cpp/llama-cparams.cpp +5 -0
  124. package/cpp/llama-cparams.h +41 -0
  125. package/cpp/llama-cpp.h +30 -0
  126. package/cpp/llama-grammar.cpp +1229 -0
  127. package/cpp/llama-grammar.h +173 -0
  128. package/cpp/llama-graph.cpp +1891 -0
  129. package/cpp/llama-graph.h +810 -0
  130. package/cpp/llama-hparams.cpp +180 -0
  131. package/cpp/llama-hparams.h +233 -0
  132. package/cpp/llama-impl.cpp +167 -0
  133. package/cpp/llama-impl.h +61 -0
  134. package/cpp/llama-io.cpp +15 -0
  135. package/cpp/llama-io.h +35 -0
  136. package/cpp/llama-kv-cache-iswa.cpp +318 -0
  137. package/cpp/llama-kv-cache-iswa.h +135 -0
  138. package/cpp/llama-kv-cache.cpp +2059 -0
  139. package/cpp/llama-kv-cache.h +374 -0
  140. package/cpp/llama-kv-cells.h +491 -0
  141. package/cpp/llama-memory-hybrid.cpp +258 -0
  142. package/cpp/llama-memory-hybrid.h +137 -0
  143. package/cpp/llama-memory-recurrent.cpp +1146 -0
  144. package/cpp/llama-memory-recurrent.h +179 -0
  145. package/cpp/llama-memory.cpp +59 -0
  146. package/cpp/llama-memory.h +119 -0
  147. package/cpp/llama-mmap.cpp +609 -0
  148. package/cpp/llama-mmap.h +68 -0
  149. package/cpp/llama-model-loader.cpp +1166 -0
  150. package/cpp/llama-model-loader.h +170 -0
  151. package/cpp/llama-model-saver.cpp +282 -0
  152. package/cpp/llama-model-saver.h +37 -0
  153. package/cpp/llama-model.cpp +19061 -0
  154. package/cpp/llama-model.h +491 -0
  155. package/cpp/llama-sampling.cpp +2575 -0
  156. package/cpp/llama-sampling.h +32 -0
  157. package/cpp/llama-vocab.cpp +3792 -0
  158. package/cpp/llama-vocab.h +176 -0
  159. package/cpp/llama.cpp +358 -0
  160. package/cpp/llama.h +1373 -0
  161. package/cpp/log.cpp +428 -0
  162. package/cpp/log.h +103 -0
  163. package/cpp/minja/chat-template.hpp +550 -0
  164. package/cpp/minja/minja.hpp +3009 -0
  165. package/cpp/nlohmann/json.hpp +25526 -0
  166. package/cpp/nlohmann/json_fwd.hpp +187 -0
  167. package/cpp/regex-partial.cpp +204 -0
  168. package/cpp/regex-partial.h +56 -0
  169. package/cpp/sampling.cpp +579 -0
  170. package/cpp/sampling.h +107 -0
  171. package/cpp/tools/mtmd/clip-impl.h +473 -0
  172. package/cpp/tools/mtmd/clip.cpp +4322 -0
  173. package/cpp/tools/mtmd/clip.h +106 -0
  174. package/cpp/tools/mtmd/miniaudio/miniaudio.h +93468 -0
  175. package/cpp/tools/mtmd/mtmd-audio.cpp +769 -0
  176. package/cpp/tools/mtmd/mtmd-audio.h +47 -0
  177. package/cpp/tools/mtmd/mtmd-helper.cpp +460 -0
  178. package/cpp/tools/mtmd/mtmd-helper.h +95 -0
  179. package/cpp/tools/mtmd/mtmd.cpp +1066 -0
  180. package/cpp/tools/mtmd/mtmd.h +302 -0
  181. package/cpp/tools/mtmd/stb/stb_image.h +7988 -0
  182. package/cpp/unicode-data.cpp +7034 -0
  183. package/cpp/unicode-data.h +20 -0
  184. package/cpp/unicode.cpp +1061 -0
  185. package/cpp/unicode.h +68 -0
  186. package/cpp/vendor/cpp-httplib/httplib.cpp +16509 -0
  187. package/cpp/vendor/cpp-httplib/httplib.h +3883 -0
  188. package/desktop/electron-builder.config.cjs +157 -0
  189. package/desktop/entitlements.mac.plist +12 -0
  190. package/desktop/package.json +11 -0
  191. package/desktop/resolve-package-root.cjs +88 -0
  192. package/desktop/src/main/backend-selector.cjs +148 -0
  193. package/desktop/src/main/gpu-probe.cjs +142 -0
  194. package/desktop/src/main/index.cjs +58 -0
  195. package/desktop/src/main/ipc-handlers.cjs +212 -0
  196. package/desktop/src/main/model-store.cjs +50 -0
  197. package/desktop/src/main/preload.cjs +39 -0
  198. package/desktop/src/main/sidecar-client.cjs +76 -0
  199. package/desktop/src/main/sidecar-manager.cjs +364 -0
  200. package/dist/docs.json +14357 -0
  201. package/dist/esm/definitions.d.ts +731 -0
  202. package/dist/esm/definitions.js +2 -0
  203. package/dist/esm/definitions.js.map +1 -0
  204. package/dist/esm/desktop.d.ts +37 -0
  205. package/dist/esm/desktop.js +133 -0
  206. package/dist/esm/desktop.js.map +1 -0
  207. package/dist/esm/index.d.ts +200 -0
  208. package/dist/esm/index.js +612 -0
  209. package/dist/esm/index.js.map +1 -0
  210. package/dist/esm/isomorphic/desktop.runtime.d.ts +37 -0
  211. package/dist/esm/isomorphic/desktop.runtime.js +36 -0
  212. package/dist/esm/isomorphic/desktop.runtime.js.map +1 -0
  213. package/dist/esm/isomorphic/errors.d.ts +6 -0
  214. package/dist/esm/isomorphic/errors.js +9 -0
  215. package/dist/esm/isomorphic/errors.js.map +1 -0
  216. package/dist/esm/isomorphic/model.admission.d.ts +17 -0
  217. package/dist/esm/isomorphic/model.admission.js +27 -0
  218. package/dist/esm/isomorphic/model.admission.js.map +1 -0
  219. package/dist/esm/isomorphic/model.scheduler.d.ts +31 -0
  220. package/dist/esm/isomorphic/model.scheduler.js +95 -0
  221. package/dist/esm/isomorphic/model.scheduler.js.map +1 -0
  222. package/dist/esm/isomorphic/provider.desktop.d.ts +40 -0
  223. package/dist/esm/isomorphic/provider.desktop.js +411 -0
  224. package/dist/esm/isomorphic/provider.desktop.js.map +1 -0
  225. package/dist/esm/isomorphic/provider.factory.d.ts +2 -0
  226. package/dist/esm/isomorphic/provider.factory.js +16 -0
  227. package/dist/esm/isomorphic/provider.factory.js.map +1 -0
  228. package/dist/esm/isomorphic/provider.interface.d.ts +76 -0
  229. package/dist/esm/isomorphic/provider.interface.js +2 -0
  230. package/dist/esm/isomorphic/provider.interface.js.map +1 -0
  231. package/dist/esm/isomorphic/provider.native.d.ts +18 -0
  232. package/dist/esm/isomorphic/provider.native.js +173 -0
  233. package/dist/esm/isomorphic/provider.native.js.map +1 -0
  234. package/dist/esm/isomorphic/provider.web.d.ts +88 -0
  235. package/dist/esm/isomorphic/provider.web.js +573 -0
  236. package/dist/esm/isomorphic/provider.web.js.map +1 -0
  237. package/dist/esm/isomorphic/sidecar-sse.d.ts +14 -0
  238. package/dist/esm/isomorphic/sidecar-sse.js +76 -0
  239. package/dist/esm/isomorphic/sidecar-sse.js.map +1 -0
  240. package/dist/esm/isomorphic/wasmMemoryCalibration.d.ts +26 -0
  241. package/dist/esm/isomorphic/wasmMemoryCalibration.js +60 -0
  242. package/dist/esm/isomorphic/wasmMemoryCalibration.js.map +1 -0
  243. package/dist/esm/isomorphic/wasmMemoryPolicy.d.ts +55 -0
  244. package/dist/esm/isomorphic/wasmMemoryPolicy.js +93 -0
  245. package/dist/esm/isomorphic/wasmMemoryPolicy.js.map +1 -0
  246. package/dist/esm/storage/manifest.d.ts +13 -0
  247. package/dist/esm/storage/manifest.js +87 -0
  248. package/dist/esm/storage/manifest.js.map +1 -0
  249. package/dist/esm/storage/opfs.store.d.ts +31 -0
  250. package/dist/esm/storage/opfs.store.js +241 -0
  251. package/dist/esm/storage/opfs.store.js.map +1 -0
  252. package/dist/esm/web.d.ts +206 -0
  253. package/dist/esm/web.js +521 -0
  254. package/dist/esm/web.js.map +1 -0
  255. package/dist/esm/workers/async-file.d.ts +13 -0
  256. package/dist/esm/workers/async-file.js +12 -0
  257. package/dist/esm/workers/async-file.js.map +1 -0
  258. package/dist/esm/workers/heapfs.d.ts +55 -0
  259. package/dist/esm/workers/heapfs.js +115 -0
  260. package/dist/esm/workers/heapfs.js.map +1 -0
  261. package/dist/esm/workers/wasm.engine.d.ts +86 -0
  262. package/dist/esm/workers/wasm.engine.js +504 -0
  263. package/dist/esm/workers/wasm.engine.js.map +1 -0
  264. package/dist/esm/workers/worker.protocol.d.ts +160 -0
  265. package/dist/esm/workers/worker.protocol.js +2 -0
  266. package/dist/esm/workers/worker.protocol.js.map +1 -0
  267. package/dist/plugin.cjs +3179 -0
  268. package/dist/plugin.cjs.map +1 -0
  269. package/dist/plugin.js +3181 -0
  270. package/dist/plugin.js.map +1 -0
  271. package/dist/wasm/llama_engine.d.ts +74 -0
  272. package/dist/wasm/llama_engine.js +1829 -0
  273. package/dist/wasm/llama_engine.wasm +0 -0
  274. package/dist/wasm/llama_engine_emscripten.mjs +2 -0
  275. package/dist/wasm/package.json +16 -0
  276. package/dist/workers/llm.worker.js +1226 -0
  277. package/dist/workers/llm.worker.js.map +7 -0
  278. package/extraResources/llama-wasm/llama_engine.d.ts +74 -0
  279. package/extraResources/llama-wasm/llama_engine.js +1829 -0
  280. package/extraResources/llama-wasm/llama_engine.wasm +0 -0
  281. package/extraResources/llama-wasm/llama_engine_emscripten.mjs +2 -0
  282. package/extraResources/llama-wasm/package.json +16 -0
  283. package/extraResources/sidecar/README.md +11 -0
  284. package/extraResources/sidecar/darwin-arm64 +0 -0
  285. package/extraResources/sidecar/darwin-x64 +0 -0
  286. package/ios/CMakeLists-arm64.txt +161 -0
  287. package/ios/CMakeLists-x86_64.txt +188 -0
  288. package/ios/CMakeLists.txt +161 -0
  289. package/ios/Frameworks/llama-cpp.framework/Info.plist +28 -0
  290. package/ios/Frameworks/llama-cpp.framework/llama-cpp +0 -0
  291. package/ios/Sources/LlamaCppCapacitor/LlamaCpp.swift +1365 -0
  292. package/ios/Sources/LlamaCppCapacitor/LlamaCppPlugin.swift +694 -0
  293. package/ios/Sources/LlamaCppCapacitor/LlamaNativeBridge.swift +349 -0
  294. package/ios/Sources/LlamaCppCapacitor/ModelAdmissionController.swift +177 -0
  295. package/ios/embed-metal-shaders.sh +24 -0
  296. package/ios/metal-embed.cmake +29 -0
  297. package/package.json +281 -0
  298. package/scripts/build-js-preserve-wasm.cjs +53 -0
  299. package/scripts/build-sidecar-linux.sh +6 -0
  300. package/scripts/build-sidecar-win.bat +19 -0
  301. package/scripts/build-sidecar.sh +184 -0
  302. package/scripts/embed-llama-ios-app-framework.sh +63 -0
  303. package/scripts/ensure-desktop-sidecar-bundle.cjs +103 -0
  304. package/scripts/ensure-llama-ios-xcframework.sh +108 -0
  305. package/scripts/fix-esm-extensions.cjs +45 -0
  306. package/scripts/prepare-js-dist.cjs +28 -0
  307. package/scripts/stage-desktop-resources.cjs +116 -0
  308. package/sidecar/CMakeLists.txt +192 -0
  309. package/sidecar/cap-sidecar-main.cpp +68 -0
  310. package/types/llama-cpp-pro.d.ts +441 -0
@@ -0,0 +1,2355 @@
1
+ #include "llama-arch.h"
2
+
3
+ #include "llama-impl.h"
4
+
5
+ #include <map>
6
+
7
+ static const std::map<llm_arch, const char *> LLM_ARCH_NAMES = {
8
+ { LLM_ARCH_LLAMA, "llama" },
9
+ { LLM_ARCH_LLAMA4, "llama4" },
10
+ { LLM_ARCH_DECI, "deci" },
11
+ { LLM_ARCH_FALCON, "falcon" },
12
+ { LLM_ARCH_GROK, "grok" },
13
+ { LLM_ARCH_GPT2, "gpt2" },
14
+ { LLM_ARCH_GPTJ, "gptj" },
15
+ { LLM_ARCH_GPTNEOX, "gptneox" },
16
+ { LLM_ARCH_MPT, "mpt" },
17
+ { LLM_ARCH_BAICHUAN, "baichuan" },
18
+ { LLM_ARCH_STARCODER, "starcoder" },
19
+ { LLM_ARCH_REFACT, "refact" },
20
+ { LLM_ARCH_BERT, "bert" },
21
+ { LLM_ARCH_NOMIC_BERT, "nomic-bert" },
22
+ { LLM_ARCH_NOMIC_BERT_MOE, "nomic-bert-moe" },
23
+ { LLM_ARCH_NEO_BERT, "neo-bert" },
24
+ { LLM_ARCH_JINA_BERT_V2, "jina-bert-v2" },
25
+ { LLM_ARCH_BLOOM, "bloom" },
26
+ { LLM_ARCH_STABLELM, "stablelm" },
27
+ { LLM_ARCH_QWEN, "qwen" },
28
+ { LLM_ARCH_QWEN2, "qwen2" },
29
+ { LLM_ARCH_QWEN2MOE, "qwen2moe" },
30
+ { LLM_ARCH_QWEN2VL, "qwen2vl" },
31
+ { LLM_ARCH_QWEN3, "qwen3" },
32
+ { LLM_ARCH_QWEN3MOE, "qwen3moe" },
33
+ { LLM_ARCH_PHI2, "phi2" },
34
+ { LLM_ARCH_PHI3, "phi3" },
35
+ { LLM_ARCH_PHIMOE, "phimoe" },
36
+ { LLM_ARCH_PLAMO, "plamo" },
37
+ { LLM_ARCH_PLAMO2, "plamo2" },
38
+ { LLM_ARCH_CODESHELL, "codeshell" },
39
+ { LLM_ARCH_ORION, "orion" },
40
+ { LLM_ARCH_INTERNLM2, "internlm2" },
41
+ { LLM_ARCH_MINICPM, "minicpm" },
42
+ { LLM_ARCH_MINICPM3, "minicpm3" },
43
+ { LLM_ARCH_GEMMA, "gemma" },
44
+ { LLM_ARCH_GEMMA2, "gemma2" },
45
+ { LLM_ARCH_GEMMA3, "gemma3" },
46
+ { LLM_ARCH_GEMMA3N, "gemma3n" },
47
+ { LLM_ARCH_STARCODER2, "starcoder2" },
48
+ { LLM_ARCH_MAMBA, "mamba" },
49
+ { LLM_ARCH_MAMBA2, "mamba2" },
50
+ { LLM_ARCH_JAMBA, "jamba" },
51
+ { LLM_ARCH_FALCON_H1, "falcon-h1" },
52
+ { LLM_ARCH_XVERSE, "xverse" },
53
+ { LLM_ARCH_COMMAND_R, "command-r" },
54
+ { LLM_ARCH_COHERE2, "cohere2" },
55
+ { LLM_ARCH_DBRX, "dbrx" },
56
+ { LLM_ARCH_OLMO, "olmo" },
57
+ { LLM_ARCH_OLMO2, "olmo2" },
58
+ { LLM_ARCH_OLMOE, "olmoe" },
59
+ { LLM_ARCH_OPENELM, "openelm" },
60
+ { LLM_ARCH_ARCTIC, "arctic" },
61
+ { LLM_ARCH_DEEPSEEK, "deepseek" },
62
+ { LLM_ARCH_DEEPSEEK2, "deepseek2" },
63
+ { LLM_ARCH_CHATGLM, "chatglm" },
64
+ { LLM_ARCH_GLM4, "glm4" },
65
+ { LLM_ARCH_GLM4_MOE, "glm4moe" },
66
+ { LLM_ARCH_BITNET, "bitnet" },
67
+ { LLM_ARCH_T5, "t5" },
68
+ { LLM_ARCH_T5ENCODER, "t5encoder" },
69
+ { LLM_ARCH_JAIS, "jais" },
70
+ { LLM_ARCH_NEMOTRON, "nemotron" },
71
+ { LLM_ARCH_EXAONE, "exaone" },
72
+ { LLM_ARCH_EXAONE4, "exaone4" },
73
+ { LLM_ARCH_RWKV6, "rwkv6" },
74
+ { LLM_ARCH_RWKV6QWEN2, "rwkv6qwen2" },
75
+ { LLM_ARCH_RWKV7, "rwkv7" },
76
+ { LLM_ARCH_ARWKV7, "arwkv7" },
77
+ { LLM_ARCH_GRANITE, "granite" },
78
+ { LLM_ARCH_GRANITE_MOE, "granitemoe" },
79
+ { LLM_ARCH_GRANITE_HYBRID, "granitehybrid" },
80
+ { LLM_ARCH_CHAMELEON, "chameleon" },
81
+ { LLM_ARCH_WAVTOKENIZER_DEC, "wavtokenizer-dec" },
82
+ { LLM_ARCH_PLM, "plm" },
83
+ { LLM_ARCH_BAILINGMOE, "bailingmoe" },
84
+ { LLM_ARCH_DOTS1, "dots1" },
85
+ { LLM_ARCH_ARCEE, "arcee" },
86
+ { LLM_ARCH_ERNIE4_5, "ernie4_5" },
87
+ { LLM_ARCH_ERNIE4_5_MOE, "ernie4_5-moe" },
88
+ { LLM_ARCH_HUNYUAN_MOE, "hunyuan-moe" },
89
+ { LLM_ARCH_HUNYUAN_DENSE, "hunyuan-dense" },
90
+ { LLM_ARCH_SMOLLM3, "smollm3" },
91
+ { LLM_ARCH_OPENAI_MOE, "gpt-oss" },
92
+ { LLM_ARCH_LFM2, "lfm2" },
93
+ { LLM_ARCH_DREAM, "dream" },
94
+ { LLM_ARCH_SMALLTHINKER, "smallthinker" },
95
+ { LLM_ARCH_LLADA, "llada" },
96
+ { LLM_ARCH_SEED_OSS, "seed_oss" },
97
+ { LLM_ARCH_UNKNOWN, "(unknown)" },
98
+ };
99
+
100
+ static const std::map<llm_kv, const char *> LLM_KV_NAMES = {
101
+ { LLM_KV_GENERAL_TYPE, "general.type" },
102
+ { LLM_KV_GENERAL_ARCHITECTURE, "general.architecture" },
103
+ { LLM_KV_GENERAL_QUANTIZATION_VERSION, "general.quantization_version" },
104
+ { LLM_KV_GENERAL_ALIGNMENT, "general.alignment" },
105
+ { LLM_KV_GENERAL_FILE_TYPE, "general.file_type" },
106
+ { LLM_KV_GENERAL_NAME, "general.name" },
107
+ { LLM_KV_GENERAL_AUTHOR, "general.author" },
108
+ { LLM_KV_GENERAL_VERSION, "general.version" },
109
+ { LLM_KV_GENERAL_URL, "general.url" },
110
+ { LLM_KV_GENERAL_DESCRIPTION, "general.description" },
111
+ { LLM_KV_GENERAL_LICENSE, "general.license" },
112
+ { LLM_KV_GENERAL_SOURCE_URL, "general.source.url" },
113
+ { LLM_KV_GENERAL_SOURCE_HF_REPO, "general.source.huggingface.repository" },
114
+
115
+ { LLM_KV_VOCAB_SIZE, "%s.vocab_size" },
116
+ { LLM_KV_CONTEXT_LENGTH, "%s.context_length" },
117
+ { LLM_KV_EMBEDDING_LENGTH, "%s.embedding_length" },
118
+ { LLM_KV_FEATURES_LENGTH, "%s.features_length" },
119
+ { LLM_KV_BLOCK_COUNT, "%s.block_count" },
120
+ { LLM_KV_LEADING_DENSE_BLOCK_COUNT, "%s.leading_dense_block_count" },
121
+ { LLM_KV_FEED_FORWARD_LENGTH, "%s.feed_forward_length" },
122
+ { LLM_KV_EXPERT_FEED_FORWARD_LENGTH, "%s.expert_feed_forward_length" },
123
+ { LLM_KV_EXPERT_SHARED_FEED_FORWARD_LENGTH, "%s.expert_shared_feed_forward_length" },
124
+ { LLM_KV_USE_PARALLEL_RESIDUAL, "%s.use_parallel_residual" },
125
+ { LLM_KV_TENSOR_DATA_LAYOUT, "%s.tensor_data_layout" },
126
+ { LLM_KV_EXPERT_COUNT, "%s.expert_count" },
127
+ { LLM_KV_EXPERT_USED_COUNT, "%s.expert_used_count" },
128
+ { LLM_KV_EXPERT_SHARED_COUNT, "%s.expert_shared_count" },
129
+ { LLM_KV_EXPERT_WEIGHTS_SCALE, "%s.expert_weights_scale" },
130
+ { LLM_KV_EXPERT_WEIGHTS_NORM, "%s.expert_weights_norm" },
131
+ { LLM_KV_EXPERT_GATING_FUNC, "%s.expert_gating_func" },
132
+ { LLM_KV_MOE_EVERY_N_LAYERS, "%s.moe_every_n_layers" },
133
+ { LLM_KV_NEXTN_PREDICT_LAYERS, "%s.nextn_predict_layers" },
134
+ { LLM_KV_POOLING_TYPE, "%s.pooling_type" },
135
+ { LLM_KV_LOGIT_SCALE, "%s.logit_scale" },
136
+ { LLM_KV_DECODER_START_TOKEN_ID, "%s.decoder_start_token_id" },
137
+ { LLM_KV_ATTN_LOGIT_SOFTCAPPING, "%s.attn_logit_softcapping" },
138
+ { LLM_KV_FINAL_LOGIT_SOFTCAPPING, "%s.final_logit_softcapping" },
139
+ { LLM_KV_SWIN_NORM, "%s.swin_norm" },
140
+ { LLM_KV_RESCALE_EVERY_N_LAYERS, "%s.rescale_every_n_layers" },
141
+ { LLM_KV_TIME_MIX_EXTRA_DIM, "%s.time_mix_extra_dim" },
142
+ { LLM_KV_TIME_DECAY_EXTRA_DIM, "%s.time_decay_extra_dim" },
143
+ { LLM_KV_RESIDUAL_SCALE, "%s.residual_scale" },
144
+ { LLM_KV_EMBEDDING_SCALE, "%s.embedding_scale" },
145
+ { LLM_KV_TOKEN_SHIFT_COUNT, "%s.token_shift_count" },
146
+ { LLM_KV_INTERLEAVE_MOE_LAYER_STEP, "%s.interleave_moe_layer_step" },
147
+
148
+ { LLM_KV_ATTENTION_HEAD_COUNT, "%s.attention.head_count" },
149
+ { LLM_KV_ATTENTION_HEAD_COUNT_KV, "%s.attention.head_count_kv" },
150
+ { LLM_KV_ATTENTION_MAX_ALIBI_BIAS, "%s.attention.max_alibi_bias" },
151
+ { LLM_KV_ATTENTION_CLAMP_KQV, "%s.attention.clamp_kqv" },
152
+ { LLM_KV_ATTENTION_KEY_LENGTH, "%s.attention.key_length" },
153
+ { LLM_KV_ATTENTION_VALUE_LENGTH, "%s.attention.value_length" },
154
+ { LLM_KV_ATTENTION_LAYERNORM_EPS, "%s.attention.layer_norm_epsilon" },
155
+ { LLM_KV_ATTENTION_LAYERNORM_RMS_EPS, "%s.attention.layer_norm_rms_epsilon" },
156
+ { LLM_KV_ATTENTION_GROUPNORM_EPS, "%s.attention.group_norm_epsilon" },
157
+ { LLM_KV_ATTENTION_GROUPNORM_GROUPS, "%s.attention.group_norm_groups" },
158
+ { LLM_KV_ATTENTION_CAUSAL, "%s.attention.causal" },
159
+ { LLM_KV_ATTENTION_Q_LORA_RANK, "%s.attention.q_lora_rank" },
160
+ { LLM_KV_ATTENTION_KV_LORA_RANK, "%s.attention.kv_lora_rank" },
161
+ { LLM_KV_ATTENTION_DECAY_LORA_RANK, "%s.attention.decay_lora_rank" },
162
+ { LLM_KV_ATTENTION_ICLR_LORA_RANK, "%s.attention.iclr_lora_rank" },
163
+ { LLM_KV_ATTENTION_VALUE_RESIDUAL_MIX_LORA_RANK, "%s.attention.value_residual_mix_lora_rank" },
164
+ { LLM_KV_ATTENTION_GATE_LORA_RANK, "%s.attention.gate_lora_rank" },
165
+ { LLM_KV_ATTENTION_RELATIVE_BUCKETS_COUNT, "%s.attention.relative_buckets_count" },
166
+ { LLM_KV_ATTENTION_SLIDING_WINDOW, "%s.attention.sliding_window" },
167
+ { LLM_KV_ATTENTION_SCALE, "%s.attention.scale" },
168
+ { LLM_KV_ATTENTION_KEY_LENGTH_MLA, "%s.attention.key_length_mla" },
169
+ { LLM_KV_ATTENTION_VALUE_LENGTH_MLA, "%s.attention.value_length_mla" },
170
+
171
+ { LLM_KV_ROPE_DIMENSION_COUNT, "%s.rope.dimension_count" },
172
+ { LLM_KV_ROPE_DIMENSION_SECTIONS, "%s.rope.dimension_sections" },
173
+ { LLM_KV_ROPE_FREQ_BASE, "%s.rope.freq_base" },
174
+ { LLM_KV_ROPE_SCALE_LINEAR, "%s.rope.scale_linear" },
175
+ { LLM_KV_ROPE_SCALING_TYPE, "%s.rope.scaling.type" },
176
+ { LLM_KV_ROPE_SCALING_FACTOR, "%s.rope.scaling.factor" },
177
+ { LLM_KV_ROPE_SCALING_ATTN_FACTOR, "%s.rope.scaling.attn_factor" },
178
+ { LLM_KV_ROPE_SCALING_ORIG_CTX_LEN, "%s.rope.scaling.original_context_length" },
179
+ { LLM_KV_ROPE_SCALING_FINETUNED, "%s.rope.scaling.finetuned" },
180
+ { LLM_KV_ROPE_SCALING_YARN_LOG_MUL, "%s.rope.scaling.yarn_log_multiplier" },
181
+
182
+ { LLM_KV_SPLIT_NO, "split.no" },
183
+ { LLM_KV_SPLIT_COUNT, "split.count" },
184
+ { LLM_KV_SPLIT_TENSORS_COUNT, "split.tensors.count" },
185
+
186
+ { LLM_KV_SSM_CONV_KERNEL, "%s.ssm.conv_kernel" },
187
+ { LLM_KV_SSM_INNER_SIZE, "%s.ssm.inner_size" },
188
+ { LLM_KV_SSM_STATE_SIZE, "%s.ssm.state_size" },
189
+ { LLM_KV_SSM_TIME_STEP_RANK, "%s.ssm.time_step_rank" },
190
+ { LLM_KV_SSM_GROUP_COUNT, "%s.ssm.group_count" },
191
+ { LLM_KV_SSM_DT_B_C_RMS, "%s.ssm.dt_b_c_rms" },
192
+
193
+ { LLM_KV_WKV_HEAD_SIZE, "%s.wkv.head_size" },
194
+
195
+ { LLM_KV_POSNET_EMBEDDING_LENGTH, "%s.posnet.embedding_length" },
196
+ { LLM_KV_POSNET_BLOCK_COUNT, "%s.posnet.block_count" },
197
+
198
+ { LLM_KV_CONVNEXT_EMBEDDING_LENGTH, "%s.convnext.embedding_length" },
199
+ { LLM_KV_CONVNEXT_BLOCK_COUNT, "%s.convnext.block_count" },
200
+
201
+ { LLM_KV_CLASSIFIER_OUTPUT_LABELS, "%s.classifier.output_labels" },
202
+
203
+ { LLM_KV_SHORTCONV_L_CACHE, "%s.shortconv.l_cache" },
204
+
205
+ { LLM_KV_TOKENIZER_MODEL, "tokenizer.ggml.model" },
206
+ { LLM_KV_TOKENIZER_PRE, "tokenizer.ggml.pre" },
207
+ { LLM_KV_TOKENIZER_LIST, "tokenizer.ggml.tokens" },
208
+ { LLM_KV_TOKENIZER_TOKEN_TYPE, "tokenizer.ggml.token_type" },
209
+ { LLM_KV_TOKENIZER_TOKEN_TYPE_COUNT, "tokenizer.ggml.token_type_count" },
210
+ { LLM_KV_TOKENIZER_SCORES, "tokenizer.ggml.scores" },
211
+ { LLM_KV_TOKENIZER_MERGES, "tokenizer.ggml.merges" },
212
+ { LLM_KV_TOKENIZER_BOS_ID, "tokenizer.ggml.bos_token_id" },
213
+ { LLM_KV_TOKENIZER_EOS_ID, "tokenizer.ggml.eos_token_id" },
214
+ { LLM_KV_TOKENIZER_EOT_ID, "tokenizer.ggml.eot_token_id" },
215
+ { LLM_KV_TOKENIZER_EOM_ID, "tokenizer.ggml.eom_token_id" },
216
+ { LLM_KV_TOKENIZER_UNK_ID, "tokenizer.ggml.unknown_token_id" },
217
+ { LLM_KV_TOKENIZER_SEP_ID, "tokenizer.ggml.seperator_token_id" },
218
+ { LLM_KV_TOKENIZER_PAD_ID, "tokenizer.ggml.padding_token_id" },
219
+ { LLM_KV_TOKENIZER_CLS_ID, "tokenizer.ggml.cls_token_id" },
220
+ { LLM_KV_TOKENIZER_MASK_ID, "tokenizer.ggml.mask_token_id" },
221
+ { LLM_KV_TOKENIZER_ADD_BOS, "tokenizer.ggml.add_bos_token" },
222
+ { LLM_KV_TOKENIZER_ADD_EOS, "tokenizer.ggml.add_eos_token" },
223
+ { LLM_KV_TOKENIZER_ADD_SEP, "tokenizer.ggml.add_sep_token" },
224
+ { LLM_KV_TOKENIZER_ADD_PREFIX, "tokenizer.ggml.add_space_prefix" },
225
+ { LLM_KV_TOKENIZER_REMOVE_EXTRA_WS, "tokenizer.ggml.remove_extra_whitespaces" },
226
+ { LLM_KV_TOKENIZER_PRECOMPILED_CHARSMAP, "tokenizer.ggml.precompiled_charsmap" },
227
+ { LLM_KV_TOKENIZER_HF_JSON, "tokenizer.huggingface.json" },
228
+ { LLM_KV_TOKENIZER_RWKV, "tokenizer.rwkv.world" },
229
+ { LLM_KV_TOKENIZER_CHAT_TEMPLATE, "tokenizer.chat_template" },
230
+ { LLM_KV_TOKENIZER_FIM_PRE_ID, "tokenizer.ggml.fim_pre_token_id" },
231
+ { LLM_KV_TOKENIZER_FIM_SUF_ID, "tokenizer.ggml.fim_suf_token_id" },
232
+ { LLM_KV_TOKENIZER_FIM_MID_ID, "tokenizer.ggml.fim_mid_token_id" },
233
+ { LLM_KV_TOKENIZER_FIM_PAD_ID, "tokenizer.ggml.fim_pad_token_id" },
234
+ { LLM_KV_TOKENIZER_FIM_REP_ID, "tokenizer.ggml.fim_rep_token_id" },
235
+ { LLM_KV_TOKENIZER_FIM_SEP_ID, "tokenizer.ggml.fim_sep_token_id" },
236
+
237
+ { LLM_KV_ADAPTER_TYPE, "adapter.type" },
238
+ { LLM_KV_ADAPTER_LORA_ALPHA, "adapter.lora.alpha" },
239
+
240
+ // deprecated
241
+ { LLM_KV_TOKENIZER_PREFIX_ID, "tokenizer.ggml.prefix_token_id" },
242
+ { LLM_KV_TOKENIZER_SUFFIX_ID, "tokenizer.ggml.suffix_token_id" },
243
+ { LLM_KV_TOKENIZER_MIDDLE_ID, "tokenizer.ggml.middle_token_id" },
244
+ };
245
+
246
+ static const std::map<llm_arch, std::map<llm_tensor, const char *>> LLM_TENSOR_NAMES = {
247
+ {
248
+ LLM_ARCH_LLAMA,
249
+ {
250
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
251
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
252
+ { LLM_TENSOR_OUTPUT, "output" },
253
+ { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },
254
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
255
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
256
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
257
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
258
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
259
+ { LLM_TENSOR_ATTN_ROT_EMBD, "blk.%d.attn_rot_embd" },
260
+ { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },
261
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
262
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
263
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
264
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
265
+ { LLM_TENSOR_FFN_GATE_EXP, "blk.%d.ffn_gate.%d" },
266
+ { LLM_TENSOR_FFN_DOWN_EXP, "blk.%d.ffn_down.%d" },
267
+ { LLM_TENSOR_FFN_UP_EXP, "blk.%d.ffn_up.%d" },
268
+ { LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" },
269
+ { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },
270
+ { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },
271
+ },
272
+ },
273
+ {
274
+ LLM_ARCH_ARCEE,
275
+ {
276
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
277
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
278
+ { LLM_TENSOR_OUTPUT, "output" },
279
+ { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },
280
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
281
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
282
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
283
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
284
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
285
+ { LLM_TENSOR_ATTN_ROT_EMBD, "blk.%d.attn_rot_embd" },
286
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
287
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
288
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
289
+ },
290
+ },
291
+ {
292
+ LLM_ARCH_LLAMA4,
293
+ {
294
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
295
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
296
+ { LLM_TENSOR_OUTPUT, "output" },
297
+ { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },
298
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
299
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
300
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
301
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
302
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
303
+ { LLM_TENSOR_ATTN_ROT_EMBD, "blk.%d.attn_rot_embd" },
304
+ { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },
305
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
306
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
307
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
308
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
309
+ { LLM_TENSOR_FFN_GATE_EXP, "blk.%d.ffn_gate.%d" },
310
+ { LLM_TENSOR_FFN_DOWN_EXP, "blk.%d.ffn_down.%d" },
311
+ { LLM_TENSOR_FFN_UP_EXP, "blk.%d.ffn_up.%d" },
312
+ { LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" },
313
+ { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },
314
+ { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },
315
+ { LLM_TENSOR_FFN_GATE_SHEXP, "blk.%d.ffn_gate_shexp" },
316
+ { LLM_TENSOR_FFN_DOWN_SHEXP, "blk.%d.ffn_down_shexp" },
317
+ { LLM_TENSOR_FFN_UP_SHEXP, "blk.%d.ffn_up_shexp" },
318
+ },
319
+ },
320
+ {
321
+ LLM_ARCH_DECI,
322
+ {
323
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
324
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
325
+ { LLM_TENSOR_OUTPUT, "output" },
326
+ { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },
327
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
328
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
329
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
330
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
331
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
332
+ { LLM_TENSOR_ATTN_ROT_EMBD, "blk.%d.attn_rot_embd" },
333
+ { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },
334
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
335
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
336
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
337
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
338
+ { LLM_TENSOR_FFN_GATE_EXP, "blk.%d.ffn_gate.%d" },
339
+ { LLM_TENSOR_FFN_DOWN_EXP, "blk.%d.ffn_down.%d" },
340
+ { LLM_TENSOR_FFN_UP_EXP, "blk.%d.ffn_up.%d" },
341
+ { LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" },
342
+ { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },
343
+ { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },
344
+ },
345
+ },
346
+ {
347
+ LLM_ARCH_BAICHUAN,
348
+ {
349
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
350
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
351
+ { LLM_TENSOR_OUTPUT, "output" },
352
+ { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },
353
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
354
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
355
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
356
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
357
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
358
+ { LLM_TENSOR_ATTN_ROT_EMBD, "blk.%d.attn_rot_embd" },
359
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
360
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
361
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
362
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
363
+ },
364
+ },
365
+ {
366
+ LLM_ARCH_FALCON,
367
+ {
368
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
369
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
370
+ { LLM_TENSOR_OUTPUT, "output" },
371
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
372
+ { LLM_TENSOR_ATTN_NORM_2, "blk.%d.attn_norm_2" },
373
+ { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },
374
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
375
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
376
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
377
+ },
378
+ },
379
+ {
380
+ LLM_ARCH_GROK,
381
+ {
382
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
383
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
384
+ { LLM_TENSOR_OUTPUT, "output" },
385
+ { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },
386
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
387
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
388
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
389
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
390
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
391
+ { LLM_TENSOR_ATTN_ROT_EMBD, "blk.%d.attn_rot_embd" },
392
+ { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },
393
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
394
+ { LLM_TENSOR_FFN_GATE_EXP, "blk.%d.ffn_gate.%d" },
395
+ { LLM_TENSOR_FFN_DOWN_EXP, "blk.%d.ffn_down.%d" },
396
+ { LLM_TENSOR_FFN_UP_EXP, "blk.%d.ffn_up.%d" },
397
+ { LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" },
398
+ { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },
399
+ { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },
400
+ { LLM_TENSOR_LAYER_OUT_NORM, "blk.%d.layer_output_norm" },
401
+ { LLM_TENSOR_ATTN_OUT_NORM, "blk.%d.attn_output_norm" },
402
+ },
403
+ },
404
+ {
405
+ LLM_ARCH_GPT2,
406
+ {
407
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
408
+ { LLM_TENSOR_POS_EMBD, "position_embd" },
409
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
410
+ { LLM_TENSOR_OUTPUT, "output" },
411
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
412
+ { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },
413
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
414
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
415
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
416
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
417
+ },
418
+ },
419
+ {
420
+ LLM_ARCH_GPTJ,
421
+ {
422
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
423
+ },
424
+ },
425
+ {
426
+ LLM_ARCH_GPTNEOX,
427
+ {
428
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
429
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
430
+ { LLM_TENSOR_OUTPUT, "output" },
431
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
432
+ { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },
433
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
434
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
435
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
436
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
437
+ },
438
+ },
439
+ {
440
+ LLM_ARCH_MPT,
441
+ {
442
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
443
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
444
+ { LLM_TENSOR_OUTPUT, "output"},
445
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
446
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
447
+ { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },
448
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
449
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
450
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
451
+ { LLM_TENSOR_FFN_ACT, "blk.%d.ffn.act" },
452
+ { LLM_TENSOR_POS_EMBD, "position_embd" },
453
+ { LLM_TENSOR_ATTN_Q_NORM, "blk.%d.attn_q_norm"},
454
+ { LLM_TENSOR_ATTN_K_NORM, "blk.%d.attn_k_norm"},
455
+ },
456
+ },
457
+ {
458
+ LLM_ARCH_STARCODER,
459
+ {
460
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
461
+ { LLM_TENSOR_POS_EMBD, "position_embd" },
462
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
463
+ { LLM_TENSOR_OUTPUT, "output" },
464
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
465
+ { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },
466
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
467
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
468
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
469
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
470
+ },
471
+ },
472
+ {
473
+ LLM_ARCH_REFACT,
474
+ {
475
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
476
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
477
+ { LLM_TENSOR_OUTPUT, "output" },
478
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
479
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
480
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
481
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
482
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
483
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
484
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
485
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
486
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
487
+ },
488
+ },
489
+ {
490
+ LLM_ARCH_BERT,
491
+ {
492
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
493
+ { LLM_TENSOR_TOKEN_EMBD_NORM, "token_embd_norm" },
494
+ { LLM_TENSOR_TOKEN_TYPES, "token_types" },
495
+ { LLM_TENSOR_POS_EMBD, "position_embd" },
496
+ { LLM_TENSOR_ATTN_OUT_NORM, "blk.%d.attn_output_norm" },
497
+ { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },
498
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
499
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
500
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
501
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
502
+ { LLM_TENSOR_LAYER_OUT_NORM, "blk.%d.layer_output_norm" },
503
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
504
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
505
+ { LLM_TENSOR_CLS, "cls" },
506
+ { LLM_TENSOR_CLS_OUT, "cls.output" },
507
+ },
508
+ },
509
+ {
510
+ LLM_ARCH_NOMIC_BERT,
511
+ {
512
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
513
+ { LLM_TENSOR_TOKEN_EMBD_NORM, "token_embd_norm" },
514
+ { LLM_TENSOR_TOKEN_TYPES, "token_types" },
515
+ { LLM_TENSOR_ATTN_OUT_NORM, "blk.%d.attn_output_norm" },
516
+ { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },
517
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
518
+ { LLM_TENSOR_LAYER_OUT_NORM, "blk.%d.layer_output_norm" },
519
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
520
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
521
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
522
+ },
523
+ },
524
+ {
525
+ LLM_ARCH_NOMIC_BERT_MOE,
526
+ {
527
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
528
+ { LLM_TENSOR_TOKEN_EMBD_NORM, "token_embd_norm" },
529
+ { LLM_TENSOR_TOKEN_TYPES, "token_types" },
530
+ { LLM_TENSOR_ATTN_OUT_NORM, "blk.%d.attn_output_norm" },
531
+ { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },
532
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
533
+ { LLM_TENSOR_LAYER_OUT_NORM, "blk.%d.layer_output_norm" },
534
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
535
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
536
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
537
+ { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },
538
+ { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },
539
+ { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },
540
+ },
541
+ },
542
+ {
543
+ LLM_ARCH_NEO_BERT,
544
+ {
545
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
546
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
547
+ { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },
548
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
549
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
550
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
551
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
552
+ { LLM_TENSOR_ENC_OUTPUT_NORM, "enc.output_norm" },
553
+ { LLM_TENSOR_CLS, "cls" },
554
+ { LLM_TENSOR_CLS_OUT, "cls.output" },
555
+ },
556
+ },
557
+ {
558
+ LLM_ARCH_JINA_BERT_V2,
559
+ {
560
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
561
+ { LLM_TENSOR_TOKEN_EMBD_NORM, "token_embd_norm" },
562
+ { LLM_TENSOR_TOKEN_TYPES, "token_types" },
563
+ { LLM_TENSOR_ATTN_NORM_2, "blk.%d.attn_norm_2" },
564
+ { LLM_TENSOR_ATTN_OUT_NORM, "blk.%d.attn_output_norm" },
565
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
566
+ { LLM_TENSOR_ATTN_Q_NORM, "blk.%d.attn_q_norm" },
567
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
568
+ { LLM_TENSOR_ATTN_K_NORM, "blk.%d.attn_k_norm" },
569
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
570
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
571
+ { LLM_TENSOR_LAYER_OUT_NORM, "blk.%d.layer_output_norm" },
572
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
573
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
574
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
575
+ { LLM_TENSOR_CLS, "cls" },
576
+ },
577
+ },
578
+ {
579
+ LLM_ARCH_BLOOM,
580
+ {
581
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
582
+ { LLM_TENSOR_TOKEN_EMBD_NORM, "token_embd_norm" },
583
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
584
+ { LLM_TENSOR_OUTPUT, "output" },
585
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
586
+ { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },
587
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
588
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
589
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
590
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
591
+ },
592
+ },
593
+ {
594
+ LLM_ARCH_STABLELM,
595
+ {
596
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
597
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
598
+ { LLM_TENSOR_OUTPUT, "output" },
599
+ { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },
600
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
601
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
602
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
603
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
604
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
605
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
606
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
607
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
608
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
609
+ { LLM_TENSOR_ATTN_Q_NORM, "blk.%d.attn_q_norm" },
610
+ { LLM_TENSOR_ATTN_K_NORM, "blk.%d.attn_k_norm" },
611
+ },
612
+ },
613
+ {
614
+ LLM_ARCH_QWEN,
615
+ {
616
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
617
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
618
+ { LLM_TENSOR_OUTPUT, "output" },
619
+ { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },
620
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
621
+ { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },
622
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
623
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
624
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
625
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
626
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
627
+ },
628
+ },
629
+ {
630
+ LLM_ARCH_QWEN2,
631
+ {
632
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
633
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
634
+ { LLM_TENSOR_OUTPUT, "output" },
635
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
636
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
637
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
638
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
639
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
640
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
641
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
642
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
643
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
644
+ },
645
+ },
646
+ {
647
+ LLM_ARCH_QWEN2VL,
648
+ {
649
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
650
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
651
+ { LLM_TENSOR_OUTPUT, "output" },
652
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
653
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
654
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
655
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
656
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
657
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
658
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
659
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
660
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
661
+ },
662
+ },
663
+ {
664
+ LLM_ARCH_QWEN2MOE,
665
+ {
666
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
667
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
668
+ { LLM_TENSOR_OUTPUT, "output" },
669
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
670
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
671
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
672
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
673
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
674
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
675
+ { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },
676
+ { LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" },
677
+ { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },
678
+ { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },
679
+ { LLM_TENSOR_FFN_GATE_INP_SHEXP, "blk.%d.ffn_gate_inp_shexp" },
680
+ { LLM_TENSOR_FFN_GATE_SHEXP, "blk.%d.ffn_gate_shexp" },
681
+ { LLM_TENSOR_FFN_DOWN_SHEXP, "blk.%d.ffn_down_shexp" },
682
+ { LLM_TENSOR_FFN_UP_SHEXP, "blk.%d.ffn_up_shexp" },
683
+ },
684
+ },
685
+ {
686
+ LLM_ARCH_QWEN3,
687
+ {
688
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
689
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
690
+ { LLM_TENSOR_OUTPUT, "output" },
691
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
692
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
693
+ { LLM_TENSOR_ATTN_Q_NORM, "blk.%d.attn_q_norm" },
694
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
695
+ { LLM_TENSOR_ATTN_K_NORM, "blk.%d.attn_k_norm" },
696
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
697
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
698
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
699
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
700
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
701
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
702
+ },
703
+ },
704
+ {
705
+ LLM_ARCH_QWEN3MOE,
706
+ {
707
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
708
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
709
+ { LLM_TENSOR_OUTPUT, "output" },
710
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
711
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
712
+ { LLM_TENSOR_ATTN_Q_NORM, "blk.%d.attn_q_norm" },
713
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
714
+ { LLM_TENSOR_ATTN_K_NORM, "blk.%d.attn_k_norm" },
715
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
716
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
717
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
718
+ { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },
719
+ { LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" },
720
+ { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },
721
+ { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },
722
+ },
723
+ },
724
+ {
725
+ LLM_ARCH_PHI2,
726
+ {
727
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
728
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
729
+ { LLM_TENSOR_OUTPUT, "output" },
730
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
731
+ { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },
732
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
733
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
734
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
735
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
736
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
737
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
738
+ },
739
+ },
740
+ {
741
+ LLM_ARCH_PHI3,
742
+ {
743
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
744
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
745
+ { LLM_TENSOR_OUTPUT, "output" },
746
+ { LLM_TENSOR_ROPE_FACTORS_LONG, "rope_factors_long" },
747
+ { LLM_TENSOR_ROPE_FACTORS_SHORT, "rope_factors_short" },
748
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
749
+ { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },
750
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
751
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
752
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
753
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
754
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
755
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
756
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
757
+ },
758
+ },
759
+ {
760
+ LLM_ARCH_PHIMOE,
761
+ {
762
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
763
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
764
+ { LLM_TENSOR_OUTPUT, "output" },
765
+ { LLM_TENSOR_ROPE_FACTORS_LONG, "rope_factors_long" },
766
+ { LLM_TENSOR_ROPE_FACTORS_SHORT, "rope_factors_short" },
767
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
768
+ { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },
769
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
770
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
771
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
772
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
773
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
774
+ { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },
775
+ { LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" },
776
+ { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },
777
+ { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },
778
+ },
779
+ },
780
+ {
781
+ LLM_ARCH_PLAMO,
782
+ {
783
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
784
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
785
+ { LLM_TENSOR_OUTPUT, "output" },
786
+ { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },
787
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
788
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
789
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
790
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
791
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
792
+ { LLM_TENSOR_ATTN_ROT_EMBD, "blk.%d.attn_rot_embd" },
793
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
794
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
795
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
796
+ },
797
+ },
798
+ {
799
+ LLM_ARCH_PLAMO2,
800
+ {
801
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
802
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
803
+ { LLM_TENSOR_OUTPUT, "output" },
804
+ { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },
805
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
806
+ { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },
807
+ { LLM_TENSOR_ATTN_Q_NORM, "blk.%d.attn_q_norm" },
808
+ { LLM_TENSOR_ATTN_K_NORM, "blk.%d.attn_k_norm" },
809
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
810
+ { LLM_TENSOR_ATTN_ROT_EMBD, "blk.%d.attn_rot_embd" },
811
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
812
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
813
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
814
+ { LLM_TENSOR_SSM_IN, "blk.%d.ssm_in" },
815
+ { LLM_TENSOR_SSM_CONV1D, "blk.%d.ssm_conv1d" },
816
+ { LLM_TENSOR_SSM_X, "blk.%d.ssm_x" },
817
+ { LLM_TENSOR_SSM_DT, "blk.%d.ssm_dt" },
818
+ { LLM_TENSOR_SSM_A, "blk.%d.ssm_a" },
819
+ { LLM_TENSOR_SSM_D, "blk.%d.ssm_d" },
820
+ { LLM_TENSOR_SSM_OUT, "blk.%d.ssm_out" },
821
+ { LLM_TENSOR_SSM_DT_NORM, "blk.%d.ssm_dt_norm" },
822
+ { LLM_TENSOR_SSM_B_NORM, "blk.%d.ssm_b_norm" },
823
+ { LLM_TENSOR_SSM_C_NORM, "blk.%d.ssm_c_norm" },
824
+ { LLM_TENSOR_ATTN_POST_NORM, "blk.%d.post_attention_norm" },
825
+ { LLM_TENSOR_FFN_POST_NORM, "blk.%d.post_ffw_norm" },
826
+ },
827
+ },
828
+ {
829
+ LLM_ARCH_CODESHELL,
830
+ {
831
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
832
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
833
+ { LLM_TENSOR_OUTPUT, "output" },
834
+ { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },
835
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
836
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
837
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
838
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
839
+ { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },
840
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
841
+ { LLM_TENSOR_ATTN_ROT_EMBD, "blk.%d.attn_rot_embd" },
842
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
843
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
844
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
845
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
846
+ },
847
+ },
848
+ {
849
+ LLM_ARCH_ORION,
850
+ {
851
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
852
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
853
+ { LLM_TENSOR_OUTPUT, "output" },
854
+ { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },
855
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
856
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
857
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
858
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
859
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
860
+ { LLM_TENSOR_ATTN_ROT_EMBD, "blk.%d.attn_rot_embd" },
861
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
862
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
863
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
864
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
865
+ },
866
+ },
867
+ {
868
+ LLM_ARCH_INTERNLM2,
869
+ {
870
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
871
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
872
+ { LLM_TENSOR_OUTPUT, "output" },
873
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
874
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
875
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
876
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
877
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
878
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
879
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
880
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
881
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
882
+ },
883
+ },
884
+ {
885
+ LLM_ARCH_MINICPM,
886
+ {
887
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
888
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
889
+ { LLM_TENSOR_OUTPUT, "output" },
890
+ { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },
891
+ { LLM_TENSOR_ROPE_FACTORS_LONG, "rope_factors_long" },
892
+ { LLM_TENSOR_ROPE_FACTORS_SHORT, "rope_factors_short" },
893
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
894
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
895
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
896
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
897
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
898
+ { LLM_TENSOR_ATTN_ROT_EMBD, "blk.%d.attn_rot_embd" },
899
+ { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },
900
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
901
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
902
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
903
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
904
+ { LLM_TENSOR_FFN_GATE_EXP, "blk.%d.ffn_gate.%d" },
905
+ { LLM_TENSOR_FFN_DOWN_EXP, "blk.%d.ffn_down.%d" },
906
+ { LLM_TENSOR_FFN_UP_EXP, "blk.%d.ffn_up.%d" },
907
+ },
908
+ },
909
+ {
910
+ LLM_ARCH_MINICPM3,
911
+ {
912
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
913
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
914
+ { LLM_TENSOR_OUTPUT, "output" },
915
+ { LLM_TENSOR_ROPE_FACTORS_LONG, "rope_factors_long" },
916
+ { LLM_TENSOR_ROPE_FACTORS_SHORT, "rope_factors_short" },
917
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
918
+ { LLM_TENSOR_ATTN_Q_A_NORM, "blk.%d.attn_q_a_norm" },
919
+ { LLM_TENSOR_ATTN_KV_A_NORM, "blk.%d.attn_kv_a_norm" },
920
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
921
+ { LLM_TENSOR_ATTN_Q_A, "blk.%d.attn_q_a" },
922
+ { LLM_TENSOR_ATTN_Q_B, "blk.%d.attn_q_b" },
923
+ { LLM_TENSOR_ATTN_KV_A_MQA, "blk.%d.attn_kv_a_mqa" },
924
+ { LLM_TENSOR_ATTN_KV_B, "blk.%d.attn_kv_b" },
925
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
926
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
927
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
928
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
929
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
930
+ },
931
+ },
932
+ {
933
+ LLM_ARCH_GEMMA,
934
+ {
935
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
936
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
937
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
938
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
939
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
940
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
941
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
942
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
943
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
944
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
945
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
946
+ },
947
+ },
948
+ {
949
+ LLM_ARCH_GEMMA2,
950
+ {
951
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
952
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
953
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
954
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
955
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
956
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
957
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
958
+ { LLM_TENSOR_ATTN_POST_NORM, "blk.%d.post_attention_norm" },
959
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
960
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
961
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
962
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
963
+ { LLM_TENSOR_FFN_POST_NORM, "blk.%d.post_ffw_norm" },
964
+ },
965
+ },
966
+ {
967
+ LLM_ARCH_GEMMA3,
968
+ {
969
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
970
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
971
+ { LLM_TENSOR_OUTPUT, "output" },
972
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
973
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
974
+ { LLM_TENSOR_ATTN_Q_NORM, "blk.%d.attn_q_norm" },
975
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
976
+ { LLM_TENSOR_ATTN_K_NORM, "blk.%d.attn_k_norm" },
977
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
978
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
979
+ { LLM_TENSOR_ATTN_POST_NORM, "blk.%d.post_attention_norm" },
980
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
981
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
982
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
983
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
984
+ { LLM_TENSOR_FFN_POST_NORM, "blk.%d.post_ffw_norm" },
985
+ },
986
+ },
987
+ {
988
+ LLM_ARCH_GEMMA3N,
989
+ {
990
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
991
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
992
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
993
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
994
+ { LLM_TENSOR_ATTN_Q_NORM, "blk.%d.attn_q_norm" },
995
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
996
+ { LLM_TENSOR_ATTN_K_NORM, "blk.%d.attn_k_norm" },
997
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
998
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
999
+ { LLM_TENSOR_ATTN_POST_NORM, "blk.%d.post_attention_norm" },
1000
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1001
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
1002
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1003
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1004
+ { LLM_TENSOR_FFN_POST_NORM, "blk.%d.post_ffw_norm" },
1005
+ { LLM_TENSOR_PER_LAYER_TOKEN_EMBD, "per_layer_token_embd" },
1006
+ { LLM_TENSOR_PER_LAYER_MODEL_PROJ, "per_layer_model_proj" },
1007
+ { LLM_TENSOR_PER_LAYER_PROJ_NORM, "per_layer_proj_norm" },
1008
+ { LLM_TENSOR_ALTUP_UNEMBD_PROJ, "altup_unembd_proj" },
1009
+ { LLM_TENSOR_ALTUP_PROJ, "altup_proj" },
1010
+ { LLM_TENSOR_PER_LAYER_INP_GATE, "blk.%d.inp_gate" },
1011
+ { LLM_TENSOR_PER_LAYER_PROJ, "blk.%d.proj" },
1012
+ { LLM_TENSOR_PER_LAYER_POST_NORM, "blk.%d.post_norm" },
1013
+ { LLM_TENSOR_ALTUP_CORRECT_COEF, "blk.%d.altup_correct_coef" },
1014
+ { LLM_TENSOR_ALTUP_CORRECT_SCALE, "blk.%d.altup_correct_scale" },
1015
+ { LLM_TENSOR_ALTUP_PREDICT_COEF, "blk.%d.altup_predict_coef" },
1016
+ { LLM_TENSOR_ALTUP_ROUTER, "blk.%d.altup_router" },
1017
+ { LLM_TENSOR_ALTUP_ROUTER_NORM, "blk.%d.altup_router_norm" },
1018
+ { LLM_TENSOR_LAUREL_L, "blk.%d.laurel_l" },
1019
+ { LLM_TENSOR_LAUREL_R, "blk.%d.laurel_r" },
1020
+ { LLM_TENSOR_LAUREL_POST_NORM, "blk.%d.laurel_post_norm" },
1021
+ },
1022
+ },
1023
+ {
1024
+ LLM_ARCH_STARCODER2,
1025
+ {
1026
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1027
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1028
+ { LLM_TENSOR_OUTPUT, "output" },
1029
+ { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },
1030
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1031
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1032
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
1033
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
1034
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1035
+ { LLM_TENSOR_ATTN_ROT_EMBD, "blk.%d.attn_rot_embd" },
1036
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1037
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1038
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1039
+ },
1040
+ },
1041
+ {
1042
+ LLM_ARCH_MAMBA,
1043
+ {
1044
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1045
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1046
+ { LLM_TENSOR_OUTPUT, "output" },
1047
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1048
+ { LLM_TENSOR_SSM_IN, "blk.%d.ssm_in" },
1049
+ { LLM_TENSOR_SSM_CONV1D, "blk.%d.ssm_conv1d" },
1050
+ { LLM_TENSOR_SSM_X, "blk.%d.ssm_x" },
1051
+ { LLM_TENSOR_SSM_DT, "blk.%d.ssm_dt" },
1052
+ { LLM_TENSOR_SSM_A, "blk.%d.ssm_a" },
1053
+ { LLM_TENSOR_SSM_D, "blk.%d.ssm_d" },
1054
+ { LLM_TENSOR_SSM_OUT, "blk.%d.ssm_out" },
1055
+ },
1056
+ },
1057
+ {
1058
+ LLM_ARCH_MAMBA2,
1059
+ {
1060
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1061
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1062
+ { LLM_TENSOR_OUTPUT, "output" },
1063
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1064
+ { LLM_TENSOR_SSM_IN, "blk.%d.ssm_in" },
1065
+ { LLM_TENSOR_SSM_CONV1D, "blk.%d.ssm_conv1d" },
1066
+ { LLM_TENSOR_SSM_DT, "blk.%d.ssm_dt" },
1067
+ { LLM_TENSOR_SSM_A, "blk.%d.ssm_a" },
1068
+ { LLM_TENSOR_SSM_D, "blk.%d.ssm_d" },
1069
+ { LLM_TENSOR_SSM_NORM, "blk.%d.ssm_norm" },
1070
+ { LLM_TENSOR_SSM_OUT, "blk.%d.ssm_out" },
1071
+ },
1072
+ },
1073
+ {
1074
+ LLM_ARCH_JAMBA,
1075
+ {
1076
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1077
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1078
+ { LLM_TENSOR_OUTPUT, "output" },
1079
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1080
+ { LLM_TENSOR_SSM_IN, "blk.%d.ssm_in" },
1081
+ { LLM_TENSOR_SSM_CONV1D, "blk.%d.ssm_conv1d" },
1082
+ { LLM_TENSOR_SSM_X, "blk.%d.ssm_x" },
1083
+ { LLM_TENSOR_SSM_DT, "blk.%d.ssm_dt" },
1084
+ { LLM_TENSOR_SSM_DT_NORM, "blk.%d.ssm_dt_norm" },
1085
+ { LLM_TENSOR_SSM_A, "blk.%d.ssm_a" },
1086
+ { LLM_TENSOR_SSM_B_NORM, "blk.%d.ssm_b_norm" },
1087
+ { LLM_TENSOR_SSM_C_NORM, "blk.%d.ssm_c_norm" },
1088
+ { LLM_TENSOR_SSM_D, "blk.%d.ssm_d" },
1089
+ { LLM_TENSOR_SSM_OUT, "blk.%d.ssm_out" },
1090
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1091
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
1092
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
1093
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1094
+ { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },
1095
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1096
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
1097
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1098
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1099
+ { LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" },
1100
+ { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },
1101
+ { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },
1102
+ },
1103
+ },
1104
+ {
1105
+ LLM_ARCH_FALCON_H1,
1106
+ {
1107
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1108
+ { LLM_TENSOR_OUTPUT, "output" },
1109
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1110
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1111
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1112
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
1113
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
1114
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1115
+ { LLM_TENSOR_SSM_IN, "blk.%d.ssm_in" },
1116
+ { LLM_TENSOR_SSM_CONV1D, "blk.%d.ssm_conv1d" },
1117
+ { LLM_TENSOR_SSM_DT, "blk.%d.ssm_dt" },
1118
+ { LLM_TENSOR_SSM_A, "blk.%d.ssm_a" },
1119
+ { LLM_TENSOR_SSM_D, "blk.%d.ssm_d" },
1120
+ { LLM_TENSOR_SSM_NORM, "blk.%d.ssm_norm" },
1121
+ { LLM_TENSOR_SSM_OUT, "blk.%d.ssm_out" },
1122
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1123
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
1124
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1125
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1126
+ },
1127
+ },
1128
+ {
1129
+ LLM_ARCH_XVERSE,
1130
+ {
1131
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1132
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1133
+ { LLM_TENSOR_OUTPUT, "output" },
1134
+ { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },
1135
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1136
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1137
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
1138
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
1139
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1140
+ { LLM_TENSOR_ATTN_ROT_EMBD, "blk.%d.attn_rot_embd" },
1141
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1142
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
1143
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1144
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1145
+ },
1146
+ },
1147
+ {
1148
+ LLM_ARCH_COMMAND_R,
1149
+ {
1150
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1151
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1152
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1153
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1154
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
1155
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
1156
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1157
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
1158
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1159
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1160
+ { LLM_TENSOR_ATTN_Q_NORM, "blk.%d.attn_q_norm" },
1161
+ { LLM_TENSOR_ATTN_K_NORM, "blk.%d.attn_k_norm" },
1162
+ },
1163
+ },
1164
+ {
1165
+ LLM_ARCH_COHERE2,
1166
+ {
1167
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1168
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1169
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1170
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1171
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
1172
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
1173
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1174
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
1175
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1176
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1177
+ },
1178
+ },
1179
+ {
1180
+ LLM_ARCH_DBRX,
1181
+ {
1182
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1183
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1184
+ { LLM_TENSOR_OUTPUT, "output" },
1185
+ { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },
1186
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1187
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1188
+ { LLM_TENSOR_ATTN_OUT_NORM, "blk.%d.attn_output_norm" },
1189
+ { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },
1190
+ { LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" },
1191
+ { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },
1192
+ { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },
1193
+ },
1194
+ },
1195
+ {
1196
+ LLM_ARCH_OLMO,
1197
+ {
1198
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1199
+ { LLM_TENSOR_OUTPUT, "output" },
1200
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1201
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
1202
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
1203
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1204
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
1205
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1206
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1207
+ },
1208
+ },
1209
+ {
1210
+ LLM_ARCH_OLMO2,
1211
+ {
1212
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1213
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1214
+ { LLM_TENSOR_OUTPUT, "output" },
1215
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1216
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
1217
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
1218
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1219
+ { LLM_TENSOR_ATTN_POST_NORM, "blk.%d.post_attention_norm" },
1220
+ { LLM_TENSOR_ATTN_Q_NORM, "blk.%d.attn_q_norm" },
1221
+ { LLM_TENSOR_ATTN_K_NORM, "blk.%d.attn_k_norm" },
1222
+ { LLM_TENSOR_FFN_POST_NORM, "blk.%d.post_ffw_norm" },
1223
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
1224
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1225
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1226
+ },
1227
+ },
1228
+ {
1229
+ LLM_ARCH_OLMOE,
1230
+ {
1231
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1232
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1233
+ { LLM_TENSOR_OUTPUT, "output" },
1234
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1235
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1236
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
1237
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
1238
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1239
+ { LLM_TENSOR_ATTN_Q_NORM, "blk.%d.attn_q_norm" },
1240
+ { LLM_TENSOR_ATTN_K_NORM, "blk.%d.attn_k_norm" },
1241
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1242
+ { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },
1243
+ { LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" },
1244
+ { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },
1245
+ { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },
1246
+ },
1247
+ },
1248
+ {
1249
+ LLM_ARCH_OPENELM,
1250
+ {
1251
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1252
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1253
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1254
+ { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },
1255
+ { LLM_TENSOR_ATTN_Q_NORM, "blk.%d.attn_q_norm" },
1256
+ { LLM_TENSOR_ATTN_K_NORM, "blk.%d.attn_k_norm" },
1257
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1258
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1259
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
1260
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1261
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1262
+ },
1263
+ },
1264
+ {
1265
+ LLM_ARCH_ARCTIC,
1266
+ {
1267
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1268
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1269
+ { LLM_TENSOR_OUTPUT, "output" },
1270
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1271
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1272
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
1273
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
1274
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1275
+ { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },
1276
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1277
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
1278
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1279
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1280
+ { LLM_TENSOR_FFN_NORM_EXPS, "blk.%d.ffn_norm_exps" },
1281
+ { LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" },
1282
+ { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },
1283
+ { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },
1284
+ },
1285
+ },
1286
+ {
1287
+ LLM_ARCH_DEEPSEEK,
1288
+ {
1289
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1290
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1291
+ { LLM_TENSOR_OUTPUT, "output" },
1292
+ { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },
1293
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1294
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1295
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
1296
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
1297
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1298
+ { LLM_TENSOR_ATTN_ROT_EMBD, "blk.%d.attn_rot_embd" },
1299
+ { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },
1300
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1301
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
1302
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1303
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1304
+ { LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" },
1305
+ { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },
1306
+ { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },
1307
+ { LLM_TENSOR_FFN_GATE_INP_SHEXP, "blk.%d.ffn_gate_inp_shexp" },
1308
+ { LLM_TENSOR_FFN_GATE_SHEXP, "blk.%d.ffn_gate_shexp" },
1309
+ { LLM_TENSOR_FFN_DOWN_SHEXP, "blk.%d.ffn_down_shexp" },
1310
+ { LLM_TENSOR_FFN_UP_SHEXP, "blk.%d.ffn_up_shexp" },
1311
+ },
1312
+ },
1313
+ {
1314
+ LLM_ARCH_DEEPSEEK2,
1315
+ {
1316
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1317
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1318
+ { LLM_TENSOR_OUTPUT, "output" },
1319
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1320
+ { LLM_TENSOR_ATTN_Q_A_NORM, "blk.%d.attn_q_a_norm" },
1321
+ { LLM_TENSOR_ATTN_KV_A_NORM, "blk.%d.attn_kv_a_norm" },
1322
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1323
+ { LLM_TENSOR_ATTN_Q_A, "blk.%d.attn_q_a" },
1324
+ { LLM_TENSOR_ATTN_Q_B, "blk.%d.attn_q_b" },
1325
+ { LLM_TENSOR_ATTN_KV_A_MQA, "blk.%d.attn_kv_a_mqa" },
1326
+ { LLM_TENSOR_ATTN_KV_B, "blk.%d.attn_kv_b" },
1327
+ { LLM_TENSOR_ATTN_K_B, "blk.%d.attn_k_b" },
1328
+ { LLM_TENSOR_ATTN_V_B, "blk.%d.attn_v_b" },
1329
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1330
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1331
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
1332
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1333
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1334
+ { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },
1335
+ { LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" },
1336
+ { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },
1337
+ { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },
1338
+ { LLM_TENSOR_FFN_GATE_INP_SHEXP, "blk.%d.ffn_gate_inp_shexp" },
1339
+ { LLM_TENSOR_FFN_GATE_SHEXP, "blk.%d.ffn_gate_shexp" },
1340
+ { LLM_TENSOR_FFN_DOWN_SHEXP, "blk.%d.ffn_down_shexp" },
1341
+ { LLM_TENSOR_FFN_UP_SHEXP, "blk.%d.ffn_up_shexp" },
1342
+ { LLM_TENSOR_FFN_EXP_PROBS_B, "blk.%d.exp_probs_b" },
1343
+ },
1344
+ },
1345
+ {
1346
+ LLM_ARCH_PLM,
1347
+ {
1348
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1349
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1350
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1351
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1352
+ { LLM_TENSOR_ATTN_KV_A_MQA, "blk.%d.attn_kv_a_mqa" },
1353
+ { LLM_TENSOR_ATTN_KV_A_NORM, "blk.%d.attn_kv_a_norm" },
1354
+ { LLM_TENSOR_ATTN_KV_B, "blk.%d.attn_kv_b" },
1355
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1356
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1357
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1358
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1359
+ },
1360
+ },
1361
+ {
1362
+ LLM_ARCH_CHATGLM,
1363
+ {
1364
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1365
+ { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },
1366
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1367
+ { LLM_TENSOR_OUTPUT, "output" },
1368
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1369
+ { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },
1370
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1371
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
1372
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
1373
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1374
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1375
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1376
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1377
+ },
1378
+ },
1379
+ {
1380
+ LLM_ARCH_GLM4,
1381
+ {
1382
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1383
+ { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },
1384
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1385
+ { LLM_TENSOR_OUTPUT, "output" },
1386
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1387
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1388
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
1389
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
1390
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1391
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1392
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1393
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1394
+ { LLM_TENSOR_ATTN_POST_NORM, "blk.%d.post_attention_norm" },
1395
+ { LLM_TENSOR_FFN_POST_NORM, "blk.%d.post_ffw_norm" },
1396
+ },
1397
+ },
1398
+ {
1399
+ LLM_ARCH_GLM4_MOE,
1400
+ {
1401
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1402
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1403
+ { LLM_TENSOR_OUTPUT, "output" },
1404
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1405
+ { LLM_TENSOR_ATTN_POST_NORM, "blk.%d.post_attention_norm" },
1406
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1407
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
1408
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
1409
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1410
+ { LLM_TENSOR_ATTN_Q_NORM, "blk.%d.attn_q_norm" },
1411
+ { LLM_TENSOR_ATTN_K_NORM, "blk.%d.attn_k_norm" },
1412
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
1413
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1414
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1415
+ { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },
1416
+ { LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" },
1417
+ { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },
1418
+ { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },
1419
+ { LLM_TENSOR_FFN_GATE_SHEXP, "blk.%d.ffn_gate_shexp" },
1420
+ { LLM_TENSOR_FFN_DOWN_SHEXP, "blk.%d.ffn_down_shexp" },
1421
+ { LLM_TENSOR_FFN_UP_SHEXP, "blk.%d.ffn_up_shexp" },
1422
+ { LLM_TENSOR_FFN_EXP_PROBS_B, "blk.%d.exp_probs_b" },
1423
+ // NextN/MTP tensors - preserved but unused (in final layer, dynamic layer number)
1424
+ { LLM_TENSOR_NEXTN_EH_PROJ, "blk.%d.nextn.eh_proj" },
1425
+ { LLM_TENSOR_NEXTN_EMBED_TOKENS, "blk.%d.nextn.embed_tokens" },
1426
+ { LLM_TENSOR_NEXTN_ENORM, "blk.%d.nextn.enorm" },
1427
+ { LLM_TENSOR_NEXTN_HNORM, "blk.%d.nextn.hnorm" },
1428
+ { LLM_TENSOR_NEXTN_SHARED_HEAD_HEAD, "blk.%d.nextn.shared_head_head" },
1429
+ { LLM_TENSOR_NEXTN_SHARED_HEAD_NORM, "blk.%d.nextn.shared_head_norm" },
1430
+ },
1431
+ },
1432
+ {
1433
+ LLM_ARCH_BITNET,
1434
+ {
1435
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1436
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1437
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1438
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
1439
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
1440
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1441
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1442
+ { LLM_TENSOR_ATTN_SUB_NORM, "blk.%d.attn_sub_norm" },
1443
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
1444
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1445
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1446
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1447
+ { LLM_TENSOR_FFN_SUB_NORM, "blk.%d.ffn_sub_norm" },
1448
+ },
1449
+ },
1450
+ {
1451
+ LLM_ARCH_T5,
1452
+ {
1453
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1454
+ { LLM_TENSOR_OUTPUT, "output" },
1455
+ { LLM_TENSOR_DEC_OUTPUT_NORM, "dec.output_norm" },
1456
+ { LLM_TENSOR_DEC_ATTN_NORM, "dec.blk.%d.attn_norm" },
1457
+ { LLM_TENSOR_DEC_ATTN_Q, "dec.blk.%d.attn_q" },
1458
+ { LLM_TENSOR_DEC_ATTN_K, "dec.blk.%d.attn_k" },
1459
+ { LLM_TENSOR_DEC_ATTN_V, "dec.blk.%d.attn_v" },
1460
+ { LLM_TENSOR_DEC_ATTN_OUT, "dec.blk.%d.attn_o" },
1461
+ { LLM_TENSOR_DEC_ATTN_REL_B, "dec.blk.%d.attn_rel_b" },
1462
+ { LLM_TENSOR_DEC_CROSS_ATTN_NORM, "dec.blk.%d.cross_attn_norm" },
1463
+ { LLM_TENSOR_DEC_CROSS_ATTN_Q, "dec.blk.%d.cross_attn_q" },
1464
+ { LLM_TENSOR_DEC_CROSS_ATTN_K, "dec.blk.%d.cross_attn_k" },
1465
+ { LLM_TENSOR_DEC_CROSS_ATTN_V, "dec.blk.%d.cross_attn_v" },
1466
+ { LLM_TENSOR_DEC_CROSS_ATTN_OUT, "dec.blk.%d.cross_attn_o" },
1467
+ { LLM_TENSOR_DEC_CROSS_ATTN_REL_B, "dec.blk.%d.cross_attn_rel_b" },
1468
+ { LLM_TENSOR_DEC_FFN_NORM, "dec.blk.%d.ffn_norm" },
1469
+ { LLM_TENSOR_DEC_FFN_GATE, "dec.blk.%d.ffn_gate" },
1470
+ { LLM_TENSOR_DEC_FFN_DOWN, "dec.blk.%d.ffn_down" },
1471
+ { LLM_TENSOR_DEC_FFN_UP, "dec.blk.%d.ffn_up" },
1472
+ { LLM_TENSOR_ENC_OUTPUT_NORM, "enc.output_norm" },
1473
+ { LLM_TENSOR_ENC_ATTN_NORM, "enc.blk.%d.attn_norm" },
1474
+ { LLM_TENSOR_ENC_ATTN_Q, "enc.blk.%d.attn_q" },
1475
+ { LLM_TENSOR_ENC_ATTN_K, "enc.blk.%d.attn_k" },
1476
+ { LLM_TENSOR_ENC_ATTN_V, "enc.blk.%d.attn_v" },
1477
+ { LLM_TENSOR_ENC_ATTN_OUT, "enc.blk.%d.attn_o" },
1478
+ { LLM_TENSOR_ENC_ATTN_REL_B, "enc.blk.%d.attn_rel_b" },
1479
+ { LLM_TENSOR_ENC_FFN_NORM, "enc.blk.%d.ffn_norm" },
1480
+ { LLM_TENSOR_ENC_FFN_GATE, "enc.blk.%d.ffn_gate" },
1481
+ { LLM_TENSOR_ENC_FFN_DOWN, "enc.blk.%d.ffn_down" },
1482
+ { LLM_TENSOR_ENC_FFN_UP, "enc.blk.%d.ffn_up" },
1483
+ },
1484
+ },
1485
+ {
1486
+ LLM_ARCH_T5ENCODER,
1487
+ {
1488
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1489
+ { LLM_TENSOR_OUTPUT, "output" },
1490
+ { LLM_TENSOR_ENC_OUTPUT_NORM, "enc.output_norm" },
1491
+ { LLM_TENSOR_ENC_ATTN_NORM, "enc.blk.%d.attn_norm" },
1492
+ { LLM_TENSOR_ENC_ATTN_Q, "enc.blk.%d.attn_q" },
1493
+ { LLM_TENSOR_ENC_ATTN_K, "enc.blk.%d.attn_k" },
1494
+ { LLM_TENSOR_ENC_ATTN_V, "enc.blk.%d.attn_v" },
1495
+ { LLM_TENSOR_ENC_ATTN_OUT, "enc.blk.%d.attn_o" },
1496
+ { LLM_TENSOR_ENC_ATTN_REL_B, "enc.blk.%d.attn_rel_b" },
1497
+ { LLM_TENSOR_ENC_FFN_NORM, "enc.blk.%d.ffn_norm" },
1498
+ { LLM_TENSOR_ENC_FFN_GATE, "enc.blk.%d.ffn_gate" },
1499
+ { LLM_TENSOR_ENC_FFN_DOWN, "enc.blk.%d.ffn_down" },
1500
+ { LLM_TENSOR_ENC_FFN_UP, "enc.blk.%d.ffn_up" },
1501
+ },
1502
+ },
1503
+ {
1504
+ LLM_ARCH_JAIS,
1505
+ {
1506
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1507
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1508
+ { LLM_TENSOR_OUTPUT, "output" },
1509
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1510
+ { LLM_TENSOR_ATTN_QKV, "blk.%d.attn_qkv" },
1511
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1512
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1513
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1514
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
1515
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1516
+ },
1517
+ },
1518
+ {
1519
+ LLM_ARCH_NEMOTRON,
1520
+ {
1521
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1522
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1523
+ { LLM_TENSOR_OUTPUT, "output" },
1524
+ { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },
1525
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1526
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1527
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
1528
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
1529
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1530
+ { LLM_TENSOR_ATTN_ROT_EMBD, "blk.%d.attn_rot_embd" },
1531
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1532
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1533
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1534
+ },
1535
+ },
1536
+ {
1537
+ LLM_ARCH_EXAONE,
1538
+ {
1539
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1540
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1541
+ { LLM_TENSOR_OUTPUT, "output" },
1542
+ { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },
1543
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1544
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1545
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
1546
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
1547
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1548
+ { LLM_TENSOR_ATTN_ROT_EMBD, "blk.%d.attn_rot_embd" },
1549
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1550
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
1551
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1552
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1553
+ },
1554
+ },
1555
+ {
1556
+ LLM_ARCH_EXAONE4,
1557
+ {
1558
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1559
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1560
+ { LLM_TENSOR_OUTPUT, "output" },
1561
+ { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },
1562
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1563
+ { LLM_TENSOR_ATTN_Q_NORM, "blk.%d.attn_q_norm" },
1564
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
1565
+ { LLM_TENSOR_ATTN_K_NORM, "blk.%d.attn_k_norm" },
1566
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
1567
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1568
+ { LLM_TENSOR_ATTN_POST_NORM, "blk.%d.post_attention_norm" },
1569
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
1570
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1571
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1572
+ { LLM_TENSOR_FFN_POST_NORM, "blk.%d.post_ffw_norm" },
1573
+ }
1574
+ },
1575
+ {
1576
+ LLM_ARCH_RWKV6,
1577
+ {
1578
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1579
+ { LLM_TENSOR_TOKEN_EMBD_NORM, "token_embd_norm" },
1580
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1581
+ { LLM_TENSOR_OUTPUT, "output" },
1582
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1583
+ { LLM_TENSOR_ATTN_NORM_2, "blk.%d.attn_norm_2" },
1584
+ { LLM_TENSOR_TIME_MIX_W1, "blk.%d.time_mix_w1" },
1585
+ { LLM_TENSOR_TIME_MIX_W2, "blk.%d.time_mix_w2" },
1586
+ { LLM_TENSOR_TIME_MIX_LERP_X, "blk.%d.time_mix_lerp_x" },
1587
+ { LLM_TENSOR_TIME_MIX_LERP_W, "blk.%d.time_mix_lerp_w" },
1588
+ { LLM_TENSOR_TIME_MIX_LERP_K, "blk.%d.time_mix_lerp_k" },
1589
+ { LLM_TENSOR_TIME_MIX_LERP_V, "blk.%d.time_mix_lerp_v" },
1590
+ { LLM_TENSOR_TIME_MIX_LERP_R, "blk.%d.time_mix_lerp_r" },
1591
+ { LLM_TENSOR_TIME_MIX_LERP_G, "blk.%d.time_mix_lerp_g" },
1592
+ { LLM_TENSOR_TIME_MIX_LERP_FUSED, "blk.%d.time_mix_lerp_fused" },
1593
+ { LLM_TENSOR_TIME_MIX_FIRST, "blk.%d.time_mix_first" },
1594
+ { LLM_TENSOR_TIME_MIX_DECAY, "blk.%d.time_mix_decay" },
1595
+ { LLM_TENSOR_TIME_MIX_DECAY_W1, "blk.%d.time_mix_decay_w1" },
1596
+ { LLM_TENSOR_TIME_MIX_DECAY_W2, "blk.%d.time_mix_decay_w2" },
1597
+ { LLM_TENSOR_TIME_MIX_KEY, "blk.%d.time_mix_key" },
1598
+ { LLM_TENSOR_TIME_MIX_VALUE, "blk.%d.time_mix_value" },
1599
+ { LLM_TENSOR_TIME_MIX_RECEPTANCE, "blk.%d.time_mix_receptance" },
1600
+ { LLM_TENSOR_TIME_MIX_GATE, "blk.%d.time_mix_gate" },
1601
+ { LLM_TENSOR_TIME_MIX_LN, "blk.%d.time_mix_ln" },
1602
+ { LLM_TENSOR_TIME_MIX_OUTPUT, "blk.%d.time_mix_output" },
1603
+ { LLM_TENSOR_CHANNEL_MIX_LERP_K, "blk.%d.channel_mix_lerp_k" },
1604
+ { LLM_TENSOR_CHANNEL_MIX_LERP_R, "blk.%d.channel_mix_lerp_r" },
1605
+ { LLM_TENSOR_CHANNEL_MIX_KEY, "blk.%d.channel_mix_key" },
1606
+ { LLM_TENSOR_CHANNEL_MIX_VALUE, "blk.%d.channel_mix_value" },
1607
+ { LLM_TENSOR_CHANNEL_MIX_RECEPTANCE, "blk.%d.channel_mix_receptance" },
1608
+ },
1609
+ },
1610
+ {
1611
+ LLM_ARCH_RWKV6QWEN2,
1612
+ {
1613
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1614
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1615
+ { LLM_TENSOR_OUTPUT, "output" },
1616
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1617
+ { LLM_TENSOR_TIME_MIX_W1, "blk.%d.time_mix_w1" },
1618
+ { LLM_TENSOR_TIME_MIX_W2, "blk.%d.time_mix_w2" },
1619
+ { LLM_TENSOR_TIME_MIX_LERP_X, "blk.%d.time_mix_lerp_x" },
1620
+ { LLM_TENSOR_TIME_MIX_LERP_FUSED, "blk.%d.time_mix_lerp_fused" },
1621
+ { LLM_TENSOR_TIME_MIX_FIRST, "blk.%d.time_mix_first" },
1622
+ { LLM_TENSOR_TIME_MIX_DECAY, "blk.%d.time_mix_decay" },
1623
+ { LLM_TENSOR_TIME_MIX_DECAY_W1, "blk.%d.time_mix_decay_w1" },
1624
+ { LLM_TENSOR_TIME_MIX_DECAY_W2, "blk.%d.time_mix_decay_w2" },
1625
+ { LLM_TENSOR_TIME_MIX_KEY, "blk.%d.time_mix_key" },
1626
+ { LLM_TENSOR_TIME_MIX_VALUE, "blk.%d.time_mix_value" },
1627
+ { LLM_TENSOR_TIME_MIX_RECEPTANCE, "blk.%d.time_mix_receptance" },
1628
+ { LLM_TENSOR_TIME_MIX_GATE, "blk.%d.time_mix_gate" },
1629
+ { LLM_TENSOR_TIME_MIX_OUTPUT, "blk.%d.time_mix_output" },
1630
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1631
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
1632
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1633
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1634
+ },
1635
+ },
1636
+ {
1637
+ LLM_ARCH_RWKV7,
1638
+ {
1639
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1640
+ { LLM_TENSOR_TOKEN_EMBD_NORM, "token_embd_norm" },
1641
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1642
+ { LLM_TENSOR_OUTPUT, "output" },
1643
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1644
+ { LLM_TENSOR_ATTN_NORM_2, "blk.%d.attn_norm_2" },
1645
+ { LLM_TENSOR_TIME_MIX_W0, "blk.%d.time_mix_w0" },
1646
+ { LLM_TENSOR_TIME_MIX_W1, "blk.%d.time_mix_w1" },
1647
+ { LLM_TENSOR_TIME_MIX_W2, "blk.%d.time_mix_w2" },
1648
+ { LLM_TENSOR_TIME_MIX_A0, "blk.%d.time_mix_a0" },
1649
+ { LLM_TENSOR_TIME_MIX_A1, "blk.%d.time_mix_a1" },
1650
+ { LLM_TENSOR_TIME_MIX_A2, "blk.%d.time_mix_a2" },
1651
+ { LLM_TENSOR_TIME_MIX_V0, "blk.%d.time_mix_v0" },
1652
+ { LLM_TENSOR_TIME_MIX_V1, "blk.%d.time_mix_v1" },
1653
+ { LLM_TENSOR_TIME_MIX_V2, "blk.%d.time_mix_v2" },
1654
+ { LLM_TENSOR_TIME_MIX_G1, "blk.%d.time_mix_g1" },
1655
+ { LLM_TENSOR_TIME_MIX_G2, "blk.%d.time_mix_g2" },
1656
+ { LLM_TENSOR_TIME_MIX_K_K, "blk.%d.time_mix_k_k" },
1657
+ { LLM_TENSOR_TIME_MIX_K_A, "blk.%d.time_mix_k_a" },
1658
+ { LLM_TENSOR_TIME_MIX_R_K, "blk.%d.time_mix_r_k" },
1659
+ { LLM_TENSOR_TIME_MIX_LERP_FUSED, "blk.%d.time_mix_lerp_fused" },
1660
+ { LLM_TENSOR_TIME_MIX_KEY, "blk.%d.time_mix_key" },
1661
+ { LLM_TENSOR_TIME_MIX_VALUE, "blk.%d.time_mix_value" },
1662
+ { LLM_TENSOR_TIME_MIX_RECEPTANCE, "blk.%d.time_mix_receptance" },
1663
+ { LLM_TENSOR_TIME_MIX_LN, "blk.%d.time_mix_ln" },
1664
+ { LLM_TENSOR_TIME_MIX_OUTPUT, "blk.%d.time_mix_output" },
1665
+ { LLM_TENSOR_CHANNEL_MIX_LERP_K, "blk.%d.channel_mix_lerp_k" },
1666
+ { LLM_TENSOR_CHANNEL_MIX_KEY, "blk.%d.channel_mix_key" },
1667
+ { LLM_TENSOR_CHANNEL_MIX_VALUE, "blk.%d.channel_mix_value" },
1668
+ },
1669
+ },
1670
+ {
1671
+ LLM_ARCH_ARWKV7,
1672
+ {
1673
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1674
+ { LLM_TENSOR_TOKEN_EMBD_NORM, "token_embd_norm" },
1675
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1676
+ { LLM_TENSOR_OUTPUT, "output" },
1677
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1678
+ { LLM_TENSOR_TIME_MIX_W0, "blk.%d.time_mix_w0" },
1679
+ { LLM_TENSOR_TIME_MIX_W1, "blk.%d.time_mix_w1" },
1680
+ { LLM_TENSOR_TIME_MIX_W2, "blk.%d.time_mix_w2" },
1681
+ { LLM_TENSOR_TIME_MIX_A0, "blk.%d.time_mix_a0" },
1682
+ { LLM_TENSOR_TIME_MIX_A1, "blk.%d.time_mix_a1" },
1683
+ { LLM_TENSOR_TIME_MIX_A2, "blk.%d.time_mix_a2" },
1684
+ { LLM_TENSOR_TIME_MIX_V0, "blk.%d.time_mix_v0" },
1685
+ { LLM_TENSOR_TIME_MIX_V1, "blk.%d.time_mix_v1" },
1686
+ { LLM_TENSOR_TIME_MIX_V2, "blk.%d.time_mix_v2" },
1687
+ { LLM_TENSOR_TIME_MIX_G1, "blk.%d.time_mix_g1" },
1688
+ { LLM_TENSOR_TIME_MIX_G2, "blk.%d.time_mix_g2" },
1689
+ { LLM_TENSOR_TIME_MIX_K_K, "blk.%d.time_mix_k_k" },
1690
+ { LLM_TENSOR_TIME_MIX_K_A, "blk.%d.time_mix_k_a" },
1691
+ { LLM_TENSOR_TIME_MIX_R_K, "blk.%d.time_mix_r_k" },
1692
+ { LLM_TENSOR_TIME_MIX_LERP_FUSED, "blk.%d.time_mix_lerp_fused" },
1693
+ { LLM_TENSOR_TIME_MIX_KEY, "blk.%d.time_mix_key" },
1694
+ { LLM_TENSOR_TIME_MIX_VALUE, "blk.%d.time_mix_value" },
1695
+ { LLM_TENSOR_TIME_MIX_RECEPTANCE, "blk.%d.time_mix_receptance" },
1696
+ { LLM_TENSOR_TIME_MIX_LN, "blk.%d.time_mix_ln" },
1697
+ { LLM_TENSOR_TIME_MIX_OUTPUT, "blk.%d.time_mix_output" },
1698
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1699
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
1700
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1701
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1702
+ },
1703
+ },
1704
+ {
1705
+ LLM_ARCH_GRANITE,
1706
+ {
1707
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1708
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1709
+ { LLM_TENSOR_OUTPUT, "output" },
1710
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1711
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1712
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
1713
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
1714
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1715
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1716
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
1717
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1718
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1719
+ },
1720
+ },
1721
+ {
1722
+ LLM_ARCH_GRANITE_MOE,
1723
+ {
1724
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1725
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1726
+ { LLM_TENSOR_OUTPUT, "output" },
1727
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1728
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1729
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
1730
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
1731
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1732
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1733
+ { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },
1734
+ { LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" },
1735
+ { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },
1736
+ { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },
1737
+ { LLM_TENSOR_FFN_GATE_SHEXP, "blk.%d.ffn_gate_shexp" },
1738
+ { LLM_TENSOR_FFN_DOWN_SHEXP, "blk.%d.ffn_down_shexp" },
1739
+ { LLM_TENSOR_FFN_UP_SHEXP, "blk.%d.ffn_up_shexp" },
1740
+ },
1741
+ },
1742
+ {
1743
+ LLM_ARCH_GRANITE_HYBRID,
1744
+ {
1745
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1746
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1747
+ { LLM_TENSOR_OUTPUT, "output" },
1748
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1749
+ // mamba(2) ssm layers
1750
+ { LLM_TENSOR_SSM_IN, "blk.%d.ssm_in" },
1751
+ { LLM_TENSOR_SSM_CONV1D, "blk.%d.ssm_conv1d" },
1752
+ { LLM_TENSOR_SSM_DT, "blk.%d.ssm_dt" },
1753
+ { LLM_TENSOR_SSM_A, "blk.%d.ssm_a" },
1754
+ { LLM_TENSOR_SSM_D, "blk.%d.ssm_d" },
1755
+ { LLM_TENSOR_SSM_NORM, "blk.%d.ssm_norm" },
1756
+ { LLM_TENSOR_SSM_OUT, "blk.%d.ssm_out" },
1757
+ // attention layers
1758
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1759
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
1760
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
1761
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1762
+ // dense FFN
1763
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1764
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
1765
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1766
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1767
+ // moe FFN
1768
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1769
+ { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },
1770
+ { LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" },
1771
+ { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },
1772
+ { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },
1773
+ // shared expert
1774
+ { LLM_TENSOR_FFN_GATE_SHEXP, "blk.%d.ffn_gate_shexp" },
1775
+ { LLM_TENSOR_FFN_DOWN_SHEXP, "blk.%d.ffn_down_shexp" },
1776
+ { LLM_TENSOR_FFN_UP_SHEXP, "blk.%d.ffn_up_shexp" },
1777
+ },
1778
+ },
1779
+ {
1780
+ LLM_ARCH_CHAMELEON,
1781
+ {
1782
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1783
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1784
+ { LLM_TENSOR_OUTPUT, "output" },
1785
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1786
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1787
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
1788
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
1789
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1790
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1791
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
1792
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1793
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1794
+ { LLM_TENSOR_ATTN_Q_NORM, "blk.%d.attn_q_norm" },
1795
+ { LLM_TENSOR_ATTN_K_NORM, "blk.%d.attn_k_norm" },
1796
+ },
1797
+ },
1798
+ {
1799
+ LLM_ARCH_WAVTOKENIZER_DEC,
1800
+ {
1801
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1802
+ { LLM_TENSOR_TOKEN_EMBD_NORM, "token_embd_norm" },
1803
+ { LLM_TENSOR_CONV1D, "conv1d" },
1804
+ { LLM_TENSOR_CONVNEXT_DW, "convnext.%d.dw" },
1805
+ { LLM_TENSOR_CONVNEXT_NORM, "convnext.%d.norm" },
1806
+ { LLM_TENSOR_CONVNEXT_PW1, "convnext.%d.pw1" },
1807
+ { LLM_TENSOR_CONVNEXT_PW2, "convnext.%d.pw2" },
1808
+ { LLM_TENSOR_CONVNEXT_GAMMA, "convnext.%d.gamma" },
1809
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1810
+ { LLM_TENSOR_OUTPUT, "output" },
1811
+ { LLM_TENSOR_POS_NET_CONV1, "posnet.%d.conv1" },
1812
+ { LLM_TENSOR_POS_NET_CONV2, "posnet.%d.conv2" },
1813
+ { LLM_TENSOR_POS_NET_NORM, "posnet.%d.norm" },
1814
+ { LLM_TENSOR_POS_NET_NORM1, "posnet.%d.norm1" },
1815
+ { LLM_TENSOR_POS_NET_NORM2, "posnet.%d.norm2" },
1816
+ { LLM_TENSOR_POS_NET_ATTN_NORM, "posnet.%d.attn_norm" },
1817
+ { LLM_TENSOR_POS_NET_ATTN_Q, "posnet.%d.attn_q" },
1818
+ { LLM_TENSOR_POS_NET_ATTN_K, "posnet.%d.attn_k" },
1819
+ { LLM_TENSOR_POS_NET_ATTN_V, "posnet.%d.attn_v" },
1820
+ { LLM_TENSOR_POS_NET_ATTN_OUT, "posnet.%d.attn_output" },
1821
+ },
1822
+ },
1823
+ {
1824
+ LLM_ARCH_BAILINGMOE,
1825
+ {
1826
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1827
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1828
+ { LLM_TENSOR_OUTPUT, "output" },
1829
+ { LLM_TENSOR_ROPE_FREQS, "rope_freqs" },
1830
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1831
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1832
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
1833
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
1834
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1835
+ { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },
1836
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1837
+ { LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" },
1838
+ { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },
1839
+ { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },
1840
+ { LLM_TENSOR_FFN_GATE_INP_SHEXP, "blk.%d.ffn_gate_inp_shexp" },
1841
+ { LLM_TENSOR_FFN_GATE_SHEXP, "blk.%d.ffn_gate_shexp" },
1842
+ { LLM_TENSOR_FFN_DOWN_SHEXP, "blk.%d.ffn_down_shexp" },
1843
+ { LLM_TENSOR_FFN_UP_SHEXP, "blk.%d.ffn_up_shexp" },
1844
+ },
1845
+ },
1846
+ {
1847
+ LLM_ARCH_DOTS1,
1848
+ {
1849
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1850
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1851
+ { LLM_TENSOR_OUTPUT, "output" },
1852
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1853
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1854
+ { LLM_TENSOR_ATTN_Q_NORM, "blk.%d.attn_q_norm" },
1855
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
1856
+ { LLM_TENSOR_ATTN_K_NORM, "blk.%d.attn_k_norm" },
1857
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
1858
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1859
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1860
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
1861
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1862
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1863
+ { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },
1864
+ { LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" },
1865
+ { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },
1866
+ { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },
1867
+ { LLM_TENSOR_FFN_GATE_INP_SHEXP, "blk.%d.ffn_gate_inp_shexp" },
1868
+ { LLM_TENSOR_FFN_GATE_SHEXP, "blk.%d.ffn_gate_shexp" },
1869
+ { LLM_TENSOR_FFN_DOWN_SHEXP, "blk.%d.ffn_down_shexp" },
1870
+ { LLM_TENSOR_FFN_UP_SHEXP, "blk.%d.ffn_up_shexp" },
1871
+ { LLM_TENSOR_FFN_EXP_PROBS_B, "blk.%d.exp_probs_b" },
1872
+ }
1873
+ },
1874
+ {
1875
+ LLM_ARCH_ERNIE4_5,
1876
+ {
1877
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1878
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1879
+ { LLM_TENSOR_OUTPUT, "output" },
1880
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1881
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1882
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
1883
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
1884
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1885
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1886
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
1887
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1888
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1889
+ },
1890
+ },
1891
+ {
1892
+ LLM_ARCH_ERNIE4_5_MOE,
1893
+ {
1894
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1895
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1896
+ { LLM_TENSOR_OUTPUT, "output" },
1897
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1898
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1899
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
1900
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
1901
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1902
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1903
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
1904
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1905
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1906
+ { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },
1907
+ { LLM_TENSOR_FFN_GATE_SHEXP, "blk.%d.ffn_gate_shexp" },
1908
+ { LLM_TENSOR_FFN_DOWN_SHEXP, "blk.%d.ffn_down_shexp" },
1909
+ { LLM_TENSOR_FFN_UP_SHEXP, "blk.%d.ffn_up_shexp" },
1910
+ { LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" },
1911
+ { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },
1912
+ { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },
1913
+ { LLM_TENSOR_FFN_EXP_PROBS_B, "blk.%d.exp_probs_b" },
1914
+ },
1915
+ },
1916
+ {
1917
+ LLM_ARCH_HUNYUAN_MOE,
1918
+ {
1919
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1920
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1921
+ { LLM_TENSOR_OUTPUT, "output" },
1922
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1923
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1924
+ { LLM_TENSOR_ATTN_Q_NORM, "blk.%d.attn_q_norm" },
1925
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
1926
+ { LLM_TENSOR_ATTN_K_NORM, "blk.%d.attn_k_norm" },
1927
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
1928
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1929
+ { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },
1930
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1931
+ { LLM_TENSOR_FFN_GATE_SHEXP, "blk.%d.ffn_gate_shexp" },
1932
+ { LLM_TENSOR_FFN_DOWN_SHEXP, "blk.%d.ffn_down_shexp" },
1933
+ { LLM_TENSOR_FFN_UP_SHEXP, "blk.%d.ffn_up_shexp" },
1934
+ { LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" },
1935
+ { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },
1936
+ { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },
1937
+ },
1938
+ },
1939
+ {
1940
+ LLM_ARCH_HUNYUAN_DENSE,
1941
+ {
1942
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1943
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1944
+ { LLM_TENSOR_OUTPUT, "output" },
1945
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1946
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1947
+ { LLM_TENSOR_ATTN_Q_NORM, "blk.%d.attn_q_norm" },
1948
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
1949
+ { LLM_TENSOR_ATTN_K_NORM, "blk.%d.attn_k_norm" },
1950
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
1951
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1952
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1953
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
1954
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1955
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1956
+
1957
+ },
1958
+ },
1959
+ {
1960
+ LLM_ARCH_SMOLLM3,
1961
+ {
1962
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1963
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1964
+ { LLM_TENSOR_OUTPUT, "output" },
1965
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1966
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1967
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
1968
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
1969
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1970
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
1971
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
1972
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
1973
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
1974
+ },
1975
+ },
1976
+ {
1977
+ LLM_ARCH_OPENAI_MOE,
1978
+ {
1979
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
1980
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
1981
+ { LLM_TENSOR_OUTPUT, "output" },
1982
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1983
+ { LLM_TENSOR_ATTN_POST_NORM, "blk.%d.post_attention_norm" },
1984
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
1985
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
1986
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
1987
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
1988
+ { LLM_TENSOR_ATTN_SINKS, "blk.%d.attn_sinks" },
1989
+ { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },
1990
+ { LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" },
1991
+ { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },
1992
+ { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" },
1993
+ },
1994
+ },
1995
+ {
1996
+ LLM_ARCH_LFM2,
1997
+ {
1998
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
1999
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
2000
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
2001
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
2002
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
2003
+ { LLM_TENSOR_ATTN_K_NORM, "blk.%d.attn_k_norm" },
2004
+ { LLM_TENSOR_ATTN_Q_NORM, "blk.%d.attn_q_norm" },
2005
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
2006
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
2007
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
2008
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
2009
+ { LLM_TENSOR_SHORTCONV_CONV, "blk.%d.shortconv.conv" },
2010
+ { LLM_TENSOR_SHORTCONV_INPROJ, "blk.%d.shortconv.in_proj" },
2011
+ { LLM_TENSOR_SHORTCONV_OUTPROJ, "blk.%d.shortconv.out_proj" },
2012
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
2013
+ { LLM_TENSOR_TOKEN_EMBD_NORM, "token_embd_norm" },
2014
+ { LLM_TENSOR_OUTPUT, "output" },
2015
+ }
2016
+ },
2017
+ {
2018
+ LLM_ARCH_SMALLTHINKER,
2019
+ {
2020
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
2021
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
2022
+ { LLM_TENSOR_OUTPUT, "output" },
2023
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
2024
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
2025
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
2026
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
2027
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
2028
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
2029
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
2030
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
2031
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
2032
+ { LLM_TENSOR_FFN_GATE_INP, "blk.%d.ffn_gate_inp" },
2033
+ { LLM_TENSOR_FFN_GATE_EXPS, "blk.%d.ffn_gate_exps" },
2034
+ { LLM_TENSOR_FFN_DOWN_EXPS, "blk.%d.ffn_down_exps" },
2035
+ { LLM_TENSOR_FFN_UP_EXPS, "blk.%d.ffn_up_exps" }
2036
+ },
2037
+ },
2038
+ {
2039
+ LLM_ARCH_DREAM,
2040
+ {
2041
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
2042
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
2043
+ { LLM_TENSOR_OUTPUT, "output" },
2044
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
2045
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
2046
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
2047
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
2048
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
2049
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
2050
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
2051
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
2052
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
2053
+ },
2054
+ },
2055
+ {
2056
+ LLM_ARCH_LLADA,
2057
+ {
2058
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
2059
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
2060
+ { LLM_TENSOR_OUTPUT, "output" },
2061
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
2062
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
2063
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
2064
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
2065
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
2066
+ { LLM_TENSOR_FFN_NORM, "blk.%d.ffn_norm" },
2067
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
2068
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
2069
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
2070
+ },
2071
+ },
2072
+ {
2073
+ LLM_ARCH_SEED_OSS,
2074
+ {
2075
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
2076
+ { LLM_TENSOR_OUTPUT_NORM, "output_norm" },
2077
+ { LLM_TENSOR_OUTPUT, "output" },
2078
+ { LLM_TENSOR_ATTN_NORM, "blk.%d.attn_norm" },
2079
+ { LLM_TENSOR_ATTN_Q, "blk.%d.attn_q" },
2080
+ { LLM_TENSOR_ATTN_K, "blk.%d.attn_k" },
2081
+ { LLM_TENSOR_ATTN_V, "blk.%d.attn_v" },
2082
+ { LLM_TENSOR_ATTN_OUT, "blk.%d.attn_output" },
2083
+ { LLM_TENSOR_ATTN_POST_NORM, "blk.%d.post_attention_norm" },
2084
+ { LLM_TENSOR_FFN_GATE, "blk.%d.ffn_gate" },
2085
+ { LLM_TENSOR_FFN_DOWN, "blk.%d.ffn_down" },
2086
+ { LLM_TENSOR_FFN_UP, "blk.%d.ffn_up" },
2087
+ },
2088
+ },
2089
+ {
2090
+ LLM_ARCH_UNKNOWN,
2091
+ {
2092
+ { LLM_TENSOR_TOKEN_EMBD, "token_embd" },
2093
+ },
2094
+ },
2095
+ };
2096
+
2097
+ static const std::map<llm_tensor, llm_tensor_info> LLM_TENSOR_INFOS = {
2098
+ {LLM_TENSOR_TOKEN_EMBD, {LLM_TENSOR_LAYER_INPUT, LM_GGML_OP_GET_ROWS}},
2099
+ {LLM_TENSOR_POS_EMBD, {LLM_TENSOR_LAYER_INPUT, LM_GGML_OP_GET_ROWS}},
2100
+ {LLM_TENSOR_TOKEN_EMBD_NORM, {LLM_TENSOR_LAYER_INPUT, LM_GGML_OP_GET_ROWS}},
2101
+ {LLM_TENSOR_TOKEN_TYPES, {LLM_TENSOR_LAYER_INPUT, LM_GGML_OP_GET_ROWS}},
2102
+ {LLM_TENSOR_OUTPUT, {LLM_TENSOR_LAYER_OUTPUT, LM_GGML_OP_MUL_MAT}},
2103
+ {LLM_TENSOR_CLS, {LLM_TENSOR_LAYER_OUTPUT, LM_GGML_OP_MUL_MAT}},
2104
+ {LLM_TENSOR_CLS_OUT, {LLM_TENSOR_LAYER_OUTPUT, LM_GGML_OP_MUL_MAT}},
2105
+ {LLM_TENSOR_OUTPUT_NORM, {LLM_TENSOR_LAYER_OUTPUT, LM_GGML_OP_MUL}},
2106
+ {LLM_TENSOR_DEC_OUTPUT_NORM, {LLM_TENSOR_LAYER_OUTPUT, LM_GGML_OP_MUL}},
2107
+ {LLM_TENSOR_ENC_OUTPUT_NORM, {LLM_TENSOR_LAYER_OUTPUT, LM_GGML_OP_MUL}},
2108
+ {LLM_TENSOR_ROPE_FREQS, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_ROPE}},
2109
+ {LLM_TENSOR_ROPE_FACTORS_LONG, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_ROPE}},
2110
+ {LLM_TENSOR_ROPE_FACTORS_SHORT, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_ROPE}},
2111
+ {LLM_TENSOR_ATTN_Q, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2112
+ {LLM_TENSOR_ATTN_K, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2113
+ {LLM_TENSOR_ATTN_V, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2114
+ {LLM_TENSOR_ATTN_QKV, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2115
+ {LLM_TENSOR_ATTN_OUT, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2116
+ {LLM_TENSOR_FFN_GATE, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2117
+ {LLM_TENSOR_FFN_DOWN, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2118
+ {LLM_TENSOR_FFN_UP, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2119
+ {LLM_TENSOR_FFN_DOWN_SHEXP, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2120
+ {LLM_TENSOR_FFN_GATE_SHEXP, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2121
+ {LLM_TENSOR_FFN_UP_SHEXP, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2122
+ {LLM_TENSOR_ATTN_Q_A, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2123
+ {LLM_TENSOR_ATTN_Q_B, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2124
+ {LLM_TENSOR_ATTN_KV_A_MQA, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2125
+ {LLM_TENSOR_ATTN_KV_B, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2126
+ {LLM_TENSOR_ATTN_K_B, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2127
+ {LLM_TENSOR_ATTN_V_B, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2128
+ {LLM_TENSOR_ATTN_SINKS, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_SCALE}},
2129
+ {LLM_TENSOR_DEC_ATTN_Q, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2130
+ {LLM_TENSOR_DEC_ATTN_K, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2131
+ {LLM_TENSOR_DEC_ATTN_V, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2132
+ {LLM_TENSOR_DEC_ATTN_OUT, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2133
+ {LLM_TENSOR_DEC_CROSS_ATTN_Q, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2134
+ {LLM_TENSOR_DEC_CROSS_ATTN_K, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2135
+ {LLM_TENSOR_DEC_CROSS_ATTN_V, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2136
+ {LLM_TENSOR_DEC_CROSS_ATTN_OUT, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2137
+ {LLM_TENSOR_DEC_FFN_GATE, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2138
+ {LLM_TENSOR_DEC_FFN_DOWN, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2139
+ {LLM_TENSOR_DEC_FFN_UP, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2140
+ {LLM_TENSOR_ENC_ATTN_Q, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2141
+ {LLM_TENSOR_ENC_ATTN_K, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2142
+ {LLM_TENSOR_ENC_ATTN_V, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2143
+ {LLM_TENSOR_ENC_ATTN_OUT, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2144
+ {LLM_TENSOR_ENC_FFN_GATE, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2145
+ {LLM_TENSOR_ENC_FFN_DOWN, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2146
+ {LLM_TENSOR_ENC_FFN_UP, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2147
+ {LLM_TENSOR_FFN_GATE_INP_SHEXP, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2148
+ {LLM_TENSOR_FFN_GATE_INP, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2149
+ {LLM_TENSOR_SSM_IN, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2150
+ {LLM_TENSOR_SSM_X, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2151
+ {LLM_TENSOR_SSM_DT, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2152
+ {LLM_TENSOR_SSM_OUT, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2153
+ {LLM_TENSOR_TIME_MIX_W1, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2154
+ {LLM_TENSOR_TIME_MIX_W2, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2155
+ {LLM_TENSOR_TIME_MIX_A1, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2156
+ {LLM_TENSOR_TIME_MIX_A2, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2157
+ {LLM_TENSOR_TIME_MIX_V1, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2158
+ {LLM_TENSOR_TIME_MIX_V2, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2159
+ {LLM_TENSOR_TIME_MIX_G1, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2160
+ {LLM_TENSOR_TIME_MIX_G2, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2161
+ {LLM_TENSOR_TIME_MIX_DECAY_W1, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2162
+ {LLM_TENSOR_TIME_MIX_DECAY_W2, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2163
+ {LLM_TENSOR_TIME_MIX_KEY, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2164
+ {LLM_TENSOR_TIME_MIX_VALUE, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2165
+ {LLM_TENSOR_TIME_MIX_RECEPTANCE, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2166
+ {LLM_TENSOR_TIME_MIX_GATE, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2167
+ {LLM_TENSOR_TIME_MIX_OUTPUT, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2168
+ {LLM_TENSOR_CHANNEL_MIX_KEY, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2169
+ {LLM_TENSOR_CHANNEL_MIX_RECEPTANCE, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2170
+ {LLM_TENSOR_CHANNEL_MIX_VALUE, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2171
+ {LLM_TENSOR_FFN_ACT, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_DIV}},
2172
+ {LLM_TENSOR_SSM_CONV1D, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_SSM_CONV}},
2173
+ {LLM_TENSOR_SSM_A, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_SSM_SCAN}},
2174
+ {LLM_TENSOR_SSM_DT_NORM, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL}},
2175
+ {LLM_TENSOR_SSM_B_NORM, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL}},
2176
+ {LLM_TENSOR_SSM_C_NORM, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL}},
2177
+ {LLM_TENSOR_SSM_D, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL}},
2178
+ {LLM_TENSOR_SSM_NORM, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL}},
2179
+ {LLM_TENSOR_TIME_MIX_LERP_X, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL}},
2180
+ {LLM_TENSOR_TIME_MIX_LN, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL}},
2181
+ {LLM_TENSOR_CHANNEL_MIX_LERP_K, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL}},
2182
+ {LLM_TENSOR_CHANNEL_MIX_LERP_R, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL}},
2183
+ {LLM_TENSOR_TIME_MIX_K_K, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL}},
2184
+ {LLM_TENSOR_TIME_MIX_K_A, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL}},
2185
+ {LLM_TENSOR_TIME_MIX_R_K, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL}},
2186
+ {LLM_TENSOR_TIME_MIX_LERP_W, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_ADD}},
2187
+ {LLM_TENSOR_TIME_MIX_LERP_K, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_ADD}},
2188
+ {LLM_TENSOR_TIME_MIX_LERP_V, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_ADD}},
2189
+ {LLM_TENSOR_TIME_MIX_LERP_R, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_ADD}},
2190
+ {LLM_TENSOR_TIME_MIX_LERP_G, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_ADD}},
2191
+ {LLM_TENSOR_TIME_MIX_LERP_FUSED, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_ADD}},
2192
+ {LLM_TENSOR_TIME_MIX_DECAY, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_ADD}},
2193
+ {LLM_TENSOR_TIME_MIX_W0, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_ADD}},
2194
+ {LLM_TENSOR_TIME_MIX_A0, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_ADD}},
2195
+ {LLM_TENSOR_TIME_MIX_V0, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_ADD}},
2196
+ {LLM_TENSOR_TIME_MIX_FIRST, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_RWKV_WKV6}},
2197
+ {LLM_TENSOR_ATTN_NORM, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL}},
2198
+ {LLM_TENSOR_ATTN_NORM_2, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL}},
2199
+ {LLM_TENSOR_ATTN_OUT_NORM, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL}},
2200
+ {LLM_TENSOR_ATTN_POST_NORM, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL}},
2201
+ {LLM_TENSOR_FFN_NORM, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL}},
2202
+ {LLM_TENSOR_FFN_POST_NORM, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL}},
2203
+ {LLM_TENSOR_FFN_NORM_EXPS, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL}},
2204
+ {LLM_TENSOR_ATTN_Q_NORM, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL}},
2205
+ {LLM_TENSOR_ATTN_K_NORM, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL}},
2206
+ {LLM_TENSOR_LAYER_OUT_NORM, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL}},
2207
+ {LLM_TENSOR_ATTN_Q_A_NORM, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL}},
2208
+ {LLM_TENSOR_ATTN_KV_A_NORM, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL}},
2209
+ {LLM_TENSOR_ATTN_SUB_NORM, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL}},
2210
+ {LLM_TENSOR_FFN_SUB_NORM, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL}},
2211
+ {LLM_TENSOR_DEC_ATTN_NORM, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL}},
2212
+ {LLM_TENSOR_DEC_CROSS_ATTN_NORM, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL}},
2213
+ {LLM_TENSOR_DEC_FFN_NORM, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL}},
2214
+ {LLM_TENSOR_ENC_ATTN_NORM, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL}},
2215
+ {LLM_TENSOR_ENC_FFN_NORM, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL}},
2216
+ {LLM_TENSOR_DEC_ATTN_REL_B, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_GET_ROWS}},
2217
+ {LLM_TENSOR_ENC_ATTN_REL_B, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_GET_ROWS}},
2218
+ {LLM_TENSOR_FFN_DOWN_EXPS, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT_ID}},
2219
+ {LLM_TENSOR_FFN_GATE_EXPS, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT_ID}},
2220
+ {LLM_TENSOR_FFN_UP_EXPS, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT_ID}},
2221
+ {LLM_TENSOR_FFN_EXP_PROBS_B, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_ADD}},
2222
+ // altup / laurel (gemma 3n)
2223
+ {LLM_TENSOR_PER_LAYER_TOKEN_EMBD, {LLM_TENSOR_LAYER_OUTPUT, LM_GGML_OP_GET_ROWS}},
2224
+ {LLM_TENSOR_PER_LAYER_MODEL_PROJ, {LLM_TENSOR_LAYER_OUTPUT, LM_GGML_OP_MUL_MAT}},
2225
+ {LLM_TENSOR_PER_LAYER_PROJ_NORM, {LLM_TENSOR_LAYER_OUTPUT, LM_GGML_OP_MUL}},
2226
+ {LLM_TENSOR_ALTUP_PROJ, {LLM_TENSOR_LAYER_OUTPUT, LM_GGML_OP_MUL_MAT}},
2227
+ {LLM_TENSOR_ALTUP_UNEMBD_PROJ, {LLM_TENSOR_LAYER_OUTPUT, LM_GGML_OP_MUL_MAT}},
2228
+ {LLM_TENSOR_PER_LAYER_INP_GATE, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2229
+ {LLM_TENSOR_PER_LAYER_PROJ, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2230
+ {LLM_TENSOR_PER_LAYER_POST_NORM, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL}},
2231
+ {LLM_TENSOR_ALTUP_CORRECT_COEF, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2232
+ {LLM_TENSOR_ALTUP_CORRECT_SCALE, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL}},
2233
+ {LLM_TENSOR_ALTUP_PREDICT_COEF, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2234
+ {LLM_TENSOR_ALTUP_ROUTER, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2235
+ {LLM_TENSOR_ALTUP_ROUTER_NORM, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL}},
2236
+ {LLM_TENSOR_LAUREL_L, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2237
+ {LLM_TENSOR_LAUREL_R, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2238
+ {LLM_TENSOR_LAUREL_POST_NORM, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL}},
2239
+ // this tensor is loaded for T5, but never used
2240
+ {LLM_TENSOR_DEC_CROSS_ATTN_REL_B, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_NONE}},
2241
+ {LLM_TENSOR_CONV1D, {LLM_TENSOR_LAYER_INPUT, LM_GGML_OP_IM2COL}},
2242
+ {LLM_TENSOR_POS_NET_NORM, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL}},
2243
+ {LLM_TENSOR_POS_NET_NORM1, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL}},
2244
+ {LLM_TENSOR_POS_NET_NORM2, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL}},
2245
+ {LLM_TENSOR_POS_NET_CONV1, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_IM2COL}},
2246
+ {LLM_TENSOR_POS_NET_CONV2, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_IM2COL}},
2247
+ {LLM_TENSOR_POS_NET_ATTN_NORM, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL}},
2248
+ {LLM_TENSOR_POS_NET_ATTN_Q, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2249
+ {LLM_TENSOR_POS_NET_ATTN_K, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2250
+ {LLM_TENSOR_POS_NET_ATTN_V, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2251
+ {LLM_TENSOR_POS_NET_ATTN_OUT, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2252
+ {LLM_TENSOR_CONVNEXT_DW, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_IM2COL}},
2253
+ {LLM_TENSOR_CONVNEXT_NORM, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL}},
2254
+ {LLM_TENSOR_CONVNEXT_PW1, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2255
+ {LLM_TENSOR_CONVNEXT_PW2, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2256
+ {LLM_TENSOR_CONVNEXT_GAMMA, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL}},
2257
+ {LLM_TENSOR_SHORTCONV_CONV, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_SSM_CONV}},
2258
+ {LLM_TENSOR_SHORTCONV_INPROJ, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2259
+ {LLM_TENSOR_SHORTCONV_OUTPROJ, {LLM_TENSOR_LAYER_REPEATING, LM_GGML_OP_MUL_MAT}},
2260
+ // NextN/MTP tensors are currently ignored (reserved for future MTP support)
2261
+ // These tensors only exist in the last layer(s) and are treated as output tensors
2262
+ {LLM_TENSOR_NEXTN_EH_PROJ, {LLM_TENSOR_LAYER_OUTPUT, LM_GGML_OP_MUL_MAT}},
2263
+ {LLM_TENSOR_NEXTN_EMBED_TOKENS, {LLM_TENSOR_LAYER_OUTPUT, LM_GGML_OP_GET_ROWS}},
2264
+ {LLM_TENSOR_NEXTN_ENORM, {LLM_TENSOR_LAYER_OUTPUT, LM_GGML_OP_GET_ROWS}},
2265
+ {LLM_TENSOR_NEXTN_HNORM, {LLM_TENSOR_LAYER_OUTPUT, LM_GGML_OP_MUL}},
2266
+ {LLM_TENSOR_NEXTN_SHARED_HEAD_HEAD, {LLM_TENSOR_LAYER_OUTPUT, LM_GGML_OP_MUL_MAT}},
2267
+ {LLM_TENSOR_NEXTN_SHARED_HEAD_NORM, {LLM_TENSOR_LAYER_OUTPUT, LM_GGML_OP_MUL}},
2268
+ };
2269
+
2270
+ LLM_KV::LLM_KV(llm_arch arch, const char * suffix) : arch(arch), suffix(suffix) {}
2271
+
2272
+ std::string LLM_KV::operator()(llm_kv kv) const {
2273
+ std::string name = ::format(LLM_KV_NAMES.at(kv), LLM_ARCH_NAMES.at(arch));
2274
+
2275
+ if (suffix != nullptr) {
2276
+ name += ".";
2277
+ name += suffix;
2278
+ }
2279
+
2280
+ return name;
2281
+ }
2282
+
2283
+ std::string LLM_TN_IMPL::str() const {
2284
+ if (LLM_TENSOR_NAMES.at(arch).find(tensor) == LLM_TENSOR_NAMES.at(arch).end()) {
2285
+ return "__missing__";
2286
+ }
2287
+
2288
+ std::string name = ::format(LLM_TENSOR_NAMES.at(arch).at(tensor), bid, xid);
2289
+
2290
+ if (suffix != nullptr) {
2291
+ name += ".";
2292
+ name += suffix;
2293
+ }
2294
+
2295
+ return name;
2296
+ }
2297
+
2298
+ const char * llm_arch_name(llm_arch arch) {
2299
+ auto it = LLM_ARCH_NAMES.find(arch);
2300
+ if (it == LLM_ARCH_NAMES.end()) {
2301
+ return "unknown";
2302
+ }
2303
+ return it->second;
2304
+ }
2305
+
2306
+ llm_arch llm_arch_from_string(const std::string & name) {
2307
+ for (const auto & kv : LLM_ARCH_NAMES) { // NOLINT
2308
+ if (kv.second == name) {
2309
+ return kv.first;
2310
+ }
2311
+ }
2312
+
2313
+ return LLM_ARCH_UNKNOWN;
2314
+ }
2315
+
2316
+ const llm_tensor_info & llm_tensor_info_for(llm_tensor tensor) {
2317
+ return LLM_TENSOR_INFOS.at(tensor);
2318
+ }
2319
+
2320
+ bool llm_arch_is_recurrent(const llm_arch & arch) {
2321
+ switch (arch) {
2322
+ case LLM_ARCH_MAMBA:
2323
+ case LLM_ARCH_MAMBA2:
2324
+ case LLM_ARCH_RWKV6:
2325
+ case LLM_ARCH_RWKV6QWEN2:
2326
+ case LLM_ARCH_RWKV7:
2327
+ case LLM_ARCH_ARWKV7:
2328
+ return true;
2329
+ default:
2330
+ return false;
2331
+ }
2332
+ }
2333
+
2334
+ bool llm_arch_is_hybrid(const llm_arch & arch) {
2335
+ switch (arch) {
2336
+ case LLM_ARCH_JAMBA:
2337
+ case LLM_ARCH_FALCON_H1:
2338
+ case LLM_ARCH_PLAMO2:
2339
+ case LLM_ARCH_GRANITE_HYBRID:
2340
+ case LLM_ARCH_LFM2:
2341
+ return true;
2342
+ default:
2343
+ return false;
2344
+ }
2345
+ }
2346
+
2347
+ bool llm_arch_is_diffusion(const llm_arch & arch) {
2348
+ switch (arch) {
2349
+ case LLM_ARCH_DREAM:
2350
+ case LLM_ARCH_LLADA:
2351
+ return true;
2352
+ default:
2353
+ return false;
2354
+ }
2355
+ }