Libro en línea de ingeniería de ML
(github.com/stas00)-
Ingeniería de combate de inteligencia artificial: lo que hay que saber
- Una colección abierta de metodologías para el entrenamiento exitoso de modelos de inteligencia artificial (ML), en especial modelos de lenguaje de gran escala (LLM) y modelos multimodales (VLM).
- Material técnico para ingenieros y operadores de entrenamiento de LLM/VLM, con muchos scripts y comandos de copiar y pegar para poder realizar rápidamente las tareas necesarias.
- Registra de forma continua la experiencia y el know-how obtenidos al entrenar el modelo open source BLOOM-176B en 2022 y el modelo multimodal IDEFICS-80B en 2023, y actualmente está desarrollando/entrenando modelos open source de recuperación aumentada en Contextual.AI.
-
Tabla de contenido
- Se disculpa por el diseño inestable, ya que está en proceso de escribir nuevos capítulos y reorganizar el contenido para que sea más intuitivo.
-
Componentes de hardware
- Aceleradores - Los caballos de batalla del ML; incluye GPU, TPU, IPU, FPGA, HPU, QPU, RDU, etc.
- Red - Conectividad dentro del nodo y entre nodos, y cálculo de requisitos de ancho de banda.
- Almacenamiento - Discos y sistemas de archivos locales y distribuidos.
- CPU - Contenido sobre CPU y afinidad.
- Memoria de CPU - El capítulo más corto sobre cuánta memoria de CPU es suficiente.
-
Rendimiento
- Tolerancia a fallos
- Rendimiento
- Redes multinodo
- Paralelismo de modelos
-
Operaciones
- SLURM
- Hiperparámetros de entrenamiento e inicialización de modelos
- Inestabilidad
-
Desarrollo
- Depuración de fallos de software y hardware
- Más depuración
- Reproducibilidad
- Precisión de tensores / tipos de datos
- Notas sobre HF Transformers - Consejos sobre modelos pequeños, tokenizadores, datasets, etc.
-
Otros
- Recursos - Cronología de LLM/VLM.
-
Accesos rápidos
- Herramientas y guías que a menudo hace falta encontrar rápido.
- Herramientas:
all_reduce_bench.py,torch-distributed-gpu-test.py - Guías:
debugging pytorch applications,slurm for users,make tiny models/datasets/tokenizers,LLM/VLM chronicles collection
-
Crear el libro
- Si quieres generar un PDF o verificar enlaces, consulta la sección "Crear el libro".
-
Agradecimientos
- Poder aprender este know-how es un privilegio del que solo unos pocos pueden disfrutar, ya que el costo de alquilar grandes clústeres de cómputo para ML es extremadamente alto.
- Agradecimiento especial a Thom Wolf y HuggingFace.
-
Cómo contribuir
- Si encuentras bugs, errores tipográficos o tienes sugerencias de mejora, se recomienda abrir un issue o contribuir con un PR.
-
Licencia
- El contenido de este sitio se distribuye bajo la licencia Attribution-ShareAlike 4.0 International.
-
Mapa de mis repositorios
- Aprendizaje automático: ML Engineering Open Book | ML ways | Porting
- Guías: The Art of Debugging
- Aplicaciones: ipyexperiments
- Herramientas y cheat sheets: bash | conda | git | jupyter-notebook | make | python | tensorboard | unix
La opinión de GN⁺
- Este material hace una gran contribución a la comunidad de ML al ofrecer conocimiento práctico y herramientas necesarias para entrenar modelos de lenguaje de gran escala y modelos multimodales.
- Al compartir know-how obtenido de experiencias en proyectos reales, ayuda a que ingenieros de software de nivel inicial adquieran conocimientos prácticos necesarios para entrenar modelos de ML a gran escala.
- El enfoque open source promueve el intercambio de conocimiento y la colaboración en el campo del ML, lo que cumple un papel importante para acelerar la investigación y la innovación.
1 comentarios
Comentarios de Hacker News
Este artículo realmente vale mucho. Trabajo depurando configuraciones de entrenamiento de LLM para apoyar investigación, y me habría encantado tener notas como estas cuando estaba empezando.
Trabajo con un Applied Scientist ayudando con tareas relacionadas con el entrenamiento y despliegue de modelos; ¿cómo podría alguien como yo exponerse a trabajo de ingeniería de más bajo nivel, como optimización y rendimiento? Tenemos un equipo de infraestructura de ML, pero su objetivo es construir herramientas alrededor de la plataforma, no necesariamente ejecutar las cargas de trabajo de la manera más óptima.
Quiero experimentar con esto, pero no tengo una GPU decente. ¿Cómo ejecutan ustedes estas cosas?
Muchas gracias por todo lo que aparece en "Unsolicited Advice" de la sección AI Battlefield [1]. Es una perspectiva muy realista sobre estar siempre tratando de alcanzar el ritmo del rápido avance del desarrollo de IA y la carga emocional que eso implica.
¿Qué tan ampliamente se usa Slurm?
Hice clic al azar y terminé leyendo sobre repeatability, pero todavía me pregunto cómo se logra esto en entrenamiento distribuido. ¿La sincronización determinista no hace que todo sea más lento? Aun así, he escuchado que al menos algunas empresas grandes dicen que su entrenamiento es repetible.
¿Cómo se consigue experiencia en estas cosas cuando no tienes trabajo?
¿Hay un PDF en alguna parte? Parece que hay instrucciones para compilarlo, pero no el archivo en sí.