Plus facile à lire avec un fond crème, une teinte, plus de contraste ou un texte plus grand ? Choisissez vos couleurs et votre texte, une fois pour toutes les pages.

Leçon gratuite

Comment choisir un modèle de langage

Après cette leçon: Je peux choisir un modèle pour une tâche et dire pourquoi.

Leçon de 60 min2 commandesLab agent de code IA : utiliser opencode pour expliquer et corriger du code, et vérifier son travail

Le plus grand n’est pas toujours le meilleur

Choisir un modèle de langage, c’est faire correspondre un modèle et une tâche. Les critères sont le coût, la vitesse, la taille, la quantité de texte qu’il peut lire et le lieu où il tourne.

Ce choix compte, car il se répète à chaque appel. Un modèle dix fois plus cher que nécessaire, appelé un million de fois, donne une grosse facture sans aucun gain.

À la fin de cette leçon

Remarque

Je peux choisir un modèle pour une tâche et dire pourquoi.

Mots clés

MotCe que ça veut dire
Fenêtre de contextele plus grand texte qu’un modèle lit en un appel
Latencele temps qu’on attend avant la réponse
Prix par jetonce que coûte chaque jeton, souvent compté par million
Hébergéexécuté par un fournisseur, joint par internet
Localexécuté sur votre propre machine

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Cinq choses à peser

Partez de la tâche. Une tâche a une taille, par exemple la quantité de texte qui entre et celle qui sort. Elle a un délai qu’une personne accepte et un budget.

Posez ensuite cinq questions à chaque modèle, comme le montre le tableau. Un modèle qui échoue à l’une d’elles est écarté, même s’il est excellent pour les autres.

Les cinq questions

CritèreLa question à poser
CoûtQue coûtent les jetons de cette tâche ?
VitesseLa réponse est-elle assez rapide pour une personne ?
TailleLit-il tout le texte de la tâche ?
QualitéEst-il assez bon sur mes propres exemples ?
LieuLe texte peut-il quitter ma machine ?

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Chronométrer le modèle du labo sur deux tâches

Commande
docker exec -w /home/node/project agent node -e 'const labo = require("./labo.js"); const demandes = [ { nom: "courte", max: 10, texte: "Citez un fruit.", exemple: "Une pomme." }, { nom: "longue", max: 100, texte: "Décrivez une journée de pluie en trois phrases.", exemple: "La pluie tape sur la vitre. La rue est grise." }, ]; (async () => { for (const une of demandes) { const debut = Date.now(); const obtenu = await labo.demander({ max_tokens: une.max, messages: [{ role: "user", content: une.texte }] }, une.exemple); const ms = Date.now() - debut; if (obtenu.etiquette === "Exemple enregistré") { console.log(une.nom + " : Exemple enregistré, pas de durée mesurée."); continue; } const utilise = obtenu.donnees.usage ? obtenu.donnees.usage.completion_tokens + " jetons écrits" : "pas de nombre de jetons dans la réponse"; console.log(une.nom + " : Réponse du modèle, " + ms + " ms, " + obtenu.texte.length + " caractères, " + utilise + "."); } })();'

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Calculez le coût avant d’appeler

Un prix est donné pour chaque million de jetons : un prix pour les jetons d’entrée, plus élevé pour ceux de sortie. Le coût d’un appel s’obtient en deux produits. Les jetons d’entrée fois le prix d’entrée, plus les jetons de sortie fois le prix de sortie.

Comptez les jetons d’une tâche typique, calculez un appel, puis multipliez par les appels attendus. La liste de prix utilisée ici est inventée : seule la méthode est réelle.

Chiffrer une tâche sur trois modèles inventés

Commande
docker exec -w /home/node/project agent node -e '/* Prix inventés, en unités pour chaque million de jetons. */ const modeles = [ { nom: "Petit", entree: 20, sortie: 80, delai: 600, contexte: 8000 }, { nom: "Moyen", entree: 100, sortie: 400, delai: 1500, contexte: 32000 }, { nom: "Grand", entree: 500, sortie: 2000, delai: 4000, contexte: 128000 }, ]; const tache = { entree: 3000, sortie: 300, delaiMax: 2000, budget: 0.5 }; console.log("La tâche : " + tache.entree + " jetons en entrée, " + tache.sortie + " en sortie, réponse en moins de " + tache.delaiMax + " ms."); for (const m of modeles) { const cout = (tache.entree * m.entree + tache.sortie * m.sortie) / 1000000; const ok = tache.entree + tache.sortie <= m.contexte && m.delai <= tache.delaiMax && cout <= tache.budget; console.log(m.nom.padEnd(7) + "coût " + cout.toFixed(3).replace(".", ",") + " unités, délai " + m.delai + " ms, " + (ok ? "convient" : "ne convient pas")); }'

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Exemple travaillé : une tâche, trois modèles

ModèleCoût par appelDélaiConvient ?
Petit0,084 unité600 msOui
Moyen0,420 unité1500 msOui
Grand2,100 unités4000 msNon, trop lent et trop cher

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Une erreur fréquente

Attention

Beaucoup pensent que le plus grand modèle est toujours le meilleur. Il est le plus souvent le plus lent et le plus cher, et un petit modèle suffit parfois pour une tâche simple. Testez chaque modèle sur vos propres exemples, puis prenez le moins cher qui réussit.

Le lieu d’exécution change les règles

Un modèle hébergé est exécuté par un fournisseur. Vous envoyez du texte par internet et vous payez au jeton. Un modèle local tourne sur votre machine : le texte reste chez vous, mais il faut le matériel et il peut être plus lent.

Une tâche au texte privé peut devoir rester locale. La règle devient alors : le moins cher, parmi ceux qui sont permis.

Pour aller plus loin : chiffrer votre tâche

Changez la tâche du script des coûts en une que vous construiriez. Dites combien de jetons entrent et sortent, et combien de temps une personne attend. Lancez-le.

Écrivez quel modèle vous choisiriez et quel critère a décidé. Dites ce que vous testeriez ensuite avant de croire ce choix.

À propos de ce labo et de sa source: Lab agent de code IA : utiliser opencode pour expliquer et corriger du code, et vérifier son travail

Vous enseignez à une classe ? Proposez ce module à vos étudiants avec un guide de l'enseignant, des devoirs corrigés et un laboratoire pour chaque étudiant.