Prueba de velocidad de modelos de lenguaje grandes
Probemos la velocidad de los LLM en GPU frente a CPU
Comparando la velocidad de predicción de varias versiones de LLMs: llama3 (Meta/Facebook), phi3 (Microsoft), gemma (Google), mistral (open source) en CPU y GPU.
Estoy usando el mismo texto de muestra que en la prueba anterior donde comparé la calidad de detección de falacias lógicas de estos LLMs.
Mire, a primera vista, todo suena perfectamente razonable:
demasiadas personas, pocas casas.
Pero nunca es tan simple,
como debería saber un ex ministro de asuntos domésticos.
TL;DR
En GPU, los LLMs funcionan aproximadamente 20 veces más rápido, pero en CPU aún son bastante manejables.
Descripción de la configuración de prueba
He ejecutado los siguientes Modelos de Lenguaje Grande en dos PCs:
- Antiguo con CPU de 4º generación i5 de 4 núcleos (i5-4460 - producido en 2014) y
- Nuevo con GPU RTX 4080 (producido en 2022) con 9728 núcleos CUDA y 304 núcleos tensor.
Resultados de la prueba
A continuación se muestran los resultados:
Model_Name_Version__________ | RAM de GPU | Duración en GPU | Rendimiento en GPU | RAM principal | Duración en CPU | Rendimiento en CPU | Diferencia de rendimiento |
---|---|---|---|---|---|---|---|
llama3:8b-instruct-q4_0 | 5.8GB | 2.1s | 80t/s | 4.7GB | 49s | 4.6t/s | 17.4x |
llama3:8b-instruct-q8_0 | 9.3GB | 3.4s | 56t/s | 8.3GB | 98s | 2.7t/s | 20.7x |
phi3:3.8b | 4.5GB | 3.6s | 98t/s | 3.0GB | 83s | 7.2t/s | 13.6x |
phi3:3.8b-mini-4k-instruct-q8_0 | 6.0GB | 6.9s | 89t/s | 4.6GB | 79s | 5.3t/s | 16.8x |
phi3:3.8b-mini-instruct-4k-fp16 | 9.3GB | 4.2s | 66t/s | 7.9GB | 130s | 2.9t/s | 22.8x |
phi3:14b | 9.6GB | 4.2s | 55t/s | 7.9GB | 96s | 2.7t/s | 21.2x |
phi3:14b-medium-4k-instruct-q6_K | 12.5GB | 8.9s | 42t/s | 11.1GB | 175s | 1.9t/s | 21.8x |
mistral:7b-instruct-v0.3-q4_0 | 5.4GB | 2.1s | 87t/s | 4.1GB | 36s | 4.9t/s | 17.8x |
mistral:7b-instruct-v0.3-q8_0 | 8.7GB | 2.3s | 61t/s | 7.5GB | 109s | 2.9t/s | 21.0x |
gemma:7b-instruct-v1.1-q4_0 | 7.4GB | 1.8s | 82t/s | 7.5GB | 25s | 4.4t/s | 18.6x |
gemma:7b-instruct-v1.1-q6_K | 9.1GB | 1.6s | 66t/s | 7.5GB | 40s | 3.0t/s | 22.0x |
El rendimiento del modelo se encuentra en las columnas “Rendimiento en GPU” y “Rendimiento en CPU”.
El aumento de velocidad al pasar de CPU a GPU se encuentra en la columna “Diferencia de rendimiento”.
No debemos prestar mucha atención a las columnas “duración”, ya que este indicador depende del rendimiento del modelo y de la longitud del texto producido. Todos los modelos producen textos de longitudes diferentes. Estas columnas solo dan una idea del tiempo de espera.
Conclusión 1 - Diferencia de rendimiento
La diferencia de velocidad entre GPU y CPU no es tan grande como se esperaba.
¿En serio? Todas esas legiones (10k+) de núcleos Tensor y Cuda de Ada vs 4 Spartans Haswell, y solo una diferencia de 20 veces. Pensaba que sería 100-1000 veces.
Conclusión 2 - Costo por predicción es casi el mismo
- este nuevo PC tiene un costo de aproximadamente 3500AUD
- ese viejo PC ahora cuesta probablemente 200AUD
De la página de PCCCaseGear:
De eBay (podrías querer agregar 8GB más de RAM para hacer un total de 16GB - así que redondea a 200AUD):
Podrías necesitar 20 de esos viejos PCs para tener el mismo throughput, así que 200AUD * 20 = 4000AUD.
Conclusión 3 - Ley de Moore
La Ley de Moore implica que el rendimiento de los ordenadores se duplica cada dos años.
Intel comenzó la producción del i5-4460 en 2014. Nvidia comenzó la producción de uno de los RTX 4080 en 2022. El aumento de rendimiento esperado debería ser de aproximadamente 16 veces.
Diría que la Ley de Moore aún funciona.
Pero ten en cuenta que el DELL 9020 fue en su momento una estación de trabajo básica, y el PC con RTX 4080 es ahora, diría yo, una PC avanzada para gráficos/juegos. Clase de peso ligeramente diferente.
Enlaces útiles
- Rendimiento de LLM y Canales PCIe: Consideraciones clave
- Detección de falacias lógicas con LLMs
- Aplicación Android para detectar falacias lógicas: https://www.logical-fallacy.com/articles/detector-android-app/
- Mover modelos de Ollama a otro disco o carpeta
- Autohospedaje de Perplexica - con Ollama
- Cómo maneja Ollama las solicitudes paralelas
- Prueba: Cómo Ollama utiliza el rendimiento y núcleos eficientes de la CPU de Intel
- Proveedores de LLM en la nube
- Problemas de degradación en los CPUs de 13º y 14º generación de Intel
- ¿El Quadro RTX 5880 Ada 48GB es útil?