1 points par GN⁺ 3 시간 전 | 1 commentaires | Partager sur WhatsApp
  • Les modèles de langage constituent la base des applications NLP modernes et ouvrent un nouveau paradigme où un système généraliste traite diverses sous-tâches
  • Ce cours fait implémenter de bout en bout tout le processus de développement d’un modèle de langage, de la collecte et du nettoyage des données de préentraînement à la construction d’un Transformer, son entraînement et son évaluation avant déploiement
  • Les devoirs commencent par l’implémentation du tokenizer, de l’architecture du modèle et de l’optimiseur, puis s’étendent à l’optimisation GPU, à une implémentation Triton de FlashAttention2 et au code d’entraînement distribué
  • Le cours requiert une bonne maîtrise de Python et de l’ingénierie logicielle, de PyTorch, de concepts systèmes comme la hiérarchie mémoire, ainsi que des connaissances en calcul, algèbre linéaire, probabilités, statistiques et machine learning
  • Ce cours en 5 unités, très centré sur l’implémentation, limite le recours au code existant et à la résolution directe par LLM, et recommande le débogage sur CPU avant l’entraînement et les benchmarks sur GPU

Objectifs et périmètre du cours

  • Les modèles de langage sont la pierre angulaire des applications modernes de traitement du langage naturel (NLP) et ouvrent un nouveau paradigme dans lequel un système généraliste prend en charge plusieurs sous-tâches
  • À mesure que les domaines de l’IA, du ML et du NLP continuent de croître, une compréhension approfondie des modèles de langage devient importante aussi bien pour les scientifiques que pour les ingénieurs
  • Inspiré des cours de systèmes d’exploitation qui consistent à construire un OS entier depuis zéro, ce cours suit toutes les étapes du développement d’un modèle de langage directement par l’étudiant
  • Le périmètre couvre la collecte et le nettoyage des données de préentraînement, la construction du modèle Transformer, l’entraînement du modèle et son évaluation avant déploiement

Compétences requises

  • La plupart des devoirs se font en Python, avec un niveau minimal de scaffolding par rapport aux autres cours d’IA
  • Le volume de code à écrire est au moins d’un ordre de grandeur supérieur à celui d’autres cours, d’où l’importance d’une solide maîtrise de Python et de l’ingénierie logicielle
  • Une grande partie du travail consiste à exécuter rapidement et efficacement des modèles de langage neuronaux sur les GPU de plusieurs machines
  • Une forte familiarité avec PyTorch et avec des concepts systèmes fondamentaux, comme la hiérarchie mémoire, est attendue
  • Il faut être à l’aise avec les notations et opérations sur matrices et vecteurs, les probabilités, les distributions gaussiennes, la moyenne, l’écart-type, ainsi qu’avec les bases du machine learning et du deep learning
  • Il s’agit d’un cours de 5 unités avec une très forte composante d’implémentation, ce qui nécessite d’y consacrer suffisamment de temps

Structure des devoirs

  • L’Assignment 1 Basics consiste à implémenter le tokenizer, l’architecture du modèle et l’optimiseur nécessaires à l’entraînement d’un modèle de langage Transformer standard, puis à entraîner un modèle de langage minimal
  • L’Assignment 2 Systems consiste à profiler et benchmarker, avec des outils avancés, le modèle et les couches de l’Assignment 1, à optimiser FlashAttention2 via une implémentation maison en Triton et à produire un code d’entraînement distribué économe en mémoire
  • L’Assignment 3 Scaling vise à comprendre la fonction de chaque composant du Transformer et à ajuster une scaling law pour prédire le passage à l’échelle du modèle en interrogeant l’API d’entraînement
  • L’Assignment 4 Data consiste à transformer des dumps bruts de Common Crawl en données de préentraînement exploitables, puis à améliorer les performances du modèle par filtrage et déduplication
  • L’Assignment 5 Alignment and Reasoning RL applique le fine-tuning supervisé et l’apprentissage par renforcement afin d’entraîner un LM à raisonner pour résoudre des problèmes de mathématiques
  • La Optional Part 2 de l’Assignment 5 consiste à implémenter et appliquer des méthodes d’alignement de sûreté comme DPO

Calcul GPU et coûts

  • Pour un suivi depuis chez soi, il est possible d’utiliser la puissance GPU d’un fournisseur cloud pour réaliser les devoirs
  • Au 28 mars 2026, le prix public d’un seul GPU B200 est de Modal 6,25 $/heure, Lambda Labs 6,69 $/heure, RunPod 4,99 $/heure, Nebius 5,50 $/heure ou 3,05 $/heure en préemptible, et Together 7,49 $/heure
  • Modal fournit 30 $ de calcul gratuit par mois, ne facture que le calcul effectivement utilisé et simplifie le passage du développement local aux expérimentations GPU à grande échelle
  • Pour réduire les coûts et gagner en confort, il est recommandé de déboguer d’abord la justesse de l’implémentation sur CPU, puis d’utiliser le nombre de GPU recommandé par le devoir pour les exécutions d’entraînement ou les benchmarks d’opérations GPU

Organisation du cours et règles de remise

  • Les cours ont lieu les lundis et mercredis de 15 h 00 à 16 h 20 au Skilling Auditorium, et les enregistrements sont disponibles dans la playlist YouTube
  • Toutes les questions liées au cours doivent être posées sur le canal Slack public, et toutes les annonces y sont également publiées
  • Tous les devoirs doivent être remis sur Gradescope avant la date limite ; les soumissions par e-mail ne sont pas acceptées
  • Il est possible de soumettre autant de fois que souhaité avant l’échéance, et seule la dernière soumission est notée
  • Une soumission partielle vaut mieux que pas de soumission du tout
  • Chaque étudiant dispose de 6 late days, et 1 late day prolonge l’échéance de 24 heures
  • Un maximum de 3 late days peut être utilisé par devoir
  • En cas d’erreur objective dans la notation, une demande de regrade peut être déposée sur Gradescope dans les 3 jours suivant la publication des notes

Politique de collaboration et d’outils IA

  • Les groupes d’étude sont autorisés, mais chaque étudiant doit comprendre son devoir, le réaliser lui-même et remettre une copie individuelle
  • En cas de travail en groupe, les noms des membres du groupe d’étude doivent figurer en haut du devoir
  • Les prompts vers des LLM comme ChatGPT sont autorisés pour des questions de programmation de bas niveau ou des questions conceptuelles de haut niveau sur les modèles de langage
  • Il est interdit d’utiliser directement un LLM pour résoudre les problèmes
  • Lors du travail sur les devoirs, il est fortement recommandé de désactiver les autocomplétions IA comme Cursor Tab et GitHub CoPilot, tandis que les autocomplétions non IA, comme la complétion de noms de fonctions, sont autorisées
  • Les supports de cours contiennent le nécessaire pour l’implémentation demandée ; sauf autorisation explicite dans l’énoncé d’un devoir, il ne faut pas consulter en ligne du code d’implémentation existant

1 commentaires

 
GN⁺ 3 시간 전
Commentaires sur Hacker News
  • J’ai récemment terminé la version 2025 du cours, regardé les vidéos et fait la plupart des devoirs, mais j’ai sauté certains travaux trop coûteux. Rien que les deux premiers devoirs demandaient énormément de réflexion et de débogage, et même avec quelques bases en deep learning, il m’a fallu des mois en y consacrant un peu de temps après le travail et le week-end
    J’ai du mal à imaginer comment les étudiants de Stanford arrivent à rendre un devoir toutes les deux semaines. Les professeurs et les assistants ont vraiment investi énormément d’efforts dans la conception du cours, les slides intégrant les tendances récentes et la préparation d’excellents devoirs, et c’est très gratifiant de voir soi-même comment tout s’assemble, depuis de petits composants jusqu’à la construction d’un véritable modèle de langage, en validant les grandes parties d’un pipeline de LLM
    En revanche, j’aurais aimé que les exigences de l’environnement d’exécution soient expliquées plus clairement. Le harness fonctionne surtout bien sur Linux + GPU NVIDIA et semble attendre certaines versions de CUDA ou architectures, ce qui est peut-être évident pour les chercheurs mais rare dans un environnement personnel. Pour suivre chez soi, la meilleure alternative est Windows + WSL2 + GPU NVIDIA ou la location de GPU sur plusieurs plateformes, mais aucune des deux options n’est facile ni bon marché. Ce serait bien d’indiquer aussi comment tirer le meilleur parti du cours sans GPU compatible, et j’ai également appris qu’en faisant trop peu attention à l’analyse mémoire sur Mac OS, du code Python peut se figer au point de forcer un redémarrage

    • Je confirme du point de vue d’un assistant. Nous avons maintenant davantage de ressources pour tester plus d’environnements, et nous allons essayer autant que possible. Les blocages dus à une surconsommation de mémoire dans du code écrit soi-même peuvent arriver partout, mais je pense qu’on peut donner des consignes plus rigoureuses dans le devoir sur les tokenizers afin d’atteindre une utilisation mémoire limitée
      Les coûts de location de GPU sont aussi un peu exagérés dans ces commentaires. La majeure partie du développement peut se faire en local, puis on ne lance de courts runs sur des GPU à la demande que quand c’est nécessaire. Le devoir 1 peut être exécuté entièrement sur une machine locale sans GPU, et les devoirs 1 et 2 peuvent en grande partie être résolus avec seulement quelques heures de location. Même sans faire très attention et en utilisant des GPU loués en continu, on reste autour de 200 dollars, et si l’on est prêt à réduire la taille des problèmes, on peut facilement descendre sous les 50 dollars. Je pense qu’on pourrait présenter cela plus clairement sous forme de tableau, ainsi que les ajustements possibles
      S’il y a d’autres retours ou problèmes, ce serait utile d’ouvrir une issue dans le dépôt, car il est difficile de corriger les problèmes dont on n’a pas connaissance
  • Il y a quelques jours, j’ai essayé d’implémenter une version améliorée de gpt-1 avec Claude. Je ne suis pas ingénieur machine learning mais un simple ingénieur backend, et le résultat est devenu une sorte de mélange entre gpt-1 et le modded-nanogpt de KellerJordan
    J’ai pu reproduire les résultats de l’article original sur gpt-1 avec un PC gamer, et cela ne demandait pas beaucoup de VRAM. Avec une NVIDIA GeForce RTX 2060 SUPER, j’ai reproduit la plupart des résultats après seulement 1 heure d’entraînement, donc si le préentraînement de LLM vous intéresse, je recommande d’essayer de la même façon
    Le code est ici : https://github.com/epoyraz/modded-gpt-1
    Sinon, vous pouvez aussi simplement demander à Claude 4.8 ou Codex 5.5

  • J’ai un bon souvenir de cs224d, qu’enseignait richardsocher. Le cours date d’avant l’ère des transformers, donc il est un peu ancien aujourd’hui, mais à l’époque c’était une très belle introduction à l’application du deep learning au traitement du langage naturel
    https://cs224d.stanford.edu

    • J’ai ressenti quelque chose de similaire. C’est à ce moment-là que j’ai pris conscience du potentiel d’Internet, et qu’on pouvait apprendre des sujets de pointe sans être doctorant dans une université de recherche de tout premier plan
  • On parle de « calcul GPU pour l’autoformation », mais le B200 recommandé commence à 4,99 dollars de l’heure. Je me demande si c’est vraiment nécessaire pour débuter
    Je suis justement en train de construire un LLM moi-même à partir de zéro, et dans les premières étapes, je n’ai pas eu besoin de plus qu’une 4090 sur Vast.ai

    • Du point de vue d’un assistant, pas du tout. Nous avons explicitement ajouté au premier devoir une section réduite pour qu’il puisse tourner en local, y compris sur GPU de série M. Pour le devoir 2, il y a quelques parties qui nécessitent le support Triton côté GPU, mais elles peuvent toutes être adaptées à des GPU bien moins chers
      Cette année, nous avons eu la chance d’obtenir des GPU Blackwell pour les étudiants de Stanford, donc les explications des devoirs ont surtout été rédigées sur cette base
    • Je trouve ça assez comparable aux FPGA. Le matériel nécessaire à un environnement de production peut être relativement modeste, parce que les modèles ou bitstreams de production sont fortement optimisés en taille pour ne conserver que ce qui est nécessaire au cas d’usage visé
      À l’inverse, quand on apprend à concevoir et expérimenter des kernels de calcul ou des blocs IP, le matériel requis doit être bien plus puissant ou offrir davantage de capacité. Les artefacts expérimentaux sont volontairement à l’opposé de l’optimisation : ils sont conçus pour être lisibles, inspectables et faciles à déboguer à chaque étape, ce qui rend les modèles ou bitstreams résultants très volumineux et peu optimisés
      Exécuter avec ses propres prompts un modèle que quelqu’un d’autre a finalisé et optimisé pour tourner sur du matériel comme une 4090 reste une forme d’expérimentation, mais peu coûteuse. C’est un peu comme charger sur un FPGA à 20 dollars le bitstream conçu et synthétisé par quelqu’un d’autre pour ce même FPGA, puis lui donner ses propres signaux d’entrée. Mais ce n’est pas ce genre d’expérimentation qu’on fera dans ce cours en apprenant à concevoir son propre modèle
    • Il semble étrange que les ressources nécessaires ne soient pas fournies par un établissement d’enseignement
    • Il n’est pas indispensable d’avoir un GPU pour entraîner son propre LLM
    • Vous avez raison d’être sceptique. J’ai entraîné sans problème un petit modèle de langage tout à fait correct sur une 4060Ti 16GB avec le dataset TinyStories. Les problèmes commencent seulement quand on veut tester si les idées se généralisent à des modèles plus grands que ce qu’on pourrait encore considérer comme « petits »
  • Ce cours a l’air passionnant, mais je me demande aussi quels sont les prérequis. Il est indiqué qu’il faut être à l’aise avec les bases du machine learning et du deep learning, et j’aimerais savoir s’il existe des ressources adaptées à un auto-apprentissage orienté implémentation sur ces sujets, ou des enregistrements de cours Stanford à recommander

  • Vraiment excellent. J’ai fait quelque chose de similaire au cours du mois dernier, avec comme contrainte de n’utiliser aucune bibliothèque en dehors de la bibliothèque standard de Python, même pas numpy
    J’ai commencé par Word2Vec, puis j’ai implémenté des RNN et des LSTM, et j’en suis maintenant à peu près à la moitié d’une implémentation de l’architecture Transformer

  • J’ai monté un groupe pour suivre ce cours ensemble à partir des vidéos YouTube et des supports de cours disponibles en ligne. C’était difficile mais très enrichissant, et nous avancions au rythme de une vidéo de cours par semaine
    Nous étions plus de 30 au départ, mais il n’en restait plus que 8 lors de la dernière session

  • J’aimerais m’y mettre, mais j’ai peur de ne pas encore avoir le niveau nécessaire. Peut-être qu’un jour ce sera possible

    • Alors commence simplement par l’un des cours prérequis
  • Je me demande quel est le GPU minimum pour suivre ce cours chez soi. J’ai une 5080 16GB, est-ce qu’il faut vraiment plus que ça ?

    • La première section devrait probablement tourner même sur une puce M1, et pour la deuxième il semble qu’il faille la prise en charge de Triton, donc une 5080 devrait aller
  • J’ai fait les deux premiers devoirs de manière indépendante sur un an, et j’ai énormément appris. Je me demande quels cours ont été suivis ensuite