Tamaño, calidad y rendimiento de los LLMs: claves para optimizarlos
Los LLMs, siglas en inglés de grandes modelos de lenguaje, se han convertido en uno de los pilares más importantes de la inteligencia artificial. Cuando han sido debidamente entrenados estos modelos son capaces de hacer muchas cosas, como por ejemplo escribir documentos de texto, generar imágenes, resumir contenidos analizando texto, imágenes o vídeo, y también pueden trabajar como chatbots y agentes de atención al cliente.
El tamaño de los LLMs suele afectar en gran medida a la calidad del mismo, porque determina la cantidad de parámetros con la que es capaz de trabajar. Por ejemplo, un LLM con 1.000 millones de parámetros es inferior a otro con 70.000 millones de parámetros, pero el primero consumirá muchos menos recursos que el segundo. Esto nos lleva a hacer una distinción necesaria entre modelos que pueden funcionar en local y otros que están limitados a la nube.
Utilizar un LLM en local tiene ventajas importantes, ya que no necesitaremos tener conexión a Internet, y además disfrutaremos de ese mayor grado de seguridad que supone la ejecución en local, pero necesitaremos un hardware que esté a la altura de los requisitos que tenga ese modelo, ya que de lo contrario puede que no funcione, o que lo haga con mucha lentitud y que la experiencia de usuario no sea nada buena. Los modelos en la nube nos liberan del tema de la exigencia a nivel de hardware.
Optimización de los LLMs a través de la GPU
Para mejorar el rendimiento y disfrutar de una experiencia óptima ejecutando un LLM en local lo ideal es contar con una GPU muy potente, que esta disponga de hardware especializado en aceleración de IA y que cuente con una gran cantidad de memoria gráfica. A mayor cantidad de parámetros mayor calidad del LLM, y también será necesaria más potencia y más memoria gráfica para que el modelo funcione.
La cantidad de memoria gráfica requerida suele ser un factor limitante que impide, en muchos casos, la ejecución en local de grandes modelos de lenguaje con miles de millones de parámetros, pero por suerte existe una solución a este problema si queremos ejecutar un LLM en local en nuestro PC o portátil, y se llama LM Studio.
Imagina que tienes un PC con una tarjeta gráfica NVIDIA GeForce RTX que cuenta con 8 GB de memoria gráfica, y quieres ejecutar un LLM en tu equipo, pero no tienes suficiente memoria gráfica para cargarlo. Con LM Studio es posible personalizarlo y dividirlo en pequeños trozos que representan diferentes capas del modelo. Esos trozos se cargan y descargan en la GPU cuando es necesario, y tenemos la posibilidad de elegir cuántos de esos fragmentos queremos que se procesen en la GPU.
Vamos a verlo con un ejemplo. Imagina que queremos cargar un LLM como Gemma 2 que tiene 27.000 millones de parámetros. Este modelo necesita, bajo una cuantificación de 4 bits, unos 13,5 GB de memoria gráfica, cifra a la que tendríamos que sumar entre 1 GB y 5 GB adicionales como posible sobrecarga normal derivada de su propio funcionamiento. En total necesitaríamos unos 19 GB de memoria gráfica para acelerar este modelo, lo que limitaría su disponibilidad a una GeForce RTX 4090.
Pues bien, gracias a la función de descarga por GPU que podemos utilizar con LM Studio para derivar solo una parte concreta de Gemma 2 27B y acelerarla en la GPU. Así, si tenemos una tarjeta gráfica con solo 8 GB de memoria gráfica podremos aprovecharla para acelerar una parte de este modelo y mejorar el rendimiento. En los cuadros adjuntos podemos ver la proporción máxima que podemos conseguir con diferentes LLMs y tarjetas gráficas NVIDIA, y también la mejora de rendimiento.
Imagen de portada generada con IA.