Image de couverture de Exécuter des modèles de langage sur sa propre machine : puces Apple Silicon, quantification et ce qui tient vraiment en mémoire

En un coup d’œil

Temps de lecture

~200 mots/min

Publié

il y a 18 heures

Aug 11, 2026

Vues

59

Total depuis le début

Exécuter des modèles de langage sur sa propre machine : puces Apple Silicon, quantification et ce qui tient vraiment en mémoire

Il y a un moment précis où les modèles de langue locaux cessent d’être une curiosité pour devenir vraiment utiles. Ce moment arrive quand vous réalisez qu’un modèle qui tourne sur votre portable, sans clé API, sans limite de débit et sans facturation au token, est assez bon pour une tâche que vous confiiez auparavant à un modèle frontalier. Ce seuil a beaucoup évolué. Cet article est le complément matériel et dimensionnement de Local AI in 2026, qui traitait des environnements d’exécution eux-mêmes. Une grande partie du travail que les développeurs font réellement avec les modèles de langue: résumer, extraire, classer, reformuler et répondre à des questions sur un document sous leurs yeux: s’exécute désormais parfaitement sur le matériel que vous possédez déjà.

En résumé

  • C’est la bande passante mémoire, et non la puissance de calcul brute, qui limite la vitesse d’inférence locale, ce qui explique pourquoi les machines à mémoire unifiée dépassent leurs spécifications
  • Une règle de dimensionnement approximative : la taille du modèle en Go correspond à peu près au nombre de paramètres en milliards multiplié par le nombre d’octets par paramètre ; ainsi, un modèle 8B en 4 bits nécessite environ 4,5 Go, plus la surcharge liée au contexte
  • La quantification 4 bits est le point idéal pour la plupart des travaux, avec une perte de qualité mesurable sur les benchmarks mais rarement perceptible en pratique
  • Les modèles locaux l’emportent nettement sur la confidentialité, le coût, la capacité hors ligne et la latence pour les invites courtes, et perdent sur les très longs contextes et le raisonnement difficile
  • Le schéma réaliste est hybride : exécutez le volume courant en local et aiguillez les demandes vraiment difficiles vers une API frontalière

Pourquoi la bande passante mémoire est déterminante

Générer un token avec un transformer nécessite de lire pratiquement chaque poids du modèle. C’est l’opération fondamentale, répétée pour chaque token produit. Si le modèle occupe 8 Go en mémoire et que votre matériel peut transférer 400 Go par seconde, le plafond arithmétique est d’environ 50 tokens par seconde, quelle que soit la vitesse du processeur, car celui-ci passe l’essentiel de son temps à attendre l’arrivée des poids.

Ce seul fait explique la plupart des bizarreries apparentes des performances d’inférence locale. Il explique pourquoi Apple Silicon s’en sort si bien malgré des chiffres de calcul brut modestes : la mémoire unifiée offre une bande passante élevée vers un large espace. Il explique pourquoi un GPU grand public avec une mémoire rapide mais petite surclasse une carte de station de travail dotée d’une mémoire plus lente. Il explique aussi pourquoi la quantification produit des accélérations spectaculaires : diviser par deux le nombre d’octets par poids divise par deux les données à déplacer, et la vitesse double à peu près.

Lorsque vous choisissez du matériel pour l’inférence locale, la bande passante mémoire et la capacité mémoire sont les deux chiffres à comparer. Tout le reste est secondaire.

Ce qui tient dans la mémoire dont vous disposez

Le dimensionnement est un calcul simple. Prenez le nombre de paramètres en milliards, multipliez par le nombre d’octets par paramètre induit par la quantification, et ajoutez environ 20 pour cent pour le cache clé-valeur et la surcharge d’exécution. En 4 bits, cela représente environ 0,55 octet par paramètre en pratique, une fois pris en compte les métadonnées que les formats de quantification transportent.

Mémoire approximative nécessaire en quantification 4 bits, surcharge comprise
Taille du modèle Mémoire nécessaire À l’aise sur Évaluation honnête
3B environ 2,5 Go machine 8 Go Rapide, bon pour l’extraction et la classification
8B environ 5,5 Go machine 16 Go Le point idéal pratique pour la plupart des travaux locaux
14B environ 9 Go machine 16 Go, juste Raisonnement nettement meilleur, toujours réactif
32B environ 19 Go machine 32 Go Vraiment capable, plus lent mais utilisable
70B environ 40 Go machine 64 Go Qualité élevée, patience requise
120B et plus 64 Go et au-delà Station de travail uniquement Possible mais rarement le bon compromis en local

Notez que la fenêtre de contexte n’est pas gratuite. Les contextes longs font croître le cache clé-valeur de façon substantielle, et un contexte de 32k sur un modèle de taille moyenne peut ajouter plusieurs gigaoctets à lui seul. Si un modèle se charge correctement puis échoue au milieu d’un long document, le cache en est presque toujours la cause.

Publicité

Quel est le coût en qualité de la quantification

La quantification réduit la précision des poids. La précision de référence habituelle est le 16 bits, et les variantes 8, 5 et 4 bits échangent de la précision contre de la mémoire et de la vitesse. Si le 4 bits est devenu le choix par défaut, c’est parce que la baisse de qualité est faible et inégalement répartie : elle touche à peine les tâches langagières simples et se manifeste surtout dans le raisonnement en plusieurs étapes, l’arithmétique et la génération de code.

Compromis pratiques par niveau de quantification
Précision Taille relative Impact sur la qualité Quand l’utiliser
16 bits 100 pour cent Référence Évaluation, ajustement fin, référence de qualité
8 bits environ 50 pour cent Pratiquement indiscernable Quand la mémoire le permet et que la qualité est critique
5 bits environ 35 pour cent Très léger Un bon compromis quand la mémoire est juste
4 bits environ 28 pour cent Faible, visible sur le raisonnement et le code Le choix par défaut pour la plupart des travaux locaux
3 bits et moins environ 22 pour cent Dégradation perceptible Seulement quand rien d’autre ne tient

Le conseil pratique est d’exécuter le plus grand nombre de paramètres qui tient en 4 bits plutôt qu’un modèle plus petit en précision supérieure. Un modèle 14B en 4 bits surpassera généralement un modèle 8B en 8 bits bien qu’ils occupent une mémoire similaire, car le nombre de paramètres apporte plus de capacité que la précision dans la plage qui importe.

Démarrage sans cérémonie

L’outillage est devenu vraiment agréable. Sur Apple Silicon, les frameworks basés sur Metal offrent une accélération GPU native sans configuration. Sous Linux et Windows avec une carte NVIDIA, les mêmes runtimes fonctionnent via CUDA. Dans les deux cas, vous pouvez générer des tokens en quelques minutes.

# Pull a quantised model and talk to it. Most local runtimes expose an
# OpenAI compatible endpoint, which means existing client code just works.

ollama pull llama3.1:8b-instruct-q4_K_M
ollama run llama3.1:8b-instruct-q4_K_M "Summarise this in three bullets: ..."

# Serve it on localhost with an OpenAI compatible API
ollama serve

# Point any existing client at it by changing the base URL
curl http://localhost:11434/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "llama3.1:8b-instruct-q4_K_M",
    "messages": [{"role": "user", "content": "Extract every date from this text."}],
    "temperature": 0.2
  }'

Ce point de terminaison compatible OpenAI est le détail qui rend les modèles locaux pratiques plutôt qu’académiques. Le code existant qui dialogue avec une API hébergée n’a généralement besoin que d’un changement d’URL de base pour s’exécuter sur un modèle local, ce qui signifie que vous pouvez comparer un modèle local à un modèle de pointe sur votre charge de travail réelle en un après-midi au lieu de réécrire une intégration.

# Route by difficulty: local model for volume, frontier API for hard cases.
# The heuristic matters less than having one at all.

from openai import OpenAI

local    = OpenAI(base_url="http://localhost:11434/v1", api_key="not-needed")
frontier = OpenAI()   # reads the real key from the environment

def classify(text: str, hard: bool = False):
    client = frontier if hard else local
    model  = "gpt-5" if hard else "llama3.1:8b-instruct-q4_K_M"

    return client.chat.completions.create(
        model=model,
        messages=[{"role": "user", "content": text}],
        temperature=0,
    )

# Escalate only when the local model is uncertain or the input is long
def needs_frontier(text: str, local_confidence: float) -> bool:
    return local_confidence < 0.7 or len(text) > 20_000
💡

Conseil de pro

Avant de supposer que vous avez besoin d’un modèle de pointe, exécutez vos prompts réels sur un modèle local 8B et lisez les résultats vous-même. Pour l’extraction, la classification et le résumé, les résultats sont souvent indiscernables, et cela représente souvent la majorité du volume en production.

Publicité

Là où les modèles locaux perdent vraiment

Il serait malhonnête de présenter cela comme un remplacement direct. Les modèles locaux sont nettement moins bons pour le raisonnement long en plusieurs étapes, pour maintenir de très longs contextes de manière cohérente, pour générer du code correct pour des bibliothèques peu familières, et pour suivre des instructions complexes à contraintes multiples sans dériver. Si votre tâche implique de raisonner sur une centaine de pages, ou d’écrire du code qui doit être juste du premier coup, l’écart est réel et vous le ressentirez.

Ils perdent aussi en débit soutenu. Une seule machine servant un utilisateur, c’est bien. Une seule machine servant deux cents utilisateurs simultanés, c’est un problème d’ingénierie différent, et à ce stade, l’économie d’une API hébergée redevient raisonnable.

! Erreurs courantes à éviter

  • Choisir le matériel sur la base de benchmarks de calcul plutôt que de bande passante mémoire.

    Pour l’inférence, la bande passante et la capacité sont ce qui compte. Une machine avec beaucoup de mémoire unifiée rapide battra un processeur plus rapide mais privé de bande passante.

  • Exécuter un petit modèle en haute précision au lieu d’un plus grand modèle quantifié.

    Un modèle 14B en 4 bits surpasse généralement un 8B en 8 bits pour une mémoire similaire. Le nombre de paramètres apporte plus que la précision dans la plage normale.

  • Oublier le cache clé-valeur lors du dimensionnement de la mémoire.

    Les contextes longs ajoutent des gigaoctets en plus des poids. Dimensionnez pour votre plus long prompt réaliste, pas pour le fichier du modèle.

  • Supposer que local signifie privé par défaut.

    Vérifiez ce que votre runtime et toute interface envoient. La télémétrie, les vérifications de mise à jour et les fonctionnalités de synchronisation cloud existent. Vérifiez avec un moniteur réseau si la confidentialité est la raison pour laquelle vous êtes passé en local.

  • Traiter cela comme tout ou rien.

    Aiguillez par difficulté. Gérez la majorité routinière localement et transmettez les requêtes difficiles à une API de pointe. La plupart des charges de travail se répartissent nettement et l’économie est substantielle.

? Questions fréquemment posées

De combien de RAM ai-je réellement besoin ? +

16 Go est le point d’entrée pratique et fait tourner confortablement les modèles 8B avec de la place pour le contexte. 32 Go ouvrent la voie aux modèles 32B et aux contextes longs. 64 Go gèrent les modèles de la classe 70B. En dessous de 16 Go, vous êtes limité aux petits modèles.

Apple Silicon est-il vraiment compétitif pour cela ? +

Oui, et la raison en est la bande passante mémoire unifiée combinée à un large pool adressable. Une machine avec 64 Go de mémoire unifiée peut charger des modèles qui nécessiteraient autrement une configuration multi-GPU coûteuse, bien qu’elle génère des tokens plus lentement qu’un GPU haut de gamme dédié.

Puis-je faire du fine-tuning localement ? +

Les méthodes efficaces en paramètres comme LoRA sont tout à fait réalisables sur du matériel grand public pour les modèles de petite et moyenne taille. Le fine-tuning complet n’est pas réaliste localement au-delà des petits modèles.

Un modèle local remplacera-t-il mes dépenses d’API ? +

En partie. La plupart des charges de travail en production ont une large majorité routinière qu’un modèle local gère bien, et une petite queue difficile qui nécessite vraiment un modèle de pointe. L’aiguillage par difficulté réduit généralement les dépenses de manière substantielle sans nuire à la qualité.

Quelle quantification dois-je choisir ? +

Commencez en 4 bits, plus précisément l’une des variantes K quant, qui équilibrent bien qualité et taille. Passez à 5 ou 8 bits seulement si vous pouvez mesurer un problème de qualité sur votre tâche réelle.

La position pragmatique

L’inférence locale n’est plus un exercice de hobbyiste, mais ce n’est pas non plus un remplacement en bloc des modèles hébergés. Le cadrage utile est que vous disposez maintenant d’un niveau rapide, gratuit et privé pour le gros volume de travail simple, et d’un niveau payant pour les requêtes vraiment difficiles. La plupart des équipes découvrent que la répartition penche fortement vers le niveau gratuit une fois qu’elles la mesurent honnêtement. Passez un après-midi à exécuter vos prompts réels sur un modèle 8B sur la machine devant vous, et laissez les résultats plutôt que le marketing décider où chaque requête doit aller.

Remarque

Spécifications dans cet article

Les numéros de version, les prix et le comportement des modèles décrivent l’état des choses au moment de la rédaction et évoluent rapidement. Consultez la documentation officielle pour tout ce sur quoi vous êtes sur le point de vous appuyer en production.

Bishrul Haq

Written by

Bishrul Haq

Software engineer writing practical tutorials on Laravel, PHP, Python, and the tools behind real projects. More about me

Newsletter

Want more posts like this?

Get practical software notes and tutorials delivered when something new is published.

Pas de spam. Désinscription à tout moment.

Qu’en avez-vous pensé ?

Commentaires

0
Se connecter ou Créer un compte pour participer à la discussion et réagir à cet article.

Aucun commentaire pour l’instant. Soyez la première personne à donner votre avis.

Related posts

Nouveautés d’iOS 13 : tout ce qu’il faut savoir

Apple a dévoilé iOS 13 lors de la keynote de la WWDC (Worldwide Developer Conference). Cette nouvelle version du système d’exploitation mobile arrivera bientôt sur iPhone, iPad et iPod.

il y a 7 ans

Agents IA en 2026 : ce que les développeurs doivent vraiment savoir

Un guide développeur sans exagération sur les agents IA en 2026 : boucle agent, outils, mémoire, MCP, évaluation, garde-fous, et les pièges de coûts et modes de défaillance qui séparent une démo de la production.

il y a 2 mois

MCP expliqué sans jargon : comment les outils IA se connectent aux applications et aux données

Un guide technique en langage clair sur le Model Context Protocol, le problème qu’il résout, les rôles hôte/client/serveur, la distinction outils/ressources/invites, les transports, un serveur minimal et le moment de l’adopter.

il y a 2 mois

Comment sécuriser les agents IA contre l’injection de prompt et l’abus d’outils

Un guide d’ingénierie défensive pour les agents IA : comprendre l’injection de prompt directe et indirecte, puis verrouiller les agents avec le moindre privilège, des étapes de validation humaine, le sandboxing et la validation.

il y a 2 mois

IA locale en 2026 : Ollama, vLLM, Docker Model Runner et quand les utiliser

Comparaison honnête des outils d'IA locale en 2026: Ollama pour les portables, vLLM pour le serving GPU à haut débit et Docker Model Runner pour les modèles conteneurisés, avec un cadre de décision et des conseils de dimensionnement VRAM.

il y a 2 mois