🌙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 aussi désormais exécuter nos Kimi-K2-Thinking GGUFs.
Tous les téléversements utilisent Unsloth Dynamic 2.0 pour des performances SOTA Aider Polyglot et une performance MMLU en 5-shot. 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 vers la RAM système ou un disque rapide). Attendez-vous à environ ~1-2 tokens/s avec cette configuration si vous disposez également de 256 Go de RAM bonus. 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 combinés RAM+VRAM pour 5+ tokens/s. Si vous avez moins de 247 Go combinés RAM+VRAM, la vitesse du modèle en prendra forcément un coup.
Si vous n'avez pas 247 Go de RAM+VRAM, pas de souci ! llama.cpp possède intrinsèquement le déchargement sur disque, donc via mmaping, ça fonctionnera quand même, juste plus lent — par exemple avant vous pouviez obtenir 5 à 10 tokens/seconde, maintenant c'est sous 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 de la quantification 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 doit 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 d'utiliser que les GGUF dynamiques 4-bit ou 5-bit (par ex. UD_Q4_K_XL) parce que le modèle a été initialement publié en format INT4.
Vous pouvez choisir une quantification en bits plus élevée juste par précaution en cas de petites différences de quantification, mais dans la plupart des cas cela est inutile.
🌙 Paramètres officiels recommandés :
Selon Moonshot AI, voici les paramètres recommandés pour l'inférence Kimi-K2-Thinking :
Réglez la température 1.0 pour réduire les répétitions 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 le dernier
llama.cppsur GitHub ici. Vous pouvez suivre les instructions de compilation ci-dessous également. Changez-DGGML_CUDA=ONen-DGGML_CUDA=OFFsi vous n'avez pas de GPU ou si vous voulez simplement une inférence CPU.
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="folder"pour forcerllama.cpppour enregistrer à un emplacement spécifique.
Ce qui précède utilisera environ 8 Go de mémoire GPU. Si vous disposez d'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 vers le CPU ! Cela vous permet effectivement de faire tenir 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 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 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 le 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 seulement à 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 2bit 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 se bloquent à 90 à 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.
éditer
--threads -1pour le nombre de threads CPU (par défaut il est réglé sur le 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 combiné avec le déchargement MoE sur CPU pour obtenir les meilleures performances. Essayez de l'ajuster si votre GPU tombe en panne de mémoire. Supprimez-le aussi si vous avez une inférence CPU uniquement.
🤔Pas de balises Thinking ?
Vous pouvez remarquer qu'il n'y a pas de réflexion balises 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 indicateur à la toute fin de votre commande. Une fois que vous l'ajoutez, vous verrez le <think> token apparaître comme prévu.
Vous pouvez 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 masquer, vous pouvez définir <|im_end|> comme chaîne d'arrêt dans vos paramètres.
✨ Déployer avec llama-server et la librairie 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 correctifs 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 prompt utilisateur ! Voir https://huggingface.co/moonshotai/Kimi-K2-Thinking/discussions/12
Un énorme merci à l'équipe Moonshot Kimi pour leur temps de réponse extrêmement rapide à nos demandes 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 tweeté à propos de notre correction également ici : https://x.com/Kimi_Moonshot/status/1946130043446690030. La correction a également été décrite ici : https://huggingface.co/moonshotai/Kimi-K2-Instruct/discussions/28
Si vous avez téléchargé les anciens checkpoints - pas de soucis - téléchargez simplement la première split GGUF qui a été modifiée. OU si vous ne voulez pas télécharger de nouveaux fichiers, faites :
Le tokenizer Kimi K2 était intéressant à explorer - il est majoritairement similaire dans son fonctionnement au tokenizer de GPT-4o ! Nous voyons d'abord dans le fichier tokenization_kimi.py le motif d'expression régulière (regex) suivant 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 la gestion 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 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 étape par étape pour exécuter les modèles Instruct Kimi K2 incluant Kimi K2 0905 - la mise à jour du 5 septembre.
🌙 Paramètres officiels recommandés :
Selon Moonshot AI, voici les paramètres recommandés pour l'inférence Kimi K2 :
Réglez la température 0.6 pour réduire les répétitions 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 bien un BOS (token de début de phrase). Les rôles system, user et assistant sont tous encadrés par <|im_middle|> ce qui est intéressant, et chacun obtient son propre token respectif <|im_system|>, <|im_user|>, <|im_assistant|>.
Pour séparer les limites conversationnelles (vous devez supprimer chaque nouvelle ligne), nous obtenons :
💾 Téléversements de modèles
TOUS nos téléversements - y compris ceux qui ne sont pas basés sur imatrix ou dynamiques, utilisez notre jeu de données de calibration, qui est spécialement optimisé pour les tâches conversationnelles, de codage et de raisonnement.
Nous avons également téléversé des versions en format BF16.
✨ Exécuter Instruct dans llama.cpp
Obtenez le dernier
llama.cppsur GitHub ici. Vous pouvez suivre les instructions de compilation ci-dessous également. Changez-DGGML_CUDA=ONen-DGGML_CUDA=OFFsi vous n'avez pas de GPU ou si vous voulez simplement une 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="folder"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 vers le CPU ! Cela vous permet effectivement de faire tenir 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 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 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 le 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 seulement à 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 à 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.
éditer
--threads -1pour le nombre de threads CPU (par défaut il est réglé sur le 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 combiné avec le déchargement MoE sur CPU pour obtenir les meilleures performances. Essayez de l'ajuster si votre GPU tombe en panne de mémoire. Supprimez-le aussi si vous avez une inférence CPU uniquement.
🐦 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 en 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 de base pour simuler des balles tournant dans une forme heptagonale fermée en rotation.

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

