🌙Kimi K2 Thinking : Guide d'exécution locale
Guide sur l'exécution de Kimi-K2-Thinking et Kimi-K2 sur votre propre appareil local !
Kimi-K2-Thinking a été publié. Lisez notre guide Thinking ou accédez à GGUFs ici.
Nous avons également collaboré avec l'équipe Kimi sur correction 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 de 1T de paramètres de Moonshot AI nécessitent 1,09 To d'espace disque, tandis que la version quantifiée Unsloth Dynamic 1.8-bit réduit cela à seulement 230 Go (-80% de taille): Kimi-K2-GGUF
Vous pouvez également maintenant exécuter nos Kimi-K2-Thinking GGUFs.
Tous les téléchargements utilisent Unsloth méthodologie Dynamic 2.0 pour des performances SOTA Aider Polyglot et des performances MMLU en 5-shots. Voyez comment nos GGUFs dynamiques 1–2 bits performent sur les benchmarks de codage ici.
Exécuter ThinkingExécuter Instruct
⚙️ Exigences recommandées
Vous avez besoin de 247 Go d'espace disque pour exécuter la quantification 1bit !
La seule exigence est espace disque + RAM + VRAM ≥ 247 Go. Cela signifie que vous n'avez pas besoin d'avoir autant de RAM ou de VRAM (GPU) pour exécuter le modèle, mais ce sera beaucoup plus lent.
La quantification 1.8-bit (UD-TQ1_0) tiendra dans un GPU 1x 24 Go (avec toutes les couches MoE déchargées sur la RAM système ou un disque rapide). Attendez-vous à environ ~1-2 tokens/s avec cette configuration si vous avez en plus 256 Go de RAM. La quant complète Kimi K2 Q8 fait 1,09 To et nécessitera au moins 8 x GPU H200.
Pour des performances optimales vous aurez besoin d'au moins 247 Go de mémoire unifiée ou 247 Go combinés RAM+VRAM pour 5+ tokens/s. Si vous avez moins de 247 Go de RAM+VRAM combinés, la vitesse du modèle en pâtira définitivement.
Si vous n'avez pas 247 Go de RAM+VRAM, pas d'inquiétude ! llama.cpp a intrinsèquement déchargement sur disque, donc via mmap, cela fonctionnera toujours, simplement plus lentement - par exemple auparavant vous pourriez obtenir 5 à 10 tokens/seconde, maintenant c'est moins d'1 token.
Nous suggérons d'utiliser notre quant UD-Q2_K_XL (360 Go) pour équilibrer taille et précision !
Pour de meilleures performances, faites en sorte que votre VRAM + RAM combinées = la taille du quant que vous téléchargez. Sinon, cela fonctionnera toujours 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 les paramètres et le modèle de chat.
Pour exécuter le modèle en pleine précision, vous n'avez besoin que d'utiliser les GGUFs dynamiques 4-bit ou 5-bit (par ex. UD_Q4_K_XL) car le modèle a été initialement publié au format INT4.
Vous pouvez choisir une quantification avec plus de bits par sécurité en cas de petites différences de quantification, mais dans la plupart des cas cela est inutile.
🌙 Paramètres recommandés officiels :
Selon Moonshot AI, voici les paramètres recommandés pour l'inférence Kimi-K2-Thinking :
Définissez le température 1.0 pour réduire la répétition et l'incohérence.
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 tokens improbables avec de faibles probabilités.
Par exemple, donné un message utilisateur « What is 1+1? », nous obtenons :
✨ Exécuter Kimi K2 Thinking dans llama.cpp
Vous pouvez maintenant utiliser la dernière mise à jour de llama.cpp pour exécuter le modèle :
Obtenez la dernière
llama.cppsur GitHub ici. Vous pouvez aussi suivre les instructions de compilation ci-dessous. Changez-DGGML_CUDA=ONen-DGGML_CUDA=OFFsi vous n'avez pas de GPU ou si vous voulez simplement de l'inférence CPU. Pour les appareils Apple Mac / Metal, définissez-DGGML_CUDA=OFFpuis continuez comme d'habitude - le support Metal est activé par défaut.
Si vous voulez utiliser
llama.cppdirectement pour charger des modèles, vous pouvez faire ce qui suit : (:UD-TQ1_0) est le type de quantification. Vous pouvez aussi télécharger via Hugging Face (point 3). C'est similaire àollama run. Utilisezexport LLAMA_CACHE="dossier"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, retirez
-ot ".ffn_.*_exps.=CPU"pour obtenir la vitesse maximale !
Veuillez essayer -ot ".ffn_.*_exps.=CPU" pour décharger toutes les couches MoE sur le CPU ! Cela vous permet effectivement de placer toutes les couches non-MoE sur 1 GPU, améliorant les vitesses de génération. Vous pouvez personnaliser l'expression regex pour décharger plus de couches si vous avez 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 up et down.
Essayez -ot ".ffn_(up)_exps.=CPU" si vous avez encore plus de mémoire GPU. Cela ne décharge que les couches MoE de projection up.
Et enfin déchargez toutes les couches via -ot ".ffn_.*_exps.=CPU" Ceci 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 quant dynamique 2-bit UD-Q2_K_XL pour équilibrer taille et précision. Toutes les versions à : huggingface.co/unsloth/Kimi-K2-Thinking-GGUF
Si vous constatez que les téléchargements se bloquent à 90 ou 95 % environ, veuillez consulter https://docs.unsloth.ai/basics/troubleshooting-and-faqs#downloading-gets-stuck-at-90-to-95
Exécutez n'importe quel prompt.
Modifier
--threads -1pour le nombre de threads CPU (par défaut c'est réglé sur le nombre maximum de threads CPU),--ctx-size 16384pour la longueur de contexte,--n-gpu-layers 99pour le déchargement GPU sur combien de couches. Réglez-le à 99 associé au déchargement MoE vers le CPU pour obtenir les meilleures performances. Essayez de l'ajuster si votre GPU manque de mémoire. Retirez-le aussi si vous exécutez uniquement sur CPU.
🤔Pas de balises Thinking ?
Vous remarquerez peut-être qu'il n'y a pas de réflexion balises lorsque vous exécutez le modèle. C'est un comportement normal et voulu.
Dans votre llama.cpp script, assurez-vous d'inclure le --special indicateur à la toute fin de votre commande. Une fois fait, vous verrez le <think> token 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 token spécial qui apparaît lors de l'affichage des tokens spéciaux. Si vous souhaitez le cacher, 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étions 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 :
Puis 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 corrigé le prompt système par défaut de You are Kimi, an AI assistant created by Moonshot AI. n'apparaissant pas au premier message utilisateur ! Voir https://huggingface.co/moonshotai/Kimi-K2-Thinking/discussions/12
Un grand merci à l'équipe Moonshot Kimi pour leur 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 leur 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 tweeté sur 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é changé. OU si vous ne voulez pas télécharger de nouveaux fichiers faites :
Le tokenizer Kimi K2 était intéressant à explorer - il est surtout similaire dans son fonctionnement au tokenizer de GPT-4o! Nous voyons d'abord dans le fichier tokenization_kimi.py la régex 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 trouve 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 la gestion de "Han" ou des caractères chinois, que le tokenizer de Kimi gère davantage. La PR par https://github.com/gabriellarson traite bien ces différences après quelques discussions ici.
Nous avons également constaté que le token EOS correct 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 pas à pas pour exécuter les modèles Instruct Kimi K2 incluant Kimi K2 0905 - la mise à jour du 5 septembre.
🌙 Paramètres recommandés officiels :
Selon Moonshot AI, voici les paramètres recommandés pour l'inférence Kimi K2 :
Définissez le température 0,6 pour réduire la répétition et l'incohérence.
Le prompt système par défaut original est :
(Optionnel) 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 tokens improbables avec de faibles probabilités.
🔢 Modèle de chat et format du prompt
Kimi Chat utilise un BOS (token de début de phrase). Les rôles system, user et assistant sont tous entourés par <|im_middle|> ce qui est intéressant, et chacun reçoit son propre token respectif <|im_system|>, <|im_user|>, <|im_assistant|>.
Pour séparer les frontières conversationnelles (vous devez enlever chaque nouvelle ligne), nous obtenons :
💾 Uploads de modèles
TOUS nos uploads - y compris ceux qui ne sont pas basés sur imatrix ou dynamiques, utilisez notre jeu de calibration, qui est spécifiquement optimisé pour les tâches conversationnelles, de codage et de raisonnement.
Nous avons aussi mis en ligne des versions en format BF16.
✨ Exécuter Instruct dans llama.cpp
Obtenez la dernière
llama.cppsur GitHub ici. Vous pouvez aussi suivre les instructions de compilation ci-dessous. Changez-DGGML_CUDA=ONen-DGGML_CUDA=OFFsi vous n'avez pas de GPU ou si vous voulez simplement de l'inférence CPU.
Si vous voulez utiliser
llama.cppdirectement pour charger des modèles, vous pouvez faire ce qui suit : (:UD-IQ1_S) est le type de quantification. Vous pouvez aussi télécharger via Hugging Face (point 3). C'est similaire àollama run. Utilisezexport LLAMA_CACHE="dossier"pour forcerllama.cpppour enregistrer à un emplacement spécifique. Pour exécuter la nouvelle mise à jour de septembre 2025 du modèle, changez le nom du modèle de 'Kimi-K2-Instruct' en 'Kimi-K2-Instruct-0905'.
Veuillez essayer -ot ".ffn_.*_exps.=CPU" pour décharger toutes les couches MoE sur le CPU ! Cela vous permet effectivement de placer toutes les couches non-MoE sur 1 GPU, améliorant les vitesses de génération. Vous pouvez personnaliser l'expression regex pour décharger plus de couches si vous avez 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 up et down.
Essayez -ot ".ffn_(up)_exps.=CPU" si vous avez encore plus de mémoire GPU. Cela ne décharge que les couches MoE de projection up.
Et enfin déchargez toutes les couches via -ot ".ffn_.*_exps.=CPU" Ceci 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(quant dynamique 1.8bit) ou d'autres versions quantifiées commeQ2_K_XL. Nous recommandons d'utiliser notre quant dynamique 2bitUD-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 se bloquent à 90 ou 95 % environ, veuillez consulter https://docs.unsloth.ai/basics/troubleshooting-and-faqs#downloading-gets-stuck-at-90-to-95
Exécutez n'importe quel prompt.
Modifier
--threads -1pour le nombre de threads CPU (par défaut c'est réglé sur le nombre maximum de threads CPU),--ctx-size 16384pour la longueur de contexte,--n-gpu-layers 99pour le déchargement GPU sur combien de couches. Réglez-le à 99 associé au déchargement MoE vers le CPU pour obtenir les meilleures performances. Essayez de l'ajuster si votre GPU manque de mémoire. Retirez-le aussi si vous exécutez uniquement sur CPU.
🐦 Flappy Bird + autres tests
Nous avons introduit le test Flappy Bird lorsque nos quants 1.58bit pour DeepSeek R1 ont été fournis. Nous avons trouvé Kimi K2 comme l'un des seuls modèles à réussir en one-shot toutes nos tâches incluant celle-ci, Heptagon et d'autres tests même à 2-bit. L'objectif est de demander au LLM de créer un jeu Flappy Bird mais en suivant des instructions spécifiques :
Vous pouvez aussi tester les quants dynamiques via le test Heptagon comme indiqué dans r/Localllama qui teste le modèle sur la création d'un moteur physique basique pour simuler des balles tournant dans une forme heptagonale fermée en mouvement.

L'objectif est de faire tourner l'heptagone, et les balles à l'intérieur de l'heptagone doivent bouger. Le prompt est ci-dessous :
Mis à jour
Ce contenu vous a-t-il été utile ?

