Ce tutoriel s'adresse aux codeurs intéressés à comprendre les éléments constitutifs des modèles de grande langue (LLM), le fonctionnement des LLM et comment les coder à partir de zéro à Pytorch. Nous allons lancer ce tutoriel avec une introduction aux LLM, des jalons récents et leurs cas d'utilisation. Ensuite, nous coderons un petit LLM de type GPT, y compris son pipeline d'entrée de données, ses composants d'architecture de base et le code de pré-formation nous-mêmes. Après avoir compris comment tout s'intègre et comment prénailer un LLM, nous apprendrons à charger des poids pré-étendus et des LLM FineTune à l'aide de bibliothèques open source.
Le matériel de code est basé sur mon modèle de construction de construction à partir de Scratch Book et utilise également la bibliothèque LITGPT.
Un environnement cloud prêt à emporter, avec tous les exemples de code et dépendances installés, est disponible ici. Cela permet aux participants d'exécuter tout le code, en particulier dans les sections de pré-formation et de finetuning, sur un GPU.
De plus, consultez les instructions du dossier de configuration pour configurer votre ordinateur pour exécuter le code localement.
| Titre | Description | Dossier | |
|---|---|---|---|
| 1 | Introduction aux LLM | Une introduction à l'atelier introduisant les LLM, les sujets étant couverts dans cet atelier et les instructions de configuration. | 01_intro |
| 2 | Comprendre les données d'entrée LLM | Dans cette section, nous codons le pipeline d'entrée de texte en implémentant un tokenizer de texte et un dataloader Pytorch personnalisé pour notre LLM | 02_data |
| 3 | Codage d'une architecture LLM | Dans cette section, nous passerons en revue les éléments constitutifs individuels des LLM et les assemblerons en code. Nous ne couvrirons pas tous les modules dans les détails méticuleux, mais nous nous concentrerons sur la situation dans son ensemble et comment les assembler dans un modèle de type GPT. | 03_architecture |
| 4 | LLMS de pré-formation | Dans la partie 4, nous couvrirons le processus de pré-formation des LLM et implémenterons le code pour prénainler l'architecture du modèle que nous avons implémenté précédemment. Étant donné que la pré-entraînement coûte cher, nous ne le prédiez que sur un petit échantillon de texte disponible dans le domaine public afin que le LLM soit capable de générer des phrases de base. | 04_ |
| 5 | Chargement des poids pré-entraînés | Étant donné que la pré-entraînement est un processus long et coûteux, nous allons maintenant charger des poids pré-étendus dans notre architecture auto-mise en œuvre. Ensuite, nous présenterons la bibliothèque open-source Litgpt, qui fournit un code plus sophistiqué (mais toujours lisible) pour la formation et les LLM de Finetuning. Nous apprendrons à charger des poids de LLMS pré-entraînés (Llama, Phi, Gemma, Mistral) dans Litgpt. | 05_Weightloading |
| 6 | Finetuning LLMS | Cette section introduira les techniques de Finetuning LLM, et nous préparerons un petit ensemble de données pour l'instruction Finetuning, que nous utiliserons ensuite pour Finetune un LLM dans Litgpt. | 06_Finetuning |
(Le matériel de code est basé sur mon modèle de construction de construction à partir de Scratch Book et utilise également la bibliothèque Litgpt.)