Run Local LLM Inference10x Más Rápido (244 TOK/s) PyTorch II
Corre la inferencia local de LLM 10x Más Rápido (244 TOK/s) PyTorch II
Hay muchas formas de correr, aquí tienes un resumen rápido
TLDR:
El equipo de Pytorch encontró una forma de optimizar puramente construyendo optimizaciones desde cero
- Torch.compile: Un compilador para modelos de PyTorch
- Cuantización de GPU: Acelera modelos con operaciones de precisión reducida
- Decodificación especulativa: Acelera LLMs utilizando un “borrador” pequeño para predecir la salida de un modelo “objetivo” grande
- Paralelismo de tensores: Acelera modelos ejecutándolos en múltiples dispositivos.
Pytorch logró todo esto en solo 1000 líneas de código.
Aquí tienes la comparación de rendimiento
- Descubriendo LangChain Chatea con tus documentos, traductor de chatbot, chatea con Wikipedia, generador de datos sintéticos
- 6 Cuadernos prácticos LLM gratuitos para empezar con las solicitudes de LLM
- Conozca a PepCNN una herramienta de aprendizaje profundo para predecir los residuos de unión de péptidos en proteínas utilizando características de secuencia, estructura y modelos de lenguaje.
Ahora, ¡vamos a verlos uno por uno!
Vanilla (25 tokens/s)
Este es el rendimiento de LLaMA-7b.
Primer aumento de 3x usando el nuevo compilador y asignación inteligente (76 TOK/S)
Usando LLaMA-7B, Pytorch analizó los problemas de rendimiento que están limitados por la CPU. Eso significa que la sobrecarga es el primer objetivo para hacerlo más eficiente.
Entra el compilador. Compilando regiones más grandes en un estado precompilado, disminuye la cantidad de llamadas de CPU por operación. Esto significa que este wrapper ahora puede funcionar sin espacios, como puedes ver a continuación.
Para usarlo, simplemente usa el siguiente código
torch.compile(decode_one_token, mode="reduce-overhead", fullgraph=True)
¿Qué está sucediendo bajo el capó?
En primer lugar, cuando se generan más tokens, la caché kv-cache crece, necesitando realocación y copiado (cálculos costosos) cada vez que la caché crece. Pytorch implementó un caché grande para permitir un tamaño máximo.
En segundo lugar, se necesitan dos estrategias para compilar por separado durante la fase de precarga. Se procesa dinámicamente todo el prompt y se descodifican los tokens como se muestra en el código anterior. Manteniendo estas estrategias en paralelo se permiten más optimizaciones. Solo con estas dos estrategias, hay un 4x de rendimiento a obtener para la inferencia.
Aumenta otro 34% mediante…
We will continue to update Zepes; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- Investigadores de Microsoft proponen MAIRA-1 un modelo multimodal específico de radiología para la tarea de generar informes radiológicos a partir de radiografías de tórax (CXR).
- Conoce a Meditron una suite de modelos de lenguaje médicos de código abierto basados en LLaMA-2 (Large Language Models para Medicina)
- 15 Bases de Datos Vectoriales que Debes Probar en 2024
- Este documento de investigación de IA de la Universidad Northeastern y el MIT desarrolla controles deslizantes de conceptos interpretativos para un mayor control en la generación de imágenes en modelos de difusión.
- Google DeepMind presenta GNoME una nueva herramienta de aprendizaje profundo que aumenta drásticamente la velocidad y eficiencia de los descubrimientos al predecir la estabilidad de nuevos materiales.
- Las mejores 15 bases de datos vectoriales para la ciencia de datos en 2024 una guía completa
- Investigadores de Microsoft y Georgia Tech presentan TongueTap reconocimiento multimodal de gestos de lengua con dispositivos usados en la cabeza.