🌙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 !

circle-check

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-GGUFarrow-up-right

Vous pouvez également maintenant exécuter nos Kimi-K2-Thinking GGUFsarrow-up-right.

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

circle-info

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 !

circle-check

💭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.

circle-check

🌙 Paramètres recommandés officiels :

Selon Moonshot AIarrow-up-right, 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

circle-info

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

circle-check
  1. Obtenez la dernière llama.cpp sur GitHub iciarrow-up-right. Vous pouvez aussi suivre les instructions de compilation ci-dessous. Changez -DGGML_CUDA=ON en -DGGML_CUDA=OFF si 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=OFF puis continuez comme d'habitude - le support Metal est activé par défaut.

  1. Si vous voulez utiliser llama.cpp directement 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 . Utilisez export LLAMA_CACHE="dossier" pour forcer llama.cpp pour enregistrer à un emplacement spécifique.

  1. 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 !

circle-info

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.

  1. 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-GGUFarrow-up-right

circle-info

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-95arrow-up-right

  1. Exécutez n'importe quel prompt.

  2. Modifier --threads -1 pour le nombre de threads CPU (par défaut c'est réglé sur le nombre maximum de threads CPU), --ctx-size 16384 pour la longueur de contexte, --n-gpu-layers 99 pour 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/12arrow-up-right

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/1945050874067476962arrow-up-right

18 juillet 2025 : Nous avons corrigé un prompt système - Kimi a également tweeté sur notre correctif ici : https://x.com/Kimi_Moonshot/status/1946130043446690030arrow-up-right. Le correctif a également été décrit ici : https://huggingface.co/moonshotai/Kimi-K2-Instruct/discussions/28arrow-up-right

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.pyarrow-up-right 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.cpparrow-up-right.

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 PRarrow-up-right par https://github.com/gabriellarsonarrow-up-right traite bien ces différences après quelques discussions iciarrow-up-right.

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 AIarrow-up-right, 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 :

circle-check

🔢 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.

Bits MoE
Type + Lien
Taille sur disque
Détails

1,66 bit

245GB

1,92/1,56 bit

1,78 bit

281GB

2,06/1,56 bit

1,93 bit

304GB

2.5/2.06/1.56

2,42 bit

343GB

2,5/2,06 bit

2,71 bit

381GB

3,5/2,5 bit

3,12 bit

417GB

3,5/2,06 bit

3,5 bit

452GB

4,5/3,5 bit

4,5 bit

588GB

5,5/4,5 bit

5,5 bit

732GB

6,5/5,5 bit

Nous avons aussi mis en ligne des versions en format BF16arrow-up-right.

✨ Exécuter Instruct dans llama.cpp

  1. Obtenez la dernière llama.cpp sur GitHub iciarrow-up-right. Vous pouvez aussi suivre les instructions de compilation ci-dessous. Changez -DGGML_CUDA=ON en -DGGML_CUDA=OFF si vous n'avez pas de GPU ou si vous voulez simplement de l'inférence CPU.

  1. Si vous voulez utiliser llama.cpp directement 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 . Utilisez export LLAMA_CACHE="dossier" pour forcer llama.cpp pour 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'.

circle-info

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.

  1. Téléchargez le modèle via (après avoir installé pip install huggingface_hub hf_transfer ). Vous pouvez choisir UD-TQ1_0(quant dynamique 1.8bit) ou d'autres versions quantifiées comme Q2_K_XL . Nous recommandons d'utiliser notre quant dynamique 2bit UD-Q2_K_XL pour équilibrer taille et précision. Plus de versions sur : huggingface.co/unsloth/Kimi-K2-Instruct-GGUFarrow-up-right

circle-info

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-95arrow-up-right

  1. Exécutez n'importe quel prompt.

  2. Modifier --threads -1 pour le nombre de threads CPU (par défaut c'est réglé sur le nombre maximum de threads CPU), --ctx-size 16384 pour la longueur de contexte, --n-gpu-layers 99 pour 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/Localllamaarrow-up-right 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 ?