Construye tu propio motor de inferencia LLM en C++ y CUDA con 6 horas de tutoriales y 85 páginas de apuntes a mano
Hours of YouTube and 85 handtyped pages of notes on LLM Inference – Start here
Samir Sarwar publica samir-vllm, un motor de inferencia para Llama 3.2 1B escrito desde cero en C++17 y CUDA: carga de pesos safetensors, tokenizador BPE, kernels de RMSNorm, RoPE y atención con caché KV paginada, además de batching estático y continuo. Lo acompaña una serie de YouTube de más de 6 horas y 85 páginas de notas manuscritas, escritas sin ayuda de IA, que explican paso a paso qué ocurre entre el prompt y el token generado.
Desarrollé todos los textos de este PDF yo mismo, sin escritura de IA.
- ericreg92
Estas diapositivas obviamente están generadas por un LLM.
- samirswr
Grabé más de 6 horas de metraje y escribí a mano más de 85 páginas de apuntes para enseñar a principiantes absolutos sobre la inferencia de IA.
Durante los últimos 2 meses, mientras trabajaba como becario de SWE a tiempo completo, me esforcé después del horario laboral para crear esta serie de vídeos. Aprendí a programar, entre muchas otras cosas, a través de vídeos de YouTube dirigidos a principiantes. Ahora, con el auge de la IA, estos vídeos tienden a aparecer menos, así que decidí que quería cambiar eso.
Esto es . Se dedicó mucho pensamiento y consideración a crear esto, y todos mis apuntes están escritos por mí. Para ser transparente, casi todo el código también lo escribí yo, con la excepción de pequeñas correcciones de errores, actualizaciones del readme y cosas por el estilo. También hay apuntes adicionales relacionados con cada vídeo que están generados por IA, pero los apuntes principales son todos míos.
La serie te guía a través de la construcción de un pequeño motor de inferencia de Llama 3.2 1B en C++ y CUDA, empezando por lo que sucede cuando le envías un prompt a un LLM.
Cubro:
Cómo el texto se convierte en tokens, y los tokens en embeddings.
Cargar los pesos del modelo en la memoria de la GPU.
Fundamentos de CUDA, escribir tus propios kernels de GPU y multiplicación de matrices con cuBLAS.
El transformer paso a paso: RMSNorm, RoPE, atención y la red feed-forward SwiGLU.
Prefill y decode: procesar tu prompt y generar una respuesta token a token.
El almacenamiento en caché de KV y cómo ahorra cómputo repetido.
Batching estático y continuo para manejar múltiples solicitudes.
Almacenamiento en caché de KV paginado y atención paginada para gestionar y leer los datos en caché en la GPU.
Aquí está el repositorio de github […]
- samirswr
si te gusta lo que ves, ¡conectemos! : https://www.linkedin.com/in/samir-sarwar-swe/