LLM Core (Noyau IA)
Un Large Language Model prĂ©dit les prochains tokens Ă partir dâun contexte. Il fournit comprĂ©hension, gĂ©nĂ©ration et un raisonnement limitĂ©. đ Stateless (pas de mĂ©moire persistante) et non connectĂ© (pas de donnĂ©es Ă jour sans RAG/outils).
Focus Web/Backend Snippets JSON / Python Inclut limites & guardrails
1) đ§ DĂ©finition â âcerveau probabilisteâ
LLM = rĂ©seau entraĂźnĂ© sur dâimmenses corpus pour approximer P(next_token | contexte).
- Compréhension : parser une question, identifier objectifs/contraintes.
- Génération : rédiger, résumer, traduire, produire du code.
- Raisonnement limité : chaßner des étapes courtes sous contraintes.
Mental model : le LLM ne âsaitâ pas â il approxime la suite la plus probable donnĂ©e lâentrĂ©e.
Ce que le LLM nâest pas
- Pas une base de donnĂ©es (mĂ©moire courte, pas dâindexation native).
- Pas un moteur de vérité (peut halluciner).
- Pas connecté au monde réel sans RAG / tools.
Terminologie utile
- Token (BPE/Unigram), logits (scores bruts), température, top-k, top-p.
- FenĂȘtre de contexte = tokens in + tokens out.
2) âïž Fonctionnement interne (schĂ©ma simplifiĂ©)
EntrĂ©e â Tokenization â Embeddings (+ PosEnc/RoPE) â (Transformer: QKV Self-Attention + MLP + Norm) Ă N â Logits â DĂ©codageTokenization
- BPE/WordPiece/Unigram : le texte est scindé en tokens.
- Les espaces et sauts de ligne sont souvent des tokens distincts.
- Budget = coĂ»t et latence : compresser lâentrĂ©e, Ă©viter le bruit.
Ex.: "ChatGPT est puissant" â ["Chat","G","PT"," est"," puissant"]
Embeddings
- Projection de tokens/phrases/documents en vecteurs (dimension d ~ 512â4096).
- SimilaritĂ© (cosine) â recherche sĂ©mantique, clustering, RAG.
- Normaliser la casse/ponctuation; conserver des métadonnées (titre, page, source).
Transformer
- QKV Self-Attention : pondĂšre chaque token par rapport Ă tous les autres (coĂ»t O(nÂČ)).
- PosEnc/RoPE/ALiBi : intĂšgre la position/ordre.
- Cache dâattention pour streaming; fenĂȘtre â mĂ©moire longue.
Prédiction & Décodage
| Stratégie | Usage | Avantages / limites |
|---|---|---|
| Greedy | Déterministe | Stable mais peu créatif |
| Beam search | Traduction/alignement | CoĂ»t â, Ă©vite incohĂ©rences locales |
| Top-k / Top-p | Créatif | Compromis diversité/cohérence |
# Réglages usuels
code/SQL: temperature=0.0â0.2, top_p=0.8â1.0, max_tokens=300
tech: temperature=0.2â0.5, top_pâ0.9, max_tokens=600
crĂ©atif: temperature=0.7â1.0, top_p=0.9â1.0, max_tokens=800
stop=["\nEND", ""]Budget & coût
- CoĂ»t â tokens_in + tokens_out Ă prix/token.
- Limiter max_tokens, tronquer le contexte non pertinent.
Qualité de sortie
- Exiger formats stricts (JSON/CSV/Markdown balisé).
- Valider via JSON Schema / Pydantic avant usage.
Observabilité
- Log des prompts/outputs (avec masquage PII).
- MĂ©triques : latence P50/P95, tokens/req, erreurs dâoutils.
3) đ CapacitĂ©s principales
Compréhension
- Analyse syntaxique/sémantique; classification; sentiments.
- Extraction dâentitĂ©s/relations; normalisation; tagging PII.
Génération
- Résumé multi-docs, traduction, styles contrÎlés, FAQ.
- GĂ©nĂ©ration de code/tests, docs API; explication dâerreurs.
Structuration
- Sorties JSON/CSV/SQL; mapping vers schémas métiers.
- Consolidation multi-sources (map-reduce).
Raisonnement (limité)
- ChaĂźnage guidĂ© (step-by-step); preuve dâalgorithme simple.
- Pour calcul exact/planif. profonde â outils spĂ©cialisĂ©s.
MultimodalitĂ© (selon modĂšle) : vision/audio/vidĂ©o (ex. Gemini, GPT-4o, Claude) â OCR, captioning, VQA, transcodage audio-texte.
4) â ïž Limites du LLM Core seul
- Pas de mĂ©moire persistante : oubli hors fenĂȘtre (stateful Ă gĂ©rer cĂŽtĂ© app).
- Hallucinations : réponses plausibles mais fausses / non sourcées.
- Connaissances figĂ©es : pas dâactualitĂ© ni donnĂ©es privĂ©es.
- Mauvaise calibration : excĂšs de confiance possible.
- CoĂ»ts/latence : dĂ©pend GPU/TPU; fenĂȘtre â prix.
- Sécurité : prompt-injection, jailbreak, exfiltration PII.
Mitigations recommandées
- RAG avec citations + score de confiance + reranking.
- Mémoire (session/long-terme) + politiques TTL & consentement.
- Tools (SQL, calcul, web) sous policies et sandboxes.
- Guardrails : validation de sortie (JSON Schema), filtres sécu, modération.
- Optimisation : cache, batching, contrĂŽle de max_tokens, prompts compacts.
5) đ ïž Exemples de modĂšles (LLM Core)
| Fournisseur | ModÚles | Forces | Notes de déploiement |
|---|---|---|---|
| OpenAI | GPT-3.5, GPT-4/4o, GPT-5 | Tool-use robuste, qualité de code, multimodal (4o) | SaaS; gestion des clés, quotas/budgets requis |
| Gemini 1.5 / 2.x | Multimodal natif, trĂšs longues fenĂȘtres | IntĂ©gration Vertex AI (IAM, monitoring) | |
| Anthropic | Claude 3.x | FenĂȘtres larges, alignement sĂ©curitĂ© | Bon sur consignes longues |
| Mistral | Mistral 7B, Mixtral MoE | Open-weight, coûts/agilité | On-prem possible; quantization/LoRA |
| Meta | LLaMA 2 / 3 | Open-weight, écosystÚme riche | Fine-tuning & distillation aisés |
Choix SaaS vs On-prem
- SaaS : time-to-value rapide, SLO cloud.
- Open-weight : contrÎle/Coût, données sensibles.
Quantization & perf
- INT8/INT4 pour CPU/GPU edge; trade-off qualité.
- Batching & KV-cache pour débit.
FenĂȘtre & impacts
- FenĂȘtre â mĂ©moire; illusions de long contexte.
- Préférer RAG + résumés que prompts géants.
6) đŻ RĂŽle dans une architecture IA
Cerveau brut
Le LLM offre lâintelligence linguistique, mais dĂ©pend des autres briques pour mĂ©moire, action et fiabilitĂ©.
Dépendances clés
- RAG : actualise et source les réponses (citations).
- Mémoire : session & long-terme (profil/intentions).
- Agents/Tools : appels API, SQL, calcul, navigation.
- Guardrails : politiques, validation schéma, modération.
Contrats & Ops
- Contrats dâentrĂ©e (role, objectif, format, contraintes).
- Contrats de sortie (JSON Schema), tests de régression.
- Observabilité : latence, coûts, erreurs/outils, taux de groundedness.
{
"llm_core": "GPT|Gemini|Claude|Mistral|LLaMA",
"memory": "session + long-terme",
"rag": "vector store + retriever + reranker",
"tools": ["sql_read","search","weather","code_exec"],
"guardrails": ["policy","validation_json","moderation"],
"ops": ["logs","metrics","budgets","alerts","golden-prompts"]
}7) â Cas dâusage (sĂ©lection)
Support & FAQ augmentés
- RAG + citations + seuil de confiance + critĂšres dâescalade.
- Détection PII, templates de réponse conformes.
- KPI : CSAT, FCR, groundedness, temps de réponse.
Assistant développeur
- Génération de tests, refactor, secure-review.
- Explication de logs/traces, requĂȘtes SQL de diagnostic.
- KPI : bugs Ă©vitĂ©s, temps gagnĂ©, taux dâadoption.
Extraction / Structuration
- Parse PDF â JSON/CSV/SQL, NER/relations.
- Contrats de sortie + validation; échantillons de QA.
- KPI : précision champs, couverture, coûts/1000 docs.
Patrons universels : (1) Contexte minimal pertinent (RAG), (2) Objectif clair, (3) Format contraint, (4) Few-shot rĂ©aliste, (5) CritĂšres dâacceptation.
8) đ§© Exemples / Projets (plans concrets)
Assistant documentation interne
# Ingestion
chunks = split_all(pdfs, 1200, 150)
index = VectorStore(); index.add([embed(c.text, meta=c.meta) for c in chunks])
# Query
ctx = index.search(embed(q), top_k=6) # + reranker BM25/cross-encoder
prompt = render(tpl, {"q": q, "passages": ctx, "need_citations": true,
"format": "JSON {answer, citations[], confidence}"})
res = llm.generate(prompt, temperature=0.2, top_p=0.9)
assert validate_json(res, schema)- Ăvaluer : answer correctness, citations valides, temps/req, coĂ»t/req.
- Fallback : âje ne sais pasâ en dessous dâun seuil de confiance.
Agent SQL (lecture seule)
# Tool contract (JSON Schema)
{"name":"sql_read","parameters":{"type":"object",
"properties":{"sql":{"type":"string"}}, "required":["sql"]}}
# Policy guardrails
{"allow":["sql_read"], "deny":["sql_write","shell.exec"],
"norms":["read-only", "timeout:15s", "row_limit:1000"]}
# Loop (simplifié)
msg = llm.chat(messages, tools=[sql_read])
if msg.tool_call == "sql_read": data = db.read(msg.args.sql)
final = llm.chat(messages + tool_response(data))- Whitelist de schémas (vue en lecture seule), masquage PII.
- Tests de red teaming (prompt-injection SQL, exfiltration).
Micro-service dâinfĂ©rence (squelette)
# /infer (POST)
{ "role":"system","content":"Tu réponds en JSON valide {title,steps[],risks[]}",
"input":"...", "max_tokens":600, "temperature":0.2 }
# Réponse
{ "title":"Plan d'intégration SSO",
"steps":["Audit","Design","Implémentation","Tests","Runbook"],
"risks":["clé compromise","drift de config"] }- Inclure quotas/budgets par utilisateur, journaux masqués, alertes.
- Tests de régression par golden prompts (qualité, coût, latence).
