mirror of
				https://github.com/ggml-org/llama.cpp.git
				synced 2025-10-30 08:42:00 +00:00 
			
		
		
		
	model : add Kimi-K2 support (#14654)
* Kimi-K2 conversion * add Kimi_K2 pre type * Kimi-K2 * Kimi-K2 unicode * Kimi-K2 * LLAMA_MAX_EXPERTS 384 * fix vocab iteration * regex space fix * add kimi-k2 to pre_computed_hashes * Updated with kimi-k2 get_vocab_base_pre hash * fix whitespaces * fix flake errors * remove more unicode.cpp whitespaces * change set_vocab() flow * add moonshotai-Kimi-K2.jinja to /models/templates/ * update moonshotai-Kimi-K2.jinja * add kimi-k2 chat template * add kimi-k2 * update NotImplementedError Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com> * except Exception Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com> * LLM_CHAT_TEMPLATE_KIMI_K2 if(add_ass){} --------- Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com>
This commit is contained in:
		| @@ -65,6 +65,7 @@ static const std::map<std::string, llm_chat_template> LLM_CHAT_TEMPLATES = { | ||||
|     { "llama4",            LLM_CHAT_TEMPLATE_LLAMA4            }, | ||||
|     { "smolvlm",           LLM_CHAT_TEMPLATE_SMOLVLM           }, | ||||
|     { "hunyuan-moe",       LLM_CHAT_TEMPLATE_HUNYUAN_MOE       }, | ||||
|     { "kimi-k2",           LLM_CHAT_TEMPLATE_KIMI_K2           }, | ||||
| }; | ||||
|  | ||||
| llm_chat_template llm_chat_template_from_str(const std::string & name) { | ||||
| @@ -188,6 +189,8 @@ llm_chat_template llm_chat_detect_template(const std::string & tmpl) { | ||||
|         return LLM_CHAT_TEMPLATE_DOTS1; | ||||
|     } else if (tmpl_contains("<|startoftext|>") && tmpl_contains("<|extra_4|>")) { | ||||
|         return LLM_CHAT_TEMPLATE_HUNYUAN_MOE; | ||||
|     } else if (tmpl_contains("<|im_assistant|>assistant<|im_middle|>")) { | ||||
|         return LLM_CHAT_TEMPLATE_KIMI_K2; | ||||
|     } | ||||
|     return LLM_CHAT_TEMPLATE_UNKNOWN; | ||||
| } | ||||
| @@ -680,6 +683,26 @@ int32_t llm_chat_apply_template( | ||||
|                 ss << "<|startoftext|>" << message->content << "<|extra_0|>"; | ||||
|             } | ||||
|         } | ||||
|     } else if (tmpl == LLM_CHAT_TEMPLATE_KIMI_K2) { | ||||
|         // moonshotai/Kimi-K2-Instruct | ||||
|         for (auto message : chat) { | ||||
|             std::string role(message->role); | ||||
|             if (role == "system") { | ||||
|                 ss << "<|im_system|>system<|im_middle|>"; | ||||
|             } else if (role == "user") { | ||||
|                 ss << "<|im_user|>user<|im_middle|>"; | ||||
|             } else if (role == "assistant") { | ||||
|                 ss << "<|im_assistant|>assistant<|im_middle|>"; | ||||
|             } else if (role == "tool") { | ||||
|                 ss << "<|im_system|>tool<|im_middle|>"; | ||||
|             } | ||||
|  | ||||
|             ss << message->content << "<|im_end|>"; | ||||
|  | ||||
|             if (add_ass) { | ||||
|                 ss << "<|im_assistant|>assistant<|im_middle|>"; | ||||
|             } | ||||
|         } | ||||
|     } else { | ||||
|         // template not supported | ||||
|         return -1; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Gabriel Larson
					Gabriel Larson