IA pour ingénieursAI for Engineers
De la théorie au modèle sur mesureFrom theory to your own model

Huit séances de 90 minutes, chacune avec un lab exécutable et mesuré. Vous partez du fonctionnement réel d'un LLM et vous arrivez à un modèle entraîné sur vos données, servi derrière une API. Bilingue français / anglais, tout en local. Eight 90-minute sessions, each with a runnable, measured lab. You start from how an LLM actually works and end with a model trained on your data, served behind an API. Bilingual French / English, all local.

8 × 90 min 8 labs exécutables8 runnable labs FR / EN 100 % local100 % local Aucun prérequis MLNo ML prerequisite
🎯 Le fil rouge du cours : « mesurez au lieu de croire ». Chaque affirmation technique de ce cours est soit adossée à une source officielle, soit mesurée sur le lab — et les chiffres sont datés. Vous apprendrez autant à écrire un harnais de mesure qu'à écrire un prompt. The course's through-line: "measure instead of believing". Every technical claim here is either backed by an official source or measured on the lab — and the figures are dated. You will learn to write a measurement harness as much as to write a prompt.

📚 Les 8 séancesThe 8 sessions

Dans l'ordre. Chaque séance se termine par un gain concret à emporter.In order. Each session ends with a concrete take-away.

Séance 1 · ThéorieSession 1 · Theory
Comment fonctionne réellement un LLMHow an LLM actually works

Tokens et tokenizer, embeddings, self-attention, les trois entraînements, hallucination, température. Pourquoi le décodage est memory-bound.Tokens and tokenizer, embeddings, self-attention, the three trainings, hallucination, temperature. Why decoding is memory-bound.

🏆 Script d'analyse de tokens + débit réel de votre machineToken-analysis script + your machine's real throughput
Séance 2 · Théorie & choixSession 2 · Theory & choice
Paysage des modèles & quantificationModel landscape & quantization

Paramètres, précision, GGUF, k-quants. La formule du cache KV (avec GQA) et le calcul de budget mémoire. Choisir un modèle sans se tromper.Parameters, precision, GGUF, k-quants. The KV cache formula (with GQA) and memory-budget math. Choosing a model without guessing.

🏆 Calculateur VRAM/RAM + table de décision de quantificationVRAM/RAM calculator + quantization decision table
Séance 3 · PratiqueSession 3 · Practice
Prompt engineering pour ingénieursPrompt engineering for engineers

Le prompt comme composant logiciel. Few-shot, décomposition, sortie contrainte, injection de prompt, et surtout l'évaluation chiffrée d'un prompt.The prompt as a software component. Few-shot, decomposition, constrained output, prompt injection, and above all the quantified evaluation of a prompt.

🏆 Harnais d'évaluation + gabarit d'extraction durci (avec preuve chiffrée)Evaluation harness + hardened extraction template (with numerical proof)
Séance 4 · PratiqueSession 4 · Practice
Servir des modèles en local : plusieurs outilsServing models locally: multiple tools

llama.cpp, Ollama, LM Studio, vLLM : qui fait quoi. L'API compatible OpenAI comme langue commune, et la vérification qu'un service tourne vraiment.llama.cpp, Ollama, LM Studio, vLLM: who does what. The OpenAI-compatible API as a lingua franca, and verifying a service is really up.

🏆 Matrice d'endpoints + client unique pour tous les moteursEndpoint matrix + one client for every engine
Séance 5 · PratiqueSession 5 · Practice
Réglage & benchmarking de performancePerformance tuning & benchmarking

Prefill vs decode, TTFT vs tokens/s. Les dix leviers classés par effet, et une méthodologie de mesure qui ne se ment pas (échauffement, médiane).Prefill vs decode, TTFT vs tokens/s. The ten levers ranked by effect, and a measurement methodology that does not lie to you (warm-up, median).

🏆 Banc d'essai + tableau de mesures avec la phrase de genouBenchmark bench + measurement table with its knee sentence
Séance 6 · PratiqueSession 6 · Practice
RAG : injecter son propre corpusRAG: injecting your own corpus

Le pipeline complet, la contrainte de taille des fragments, la recherche hybride, et les deux étages d'évaluation (recall@k vs faithfulness).The full pipeline, the chunk-size constraint, hybrid search, and the two evaluation stages (recall@k vs faithfulness).

🏆 RAG local avec citations + recall@k mesuréLocal RAG with citations + measured recall@k
Séance 7 · PratiqueSession 7 · Practice
Fine-tuning LoRA / QLoRA sur votre datasetLoRA / QLoRA fine-tuning on your dataset

Ce que LoRA gèle, pourquoi QLoRA tient dans 12 Go, le dataset (80 % du résultat), le piège du gabarit de chat, les hyperparamètres qui comptent.What LoRA freezes, why QLoRA fits in 12 GB, the dataset (80 % of the result), the chat-template trap, the hyperparameters that matter.

🏆 Votre adaptateur LoRA + évaluation avant/aprèsYour LoRA adapter + before/after evaluation
Séance 8 · Pratique & capstoneSession 8 · Practice & capstone
Fusion, export, déploiement & capstoneMerge, export, deployment & capstone

Fusionner ou garder l'adaptateur, convertir en GGUF, quantifier, créer un modèle nommé (Modelfile, ADAPTER), servir, et brancher dans un agent.Merge or keep the adapter, convert to GGUF, quantize, create a named model (Modelfile, ADAPTER), serve, and wire into an agent.

🏆 Votre modèle nommé, servi, + l'agent qui l'utiliseYour named model, served, + the agent using it

🗂 Fiches de référenceReference sheets

À imprimer ou garder ouvert pendant les labs.Print them or keep them open during the labs.

📖 Glossaire bilingue FR/ENBilingual FR/EN glossary 🧮 Mémoire & quantificationMemory & quantization ✍️ Playbook promptPrompt playbook Playbook de réglageTuning playbook 🔀 RAG vs fine-tuningRAG vs fine-tuning 🚀 Checklist de déploiementDeployment checklist

🔬 Les labs exécutablesThe runnable labs

Dans labs/. Chaque script est autonome et affiche ce qu'il mesure.In labs/. Every script is self-contained and prints what it measures.

lab1_tokens.py          tokens FR/EN/JSON + débit d'un endpoint
lab2_memory_budget.py   budget mémoire (poids + cache KV) et verdict matériel
lab3_eval_harness.py    évaluation d'un prompt (naïf vs durci) + test d'injection
lab4_openai_client.py   probe / matrix / compat sur plusieurs moteurs
lab5_benchmark.py       balayages de paramètres, médianes, concurrence
lab6_rag_local.py       index / ask / eval — RAG local avec citations
lab7_finetune_qlora.py  validation d'environnement puis entraînement QLoRA
lab8_export_deploy.sh   create-from-base / verify / merge / quantize / ADAPTER
dataset/make_dataset.py génération ET validation d'un dataset d'entraînement

🚀 Comment suivre le coursHow to follow the course

Matériel utiliséHardware used

  • Poste CPU — i5-8350U, 64 Go RAM, pas de CUDA. Le parcours « je n'ai pas de GPU ».CPU workstation — i5-8350U, 64 GB RAM, no CUDA. The "I have no GPU" track.
  • Lab GPU (172.16.8.81) — 8 cœurs, 23 Go RAM, 2× RTX 3060 (24 Go), Ollama, llama.cpp (build CPU).GPU lab (172.16.8.81) — 8 cores, 23 GB RAM, 2× RTX 3060 (24 GB), Ollama, llama.cpp (CPU build).
  • Noyau d'agents (172.16.8.51) — pour le capstone de la séance 8.Agent kernel (172.16.8.51) — for the session 8 capstone.
  • GPU gratuit — Colab (T4 16 Go), Kaggle (P100 16 Go, 30 h/semaine) si aucun GPU local.Free GPU — Colab (T4 16 GB), Kaggle (P100 16 GB, 30 h/week) if you have no local GPU.

Rythme conseilléSuggested rhythm

  • Lisez la séance (~45 min), puis faites le lab (~30 min), puis le quiz (~8 min).Read the session (~45 min), then do the lab (~30 min), then the quiz (~8 min).
  • Ne sautez pas les labs : ce sont eux qui produisent vos artefacts.Do not skip the labs: they are what produce your artefacts.
  • Notez vos chiffres dans un carnet — ils servent aux séances suivantes.Record your figures in a logbook — later sessions use them.
  • Reprenez les séances 2, 4 et 5 si vous changez de matériel.Redo sessions 2, 4 and 5 if you change hardware.
⚠️ Avant de commencer : tous les chiffres de ce cours sont datés du 2026-09-18 et mesurés sur le matériel décrit ci-dessus. Refaites les mesures sur votre matériel — c'est le but. Les versions d'outils et de modèles bougent vite : RESOURCES.md §8 indique comment revérifier l'état du lab. Before you start: every figure in this course is dated 2026-09-18 and measured on the hardware described above. Re-measure on your own hardware — that is the point. Tool and model versions move fast: RESOURCES.md §8 shows how to re-verify the lab state.
📚 Sources : chaque séance porte sa propre section « sources », avec liens vers les documentations officielles et les papiers fondateurs. L'inventaire complet, avec ce que chaque source établit, est dans RESOURCES.md. Les mesures proviennent des labs exécutés sur le lab (voir learning-records/). Sources: each session carries its own "sources" section, with links to official documentation and the founding papers. The complete inventory, with what each source establishes, is in RESOURCES.md. Measurements come from the labs executed on the lab (see learning-records/).