Ce référentiel contient le code pour le développement, la pré-entraînement et le déseturation d'un LLM de type GPT et est le référentiel de code officiel pour le livre Build a un grand modèle de langue (à partir de zéro).
Dans Build A Large Language Model (à partir de zéro) , vous apprendrez et comprendrez comment les grands modèles de langue (LLMS) fonctionnent de l'intérieur en les codant à partir de zéro, étape par étape. Dans ce livre, je vous guiderai à travers la création de votre propre LLM, expliquant chaque étape avec du texte, des diagrammes et des exemples clairs.
La méthode décrite dans ce livre pour la formation et le développement de votre propre modèle petit mais fonctionnel à des fins éducatives reflète l'approche utilisée pour créer des modèles fondamentaux à grande échelle tels que ceux derrière Chatgpt. De plus, ce livre comprend du code pour charger les poids de modèles pré-entraînés plus grands pour les fusions.
Pour télécharger une copie de ce référentiel, cliquez sur le bouton Télécharger Zip ou exécutez la commande suivante dans votre terminal:
git clone --depth 1 https://github.com/ranpy13/Learning-LLM.git(Si vous avez téléchargé le bundle de code sur le site Web de Manning, veuillez envisager de visiter le référentiel de code officiel sur GitHub à https://github.com/ranpy13/learning-llm pour les dernières mises à jour.)
Veuillez noter que ce fichier README.md est un fichier Markdown ( .md ). Si vous avez téléchargé ce bundle de code à partir du site Web de Manning et que vous le consultez sur votre ordinateur local, je recommande d'utiliser un éditeur ou un aperçu de Markdown pour une visualisation appropriée. Si vous n'avez pas encore installé un éditeur de Markdown, MarkText est une bonne option gratuite.
Vous pouvez également afficher ceci et d'autres fichiers sur github sur https://github.com/ranpy13/learning-llm dans votre navigateur, qui rend automatiquement Markdown.
Conseil
Si vous cherchez des conseils sur l'installation de packages Python et Python et la configuration de votre environnement de code, je suggère de lire le fichier readme.md situé dans le répertoire de configuration.
| Titre de chapitre | Code principal (pour un accès rapide) | Tout code + supplémentaire |
|---|---|---|
| Recommandations de configuration | - | - |
| CH 1: comprendre de grands modèles de langue | Pas de code | - |
| CH 2: Travailler avec des données de texte | - ch02.ipynb - dataloader.ipynb (résumé) - Exercice-solutions.ipynb | ./CH02 |
| CH 3: Mécanismes d'attention de codage | - ch03.ipynb - Multihead-Atention.Ipynb (Résumé) - Exercice-solutions.ipynb | ./Ch03 |
| CH 4: Implémentation d'un modèle GPT à partir de zéro | - ch04.ipynb - gpt.py (résumé) - Exercice-solutions.ipynb | ./Ch04 |
| CH 5: pré-entraîner les données non marquées | - ch05.ipynb - gpt_train.py (résumé) - gpt_generate.py (résumé) - Exercice-solutions.ipynb | ./CH05 |
| CH 6: Finetuning pour la classification du texte | - ch06.ipynb - gpt_class_finetune.py - Exercice-solutions.ipynb | ./CH06 |
| CH 7: Finetuning pour suivre les instructions | - ch07.ipynb - gpt_instruction_finetuning.py (résumé) - olllama_evaluate.py (résumé) - Exercice-solutions.ipynb | ./Ch07 |
| Annexe A: Introduction à Pytorch | - code-parti1.ipynb - code-parti2.Ipynb - ddp-script.py - Exercice-solutions.ipynb | ./APPENDIX-A |
| Annexe B: références et lecture complémentaire | Pas de code | - |
| Annexe C: Solutions d'exercice | Pas de code | - |
| Annexe D: Ajouter des cloches et des sifflets à la boucle de formation | - Annexe-D.ipynb | ./Apendedix-D |
| Annexe E: Finetuning économe en paramètres avec LORA | - Annexe-e.ipynb | ./APPENDIX-E |
Le modèle mental ci-dessous résume le contenu couvert dans ce livre.
Le code dans les chapitres principaux de ce livre est conçu pour fonctionner sur des ordinateurs portables conventionnels dans un délai raisonnable et ne nécessite pas de matériel spécialisé. Cette approche garantit qu'un large public peut s'engager avec le matériel. De plus, le code utilise automatiquement les GPU s'ils sont disponibles. (Veuillez consulter le document de configuration pour des recommandations supplémentaires.)
Plusieurs dossiers contiennent des matériaux facultatifs en bonus pour les lecteurs intéressés:
Je salue toutes sortes de commentaires, mieux partagés via les discussions Manning Forum ou GitHub. De même, si vous avez des questions ou si vous souhaitez simplement faire rebondir les idées des autres, n'hésitez pas également à les publier dans le forum.
Veuillez noter que comme ce référentiel contient le code correspondant à un livre d'impression, je ne peux actuellement pas accepter les contributions qui étendraient le contenu du code de chapitre principal, car il introduirait les écarts par rapport au livre physique. Le garder cohérent permet d'assurer une expérience fluide pour tout le monde.
Si vous trouvez ce livre ou code utile pour vos recherches, veuillez envisager de le citer.
Citation de style Chicago:
Raschka, Sebastian. Construisez un grand modèle de langue (à partir de zéro) . Manning, 2024. ISBN: 978-1633437166.
Entrée Bibtex:
@book{build-llms-from-scratch-book,
author = {Sebastian Raschka},
title = {Build A Large Language Model (From Scratch)},
publisher = {Manning},
year = {2024},
isbn = {978-1633437166},
url = {https://www.manning.com/books/build-a-large-language-model-from-scratch},
github = {https://github.com/ranpy13/Learning-LLM}
}