Project Oxygen & Ideo-LabIDEO LAB Dashboard 2026

🦙 Llama (Meta AI) – Le Guide Ultime

Deep Dive : Llama 3 (SOTA), Llama 4 (Futur), Architecture (GQA), "Addons" (Ollama, Hugging Face) & Fine-Tuning (QLoRA).

1.1 Facile

1. C'est quoi Llama ?

Famille de LLM SOTA (State-of-the-Art) de Meta AI. "Open-Weight".

Llama Meta AI
1.2 Moyen

2. Philosophie "Open"

"Gated Open Model" (vs GPT/Claude). Démocratisation de la recherche et des "plugins".

Open Model Closed Model
1.3 Moyen

3. 📈 Historique des Versions

Llama 1 (Le "Leak"), Llama 2 (Le "Standard"), Llama 3 (Le "SOTA"), Llama 4 (Spéculation).

Llama 2 Llama 3
1.4 Avancé

4. Modèles Llama 3

8B (Rapide), 70B (SOTA), 405B (En training). Context Window 8K (vs 128K).

8B 70B 405B
1.5 Avancé

5. Architecture (Llama 3)

"Plugin" GQA (Grouped-Query Attention), RMSNorm, Tiktoken (Tokenizer 128K).

Architecture GQA
1.6 Avancé

6. 📊 Performance (SOTA)

Benchmarks (MMLU, GPQA). Llama 3 70B vs GPT-4 vs Claude 3 Opus. Chiffres.

Benchmarks SOTA
2.1 Moyen

7. 💻 Inférence (API & Local)

Comment l'utiliser : APIs (Groq, Perplexity, Replicate) vs Local ("plugin" Ollama).

Inference Ollama
2.2 Avancé

8. "Plugin": Hugging Face

L'écosystème n°1. transformers, AutoModelForCausalLM. Code Python.

Hugging Face transformers
2.3 Moyen

9. "Plugin": Ollama (Local)

Le "Docker" des LLM. ollama run llama3. Modelfile (customisation).

Ollama Local LLM
3.1 Avancé

10. 🧠 Fine-Tuning (QLoRA)

Le "plugin" d'entraînement. SFTTrainer, bitsandbytes (4-bit), QLoRA.

Fine-Tuning QLoRA
3.2 Avancé

11. "Addon": Tool Use

Le "Function Calling" de Llama 3. Forcer un "plugin" (tool) via l'API.

Tool Use Function Calling
3.3 Moyen

12. Llama 4 (Futur) & Liens

Spéculations : MoE (Mixture of Experts) ? Multimodal ? Liens (Meta AI, Hugging Face).

Llama 4 MoE
1.1 C'est quoi Llama ? (Meta AI)

Llama (Large Language Model Meta AI) est une famille de "Large Language Models" (LLM) créée par Meta AI (le laboratoire de recherche de Facebook/Meta).

Contrairement à GPT-4 (OpenAI) ou Claude (Anthropic), qui sont des modèles "fermés" (accessibles uniquement via une API payante), Llama est un "open-weight" (ou "gated open source") : Meta *publie les poids* (le "cerveau" entraîné du modèle), permettant aux développeurs de le télécharger et de le faire tourner sur leurs propres serveurs (ou même localement).

Llama est le catalyseur qui a *démocratisé* la recherche et le développement des LLM SOTA (State-of-the-Art) en dehors des "Big 3".

1.2 Philosophie "Open" (vs GPT/Claude)

La stratégie de Meta avec Llama est "Open", mais ce n'est pas de l'open-source "classique" (comme Linux ou Python).

ModèleStatutDescription
GPT-4 / Claude 3.5Fermé (Closed)Modèle "boîte noire". Accessible *uniquement* via une API payante. Zéro contrôle, zéro transparence.
Llama 3 (Meta)"Gated Open"Les poids sont disponibles. L'utilisation est *gratuite* (recherche, commercial), *sauf* pour les "géants" (ex: si > 700M d'utilisateurs, il faut une licence).
Mistral 7BVrai Open Source (Apache 2.0)Totalement libre. Aucune restriction d'utilisation.
L'Impact du "Plugin" Open-Weight
  • Démocratisation : A permis aux startups, chercheurs et amateurs de *posséder* un LLM SOTA.
  • Fine-Tuning : A lancé l'explosion du "fine-tuning" (adapter Llama à des tâches spécifiques, ex: "Llama-Médical", "Llama-Code").
  • Local : A permis l'émergence d'outils (plugins) comme Ollama (voir 2.3) pour faire tourner des LLM sur un simple MacBook.
  • Concurrence : Force OpenAI et Google à baisser leurs prix d'API.
1.3 📈 Historique des Versions (Llama 1, 2, 3, 4)
Llama 1 (Février 2023) - Le "Leak"

Llama 1 a été la *surprise*. Il n'était *pas* destiné à être public (licence "recherche" uniquement).

  • Modèles : 7B, 13B, 33B, 65B.
  • L'Événement : Les poids du modèle ont "fuité" (leak) sur 4chan.
  • L'Impact : En quelques jours, la communauté "open source" s'en est emparée. C'est le début du "LLM local". Des projets comme llama.cpp (pour le faire tourner sur un Mac M1) sont nés. Il a prouvé qu'un modèle "petit" (7B) pouvait être *très* performant.
Llama 2 (Juillet 2023) - Le "Standard"

Face au "leak" de Llama 1, Meta a changé de stratégie et a "officiellement" ouvert Llama 2 (en partenariat avec Microsoft/Azure).

  • Modèles : 7B, 13B, 70B.
  • Innovation : Entraîné sur 2 Trillions de tokens (vs 1.4T pour Llama 1).
  • Fenêtre Contexte : 4096 tokens (4K).
  • Impact : C'est devenu le "cheval de bataille" open-source de 2023-2024, le "baseline" pour tous les benchmarks et le fine-tuning.
Llama 3 (Avril 2024) - Le "SOTA"

Llama 3 est un "saut quantique" en performance, entraîné sur 15 Trillions de tokens.

  • Modèles (Actuels) : 8B, 70B.
  • Modèles (Futurs) : 405B+ (en entraînement, attendu pour battre GPT-4o).
  • Fenêtre Contexte : 8192 tokens (8K) (entraîné), mais peut accepter 1M+ (expérimental).
  • Innovation (Tokenizer) : Nouveau tokenizer (Tiktoken, 128K vocab) = 15% plus efficace (moins de tokens pour le même texte).
  • Impact : Le Llama 3 70B est (actuellement) *meilleur* que GPT-4 (pré-Turbo) et Claude 3 Opus. Le Llama 3 8B est le *meilleur* modèle de sa taille, de loin.
Llama 4 (Spéculation, H2 2025?)

Meta a confirmé que Llama 4 est en entraînement. La communauté spécule (basé sur Llama 3 405B) qu'il sera :

  • Multimodal : Capable de gérer texte, image, audio (comme GPT-4o / Claude 3.5). Le 405B (Llama 3) est déjà multimodal ("Llama 3-V").
  • MoE (Mixture of Experts) : (Comme Mixtral). Au lieu d'un "gros" 405B, ce sera (peut-être) 8x "experts" de 100B, pour une inférence plus rapide.
  • Fenêtre Contexte : > 1 Million de tokens (natif).
1.4 Modèles Llama 3 (8B, 70B, 405B)

Llama 3 (Avril 2024) a été lancé avec 2 modèles (et un 3ème en cours d'entraînement).

ModèleParamètresFenêtre Contexte (Train)Vocabulaire (Tokenizer)GQA ?Cas d'usage
Llama 3 8B8 Milliards8,192 tokens (8K)128K (Tiktoken)OuiInférence locale (MacBook M1/M2), chatbots rapides (CPU).
Llama 3 70B70 Milliards8,192 tokens (8K)128K (Tiktoken)OuiLe "SOTA" open-weight. (Nécessite 2x GPU 4090 / A100).
Llama 3 405B~405 Milliards(Inconnu, > 128K)(Inconnu)Oui(En entraînement). L'arme "anti-GPT-5" de Meta.
1.5 Architecture Llama 3 (GQA, RMSNorm)
Diagramme (Architecture "Decoder-Only")

Llama (comme GPT) est un "Transformer" de type Decoder-Only (Auto-régressif).

(Input: "Bonjour, je...")
      |
      ▼
+---------------------+
| Tokenizer (Tiktoken) | (ID: [83, 15, 432])
+---------------------+
      |
      ▼
+---------------------+
| Embedding (128K)    |
+---------------------+
      |
      ▼
+---------------------+
| N x Blocs Transformer |
| (Bloc = RMSNorm -> GQA -> RMSNorm -> FFN)
+---------------------+
      |
      ▼
+---------------------+
| RMSNorm (Final)     |
+---------------------+
      |
      ▼
+---------------------+
| Tête (Head) Linéaire |
| (Classifier -> 128K) |
+---------------------+
      |
      ▼
(Output: "suis")
Innovations Clés (Les "Plugins" d'Archi)
  • GQA (Grouped-Query Attention) :
    Problème : L'Attention (Self-Attention) est le "goulot" (coût en RAM/VRAM) des LLM. (Ex: 70B têtes de Query, 70B têtes de Key, 70B têtes de Value).
    Solution (Plugin) : GQA "partage" les têtes. (Ex: 70B têtes de Query, mais seulement 8 têtes de Key/Value).
    Résultat : Inférence *beaucoup* plus rapide (moins de VRAM nécessaire) pour (presque) la même précision.

  • RMSNorm (Root Mean Square Normalization) :
    Un "plugin" de normalisation (comme BatchNorm ou LayerNorm) mais *plus simple* et *plus rapide*.
    Utilisé en pré-normalisation (avant l'attention), ce qui stabilise l'entraînement des très grands modèles.
Le Tokenizer (128K Vocab)

C'est une amélioration majeure de Llama 3.
Llama 2 : 32 000 tokens (vocabulaire).
Llama 3 : 128 256 tokens (vocabulaire).

Impact :
1. Efficacité : Il faut ~15% de tokens en moins pour encoder le même texte (surtout non-anglais).
2. Meilleure Compréhension : Plus de langues (français, allemand...) sont "natives" dans le tokenizer.

1.6 📊 Performance (Llama 3 70B SOTA)

Llama 3 (Avril 2024) a (temporairement) pris la couronne SOTA, en battant les modèles fermés (GPT-4, Claude 3 Opus) pour la première fois.

Benchmark (Tâche)Llama 3 8BLlama 3 70BGPT-4 (OpenAI)Claude 3 Opus
MMLU (Connaissance Générale)68.482.081.880.1
GPQA (Raisonnement (Bio/Chim))39.554.753.650.4
HumanEval (Code)62.281.774.484.9 (Ici, Opus gagne)
MATH (Maths)30.052.950.460.1 (Ici, Opus gagne)

Note : Ces chiffres sont *déjà* obsolètes. Claude 3.5 Sonnet (Juin 2024) et GPT-4o (Mai 2024) ont (légèrement) dépassé Llama 3 70B.

L'essentiel : Llama 3 est *compétitif* avec les meilleurs modèles *payants*, tout en étant *open-weight*.

2.1 💻 Inférence (API vs Local)

Il y a deux façons principales d'utiliser Llama :

1. APIs (SaaS)

Si vous ne voulez pas gérer l'infra GPU, vous pouvez appeler Llama (comme un "plugin" GPT) via des "endpoints" payants.

  • Perplexity : Utilise Llama 3 (llama-3-70b-instruct) pour leur API.
  • Groq : (Le plus rapide). Spécialisé dans l'inférence *ultra-rapide* (500+ tokens/sec) grâce à leurs puces LPU (Language Processing Unit).
  • Replicate : Plateforme de "hosting" de modèles AI.
  • Amazon Bedrock / Google Vertex AI : (Voir 3.3).
2. Local (Self-Hosted)

C'est la *vraie* puissance de Llama. Vous le faites tourner sur *votre* machine (GPU ou CPU).

Outil (Plugin)Description
Ollama (Voir 2.3)Le "Docker" des LLM. Le plus simple pour démarrer (macOS, Linux, Win).
Hugging Face transformers (Voir 2.2)Le standard (Python) pour l'inférence et le fine-tuning.
llama.cpp / GGUF"Plugin" C++. L'original. Permet de faire tourner des modèles *quantizés* (GGUF) sur CPU.
2.2 "Plugin" Écosystème: Hugging Face (transformers)

Hugging Face (HF) est la plateforme (le "GitHub") de l'IA. transformers est leur "plugin" (librairie) Python pour charger et utiliser *tous* les LLM (Llama, GPT-2, Mistral...).

Inférence (Python transformers)
# (Nécessite: pip install transformers torch accelerate)
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM

# 1. Définir le modèle (depuis le Hub HF)
model_id = "meta-llama/Llama-3-8B-Instruct"

# 2. Charger le Tokenizer et le Modèle
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    torch_dtype=torch.bfloat16, # (Précision (FP16/BF16))
    device_map="auto" # (Met le modèle sur le GPU si dispo)
)

# 3. Format de Chat (Llama 3 Instruct)
#    (Chaque modèle a un "chat template" spécifique)
messages = [
    {"role": "system", "content": "Tu es un assistant Python."},
    {"role": "user", "content": "C'est quoi GQA ?"},
]

# 4. Appliquer le template (transforme en string/IDs)
input_ids = tokenizer.apply_chat_template(
    messages,
    add_generation_prompt=True,
    return_tensors="pt"
).to(model.device)

# 5. Génération
outputs = model.generate(
    input_ids,
    max_new_tokens=256,
    do_sample=True,
    temperature=0.7,
)

# 6. Décodage
response = tokenizer.decode(outputs[0][input_ids.shape[-1]:], skip_special_tokens=True)
print(response)
2.3 "Plugin" Local: Ollama

Ollama est le "Docker" des LLM. C'est le "plugin" (l'outil) le plus *simple* pour télécharger et exécuter des modèles (comme Llama 3) localement (macOS, Windows, Linux).

Il gère les poids, la quantification (GGUF), et expose une API REST locale (http://localhost:11434).

1. Utilisation (CLI)
# 1. Télécharger et exécuter Llama 3 8B
$ ollama run llama3

# 2. (La première fois, il télécharge ~4.7GB)
pulling manifest ...
pulling 8B-file.gguf ... 100%

# 3. Chatter !
>>> Pourquoi le ciel est bleu ?
La diffusion de Rayleigh...
2. Le Modelfile (Le "Plugin" de Customisation)

C'est le "Dockerfile" d'Ollama. Il permet de créer un *nouveau* modèle (custom) à partir d'un modèle de base (Llama 3).

Modelfile (Exemple)
# 1. Modèle de base
FROM llama3

# 2. Changer le "Prompt Système" (le "plugin" de personnalité)
SYSTEM """
Tu es un assistant expert en Python.
Tu es concis et ne donnes que du code.
Tu refuses de parler d'autre chose.
"""

# 3. Changer les paramètres (le "plugin" de créativité)
PARAMETER temperature 0.3
PARAMETER top_k 20
Ollama (CLI)
# 1. Créer le modèle custom
$ ollama create mon-python-bot -f ./Modelfile

# 2. L'utiliser
$ ollama run mon-python-bot "C'est quoi VGG ?"
# (Il va répondre sur Python, ou refuser)
3.1 🧠 Fine-Tuning (Le "Plugin" QLoRA)
Le Problème

Entraîner Llama 3 70B (70 Milliards de poids) nécessite ~8x GPU A100 (80GB VRAM). C'est impossible pour un mortel.

La Solution : PEFT (Parameter-Efficient Fine-Tuning)

Ne pas ré-entraîner les 70B de poids. On "gèle" (freeze) le modèle, et on ajoute un petit "plugin" (adaptateur) de quelques millions de poids (LoRA).

MéthodeDescriptionVRAM (GPU)
Full Fine-TuningMet à jour les 70B de poids.> 640 GB (Impossible)
LoRA (Low-Rank Adaptation)"Plugin". Gèle les 70B. Ajoute (ex:) 20M de poids "adaptateurs".~80 GB (1x A100)
QLoRA (Quantized LoRA)"Plugin". Quantize le 70B (en 4-bit), PUIS ajoute le LoRA.~24 GB (1x RTX 4090)
QLoRA (Le "Plugin" Magique)

QLoRA (de 2023) est la technique "plugin" qui a *tout* changé. Elle permet de fine-tuner un 70B sur un GPU "gamer".

Elle combine 2 "plugins" :

  1. Quantization (4-bit) : (via bitsandbytes). Le modèle 70B (FP16) est "compressé" en 4-bit (INT4) en mémoire. (Taille VRAM / 4).
  2. LoRA (Adaptateurs) : On ajoute les "plugins" LoRA (petites matrices) qui, eux, sont entraînés en 16-bit.

C'est la méthode standard pour tout fine-tuning local.

Code (Hugging Face transformers + trl)
# (Nécessite: pip install transformers trl peft bitsandbytes)
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
from peft import LoraConfig
from trl import SFTTrainer

# 1. Modèle de base
model_id = "meta-llama/Llama-3-8B"

# 2. Config "Plugin" QLoRA (Quantization 4-bit)
bnb_config = BitsAndBytesConfig(
    load_in_4bit=True,
    bnb_4bit_quant_type="nf4",
    bnb_4bit_compute_dtype=torch.bfloat16
)

# 3. Config "Plugin" LoRA (Adaptateurs)
lora_config = LoraConfig(
    r=16, 
    lora_alpha=32, 
    lora_dropout=0.05, 
    task_type="CAUSAL_LM"
)

# 4. Charger le modèle (quantizé !)
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    quantization_config=bnb_config,
    device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(model_id)

# 5. Lancer l'entraînement (SFTTrainer = Supervised Fine-Tuning)
trainer = SFTTrainer(
    model=model,
    train_dataset=mon_dataset_jsonl,
    peft_config=lora_config,
    dataset_text_field="text",
    ...
)
trainer.train()
3.2 "Addon" API: Tool Use (Function Calling)

Llama 3 (Instruct) a été entraîné pour le "Tool Use" (Appel de Fonctions), un "plugin" essentiel (similaire à Claude 2.1 et GPT). Il permet au LLM de *demander* à utiliser des outils (plugins) externes.

L'implémentation est gérée par le framework (ex: Ollama, LangChain, transformers).

Exemple (Hugging Face transformers)
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM

model_id = "meta-llama/Llama-3-70B-Instruct"
# ... (charger model & tokenizer) ...

# 1. Définir le "plugin" (l'outil) au format OpenAI
tools = [
    {
        "type": "function",
        "function": {
            "name": "get_current_weather",
            "description": "Get the current weather in a given location",
            "parameters": {
                "type": "object",
                "properties": {
                    "location": {"type": "string", "description": "La ville"},
                },
                "required": ["location"],
            },
        },
    }
]

# 2. Le "Prompt"
messages = [{"role": "user", "content": "Quelle est la météo à Paris ?"}]

# 3. Génération (en forçant un 'tool_choice')
tool_call_response = model.generate(
    ...,
    tools=tools,
    tool_choice="auto" 
)

# 4. 'tool_call_response' (la réponse de Llama)
# (Le modèle s'arrête et demande d'appeler l'outil)
# -> "J'appelle: get_current_weather(location='Paris')"

# 5. (Votre code exécute la vraie fonction 'get_current_weather'...)
# 6. (Vous re-appelez le modèle avec le résultat...)
3.3 Llama 4 (Futur) & Liens
Spéculations sur Llama 4

L'industrie s'attend à ce que Llama 4 (ou le "vrai" Llama 3 405B+) sorte fin 2024 / début 2025 pour concurrencer GPT-4o et Claude 3.5.

Les "plugins" (innovations) attendus sont :

  • Multimodalité NATIVE : Gérer (en entrée *et* sortie) Texte, Image, Audio (comme GPT-4o).
  • MoE (Mixture of Experts) : (Comme Mixtral/GPT-4). Au lieu d'un "gros" 405B, ce sera (peut-être) 8x "experts" de 100B, pour une inférence plus rapide.
  • Contexte 1M+ : Une fenêtre de contexte de 1M+ tokens (natif).