Cómo elegir un modelo local de Inteligencia Artificial en Linux
En el artículo anterior habíamos comenzado a analizar los parámetros que nos ayudan a saber cómo elegir un modelo local de Inteligencia Artificial en Linux. Ya explicamos cuál es la diferencia que hace contar o no con una tarjeta gráfica dedicada. Ahora continuaremos explicando los otros factores a tener en cuenta.
Repito lo del artículo anterior: si solo quieres probar modelos de Inteligencia Artificial, no necesitás leer todo esto. Pídele a ChatGPT o a Claude que te recomienden un modelo que se adapte a tu hardware. Solo sigue leyendo si te interesa saber cómo funcionan las cosas.
Lo de usar un modelo de Inteligencia Artificial para determinar qué modelo usar no es vagancia intelectual. Realmente hay demasiadas combinaciones de hardware como para poder dar una regla general. A medida que te vayas familiarizando con los diferentes modelos, podrás pasar al método de prueba y error.
Cómo elegir un modelo local de Inteligencia Artificial en Linux
Estos son otros factores que afectarán los modelos que podemos usar:
La Unidad Central de Procesamiento (CPU)
La importancia de la CPU estará determinada por si tenemos instalada una GPU potente o no.
Caso 1: No tenemos una GPU potente
Aquí hay tres parámetros a tener en cuenta:
- Tipo de memoria RAM: en el artículo anterior habíamos definido la velocidad de inferencia como el tiempo que tarda el modelo en procesar nuestras peticiones. Acá el factor crítico es el ancho de banda que transporta los datos entre la memoria RAM y la CPU. Aunque podemos hacer bastantes cosas con una RAM DDR4, con la misma CPU pero usando RAM DDR5 obtendremos resultados más rápidos.
- Soporte para juegos de instrucciones (AVX2 / AVX-512): los juegos de instrucciones son las operaciones que el procesador es capaz de ejecutar directamente por hardware. Cuanto más moderno es un procesador, más operaciones puede realizar y menor es el tiempo que tarda en realizarlas. Los modelos de Inteligencia Artificial que utilizan estos dos tipos de juegos de instrucciones reducen muchísimo el tiempo de los cálculos matemáticos que deben realizar las redes neuronales.
- Cantidad de núcleos: como dije antes, el cuello de botella es el ancho de banda de la memoria RAM. Aunque contar con entre 8 y 16 núcleos mejora notablemente el rendimiento, no se nota mayor diferencia al pasar de 16 a 32.
Caso 2: Tenemos una GPU dedicada
Aunque ya no tiene un rol primordial en la ejecución del modelo, ya que de eso se encarga la GPU, la Unidad Central de Procesamiento sigue siendo importante para:
- Determinar la velocidad de carga del modelo: la CPU se ocupa de leer el archivo del modelo desde el disco para luego transferirlo a la RAM y a la VRAM. Cuanto más rápida sea la CPU, más rápido arrancará el modelo.
- Desbordamiento a la CPU: es posible configurar por software que la CPU se encargue de parte de la tarea de procesamiento si esta es demasiada para la memoria de la GPU. Aunque esto reducirá la velocidad de procesamiento a la de esta.
- Pre y posprocesamiento de la información: es la CPU la que se encarga del proceso de tokenización (preparar la información para que el modelo la procese) y de formatear la salida.
El tamaño del modelo
Es la medida más utilizada para determinar su capacidad. Suele indicarse con la letra B, de billions (nuestros miles de millones), e indica la cantidad de parámetros. Es un poco complejo, para los propósitos de este artículo, explicar lo que realmente hacen los parámetros. Solo diremos que son como los pedales de un piano, que afectan el resultado final.
Esta es la forma en la que los parámetros funcionan en el modelo:
- El modelo convierte nuestra entrada en una representación numérica.
- El motor de inferencia realiza una serie de operaciones matemáticas determinadas por las instrucciones recibidas en la etapa de entrenamiento.
- De acuerdo con un ranking de probabilidades, se determina cuál es la mejor respuesta, que será la que se muestre al usuario.
El número de parámetros del modelo hace referencia a la cantidad de valores numéricos individuales que pueden influir sobre el resultado. Esto tiene influencia directa sobre:
- La capacidad de representación: cuantos más parámetros tiene un modelo, mejor será su capacidad para entender matices del lenguaje, hacer razonamientos lógicos y comprender los hechos (por supuesto, me estoy expresando en términos humanos; el modelo solo hace cálculos matemáticos).
- Requisitos de memoria: a mayor cantidad de parámetros, mayor será la cantidad de memoria RAM o VRAM necesaria para poder ejecutarlo.
Relación entre cantidad de parámetros y usos de los modelos
| Parámetros | Uso habitual |
|---|---|
| 1B–4B | Equipos modestos |
| 7B–8B | Uso general |
| 12B–14B | Excelente equilibrio entre calidad y recursos |
| 27B–32B | Usuarios avanzados |
| 70B o más | Servidores y estaciones de trabajo |
La cuantización
En los viejos tiempos, cuando no todos teníamos internet en casa y el disquete era el medio de almacenamiento más popular, nos veíamos obligados a usar software como WinRAR o WinZip para comprimir nuestras descargas. Algo equivalente es el proceso de cuantización que se hace con los modelos de Inteligencia Artificial para reducir el consumo de recursos y aumentar su velocidad de procesamiento. Básicamente, lo que se hace es quitarle decimales a los parámetros, lo que lleva a una pérdida de precisión.
¿Cuáles son entonces las ventajas de la cuantización?
- Reducción de la necesidad de memoria RAM: esto se logra porque se necesitan menos bits por parámetro.
- Mayor rapidez de inferencia: como dije más arriba, el factor crítico aquí es la velocidad de transferencia de datos entre la memoria RAM o VRAM y la CPU. Al haber menos datos que transferir, mayor es la velocidad.
- Menor consumo de energía: esto se logra no solo porque hay menos movimiento de datos, sino porque los procesadores consumen menos energía cuando hacen operaciones con enteros que cuando las hacen con decimales.
Esta es la relación entre el factor de cuantización, la calidad y la memoria requerida:
| Cuantización | Calidad | Memoria requerida | Recomendación |
|---|---|---|---|
| Q2 | Baja | Muy baja | Solo si falta RAM |
| Q3 | Aceptable | Baja | Equipos modestos |
| Q4_K_M | Muy buena | Media | La opción recomendada para la mayoría de los usuarios |
| Q5 | Excelente | Media-alta | Si sobra RAM |
| Q6 | Muy alta | Alta | Calidad prioritaria |
| Q8 | Casi sin pérdida | Muy alta | Equipos potentes |
| FP16 | Máxima | Enorme | Uso profesional |
En el próximo artículo hablaremos del último factor que deberemos tener en cuenta y pondremos manos a la obra con la instalación de Ollama.
.png)
