Crédits, modèles, et compte étudiant
Temps de lecture15 minEn bref
Résumé de l’article
Derrière l’assistant de votre éditeur, il y a un modèle qu’il faut exécuter sur des machines, et cette exécution se paie. Les éditeurs d’outils ont donc tous adopté une forme de compteur : un nombre de requêtes par mois, ou un budget de « crédits » qui se consomment plus ou moins vite selon le modèle choisi.
Cet article explique ce qu’on compte exactement, pourquoi un modèle plus gros coûte plus cher, et comment activer gratuitement GitHub Education.
Important
Activer GitHub Education est gratuit et vous donne accès à Copilot Pro : plus de requêtes, et surtout le choix entre plusieurs modèles. La vérification prend du temps (de quelques heures à quelques jours). Lancez la demande dès maintenant.
Points clés à retenir
- Tous les modèles ne coûtent pas la même chose. Un petit modèle rapide consomme une fraction du budget d’un gros modèle de raisonnement.
- Le compteur ne compte pas le temps, il compte les requêtes, pondérées par le modèle. Une session d’agent qui boucle vingt fois consomme vingt fois.
- GitHub Education est gratuit pour vous, et donne accès à Copilot Pro : plus de requêtes, et surtout le choix entre plusieurs modèles.
- La vérification prend du temps (de quelques heures à quelques jours). Lancez la demande dès maintenant.
- Le modèle le plus cher n’est pas toujours le meilleur choix : pour compléter une ligne, un petit modèle répond mieux, parce qu’il répond tout de suite.
Contenu de l’article
Ce qu’on paie
Un LLM (Large Language Model) est un programme de plusieurs centaines de milliards de paramètres qui tourne sur des cartes graphiques spécialisées. Chaque fois que vous envoyez une demande, ce programme est exécuté sur un serveur, pour vous, pendant quelques centaines de millisecondes à quelques dizaines de secondes. C’est ce temps de calcul que les fournisseurs facturent.
Deux choses le font varier :
- La taille du modèle. Un modèle de raisonnement, qui « réfléchit » en produisant des étapes intermédiaires avant de répondre, mobilise bien plus de calcul qu’un modèle de complétion entraîné pour répondre vite.
- La quantité de contexte. Envoyer trois fichiers coûte plus cher qu’envoyer trois lignes, parce que le modèle doit tout lire avant de répondre.
Requêtes, crédits, jetons
Le vocabulaire varie d’un outil à l’autre, mais on retrouve toujours la même mécanique.
| Terme | Ce que c’est |
|---|---|
| Jeton (token) | L’unité de découpage du texte, environ trois quarts d’un mot. C’est ce que facturent les fournisseurs de modèles. |
| Requête (request) | Un aller-retour avec le modèle. C’est ce que comptent la plupart des offres destinées aux développeur(se)s. |
| Crédit | Une requête pondérée par le modèle : le même échange peut coûter 0,25 crédit avec un petit modèle et 10 crédits avec un gros. |
Le point contre-intuitif : la complétion au fil de la frappe est illimitée dans la plupart des offres, alors que c’est elle qui déclenche le plus de requêtes. La raison est qu’elle utilise un modèle spécialisé, minuscule comparé à ceux du chat, dont le coût unitaire est négligeable.
À l’inverse, une session en mode agent peut consommer beaucoup sans que vous vous en rendiez compte : l’agent lance une commande, lit l’erreur, corrige, relance. Chaque tour est une requête.
Information
Dans VS Code, le compteur se consulte depuis l’icône Copilot de la barre d’état, en bas de la fenêtre. Prenez l’habitude de le regarder au début et à la fin d’une activité : c’est le seul moyen de vous faire une idée de ce que coûtent vos habitudes de travail.
Choisir un modèle
Dans la fenêtre de discussion, un menu déroulant liste les modèles disponibles. Le réflexe naturel est de prendre le plus gros. C’est rarement le bon.
- Un petit modèle rapide convient pour : compléter une ligne, renommer, écrire une docstring, traduire un bout de code d’un langage à l’autre, expliquer une erreur courante. Il répond en une seconde, et c’est ce qui compte quand vous êtes en train de taper.
- Un gros modèle de raisonnement devient utile quand la tâche demande de tenir plusieurs contraintes à la fois : concevoir une structure de données adaptée à trois usages, trouver une erreur qui ne se manifeste qu’à la troisième itération, réorganiser un module sans casser ses utilisateurs.
Important
Un gros modèle qui se trompe se trompe de façon plus convaincante : le code est mieux structuré, mieux commenté, et l’erreur est plus profondément enfouie. La qualité de la présentation n’est pas un indice de la justesse du raisonnement.
Activer GitHub Education
GitHub offre aux étudiant(e)s l’accès à GitHub Pro, qui inclut Copilot Pro : davantage de requêtes, et le choix entre plusieurs modèles au lieu d’un seul.
La procédure :
- Créez un compte sur github.com si vous n’en avez pas, et ajoutez-y votre adresse
@imt-atlantique.frdans les paramètres, section Emails. C’est cette adresse qui déclenche la reconnaissance du statut étudiant. - Allez sur GitHub Education et demandez l’accès au Student Developer Pack.
- Fournissez les justificatifs demandés : l’adresse électronique de l’école, et généralement une photo de votre carte étudiante ou d’un certificat de scolarité.
- Attendez la validation. Elle est parfois immédiate, souvent de quelques heures, parfois de quelques jours.
- Une fois validée, ouvrez VS Code, connectez-vous à votre compte GitHub depuis l’icône de compte en bas de la barre latérale, et vérifiez que le menu des modèles propose bien plusieurs entrées.
Important
Faites cette démarche dès aujourd’hui, sans attendre la veille de la séance. Si la validation n’est pas arrivée le jour J, vous pourrez suivre l’activité avec l’offre gratuite, mais la partie sur le choix du modèle perdra son intérêt.
Et si vous n’avez pas Copilot ?
Rien n’est bloquant. Deux solutions de repli :
- Une autre extension avec une offre gratuite. Continue, Codeium ou l’extension de Mistral proposent un accès gratuit suffisant pour l’activité.
- Un modèle exécuté sur votre machine. Ollama télécharge et exécute des modèles localement ; l’extension Continue sait s’y connecter. Les modèles qui tiennent sur un ordinateur portable sont nettement moins bons, mais ils ne consomment aucun crédit, ne nécessitent pas de connexion, et n’envoient votre code nulle part (ce dernier point n’est pas un détail en entreprise).
Pour aller plus loin
À quoi ressemble un jeton
Un jeton n’est ni un mot, ni un caractère : c’est un morceau de texte fréquent, appris lors de la construction du modèle. Chaque famille de modèles a son propre découpage. Voici, par exemple, comment le découpage o200k_base (utilisé par plusieurs modèles d’OpenAI) traite trois textes :
| Texte | Caractères | Jetons |
|---|---|---|
The rat must find the shortest path to the cheese. |
50 | 11 : The, rat, must, find, … |
Le rat doit trouver le plus court chemin jusqu'au fromage. |
58 | 12 : Le, rat, doit, …, jusqu, 'au, … |
def find_route(routing_table, source, target): |
46 | 11 : def, find, _route, (r, outing, _table, … |
On remarque que les mots courants forment un seul jeton, espace compris, alors que les identifiants du code sont découpés en morceaux qui ne correspondent pas forcément à leur sens. Vous pouvez reproduire cette expérience avec la bibliothèque tiktoken, sans même l’ajouter à un projet, grâce à uv (voir l’article sur uv). Enregistrez le code suivant dans un fichier tokens.py :
Puis exécutez-le avec la commande suivante :
Entrée, sortie, et raisonnement
Lorsqu’on utilise directement un modèle via l’interface de programmation de son fournisseur, plutôt que via un abonnement comme Copilot, la facturation distingue généralement :
- Les jetons d’entrée : votre demande et tout le contexte joint.
- Les jetons de sortie : la réponse du modèle, en général plusieurs fois plus chers que les jetons d’entrée, car ils sont produits un par un.
Les modèles de raisonnement produisent en plus des jetons de « réflexion » avant leur réponse, qui sont facturés comme des jetons de sortie, même lorsqu’ils ne vous sont pas tous montrés. C’est ce qui explique qu’un tel modèle coûte beaucoup plus cher pour une réponse finale de même longueur. Les crédits de Copilot cachent ces détails derrière un coefficient par modèle, mais la logique sous-jacente est la même.
Pourquoi deux demandes identiques donnent deux réponses différentes
Un modèle produit sa réponse jeton par jeton. À chaque étape, il calcule une probabilité pour chaque jeton possible, puis en tire un au hasard parmi les plus probables. Un paramètre appelé température règle la part de hasard : plus elle est basse, plus le modèle choisit systématiquement le jeton le plus probable.
Ce tirage a deux conséquences importantes :
- Un succès n’est pas une preuve. Si un modèle résout un exercice une fois, rien ne garantit qu’il le résoudra la fois suivante. Pour comparer deux modèles, comme dans l’activité pratique, il faut idéalement répéter la même demande plusieurs fois.
- Régénérer une réponse peut aider, ou non. Une réponse fausse peut devenir juste en la redemandant, mais l’inverse est aussi vrai. Ce n’est pas une manière de vérifier un résultat.
Pour aller encore plus loin
-
La documentation officielle de GitHub sur les requêtes et les coefficients appliqués selon les modèles.
-
Une vidéo courte et très visuelle de 3Blue1Brown sur le fonctionnement des grands modèles de langue (en anglais).
-
Une conférence d’une heure d’Andrej Karpathy, qui explique comment ces modèles sont entraînés et utilisés (en anglais).