Cours Complet : LLM et RAG
Comprendre les Large Language Models et les systèmes Retrieval-Augmented Generation
Public cible : Développeurs & Data Scientists
1. Introduction
Les LLM (Large Language Models) sont entraînés sur des données statiques. Ils ne connaissent
pas les données récentes ni privées.
Le RAG permet d’ajouter une mémoire externe dynamique en récupérant des documents
pertinents au moment de la requête.
2. Fonctionnement interne d’un LLM
2.1 Tokenisation
La tokenisation consiste à découper un texte en unités appelées tokens.
Exemple : anticonstitutionnellement → anti / constitution / nellement
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
tokens = [Link]("anticonstitutionnellement")
print(tokens)
2.2 Embedding
Chaque token est transformé en vecteur dense.
Exemple simplifié : [0.12, -0.44, 0.91, ...]
2.4 Attention
Chaque mot regarde les autres mots pour comprendre le contexte.
import torch
Q = [Link](3,4)
K = [Link](3,4)
V = [Link](3,4)
scores = Q @ K.T
weights = [Link](scores, dim=1)
output = weights @ V
3. RAG (Retrieval-Augmented Generation)
3.2 Indexation
from sentence_transformers import SentenceTransformer
model = SentenceTransformer('all-MiniLM-L6-v2')
chunks = ["doc1 text", "doc2 text"]
embeddings = [Link](chunks)
3.3 Recherche
query = "What is AI?"
query_vec = [Link]([query])
# similarity search
import numpy as np
scores = [Link](embeddings, query_vec.T)
Conclusion
Les LLM + RAG permettent de construire des systèmes robustes.
Le RAG améliore la précision et réduit les hallucinations.