zGLM-4.7-Flash : Comment exécuter localement

Exécutez et affinez GLM-4.7-Flash localement sur votre appareil !

GLM-4.7-Flash est le nouveau modèle de raisonnement MoE 30B de Z.ai conçu pour un déploiement local, offrant des performances de premier ordre pour le codage, les workflows agentiques et le chat. Il utilise ~3,6 milliards de paramètres, prend en charge un contexte de 200K et est en tête des benchmarks SWE-Bench, GPQA et de raisonnement/chat.

GLM-4.7-Flash fonctionne sur 24 Go de RAM/VRAM/mémoire unifiée (32 Go pour la précision complète), et vous pouvez maintenant affiner avec Unsloth. Pour exécuter GLM 4.7 Flash avec vLLM, voir GLM-4.7-Flash

circle-check

Tutoriel d'exécutionAjustement fin

GGUF GLM-4.7-Flash à exécuter : unsloth/GLM-4.7-Flash-GGUFarrow-up-right

⚙️ Guide d'utilisation

Après avoir discuté avec l'équipe de Z.ai, ils recommandent d'utiliser leurs paramètres d'échantillonnage GLM-4.7 :

Paramètres par défaut (la plupart des tâches)
Terminal Bench, SWE Bench Vérifié

temperature = 1.0

temperature = 0.7

top_p = 0.95

top_p = 1.0

repeat penalty = désactivé ou 1.0

repeat penalty = désactivé ou 1.0

  • Pour un cas d'utilisation général : --temp 1.0 --top-p 0.95

  • Pour l'appel d'outils : --temp 0.7 --top-p 1.0

  • Si vous utilisez llama.cpp, définissez --min-p 0.01 car la valeur par défaut de llama.cpp est 0,05

  • Parfois vous devrez expérimenter pour trouver quels chiffres fonctionnent le mieux pour votre cas d'utilisation.

circle-exclamation
  • Fenêtre de contexte maximale : 202,752

🖥️ Exécuter GLM-4.7-Flash

Selon votre cas d'utilisation, vous devrez utiliser des paramètres différents. Certains GGUF ont une taille similaire parce que l'architecture du modèle (comme gpt-oss) a des dimensions non divisibles par 128, donc certaines parties ne peuvent pas être quantifiées en bits inférieurs.

Parce que ce guide utilise du 4 bits, vous aurez besoin d'environ 18 Go de RAM/mémoire unifiée. Nous recommandons d'utiliser au moins la précision 4 bits pour de meilleures performances.

circle-exclamation

Tutoriel Llama.cpp (GGUF) :

Instructions pour exécuter dans llama.cpp (notez que nous utiliserons du 4 bits pour tenir sur la plupart des appareils) :

1

Obtenez le dernier llama.cpp sur GitHub iciarrow-up-right. Vous pouvez suivre les instructions de compilation ci-dessous également. Changez -DGGML_CUDA=ON en -DGGML_CUDA=OFF si vous n'avez pas de GPU ou si vous voulez simplement une inférence CPU.

2

Vous pouvez tirer directement depuis Hugging Face. Vous pouvez augmenter le contexte jusqu'à 200K selon ce que votre RAM/VRAM permet.

Vous pouvez aussi essayer les paramètres d'échantillonnage GLM-4.7 recommandés par Z.ai :

  • Pour un cas d'utilisation général : --temp 1.0 --top-p 0.95

  • Pour l'appel d'outils : --temp 0.7 --top-p 1.0

  • N'oubliez pas de désactiver la pénalité de répétition !

Suivez ceci pour instruction générale cas d'utilisation :

Suivez ceci pour appel d'outils cas d'utilisation :

3

Téléchargez le modèle via (après avoir installé pip install huggingface_hub). Vous pouvez choisir UD-Q4_K_XL ou d'autres versions quantifiées.

4

Ensuite, exécutez le modèle en mode conversation :

Ajustez également fenêtre de contexte au besoin, jusqu'à 202752

Réduction de la répétition et des boucles

circle-check

Cela signifie que vous pouvez maintenant utiliser les paramètres recommandés par Z.ai et obtenir d'excellents résultats :

  • Pour un cas d'utilisation général : --temp 1.0 --top-p 0.95

  • Pour l'appel d'outils : --temp 0.7 --top-p 1.0

  • Si vous utilisez llama.cpp, définissez --min-p 0.01 car la valeur par défaut de llama.cpp est 0,05

  • N'oubliez pas de désactiver la pénalité de répétition ! Ou de régler --repeat-penalty 1.0

Nous avons ajouté "scoring_func": "sigmoid" en config.json pour le modèle principal - voirarrow-up-right.

circle-exclamation

🐦Exemple Flappy Bird avec UD-Q4_K_XL

À titre d'exemple, nous avons mené la longue conversation suivante en utilisant UD-Q4_K_XL via ./llama.cpp/llama-cli --model unsloth/GLM-4.7-Flash-GGUF/GLM-4.7-Flash-UD-Q4_K_XL.gguf --fit on --temp 1.0 --top-p 0.95 --min-p 0.01 :

qui a rendu le jeu Flappy Bird suivant sous forme HTML :

chevron-rightJeu Flappy Bird en HTML (Extensible)hashtag

Et nous avons pris quelques captures d'écran (4bit fonctionne) :

🦥 Affinage de GLM-4.7-Flash

Unsloth prend désormais en charge l'affinage de GLM-4.7-Flash, cependant vous devrez utiliser transformers v5. Le modèle 30B ne rentre pas sur un GPU Colab gratuit ; toutefois, vous pouvez utiliser notre notebook. L'affinage LoRA en 16 bits de GLM-4.7-Flash utilisera environ 60 Go de VRAM:

circle-exclamation

Lors de l'affinage de MoE, il n'est probablement pas judicieux d'affiner la couche de routage, nous l'avons donc désactivée par défaut. Si vous souhaitez maintenir ses capacités de raisonnement (optionnel), vous pouvez utiliser un mélange de réponses directes et d'exemples de chaîne de pensée. Utilisez au moins 75 % de raisonnement et 25 % sans raisonnement dans votre jeu de données pour que le modèle conserve ses capacités de raisonnement.

🦙Service & déploiement Llama-server

Pour déployer GLM-4.7-Flash en production, nous utilisons llama-server Dans un nouveau terminal, par exemple via tmux, déployez le modèle via :

Puis, dans un nouveau terminal, après avoir fait pip install openai, faites :

Ce qui affichera

💻 GLM-4.7-Flash dans vLLM

Vous pouvez maintenant utiliser notre nouveau quant FP8 dynamiquearrow-up-right du modèle pour une inférence premium et rapide. Installez d'abord vLLM depuis la nightly :

Ensuite servez La version FP8 dynamique d'Unslotharrow-up-right du modèle. Nous avons activé FP8 pour réduire l'utilisation mémoire du cache KV de 50%, et sur 4 GPU. Si vous avez 1 GPU, utilisez CUDA_VISIBLE_DEVICES='0' et définir --tensor-parallel-size 1 ou supprimez cet argument. Pour désactiver FP8, retirez --quantization fp8 --kv-cache-dtype fp8

Vous pouvez ensuite appeler le modèle servi via l'API OpenAI :

vLLM GLM-4.7-Flash Décodage spéculatif

Nous avons constaté que l'utilisation du module MTP (prédiction multi-token) de GLM 4.7 Flash fait chuter le débit de génération de 13 000 tokens sur 1 B200 à 1 300 tokens ! (10x plus lent) Sur Hopper, cela devrait être correct, espérons-le.

Seulement 1 300 tokens/s de débit sur 1xB200 (130 tokens/s décodage par utilisateur)

Et 13 000 tokens/s de débit sur 1xB200 (toujours 130 tokens/s décodage par utilisateur)

🔨Appel d'outils avec GLM-4.7-Flash

Voir Tool Calling Guide pour plus de détails sur la façon de faire des appels d'outil. Dans un nouveau terminal (si vous utilisez tmux, utilisez CTRL+B+D), nous créons quelques outils comme l'addition de 2 nombres, l'exécution de code Python, l'exécution de fonctions Linux et bien plus :

Nous utilisons ensuite les fonctions ci-dessous (copiez-collez et exécutez) qui analyseront automatiquement les appels de fonctions et appelleront le point de terminaison OpenAI pour n'importe quel modèle :

Après le lancement de GLM-4.7-Flash via llama-server comme dans GLM-4.7-Flash ou voir Tool Calling Guide pour plus de détails, nous pouvons ensuite effectuer quelques appels d'outil :

Appel d'outil pour opérations mathématiques pour GLM 4.7

Appel d'outil pour exécuter le code Python généré pour GLM-4.7-Flash

Benchmarks

GLM-4.7-Flash est le modèle 30B le plus performant sur tous les benchmarks sauf AIME 25.

Mis à jour

Ce contenu vous a-t-il été utile ?