Module 00 — Les bases de l'IA pour développeurs Gratuit

Dans ce module

Tu comprendras comment un LLM prédit du texte sans le comprendre, pourquoi les tokens coûtent de l'argent et comment les optimiser, ce qui fait la différence entre un bon prompt et un bon contexte, et pourquoi configurer l'IA (le harness) est plus rentable que peaufiner ses prompts.

0.1 — C'est quoi un LLM ?

Un Large Language Model (LLM) est un réseau de neurones entraîné sur des quantités massives de texte pour accomplir une tâche fondamentale : prédire le prochain token. Quand tu tapes "La capitale de la France est", le modèle calcule une distribution de probabilités et détermine que "Paris" est le token le plus probable. Il n'y a pas de base de données interne, pas de moteur de recherche caché, juste de la prédiction statistique à grande échelle.

L'analogie de l'autocomplétion

L'autocomplétion de ton IDE analyse le contexte local (imports, types, variables en scope) pour proposer le token suivant. Un LLM fait la même chose, mais son "scope" couvre l'ensemble des connaissances absorbées pendant l'entraînement : documentation, code open source, livres, articles. Même principe, échelle radicalement différente.

Entraînement en 3 phases

L'entraînement se décompose en étapes distinctes :

1. Pré-entraînement, Le modèle ingère des téraoctets de texte (code, Wikipedia, livres, forums) pour apprendre les patterns statistiques du langage. Cette phase coûte des dizaines de millions de dollars en calcul GPU.

2. Fine-tuning, Le modèle est affiné sur des données plus spécifiques et de meilleure qualité.

3. RLHF (Reinforcement Learning from Human Feedback), Des humains évaluent les réponses du modèle, qui apprend à produire des résultats utiles et pertinents. C'est cette phase qui transforme un prédicteur de texte brut en assistant conversationnel.

Le mécanisme technique central est l'attention (architecture Transformer, Google, 2017). Il permet au modèle de "regarder" simultanément toutes les parties du texte d'entrée. Si tu écris une fonction de 200 lignes et que le type de retour est défini à la ligne 3, l'attention permet au modèle de connecter cette information à la ligne 200.

À retenir

• Un LLM prédit le prochain token en se basant sur tous les tokens précédents

• L'entraînement se fait en 3 phases : pré-entraînement, fine-tuning, RLHF

• Le modèle ne "comprend" pas, il produit du texte statistiquement probable

• C'est une autocomplétion à l'échelle d'internet, pas un moteur de raisonnement


0.2 — Les tokens : l'unité de base

Un token n'est pas un mot. C'est un fragment de texte, parfois un mot entier (function), parfois un bout de mot (dés + ér + ial + isation), parfois un seul caractère (une accolade, un retour à la ligne). Le processus de découpage s'appelle la tokenization, réalisé par un algorithme (tokenizer) spécifique à chaque famille de modèles. Confondre tokens et mots est une erreur qui coûte cher, littéralement.

Pourquoi les tokens comptent pour un développeur

Trois raisons directes :

  • Coût, Tu payes à l'usage en tokens, pas en mots ni en caractères. Chaque token envoyé (input) et généré (output) est facturé.
  • Fenêtre de contexte, Si ton modèle a une fenêtre de 200 000 tokens, c'est la limite de ce qu'il peut "voir" simultanément, pas 200 000 mots.
  • Le code est gourmand, Accolades, parenthèses, indentation, noms de variables longs : un fichier de 100 lignes de code représente facilement 500 à 800 tokens.

Compter ses tokens

Règle approximative : 1 token ≈ 4 caractères en anglais ≈ 3/4 d'un mot. Le français consomme 20-30 % de tokens en plus que l'anglais.

Exemple Tokens
function 1 token
désérialisation 5 tokens
100 lignes de code ~500-800 tokens

Le tokenizer d'OpenAI est disponible en ligne (platform.openai.com/tokenizer). Prendre l'habitude de vérifier le nombre de tokens de tes prompts et fichiers de contexte est le premier pas vers une utilisation efficiente des LLM.

À retenir

• Un token est un fragment de texte, pas un mot

• Le tokenizer est spécifique à chaque modèle (Claude, GPT-4, etc.)

• Le code consomme plus de tokens que le texte naturel

• Le français consomme 20-30 % de tokens en plus que l'anglais

• Tout est facturé en tokens : input + output


0.3 — La fenêtre de contexte

La fenêtre de contexte est la quantité maximale de tokens qu'un LLM peut traiter en une seule interaction. C'est sa mémoire de travail. Tout ce que le modèle "sait" de ta conversation, de ton code, de tes instructions doit tenir dans cette fenêtre. Si tu dépasses la limite, les informations les plus anciennes sont tronquées ou ignorées.

Ce qui occupe la fenêtre

La fenêtre ne contient pas uniquement ton prompt. Elle inclut tout :

Élément Description
System prompt Instructions de base du modèle
Historique Toutes les questions et réponses précédentes
Contexte injecté Fichiers, documentation, résultats de recherche
Réponse en cours Les tokens générés par le modèle

Quand tu utilises Claude Code et qu'il lit 15 fichiers de ton projet, ces 15 fichiers occupent de l'espace. Si ta conversation dure depuis 30 échanges, tout cet historique est là aussi. Un projet avec ses fichiers de configuration, ses modules, ses tests, quelques dizaines de fichiers suffisent à saturer la fenêtre.

Le phénomène "lost in the middle"

Les LLM accordent plus d'attention aux informations en début et en fin de contexte, et tendent à "oublier" ce qui se trouve au milieu. Si tu colles 50 fichiers et que l'information critique est dans le 25ème, le modèle risque de la manquer. La sélection et l'ordre du contexte sont aussi importants que le contenu du prompt.

Tailles de fenêtre courantes (2026) :

  • Claude Opus 4 / Sonnet 4 : 200K tokens (standard), 1M tokens (étendu)
  • GPT-4 Turbo : 128K tokens
  • Gemini : jusqu'à 1M tokens

À retenir

• La fenêtre de contexte = RAM du LLM, mesurée en tokens

• Elle inclut tout : system prompt, historique, fichiers injectés, réponse en cours

• Plus de contexte ne veut pas dire meilleure réponse, la qualité prime sur la quantité

• Les conversations longues dégradent la qualité (l'historique sature la fenêtre)


0.4 — Prompt vs Contexte

La plupart des développeurs déçus par l'IA font la même erreur : ils se concentrent sur le prompt (la question posée) et négligent le contexte (l'ensemble des informations qui accompagnent cette question). Dans la pratique, le contexte est responsable de la majorité de la qualité des réponses. Un prompt simple dans un contexte riche bat un prompt sophistiqué dans un contexte pauvre.

Les couches de contexte

Le contexte d'un LLM fonctionne en couches, de la plus profonde à la plus superficielle :

1. System prompt, Instructions de base qui définissent le comportement du modèle

2. Contexte persistant, Fichiers de configuration comme CLAUDE.md, règles du projet, conventions

3. Contexte de session, Fichiers lus, résultats de recherche, historique de conversation

4. Prompt utilisateur, Ta question ou instruction

Chaque couche influence la réponse, mais les couches profondes ont plus d'impact que le prompt de surface. Un fichier CLAUDE.md bien rédigé améliore toutes tes interactions futures, pas juste la prochaine.

L'analogie du consultant

Le prompt, c'est la question que tu poses à un consultant. Le contexte, c'est le brief envoyé avant la réunion : documentation du projet, code existant, contraintes techniques, historique des décisions. Sans brief, tu obtiens une réponse générique. Avec un brief complet, la même question produit une réponse spécifique et actionnable.

À retenir

• Le prompt = ta question. Le contexte = tout le reste

• Le contexte a plus d'impact sur la qualité que le prompt lui-même

• Investir dans le contexte persistant (CLAUDE.md, conventions) a un rendement composé

• Le vrai skill n'est pas le prompt engineering, c'est le context engineering


0.5 — Temperature, top-p et paramètres de génération

Quand un LLM génère le prochain token, il calcule une distribution de probabilités sur l'ensemble de son vocabulaire. Les paramètres de génération contrôlent comment le modèle choisit parmi ces candidats. La plupart des développeurs utilisent les valeurs par défaut sans comprendre ce qu'ils laissent sur la table.

Temperature

La temperature contrôle le niveau d'aléatoire dans la sélection du token :

Temperature Comportement Usage recommandé
0 Déterministe, toujours le token le plus probable Code, tests, refactoring
0.3-0.5 Légère variabilité, bon équilibre Refactoring exploratoire
0.7-1.0 Créatif, plus de diversité Brainstorming, rédaction
> 1.0 Erratique, tokens improbables sélectionnés Rarement utile

Autres paramètres

  • top-p (nucleus sampling), Tronque les options. Un top-p de 0.9 ne considère que les tokens dont les probabilités cumulées atteignent 90 %. Élimine les tokens improbables tout en conservant de la diversité.
  • max_tokens, Longueur maximale de la réponse. Trop bas = réponse tronquée en plein milieu d'un bloc de code.
  • top-k, Limite le choix aux k tokens les plus probables.
  • frequency_penalty, Pénalise les tokens déjà utilisés pour éviter les répétitions.

En pratique, avec Claude Code en mode agentique, ces paramètres sont gérés automatiquement. Mais quand tu utilises l'API directement ou configures un outil comme Cursor, comprendre ces paramètres fait la différence.

À retenir

• La temperature est le curseur créativité/fiabilité, pour du code, garde-la basse

• top-p et temperature sont complémentaires, on ajuste rarement les deux en même temps

• max_tokens trop bas = réponse tronquée, trop haut = coût inutile

• Claude Code optimise ces paramètres automatiquement en mode agentique


0.6 — Les limites des LLM

Comprendre les limites d'un outil, c'est ce qui sépare le développeur qui l'utilise efficacement de celui qui est déçu en permanence. Un LLM n'est pas un oracle. C'est un outil avec des angles morts prévisibles, et les connaître te permet de les contourner.

Hallucinations

Un LLM peut générer des informations fausses avec une confiance absolue : inventer une API inexistante, citer des paramètres fictifs d'une vraie bibliothèque, produire du code qui utilise des fonctions imaginaires. Le modèle ne "vérifie" rien, il génère du texte statistiquement probable. Le risque augmente sur les sujets peu présents dans les données d'entraînement : bibliothèques récentes, API internes, code propriétaire.

Raisonnement limité

Les LLM excellent en pattern matching mais peinent face au raisonnement multi-étapes complexe. Tracer l'exécution d'un algorithme récursif sur 15 niveaux de profondeur dépasse leurs capacités de prédiction statistique. Ce n'est pas du raisonnement formel, c'est de la reconnaissance de patterns.

Autres limites structurelles

  • Pas de mémoire persistante, Chaque conversation repart de zéro (sauf mécanismes de persistance comme CLAUDE.md)
  • Date de coupure, Le modèle ne connaît pas les événements postérieurs à son entraînement
  • Biais des données, Sur-représentation de certains langages (Python, JavaScript), frameworks (React, Spring), approches architecturales
  • Pas d'exécution, Ne peut pas tester, compiler ou vérifier son propre output. C'est pour ça que les outils agentiques comme Claude Code sont puissants : ils comblent cette lacune

À retenir

• Les hallucinations sont inhérentes, vérifie toujours les API et signatures de fonctions

• Le raisonnement multi-étapes est fragile, décompose les problèmes complexes

• Pas de mémoire entre les sessions sans configuration explicite

• Les outils agentiques compensent l'absence d'exécution (tester, compiler, itérer)


0.7 — L'écosystème des outils IA pour devs

Le marché des outils IA pour développeurs évolue chaque semaine. GitHub Copilot, Cursor, Claude Code, Windsurf, Codeium, Amazon Q Developer, la profusion est réelle. Comprendre les différences fondamentales entre ces outils te permet de choisir celui qui correspond à ton workflow.

Trois types d'intégration

Type Exemples Caractéristique
IDE Copilot, Cursor, Windsurf S'intègre dans ton éditeur
CLI Claude Code, Gemini CLI, Codex CLI Opère depuis le terminal
Web ChatGPT, Claude.ai Interface de chat

Trois paradigmes d'interaction

1. Inline completion (Copilot, Tabnine, Codeium), Prédit la suite de ton code pendant que tu tapes. Autocomplétion avancée, niveau ligne ou bloc.

2. Chat intégré (Copilot Chat, Cursor Chat), Questions et demandes de modification dans une fenêtre de chat à côté du code.

3. Agentique (Claude Code, Cursor Composer, Windsurf Cascade), Actions autonomes : lire des fichiers, exécuter des commandes, modifier du code, lancer des tests, itérer.

Modèle sous-jacent vs outil

Un point souvent confondu : l'outil et le modèle sont deux choix distincts. Cursor peut utiliser GPT-4 ou Claude. Copilot utilise des modèles OpenAI. Claude Code utilise exclusivement les modèles Claude. La qualité de l'intégration, quel contexte l'outil envoie, comment il gère les erreurs, comment il orchestre les actions, compte souvent plus que le modèle brut.

À retenir

• Trois paradigmes : inline completion, chat intégré, agentique

• Le modèle sous-jacent et l'outil sont deux décisions distinctes

• La qualité de l'intégration (contexte, orchestration) compte autant que le modèle

• Cette formation se concentre sur Claude Code et le paradigme agentique


0.8 — Inline completion vs Agent

L'inline completion et le mode agentique sont deux paradigmes fondamentalement différents. Cette distinction détermine le type de tâches que tu peux déléguer, le niveau d'autonomie accordé à l'IA, et le multiplicateur de productivité que tu peux espérer.

Inline completion

Tu tapes du code, l'IA suggère la suite en temps réel. Tu acceptes (Tab) ou tu refuses. Le contrôle est total : tu restes le pilote. Le gain est linéaire, entre 10 et 30 % de code tapé en moins. L'IA travaille au niveau de la ligne ou du bloc, jamais au niveau du projet.

Mode agentique

Tu décris une intention de haut niveau :

Implémente un repository pour les offres retail
en suivant le même pattern que le repository existant
pour les partenariats.

L'agent explore ta codebase, crée les fichiers nécessaires, écrit le code, lance les tests, corrige les erreurs, et itère. Tu n'es plus le pilote, tu es le commanditaire. Des tâches de 2 heures se font en 10 minutes.

Le changement de posture

Inline completion Agentique
Rôle Exécutant assisté Commanditaire
Skill clé Vitesse + évaluation des suggestions Formulation d'intentions + vérification
Niveau Syntaxique (complétion de texte) Sémantique (compréhension d'intention)
Risque Faible (une ligne à la fois) Élevé si mal configuré (15 fichiers modifiés)

Plus l'IA a d'autonomie, plus les erreurs peuvent être coûteuses. Un agent qui modifié 15 fichiers sur une mauvaise compréhension de ton architecture crée un désastre en 30 secondes. C'est pour ça que la configuration (garde-fous, conventions, fichiers de contexte) est cruciale en mode agentique.

À retenir

• Inline completion : gain de 10-30 %, contrôle total, niveau ligne/bloc

• Agentique : gain d'un ordre de grandeur, mais nécessite un environnement bien configuré

• Le passage de l'un à l'autre est un changement de paradigme, pas une évolution incrémentale

• Plus d'autonomie = plus de risque sans configuration correcte


0.9 — Le concept de Harness Engineering

Le terme vient de l'anglais "harness", le harnais. Un LLM en mode agentique est un cheval de trait puissant. Sans harnais, cette puissance est incontrôlable. Avec un harnais bien ajusté, elle devient une force de traction précise et dirigée. Le Harness Engineering, c'est l'art de concevoir et d'ajuster ce harnais.

Le concept est décrit en détail par Martin Fowler.

Configuration > prompts individuels

Le Harness Engineering repose sur une conviction : le temps passé à configurer l'environnement de travail de l'IA a un retour sur investissement supérieur au temps passé à peaufiner des prompts. Un prompt, c'est un usage unique. Une configuration, c'est un multiplicateur, elle améliore toutes les interactions futures. Rédiger un fichier CLAUDE.md complet prend 30 minutes, mais il améliore des milliers d'interactions sur la durée d'un projet.

Les composants du harnais

Le harnais se compose de 4 éléments :

  • Fichiers de configuration (CLAUDE.md, .cursorrules) : contexte persistant, architecture, conventions, patterns
  • Hooks et garde-fous : linting, tests, compilation après chaque modification de l'agent
  • Templates et exemples : fichiers de référence pour reproduire le bon pattern
  • Règles de scope : ce que l'agent peut et ne peut pas modifier

Prompt Engineering vs Harness Engineering

Le Prompt Engineering optimise des interactions individuelles, c'est tactique. Le Harness Engineering optimise l'environnement de travail, c'est stratégique. Un bon Prompt Engineer obtient de bonnes réponses. Un bon Harness Engineer obtient de bonnes réponses par défaut, sans effort supplémentaire à chaque interaction.

À retenir

• Harness = harnais. L'IA agentique a besoin d'être guidée, pas promptée

• Configuration a un rendement composé (30 min de config > des heures de prompts répétitifs)

• Les 4 composants : fichiers de contexte, hooks, templates, règles de scope

• Prompt Engineering = tactique. Harness Engineering = stratégique


0.10 — Le coût de l'IA

L'IA pour développeurs n'est pas gratuite. Si tu ne comprends pas comment le pricing fonctionne, tu risques de sous-utiliser l'outil par peur du coût ou de recevoir une facture désagréable en fin de mois. Ce sous-module démystifie le modèle économique.

Pricing par token

Le pricing repose sur deux métriques : tokens d'entrée (input) et tokens de sortie (output). Les tokens de sortie coûtent significativement plus cher.

Modèle Input Output
Claude Sonnet 4 3 $/M 15 $/M
Claude Opus 4 15 $/M 75 $/M
Claude Haiku 0.25 $/M 1.25 $/M

Le ratio output/input est d'environ 5x. Un bon contexte (input) qui permet une réponse concise (output) est plus économique qu'un contexte maigre qui force de longues explications.

Coût réel en pratique

Avec Claude Code, chaque interaction consomme des tokens : fichiers lus, recherches dans la codebase, résultats de commandes analysés. Une session intensive de développement agentique sur un gros projet consomme entre 5 et 20 dollars par jour. À mettre en perspective : si cette session te fait gagner 4 heures à 80 €/h, le ROI est de 20 pour 1.

Stratégies d'optimisation

1. Bon modèle pour la tâche, Sonnet pour le quotidien, Opus pour le complexe

2. Conversations courtes, Une nouvelle conversation est plus efficace qu'une longue conversation dont l'historique coûte de plus en plus cher

3. Bon contexte persistant, Un CLAUDE.md bien rédigé évite de réexpliquer le contexte à chaque session

4. Forfait si gros usage, Claude Max (100 ou 200 $/mois) peut être plus économique que le paiement à l'usage

À retenir

• Les tokens de sortie coûtent ~5x plus cher que les tokens d'entrée

• Une session intensive Claude Code : 5-20 $/jour

• Le ROI est évident pour un développeur dont le coût horaire dépasse 50 €

• Optimise via le choix du modèle, la longueur des conversations, et le contexte persistant


0.11 — Sécurité et confidentialité

Quand tu utilises un LLM, ton code quitte ta machine. C'est le fonctionnement normal, pas un bug. Comprendre exactement ce qui est envoyé, où, et comment c'est traité n'est pas de la paranoïa, c'est de la responsabilité professionnelle.

Ce qui est transmis

Avec Claude Code, chaque interaction envoie des données aux serveurs d'Anthropic via l'API : ton prompt, les fichiers que l'agent lit, les résultats des commandes exécutées, l'historique de conversation. Anthropic s'engage contractuellement (politique API) à ne pas utiliser ces données pour entraîner ses modèles. Mais la transmission elle-même est un vecteur de risque.

Les trois risques concrets

1. Secrets envoyés accidentellement, Un fichier .env avec des clés AWS, un token OAuth hardcodé, un mot de passe de base de données. Si l'agent les lit, ils sont transmis.

2. Données personnelles, Des fixtures de test avec de vrais emails, noms, adresses : violation RGPD potentielle.

3. Propriété intellectuelle, Code propriétaire, algorithmes métier, logique business envoyés à un service tiers.

Bonnes pratiques

Exemple de fichier .claudeignore pour empêcher l'agent de lire les fichiers sensibles :

.env
.env.*
credentials/
secrets/
**/fixtures/production/

Règles de base :

  • Jamais de secrets dans le code, utiliser des variables d'environnement + gestionnaire de secrets
  • Fixtures de test anonymisées
  • Vérifier régulièrement les logs de session

Au niveau organisationnel : définis une politique claire sur l'utilisation des outils IA avant que les problèmes n'arrivent. Pour les cas sensibles, des options existent : déploiement VPC chez Anthropic, proxy de filtrage, ou modèles locaux (LLaMA, Mistral).

À retenir

• Chaque interaction envoie des données aux serveurs du fournisseur

• Risques réels : secrets, données personnelles (RGPD), propriété intellectuelle

.claudeignore est ton premier outil de défense

• Définis une politique d'équipe claire avant l'incident, pas après


0.12 — Choisir son modèle

Tous les modèles ne se valent pas, et le plus capable n'est pas toujours le meilleur choix. Chez Anthropic, la gamme Claude se décline en trois tiers : Opus (le plus capable), Sonnet (l'équilibré), et Haiku (le plus rapide). Choisir le bon modèle pour la bonne tâche est l'une des optimisations les plus simples et les plus impactantes.

La gamme Claude

Modèle Forces Prix input Prix output Usage
Opus 4 Raisonnement complexe, architecture, bugs profonds 15 $/M 75 $/M ~10-20 % des tâches
Sonnet 4 Polyvalent, bon équilibre intelligence/coût 3 $/M 15 $/M ~70-80 % des tâches
Haiku Ultra-rapide, économique 0.25 $/M 1.25 $/M Tâches simples, pipelines

Quand utiliser quoi

  • Opus : bug subtil impliquant 10 modules, refacto architecturale, décision de conception avec compromis complexes
  • Sonnet : génération de code standard, écriture de tests, refactoring de taille moyenne, revue de code
  • Haiku : formatage, boilerplate, transformations syntaxiques, pipelines automatisés à haut volume

Claude Code supporte la sélection de modèle en cours de session :

Claude Code
/model sonnet        # Modèle par défaut recommandé
/model opus          # Pour les tâches complexes
/model opus[1m]      # Opus avec fenêtre étendue à 1M tokens
/model sonnet[1m]    # Sonnet avec fenêtre étendue à 1M tokens

Au-delà d'Anthropic : GPT-4o (OpenAI), Gemini (Google, fenêtre jusqu'à 1M tokens), LLaMA et Mistral (open source, déployables localement). Le choix dépend de tes contraintes de coût, confidentialité, performance et intégration.

Le niveau d'effort

Au-delà du choix de modèle, Claude Code permet de contrôler le niveau d'effort que le modèle investit dans chaque réponse via la commande /effort. Trois niveaux sont disponibles :

Niveau Comportement Usage
low Réponses courtes et directes, moins de réflexion Questions simples, confirmations
medium Approche équilibrée, implémentation standard Développement courant
high Analyse approfondie, exploration exhaustive Architecture, bugs complexes
max Effort maximal, réflexion la plus poussée Problèmes critiques, décisions structurantes
Claude Code
/effort high    # Analyse approfondie
/effort medium  # Équilibre (défaut)
/effort low     # Réponses rapides et économiques

Point important : Anthropic a abaissé le niveau d'effort par défaut de high à medium. En pratique, medium suffit pour la majorité des tâches de développement. Réserver high aux moments où tu as besoin d'une réflexion approfondie permet d'économiser des tokens et d'obtenir des réponses plus rapides au quotidien.

À retenir

• Sonnet par défaut (70-80 % des tâches), Opus pour le complexe, Haiku pour le volume

• Opus coûte 5x plus que Sonnet, utilise-le quand la complexité le justifie

• Claude Code permet de changer de modèle en cours de session avec /model

/effort contrôle la profondeur de réflexion : low, medium (défaut), high

• Le "meilleur modèle" dépend de la tâche, pas d'un benchmark absolu