Construire un LLM depuis les bases : atelier de code de 3 heures
(magazine.sebastianraschka.com)- Un atelier qui permet, en y consacrant quelques heures le week-end, de suivre en code le fonctionnement d’un LLM et d’examiner d’un seul coup le flux d’implémentation, d’entraînement et d’utilisation
- Les exercices pratiques partent d’une introduction aux LLM, puis avancent progressivement vers les données d’entrée, le tokenizer et l’implémentation de l’architecture du modèle
- Après l’implémentation de l’architecture, l’atelier couvre GPT-2 et Llama 2, le préentraînement et le chargement de poids préentraînés, jusqu’au flux d’utilisation d’un modèle réel
- Il inclut aussi l’utilisation des poids avec LitGPT, le fine-tuning sur instructions, l’évaluation par benchmark et l’évaluation des performances conversationnelles
- Le livre, le dépôt GitHub, le code de l’atelier, Lightning Studio et le dépôt LitGPT sont fournis ensemble, ce qui facilite le suivi pas à pas
Déroulé de la vidéo de l’atelier de 3 heures
- Le processus consistant à implémenter, entraîner et utiliser un LLM est traité sous la forme d’un seul atelier de code
- Des chapitres cliquables permettent d’aller directement au sujet souhaité
-
Bases et traitement des entrées
- 0:00 Vue d’ensemble de l’atelier
- 2:17 Introduction aux LLM
- 9:14 Supports de l’atelier
- 10:48 Comprendre les données d’entrée d’un LLM
- 23:25 Une classe de tokenizer simple
-
Implémentation du modèle et entraînement
- 41:03 Coder l’architecture d’un LLM
- 45:01 GPT-2 et Llama 2
- 1:07:11 Préentraînement
- 1:29:37 Chargement de poids préentraînés
- 1:45:12 Utilisation de poids préentraînés avec LitGPT
-
Fine-tuning et évaluation
- 1:53:09 Fine-tuning sur instructions
- 2:08:21 Fine-tuning sur instructions avec LitGPT
- 2:26:45 Évaluation par benchmark
- 2:36:55 Évaluation des performances conversationnelles
- 2:42:40 Conclusion
Ressources nécessaires pour suivre l’atelier
- Build an LLM from Scratch book : un livre pour construire un LLM de zéro
- Build an LLM from Scratch GitHub repository : dépôt GitHub lié au livre
- GitHub repository with workshop code : dépôt du code de l’atelier
- Lightning Studio for this workshop : Lightning Studio pour cet atelier
- LitGPT GitHub repository : dépôt GitHub de LitGPT
1 commentaires
Avis sur Hacker News
Il y a beaucoup de recoupements, mais ils approfondissent des sujets différents ou n’ont pas le même angle. Toute la série d’Andrej vaut largement le détour, et les travaux à venir d’Eureka Labs ont l’air très prometteurs. Le blog et le livre de Sebastian valent aussi, à mon avis, le temps et l’argent qu’on y consacre
https://ai.meta.com/research/publications/the-llama-3-herd-o...
C’est un bon tutoriel PyTorch, mais ne faisons pas comme si c’était bas niveau
Avant ça, j’avais essayé d’apprendre avec fast.ai, mais on commençait directement à construire des réseaux avec Pytorch, et j’ai vite décroché. Ça m’a paru aussi peu amusant que d’apprendre Java au lycée ; j’avais besoin de comprendre ce que je manipulais
https://16x.engineer/2023/12/29/nanoGPT-azure-T4-ubuntu-guid...
Je me demande aussi ce qu’on pouvait faire avec ce modèle, et comment lui faire apprendre des événements récents
À y regarder de plus près, « code » est ce qu’on établit dans le contenu d’un support comme un codex. Pour le contexte historique, voir https://en.wikipedia.org/wiki/Codex ; le terme part des ensembles de règles du domaine juridique, puis son usage s’est étendu à d’autres domaines en anglais au moins depuis le milieu du XVIe siècle.
« Program » évoque plutôt la publication d’un ensemble d’intentions, par exemple « jouer d’abord Bach, puis Mozart ». Cet usage apparaît plusieurs siècles après celui de code comme « ensemble de règles ».
« Develop » est intéressant parce qu’il signifie déployer, faire apparaître, mais il n’implique pas, comme les deux précédents, des règles ou une procédure séquentielle
Je ne sais pas exactement pourquoi, mais je pense que c’est parce qu’en portugais brésilien, « program » est fortement associé à la prostitution
Les ressources d’Andrej sont trop bas niveau pour moi, et j’ai tendance à me perdre dans les détails. Ce n’est pas une critique, plutôt un commentaire qui peut aider des personnes dans une situation similaire à la mienne
Il y a longtemps, j’avais suivi le fonctionnement de la rétropropagation dans des RNN profonds, donc je me disais que le reste serait aussi intéressant à regarder
Quand Windows n’est pas mentionné explicitement, je constate souvent que l’environnement n’a pas été testé et que ça marche mal pour toutes sortes de raisons
https://developer.nvidia.com/cuda-downloads?target_os=Linux&...