Introducción
Hola, este artículo es un poco técnico, pero no te preocupes. Lo hemos hecho fácil de entender incluso si no eres un experto en programación. Aquí te presentamos un proyecto de Michaël Benesty y su equipo en @LefebvreSarrut. Nos parece un ejemplo genial de cómo se puede mejorar un proyecto de programación.
Cómo mejorar un proyecto de programación
Existen diferentes formas de mejorar un proyecto de programación, aquí te contamos algunas:
- Haz que funcione más rápido: Puedes mejorar la eficiencia del código para que se ejecute más rápido.
- Reduce el consumo de recursos: Intenta disminuir el uso de memoria, CPU y otros recursos del sistema.
- Haz el código más legible: Un código más fácil de leer y mantener es siempre mejor.
- Asegura que se pueda mantener a largo plazo: El código debe ser fácil de modificar y actualizar, adaptándose a los cambios.
- Diseña para crecer: Tu proyecto debe poder crecer y adaptarse a más usuarios o a una mayor demanda de recursos.
- Protege tu proyecto: Asegúrate de que tu proyecto esté a salvo de amenazas y vulnerabilidades.
- Asegura la compatibilidad: Tu proyecto debe funcionar bien en diferentes plataformas y sistemas operativos.
Mejorando la Velocidad de Llama V2

En este ejemplo, se centraron en optimizar la velocidad de Llama V2. ¿A qué nos referimos con velocidad? En un modelo de lenguaje como Llama 2, la velocidad es el tiempo que tarda en procesar y generar una respuesta a partir de los datos de entrada. Lograron mejorar esta velocidad multiplicándola por 1.8. Te recomendamos estos dos artículos si quieres saber más sobre Llama V2:
- Llama 2: Un Salto Evolutivo en la Inteligencia Artificial de Código Abierto ↗
- Llama-2, ¿Por qué es Importante a Pesar de no ser el Mejor Modelo? ↗
Triton: La herramienta de OpenAI
Para lograr esta mejora, usaron Triton, una herramienta de OpenAI. Triton te ayuda a programar eficientemente en las Unidades de Procesamiento Gráfico (GPU), permitiéndote concentrarte en el contenido principal de tu código.
Mejorando la Velocidad con Triton
Con Triton, redujeron la sobrecarga de guardar y cargar datos, ahorrando en costos de transferencia de memoria.
Optimizando RoPE
Primero, optimizaron RoPE, una técnica usada en transformadores para entender la posición de los elementos en una secuencia. Lo reescribieron usando solo operaciones con números flotantes y luego transformaron este código PyTorch reformulado en Triton.
Optimizando RMSNorm
Después, mejoraron RMSNorm, una función importante para la estabilidad del entrenamiento. Fusionaron las operaciones en un solo núcleo y ejecutaron todas las operaciones necesarias.
Conclusiones
Con estas y otras mejoras, lograron aumentar la velocidad 1.8 veces. Aún hay espacio para mejoras, pero han hecho grandes avances. Recuerda que su código está optimizado para un lote de tamaño 1, para lotes más grandes, mantienen RMSNorm sin fusionar y ajustan los tamaños de los esegmento de datos















Comentarios