🌙Kimi K2 Thinking : guide d'exécution locale
Guide pour exécuter Kimi-K2-Thinking et Kimi-K2 sur votre propre appareil local !
Kimi-K2-Thinking a été publié. Lisez notre guide Thinking ou accédez aux GGUF ici.
Nous avons également collaboré avec l’équipe Kimi sur correctif du prompt système pour Kimi-K2-Thinking.
Kimi-K2 et Kimi-K2-Thinking atteignent des performances SOTA en connaissances, raisonnement, codage et tâches agentiques. Les modèles complets à 1T paramètres de Moonshot AI nécessitent 1,09 To d’espace disque, tandis que la version quantifiée Unsloth Dynamic 1,8 bits réduit cela à seulement 230 Go (-80 % de taille): Kimi-K2-GGUF
Vous pouvez désormais également exécuter nos Kimi-K2-Thinking GGUF.
Tous les téléchargements utilisent Unsloth Dynamic 2.0 pour des performances SOTA Aider Polyglot et 5-shot MMLU. Voyez comment nos GGUF dynamiques 1 à 2 bits se comportent sur les benchmarks de codage ici.
Exécuter ThinkingExécuter Instruct
⚙️ Configuration recommandée
Vous avez besoin de 247 Go d’espace disque pour exécuter la quantification 1 bit !
La seule exigence est espace disque + RAM + VRAM ≥ 247 Go. Cela signifie que vous n’avez pas besoin d’autant de RAM ou de VRAM (GPU) pour exécuter le modèle, mais ce sera beaucoup plus lent.
La quantification 1,8 bits (UD-TQ1_0) tient sur un GPU 1x 24 Go (avec toutes les couches MoE déchargées vers la RAM système ou un disque rapide). Comptez environ ~1-2 tokens/s avec cette configuration si vous disposez aussi de 256 Go de RAM supplémentaires. La quantification complète Kimi K2 Q8 fait 1,09 To et nécessitera au moins 8 GPU H200.
Pour des performances optimales, vous aurez besoin d’au moins 247 Go de mémoire unifiée ou 247 Go de RAM+VRAM combinés pour 5+ tokens/s. Si vous avez moins de 247 Go de RAM+VRAM combinés, alors la vitesse du modèle en souffrira certainement.
Si vous n’avez pas 247 Go de RAM+VRAM, pas d’inquiétude ! llama.cpp a intrinsèquement le déchargement vers le disque, donc via le mmaping, cela fonctionnera quand même, simplement plus lentement - par exemple, auparavant vous pouviez obtenir 5 à 10 tokens/seconde, maintenant c’est moins de 1 token.
Nous suggérons d’utiliser notre UD-Q2_K_XL (360 Go) quantification pour équilibrer taille et précision !
Pour les meilleures performances, faites en sorte que votre VRAM + RAM combinées = la taille de la quantification que vous téléchargez. Sinon, cela fonctionnera quand même via le déchargement sur disque, mais ce sera plus lent !
💭Guide Kimi-K2-Thinking
Kimi-K2-Thinking devrait généralement suivre les mêmes instructions que le modèle Instruct, avec quelques différences clés, notamment dans des domaines tels que les paramètres et le modèle de chat.
Pour exécuter le modèle en pleine précision, il vous suffit d’utiliser les GGUF dynamiques 4 bits ou 5 bits (par ex. UD_Q4_K_XL) car le modèle a été initialement publié au format INT4.
Vous pouvez choisir une quantification à plus grand nombre de bits par sécurité, au cas où de petites différences de quantification apparaîtraient, mais dans la plupart des cas, cela est inutile.
🌙 Paramètres officiellement recommandés :
Selon Moonshot AI, voici les paramètres recommandés pour l’inférence de Kimi-K2-Thinking :
Réglez température 1,0 pour réduire les répétitions et les incohérences.
Longueur de contexte suggérée = 98 304 (jusqu’à 256K)
Remarque : l’utilisation d’outils différents peut nécessiter des paramètres différents
Nous recommandons de régler min_p à 0,01 pour supprimer l’apparition de jetons improbables à faible probabilité.
Par exemple, avec un message utilisateur « What is 1+1? », on obtient :
✨ Exécuter Kimi K2 Thinking dans llama.cpp
Vous pouvez désormais utiliser la dernière mise à jour de llama.cpp pour exécuter le modèle :
Obtenez la dernière version
llama.cppsur GitHub ici. Vous pouvez également suivre les instructions de compilation ci-dessous. Changez-DGGML_CUDA=ONen-DGGML_CUDA=OFFsi vous n’avez pas de GPU ou si vous souhaitez simplement une inférence CPU. Pour les appareils Apple Mac / Metal, définissez-DGGML_CUDA=OFFpuis continuez comme d'habitude - la prise en charge de Metal est activée par défaut.
Si vous souhaitez utiliser
llama.cppdirectement pour charger les modèles, vous pouvez faire ce qui suit : (:UD-TQ1_0) est le type de quantification. Vous pouvez également télécharger via Hugging Face (point 3). C’est similaire àollama run. Utilisezexport LLAMA_CACHE="folder"pour forcerllama.cpppour enregistrer à un emplacement spécifique.
Ce qui précède utilisera environ 8 Go de mémoire GPU. Si vous avez environ 360 Go de mémoire GPU combinée, supprimez
-ot ".ffn_.*_exps.=CPU"pour obtenir la vitesse maximale !
Veuillez essayer -ot ".ffn_.*_exps.=CPU" pour décharger toutes les couches MoE vers le CPU ! Cela permet effectivement de faire tenir toutes les couches non MoE sur 1 GPU, améliorant ainsi les vitesses de génération. Vous pouvez personnaliser l'expression regex pour faire tenir davantage de couches si vous disposez de plus de capacité GPU.
Si vous avez un peu plus de mémoire GPU, essayez -ot ".ffn_(up|down)_exps.=CPU" Cela décharge les couches MoE de projection montante et descendante.
Essayez -ot ".ffn_(up)_exps.=CPU" si vous avez encore plus de mémoire GPU. Cela décharge uniquement les couches MoE de projection montante.
Et enfin, déchargez toutes les couches via -ot ".ffn_.*_exps.=CPU" Cela utilise le moins de VRAM.
Vous pouvez aussi personnaliser la regex, par exemple -ot "\.(6|7|8|9|[0-9][0-9]|[0-9][0-9][0-9])\.ffn_(gate|up|down)_exps.=CPU" signifie décharger les couches MoE gate, up et down, mais uniquement à partir de la 6e couche.
Téléchargez le modèle via (après avoir installé
pip install huggingface_hub hf_transfer). Nous recommandons d’utiliser notre quantification dynamique 2 bits UD-Q2_K_XL pour équilibrer taille et précision. Toutes les versions sur : huggingface.co/unsloth/Kimi-K2-Thinking-GGUF
Si vous constatez que les téléchargements restent bloqués à 90 à 95 % environ, veuillez consulter https://docs.unsloth.ai/basics/troubleshooting-and-faqs#downloading-gets-stuck-at-90-to-95
Exécutez n’importe quelle invite.
Modifier
--threads -1pour le nombre de threads CPU (par défaut, il est défini sur le maximum de threads CPU),--ctx-size 16384pour la longueur du contexte,--n-gpu-layers 99pour le déchargement GPU, sur combien de couches. Réglez-le sur 99, combiné au déchargement MoE vers le CPU, pour obtenir les meilleures performances. Essayez de l’ajuster si votre GPU manque de mémoire. Supprimez-le également si vous n’avez qu’une inférence CPU.
🤔Pas de balises Thinking ?
Vous remarquerez peut-être qu’il n’y a pas de balises thinking lorsque vous exécutez le modèle. C’est un comportement normal et intentionnel.
Dans votre llama.cpp script, assurez-vous d’inclure le --special en toute fin de votre commande. Une fois que c’est fait, vous verrez le <think> jeton apparaître comme prévu.
Vous pourriez aussi voir chaque réponse se terminer par <|im_end|>. C’est normal car <|im_end|> est un jeton spécial qui apparaît lors de l’affichage des jetons spéciaux. Si vous souhaitez le masquer, vous pouvez définir <|im_end|> comme chaîne d’arrêt dans vos paramètres.
✨ Déployer avec llama-server et la bibliothèque de complétion d'OpenAI
Après avoir installé llama.cpp comme indiqué dans Kimi K2 Thinking, vous pouvez utiliser ce qui suit pour lancer un serveur compatible OpenAI :
Ensuite, utilisez la bibliothèque Python d'OpenAI après pip install openai :
🔍Particularités du tokenizer et corrections de bugs
7 novembre 2025 : Nous avons informé l’équipe Kimi et avons corrigé le prompt système par défaut de Vous êtes Kimi, un assistant IA créé par Moonshot AI. qui n’apparaissait pas sur la première invite utilisateur ! Voir https://huggingface.co/moonshotai/Kimi-K2-Thinking/discussions/12
Un immense merci à l’équipe Moonshot Kimi pour son temps de réponse extrêmement rapide à nos questions et pour avoir corrigé le problème au plus vite !
16 juillet 2025 : Kimi K2 a mis à jour son tokenizer pour permettre plusieurs appels d’outils comme indiqué dans https://x.com/Kimi_Moonshot/status/1945050874067476962
18 juillet 2025 : Nous avons corrigé un prompt système - Kimi a également ट्वीटé à propos de notre correctif ici : https://x.com/Kimi_Moonshot/status/1946130043446690030. Le correctif a également été décrit ici : https://huggingface.co/moonshotai/Kimi-K2-Instruct/discussions/28
Si vous avez téléchargé les anciens checkpoints - pas d’inquiétude - téléchargez simplement le premier split GGUF qui a été modifié. OU si vous ne voulez télécharger aucun nouveau fichier, faites :
Le tokenizer de Kimi K2 était intéressant à manipuler - son fonctionnement est en grande partie similaire à celui du tokenizer de GPT-4o! Nous voyons d’abord dans le tokenization_kimi.py fichier l’expression régulière (regex) suivante que Kimi K2 utilise :
Après inspection attentive, nous constatons que Kimi K2 est presque identique à la regex du tokenizer de GPT-4o, que l’on peut trouver dans le code source de llama.cpp.
Les deux tokenisent les nombres en groupes de 1 à 3 chiffres (9, 99, 999) et utilisent des motifs similaires. La seule différence semble être le traitement de « Han » ou des caractères chinois, que le tokenizer de Kimi gère davantage. La PR par https://github.com/gabriellarson gère bien ces différences après quelques discussions ici.
Nous avons également constaté que le bon jeton EOS ne devrait pas être [EOS], mais plutôt <|im_end|>, ce que nous avons aussi corrigé dans nos conversions de modèle.
🌝Guide Kimi-K2-Instruct
Guide étape par étape pour exécuter les modèles Kimi K2 Instruct, y compris Kimi K2 0905 - la mise à jour du 5 septembre.
🌙 Paramètres officiellement recommandés :
Selon Moonshot AI, voici les paramètres recommandés pour l’inférence de Kimi K2 :
Réglez la température sur 0,6 pour réduire les répétitions et les incohérences.
Le prompt système par défaut d’origine est :
(Facultatif) Moonshot suggère également ce qui suit pour le prompt système :
Nous recommandons de régler min_p à 0,01 pour supprimer l’apparition de jetons improbables à faible probabilité.
🔢 Modèle de chat et format d’invite
Kimi Chat utilise bien un BOS (jeton de début de phrase). Les rôles système, utilisateur et assistant sont tous encadrés par <|im_middle|> ce qui est intéressant, et chacun obtient son propre jeton respectif <|im_system|>, <|im_user|>, <|im_assistant|>.
Pour séparer les limites de la conversation (vous devez supprimer chaque retour à la ligne), on obtient :
💾 Téléversements du modèle
TOUS nos téléversements - y compris ceux qui ne sont pas basés sur imatrix ou dynamiques, utilisent notre ensemble de données d’étalonnage, qui est spécifiquement optimisé pour les tâches conversationnelles, de codage et de raisonnement.
Nous avons également téléversé des versions au format BF16.
✨ Exécuter Instruct dans llama.cpp
Obtenez la dernière version
llama.cppsur GitHub ici. Vous pouvez également suivre les instructions de compilation ci-dessous. Changez-DGGML_CUDA=ONen-DGGML_CUDA=OFFsi vous n’avez pas de GPU ou si vous souhaitez simplement une inférence CPU.
Si vous souhaitez utiliser
llama.cppdirectement pour charger les modèles, vous pouvez faire ce qui suit : (:UD-IQ1_S) est le type de quantification. Vous pouvez également télécharger via Hugging Face (point 3). C’est similaire àollama run. Utilisezexport LLAMA_CACHE="folder"pour forcerllama.cpppour enregistrer à un emplacement spécifique. Pour exécuter la nouvelle mise à jour de septembre 2025 du modèle, remplacez le nom du modèle de 'Kimi-K2-Instruct' par 'Kimi-K2-Instruct-0905'.
Veuillez essayer -ot ".ffn_.*_exps.=CPU" pour décharger toutes les couches MoE vers le CPU ! Cela permet effectivement de faire tenir toutes les couches non MoE sur 1 GPU, améliorant ainsi les vitesses de génération. Vous pouvez personnaliser l'expression regex pour faire tenir davantage de couches si vous disposez de plus de capacité GPU.
Si vous avez un peu plus de mémoire GPU, essayez -ot ".ffn_(up|down)_exps.=CPU" Cela décharge les couches MoE de projection montante et descendante.
Essayez -ot ".ffn_(up)_exps.=CPU" si vous avez encore plus de mémoire GPU. Cela décharge uniquement les couches MoE de projection montante.
Et enfin, déchargez toutes les couches via -ot ".ffn_.*_exps.=CPU" Cela utilise le moins de VRAM.
Vous pouvez aussi personnaliser la regex, par exemple -ot "\.(6|7|8|9|[0-9][0-9]|[0-9][0-9][0-9])\.ffn_(gate|up|down)_exps.=CPU" signifie décharger les couches MoE gate, up et down, mais uniquement à partir de la 6e couche.
Téléchargez le modèle via (après avoir installé
pip install huggingface_hub hf_transfer). Vous pouvez choisirUD-TQ1_0(quantification dynamique 1,8 bits) ou d’autres versions quantifiées commeQ2_K_XL. Nous recommander d’utiliser notre quantification dynamique 2 bitsUD-Q2_K_XLpour équilibrer taille et précision. Plus de versions sur : huggingface.co/unsloth/Kimi-K2-Instruct-GGUF
Si vous constatez que les téléchargements restent bloqués à 90 à 95 % environ, veuillez consulter https://docs.unsloth.ai/basics/troubleshooting-and-faqs#downloading-gets-stuck-at-90-to-95
Exécutez n’importe quelle invite.
Modifier
--threads -1pour le nombre de threads CPU (par défaut, il est défini sur le maximum de threads CPU),--ctx-size 16384pour la longueur du contexte,--n-gpu-layers 99pour le déchargement GPU, sur combien de couches. Réglez-le sur 99, combiné au déchargement MoE vers le CPU, pour obtenir les meilleures performances. Essayez de l’ajuster si votre GPU manque de mémoire. Supprimez-le également si vous n’avez qu’une inférence CPU.
🐦 Flappy Bird + autres tests
Nous avons introduit le test Flappy Bird lorsque nos quantifications 1,58 bit pour DeepSeek R1 ont été fournies. Nous avons trouvé que Kimi K2 était l’un des seuls modèles à réussir tous nos tests en un seul essai, y compris celui-ci, Heptagone et d’autres tests même en 2 bits. L’objectif est de demander au LLM de créer un jeu Flappy Bird en suivant certaines instructions spécifiques :
Vous pouvez également tester les quantifications dynamiques via le test Heptagon comme indiqué dans r/Localllama qui teste le modèle sur la création d’un moteur physique de base pour simuler des balles tournant dans une forme d’heptagone fermée en mouvement.

L’objectif est de faire tourner l’heptagone, et les balles à l’intérieur de l’heptagone doivent se déplacer. L’invite est ci-dessous :
Mis à jour
Ce contenu vous a-t-il été utile ?

