Module 10 · Comprendre depuis zéro

Fine-tuning et déploiement local

Se demander d'abord quand il faut fine-tuner, puis écrire LoRA à la main, fine-tuner un petit modèle open source avec peft, estimer la mémoire, écrire la quantification à la main, faire tourner un modèle sur son ordinateur avec Ollama, et enfin comprendre quel problème résolvent les frameworks de service comme vLLM.

Leçons

  1. 01
    Quand faire un fine-tuning, et quand s'en abstenir

    Le fine-tuning a l'air d'être la voie royale pour faire « apprendre » votre métier à un modèle, mais ce n'est souvent pas le premier choix. Cette leçon compare ce que changent prompts, RAG et fine-tuning, et ce qu'ils coûtent, et propose un ordre pour décider.

    25 minutes · Intermédiaire
  2. 02
    Le principe de LoRA, écrit à la main

    Pour fine-tuner un grand modèle, faut-il réentraîner ses milliards de paramètres ? LoRA gèle les paramètres d'origine et n'ajoute à côté que deux petites matrices. Écrire LoRA à la main sur le petit GPT du module 09, et changer son style en n'entraînant que 1,5 % des paramètres.

    45 minutes · Approfondi
  3. 03
    Fine-tuner un petit modèle open source avec LoRA

    Passer à un vrai modèle open source – équiper Qwen2.5-0.5B de LoRA avec transformers et peft, changer sa présentation de lui-même en une dizaine de secondes sur CPU, puis examiner de près les effets secondaires du fine-tuning.

    45 minutes · Approfondi
  4. 04
    Faire tourner un modèle sur votre ordinateur : Ollama et quantification

    Exécuter un modèle open source sur son propre ordinateur. Estimer d'abord la mémoire qu'occupe un modèle, écrire la quantification à la main, voir de combien les poids rétrécissent et se dégradent en 8, 4 et 2 bits, et enfin le faire tourner avec Ollama.

    40 minutes · Intermédiaire
  5. 05
    Déployer un service de modèle avec vLLM

    Quand on sert de nombreux utilisateurs à la fois, la question devient comment traiter le plus de requêtes possible avec la même carte graphique. Mesurer l'effet du traitement par lots avec le petit GPT, puis voir comment vLLM gère le cache KV et comment lancer un service compatible OpenAI.

    35 minutes · Approfondi

Le module 09 a entraîné un petit GPT de zéro. Dans la réalité, vous n'entraînerez presque jamais un grand modèle de zéro : vous prendrez un modèle open source déjà entraîné par d'autres, pour l'exécuter tel quel ou le fine-tuner. Ce module traite de ces deux choses.

Toutes les expériences se font sur le CPU d'un portable. Le modèle fine-tuné est Qwen2.5-0.5B-Instruct, avec seulement 500 millions de paramètres, et l'entraînement ne prend qu'une dizaine de secondes. Les modèles plus grands demandent une carte graphique ; les leçons expliquent comment estimer la mémoire graphique nécessaire.

Pourquoi cet ordre

La leçon 1 commence par une douche froide : la plupart du temps, vous n'avez pas besoin de fine-tuning, les prompts et le RAG conviennent mieux. Quand c'est vraiment nécessaire, la leçon 2 écrit LoRA à la main sur le petit GPT du module 09 pour en comprendre le principe ; la leçon 3 passe à un vrai modèle open source, avec transformers et peft, et examine de près les effets secondaires du fine-tuning.

Les deux dernières leçons traitent du déploiement. La leçon 4 apprend d'abord à estimer la mémoire, écrit la quantification à la main, puis fait tourner un modèle sur votre ordinateur avec Ollama ; la leçon 5 traite des problèmes posés par le service simultané de nombreux utilisateurs, et de la façon dont vLLM les résout.

Le code se trouve dans code/10-finetune-deploy/. Les leçons 2, 4 et 5 utilisent le modèle entraîné au module 09 : il faut donc avoir terminé le module 09.

Vous avez terminé quand

  • face à un besoin, vous savez juger s'il faut un prompt, du RAG ou un fine-tuning, et le justifier.
  • vous savez écrire une couche LoRA à la main, expliquer pourquoi B est initialisé à 0, et pourquoi LoRA peut être fusionné dans les poids d'origine.
  • vous savez équiper un modèle open source de LoRA avec peft et l'entraîner, en ne calculant la perte que sur la partie réponse, et vérifier effets et effets secondaires avec des questions jamais vues et des questions ordinaires.
  • vous savez estimer la mémoire occupée par un modèle d'après son nombre de paramètres et sa précision, et dire comment se calcule le cache KV.
  • vous savez expliquer la quantification symétrique et par groupes, et dire ce qu'entraînent à peu près 8 bits, 4 bits et 2 bits.
  • vous savez exécuter un modèle local avec Ollama, et faire appeler celui-ci par le code de la première partie en changeant quelques variables d'environnement.
  • vous savez expliquer pourquoi un service de modèle traite les requêtes par lots, et l'arbitrage entre débit et latence.

Le code de ce module

Le code et les sorties des programmes sont reproduits tels qu’ils ont tourné : commentaires et sorties sont donc en chinois.