Artículo
Para entender realmente cómo interactúan los modelos de lenguaje con la infraestructura que los sostiene, hay que "mancharse las manos", y más si como yo, te gusta abrir, investigar, atornillar, encajar, etc... . En mi laboratorio personal, he pasado semanas "trasteando" con diferentes configuraciones para descubrir dónde está el verdadero cuello de botella a la hora de buscar los puntos en los cuales centrarme, para para la reducción de costes y aumento de rendimiento, además de buscar que métricas hay que tener en cuenta para saber cuando leo o veo a otras personas experimentar, cuando la velocidad de un modelo es "usable" para consultas de tipo chat, cuando la velocidad de codificación de prompt y generación de tokens nos permite el uso agéntico.
En términos de fórmula uno, muchas veces se habla de la driveability, es un término que me gusta mucho, porque involucra el feeling, el sentimiento, es decir, la recolección de las sensaciones que los sentidos (sensores biológicos) de un piloto extraen de la experiencia de conducir-pilotar su máquina, su coche. Esta es la esencia de mi trabajo, a veces, muchas veces las métricas que podemos ver realizadas por otras personas, no nos indican nuestra manejabilidad que nos permite nuestro stack, esa combinación entre máquina, modelo, capa de servicios y nuestro cerebro. La pregunta real no es cuanto puede dar un modelo, sino, cuanto somos capaces de extraer de un modelo
Mi ecosistema de pruebas
Lo primero que tenía a mano, en mi casa y oficina, para crear un primer checkpoint, ya sabemos que todo en la vida es relativo, relativo a algo, mi sistema de referencia inicial fue este:
Conclusiones del laboratorio: El impacto del hardware
Tras comparar estos tres escenarios, aprendí dos cosas muy importantes (versión corta):
(Versión extendida) Una de las revelaciones más importantes fue el papel crítico del ancho de banda de la memoria. Cuando trabajamos con una iGPU (como en mi portátil), la velocidad a la que el sistema mueve los datos desde la RAM hacia el procesador gráfico condiciona drásticamente el rendimiento. Aunque el portátil tenía 32 GB de RAM, la limitación del bus de memoria hizo que la experiencia fuera notablemente más lenta que en equipos con arquitecturas optimizadas. Este es el secreto mejor guardado de los chips de memoria unificada de Apple, y las APus Ryzer, haber conseguido integrar velocidades mucho mayores que mis pobres memorias DDR4. De hecho, si os soy sincero, hasta el momento de hacer este laboratorio, no sentí especial emoción por manejar este dato sobre mi hardware, para mi tipo de trabajo.
Hoy, me obsesiona, y espero la venida de un señor o señora, libertadores del cautiverio de la memoria RAM grande y rápida, bueno de toda la memoria RAM de este mundo, y del universo y multiverso entero.
Por otro lado, la diferencia entre usar una iGPU y una GPU dedicada Nvidia es radical, brutal, espiritual, reveladora, es como pasar de la "ashwagandha y rhodiola a la mescalina y el peyote" .
A pesar de que esto es un laboratorio eminentemente práctico, no he tenido el placer de probar la mescalina y el peyote, y dado que intento ser, dentro de mi línea argumental, serio, respetuoso y esas cosas del postureo de la profesión, ni recomiendo, ni incito, ni indico que estos compuestos naturales, de plantas medicinales de pueblos indígenas americanos deban ser consumidas, para obtener más tokens por segundo... Es probable a que te ayude, cuando configures tu parámetro temperature=1.0, a empatizar con tu modelo...Este blog no se hace responsable de los periféricos y componentes que integras en tu cuerpo.
En mi equipo desktop, la presencia de mi tarjeta vetusta RTX 1050 Ti, la cual "data" de 2016, y cuya arquitectura interna no fue concebida para estas tareas (desconoce el concepto tensor cores), por tanto le falta mucho para estar afinada, movió la brújula hacia el camino a seguir, cambió las reglas de juego; las tarjetas gráficas dedicadas ofrecen velocidades de transferencia muy superiores, lo que permite que el modelo, aun cuando hablamos de una vetusta tarjeta que ni de lejos soñaba con poder generar algo cercano a la consciencia digital cuando decidí comprarla, para mover mis simuladores de fórmula 1 hace 8 años. Por cierto, como inciso, he visto tarjetas de segunda (o decimoquinta) mano, como la mía, por 40-50€ en plataformas de segunda mano. (No os digo el nombre de la plataforma "más guapi", porque no me pagan por ello)
Idea importante, "si cabe entero (tu modelo), en VRAM o en una RAM rápida (chips de memoria unificada, M de Apple, o modelos Ryzer con DDR5 y posteriores), la experiencia empezará a llamarte la atención". Si dispones de DDR4 con 2400 mhz a 3200 mhz dual channel y CPU (más o menos potente, i5 al menos, no he probado i3) no moverás fácilmente ni de forma usable modelos densos mayores de 2B.
Me vuelvo a poner profesional y serio, que sino mi agente Gemma4 chilla por ser muy coloquial, aquí es donde la VRAM se vuelve el factor determinante, especialmente para modelos pequeños (entre 3B y 4B parámetros). En mi equipo desktop, pude cargar todas las capas de estos modelos directamente en los 4 GB de VRAM de la Nvidia, logrando una fluidez excelente, además esto me abrió las puertas a poder jugar un poco bastante con la configuración de parámetros de carga e inferencia del modelo, para observar distintos comportamientos. Sin embargo, al intentar ejecutar modelos más grandes (de 7B u 8B), la falta de VRAM suficiente, junto con otro concepto técnico "feo", mi GTX 1050 Ti es arquitectura Pascal y por tanto no tiene Tensor Cores, volvió a ponerme los pies en el suelo Por seguir con la analogía anterior, mover modelos densos > 7-8B, "fue un mal viaje", en el momento que tienes que mover un número considerable de capas a RAM, estás perdido.
Para estas comparativas iniciales, utilicé LM Studio. Esta herramienta fue muy útil para descargar los mismos modelos en todos los equipos y observar de forma sencilla cómo variaban las métricas entre el portátil, la torre y el servidor remoto. Además es una herramienta cómoda para cuando empiezas, te da muchas cosas hechas, y si usas un LLM comercial, para indicarle tu hardware, el modelo, te ayuda a ajustar la configuración, cuando tienes "el ansia viva" de querer empezar y no saber muy bien por donde. Es como ... "el Windows" de las herramientas de gestión de modelos de lenguaje. No es eficiente, no es el mejor, pero si tienes hardware suficiente (fuerza bruta), "siguiente/siguiente/siguiente" y ya estás sin apenas esfuerzo diciendo "Hola modelo..." en tu primer prompt.
Como puedes observar, mi única inversión inicial ha sido precisamente la que dicen que ahora se está perdiendo, inquietud, y tiempo para investigar con lo que tengo a mano. Si queremos resumir en una frase el estado, creo que en este momento sabemos: