Este tutorial está dirigido a codificadores interesados en comprender los bloques de construcción de modelos de idiomas grandes (LLM), cómo funcionan las LLM y cómo codificarlos desde cero en Pytorch. Iniciaremos este tutorial con una introducción a LLMS, hitos recientes y sus casos de uso. Luego, codificaremos un pequeño LLM similar a GPT, que incluye su tubería de entrada de datos, componentes de arquitectura central y código previa a la pretrario. Después de comprender cómo se ajusta todo y cómo previamente a un LLM, aprenderemos cómo cargar pesas previas a la aparición y Finetune LLM utilizando bibliotecas de código abierto.
El material de código se basa en mi modelo de lenguaje Build A Build de Scratch y también usa la Biblioteca LitGPT.
Aquí está disponible un entorno de nube listo para llevar, completo con todos los ejemplos y dependencias de código, está disponible. Esto permite a los participantes ejecutar todo el código, particularmente en las secciones de prisión y ficha, en una GPU.
Además, consulte las instrucciones en la carpeta de configuración para configurar su computadora para ejecutar el código localmente.
| Título | Descripción | Carpeta | |
|---|---|---|---|
| 1 | Introducción a LLMS | Una introducción al taller que presenta LLMS, los temas que se cubren en este taller e instrucciones de configuración. | 01_intro |
| 2 | Comprender los datos de entrada de LLM | En esta sección, estamos codificando la tubería de entrada de texto mediante la implementación de un tokenizador de texto y un DataLoader de Pytorch personalizado para nuestro LLM | 02_DATA |
| 3 | Codificando una arquitectura LLM | En esta sección, revisaremos los bloques de construcción individuales de LLMS y los reuniremos en código. No cubriremos todos los módulos con detalles meticulosos, pero nos centraremos en la imagen más grande y en cómo ensamblarlos en un modelo similar a GPT. | 03_architectura |
| 4 | LLMS preventivo | En la Parte 4, cubriremos el proceso de previación de los LLM e implementaremos el código para que se envíe previamente la arquitectura del modelo que implementamos anteriormente. Dado que el pre -apareamiento es costoso, solo lo precipitaremos en una pequeña muestra de texto disponible en el dominio público para que el LLM sea capaz de generar algunas oraciones básicas. | 04_PRESTRAINE |
| 5 | Cargando pesos previos | Dado que el previación es un proceso largo y costoso, ahora cargaremos pesos previos al detenido en nuestra arquitectura autoimplementada. Luego, presentaremos la biblioteca de código abierto LitGPT, que proporciona un código más sofisticado (pero aún legible) para capacitación y Finetuning LLMS. Aprenderemos a cargar pesos de LLMs previos al estado (Llama, Phi, Gemma, Mistral) en Litgpt. | 05_Weightloading |
| 6 | Finetuning llms | Esta sección introducirá técnicas de sintonización de LLM, y prepararemos un pequeño conjunto de datos para la sintonización de instrucciones, que luego usaremos para Finet un LLM en LitGPT. | 06_finetuning |
(El material del código se basa en mi modelo de lenguaje Build A Build de Scratch y también usa la Biblioteca LitGPT).