Este repositorio contiene el código para desarrollar, previamente previamente y finalmente unir un LLM tipo GPT y es el repositorio oficial de código para el libro Build a Language Model (desde cero).
En la construcción de un modelo de idioma grande (desde cero) , aprenderá y comprenderá cómo funcionan los modelos de idiomas grandes (LLM) desde adentro hacia afuera codificándolos desde cero, paso a paso. En este libro, lo guiaré a través de la creación de su propia LLM, explicando cada etapa con texto claro, diagramas y ejemplos.
El método descrito en este libro para capacitar y desarrollar su propio modelo pequeño pero funcional para fines educativos refleja el enfoque utilizado en la creación de modelos fundamentales a gran escala como los detrás de ChatGPT. Además, este libro incluye código para cargar los pesos de modelos previos a los pretrados más grandes para Finetuning.
Para descargar una copia de este repositorio, haga clic en el botón Descargar zip o ejecutar el siguiente comando en su terminal:
git clone --depth 1 https://github.com/ranpy13/Learning-LLM.git(Si descargó el paquete de código del sitio web de Manning, considere visitar el repositorio de código oficial en GitHub en https://github.com/ranpy13/learning-llm para obtener las últimas actualizaciones).
Tenga en cuenta que este archivo README.md es un archivo Markdown ( .md ). Si ha descargado este paquete de código del sitio web de Manning y lo está viendo en su computadora local, le recomiendo usar un editor de Markdown o una vista previa para la visualización adecuada. Si aún no ha instalado un editor de Markdown, MarkText es una buena opción gratuita.
Alternativamente, puede ver este y otros archivos en GitHub en https://github.com/ranpy13/learning-llm en su navegador, que representa a Markdown automáticamente.
Consejo
Si está buscando orientación para instalar paquetes de Python y Python y configurar su entorno de código, sugiero que lea el archivo ReadMe.md ubicado en el directorio de configuración.
| Título del capítulo | Código principal (para acceso rápido) | Todo el código + suplementario |
|---|---|---|
| Recomendaciones de configuración | - | - |
| CH 1: Comprender modelos de idiomas grandes | Sin código | - |
| CH 2: Trabajar con datos de texto | - ch02.ipynb - dataLoader.ipynb (resumen) - Soluciones de ejercicio.ipynb | ./Ch02 |
| CH 3: Codificación de mecanismos de atención | - ch03.ipynb - Multihead-Atention.ipynb (resumen) - Soluciones de ejercicio.ipynb | ./Ch03 |
| CH 4: Implementar un modelo GPT desde cero | - CH04.IPYNB - Gpt.py (resumen) - Soluciones de ejercicio.ipynb | ./Ch04 |
| CH 5: Pretratrening en datos no etiquetados | - CH05.IPYNB - gpt_train.py (resumen) - gpt_generate.py (resumen) - Soluciones de ejercicio.ipynb | ./Ch05 |
| CH 6: Finetuning para la clasificación de texto | - CH06.IPYNB - gpt_class_finetune.py - Soluciones de ejercicio.ipynb | ./CH06 |
| CH 7: Finetuning para seguir las instrucciones | - CH07.IPYNB - gpt_instruction_finetuning.py (resumen) - Ollama_evaluate.py (resumen) - Soluciones de ejercicio.ipynb | ./ch07 |
| Apéndice A: Introducción a Pytorch | - Code-Part1.ipynb - Código-PART2.IPYNB - ddp-script.py - Soluciones de ejercicio.ipynb | ./Appéndice-a |
| Apéndice B: Referencias y lecturas adicionales | Sin código | - |
| Apéndice C: Soluciones de ejercicio | Sin código | - |
| Apéndice D: Agregar campanas y silbatos al bucle de entrenamiento | - Apéndice-D.ipynb | ./Appéndice-D |
| Apéndice E: Finetuning de los parámetros con Lora | - apéndice-e.ipynb | ./appendix-e |
El modelo mental a continuación resume los contenidos cubiertos en este libro.
El código en los capítulos principales de este libro está diseñado para ejecutarse en computadoras portátiles convencionales dentro de un plazo razonable y no requiere hardware especializado. Este enfoque asegura que una audiencia amplia pueda interactuar con el material. Además, el código utiliza automáticamente GPU si están disponibles. (Consulte el documento de configuración para obtener recomendaciones adicionales).
Varias carpetas contienen materiales opcionales como bonificación para los lectores interesados:
Agradezco todo tipo de comentarios, mejor compartido a través del foro de Manning o las discusiones de Github. Del mismo modo, si tiene alguna pregunta o simplemente desea obtener ideas de otros, no dude en publicarlas también en el foro.
Tenga en cuenta que dado que este repositorio contiene el código correspondiente a un libro de impresión, actualmente no puedo aceptar contribuciones que extiendan el contenido del código del capítulo principal, ya que introduciría desviaciones del libro físico. Mantenerlo consistente ayuda a garantizar una experiencia sin problemas para todos.
Si encuentra este libro o código útil para su investigación, considere citarlo.
Cita al estilo de Chicago:
Raschka, Sebastian. Construya un modelo de idioma grande (desde cero) . Manning, 2024. ISBN: 978-1633437166.
Entrada de 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}
}