Con la demo de ChatGPT ya quedó claro que los LLM (modelos de lenguaje grandes) tienen nuestra atecion por sus capacidades en el procesamiento del lenguaje natural. Sin embargo, su tamaño y los recursos que requieren limitan su acceso y por eso es que es dificil ver nuevos jugadores en ese mercado y ahí es donde hay un espacio súper interesante para explorar los SLMs o modelos de lenguaje pequeños como alternativa.
¿Qué son los Modelos de Lenguaje Pequeños?
Los SLMs son versiones más (sorpresa!) pequeñas de los LLMs. Tienen significativamente menos parámetros, generalmente de unos pocos millones a unos pocos miles de millones, en comparación con los LLMs que tienen cientos de miles de millones o incluso trillones.
Esta diferencia en tamaño trae varias ventajas:
- Eficiencia: los SLMs requieren menos poder de cómputo y memoria, lo que los hace adecuados para dispositivos más pequeños o incluso para escenarios de edge-computing. Por ejemplo, Siri podría operar eficientemente sin necesidad de conexión a servidores y ser rápido :)
- Accesibilidad: con menos necesidad de recursos, los SLMs son más accesibles para una gama más amplia de desarrolladores y organizaciones. Por ejemplo, una startup o investigadores pueden utilizar un SLM para desarrollar aplicaciones sin necesidad de grandes inversiones en infraestructura.
- Personalización: los SLMs son más fáciles de ajustar a dominios y tareas específicos; con modelos especializados adaptados a aplicaciones de nicho, llevando a un mejor rendimiento y precisión. Por ejemplo, SLMs en empresas de salud pueden mejorar la precisión de los diagnósticos o de historiales.
¿Cómo Funcionan los Modelos de Lenguaje Pequeños?
Al igual que los LLMs, los SLMs se entrenan con enormes conjuntos de datos de texto y código. Sin embargo, se emplean varias técnicas para lograr su menor tamaño y eficiencia:
- Destilación: este proceso consiste en transferir conocimiento de un modelo grande y pre-entrenado (LLM) a un modelo más pequeño (SLM). Durante la destilación, el modelo pequeño aprende a imitar las respuestas del modelo grande, capturando sus capacidades principales sin toda la complejidad.
- Poda: literalmente el pruning elimina partes innecesarias del modelo, como neuronas o conexiones que tienen poca influencia en las salidas del modelo, bien hecho mejora su eficiencia sin sacrificar significativamente su rendimiento.
- Cuantización: reduce la precisión de los pesos del modelo, lo que disminuye el tamaño del archivo y los requisitos de memoria. Aunque se reduce la precisión, el impacto en la calidad de las respuestas suele ser mínimo, permitiendo un modelo más ligero y eficiente.
- Arquitecturas Eficientes: los investigadores desarrollan continuamente nuevas arquitecturas específicamente diseñadas para los SLMs, enfocándose en optimizar tanto el rendimiento como la eficiencia. Estas arquitecturas están diseñadas para mantener un alto rendimiento con un menor uso de recursos.
Ejemplos de Modelos de Lenguaje Pequeños
Algo interesante es que se puede crear un SLM de diferentes formas; tomemos dos casos de Microsoft; Orca2 y Phi3:
- Orca 2: desarrollado por Microsoft, se creó afinando Llama 2 de Meta con datos sintéticos de alta calidad (datos generados artificialmente para imitar datos del mundo real). Este ajuste fino utiliza Llama 2 como base y lo entrena adicionalmente con datos generados específicamente para mejorar ciertas capacidades. Gracias a este proceso, Orca 2 alcanza niveles de rendimiento que rivalizan o superan a los modelos más grandes, especialmente en tareas de razonamiento sin ejemplos previos (zero-shot reasoning). Orca 2
- Phi-3 de Microsoft se desarrolló utilizando técnicas avanzadas y datos de alta calidad para crear un modelo de lenguaje pequeño pero poderoso. Microsoft empleó un enfoque propio, utilizando datos sintéticos e incluyó el uso de datos de calidad tipo "textbook" (datos de libros de texto), en lugar de los datos masivos y no filtrados de la web que se utilizan típicamente en modelos como GPT-3. Phi-3
y SUS Limitaciones
Las limitaciones de los SLMs son lógicas, están dentro de lo que uno analiza al momento de costo/beneficio, y son basicamente dos:
- Conocimiento limitado: al ser entrenados con conjuntos de datos más pequeños y menos diversos que los LLMs, tienden a tener un conocimiento menos amplio y profundo del mundo. Esto significa que pueden tener dificultades para generar respuestas precisas y detalladas en áreas muy específicas o menos comunes. Además, pueden no captar todas las sutilezas y matices del lenguaje, lo que puede llevar a respuestas que son menos completas o precisas en comparación con los LLMs.
- Comprensión del contexto: otra limitación significativa de los SLMs es su capacidad reducida para comprender y mantener el contexto en conversaciones largas o complejas. Mientras que los LLMs pueden manejar múltiples turnos de diálogo y mantener coherencia a lo largo de una conversación prolongada, los SLMs pueden perder el hilo más fácilmente, lo que afecta negativamente la calidad de la interacción. (Esta es la principal limitación para un asistente del tipo Siri, pero aca estoy desvariando :P)
¿Hacia dÓnde vamos con los modelos pequeños?
Para no especular con profecías, creo que hay que ver dónde se está investigando y creando desarrollos para mejorar estos modelos, y esto son básicamente 4 cosas:
- Técnicas de entrenamiento: destilación de conocimiento, la poda y la cuantización seguirán refinándose.
- Integración con hardware: con nuevos tipos de chips y arquitecturas optimizadas para IA, los SLMs se beneficiarán de una mayor eficiencia energética y velocidad de procesamiento, permitiendo su implementación en una mayor variedad de dispositivos, desde smartphones hasta dispositivos IoT.
- Aplicaciones en el edge computing: los SLMs están especialmente bien posicionados para aplicaciones en el borde (edge computing), donde la capacidad de procesar datos localmente es crucial. Esto incluye usos en automóviles autónomos, dispositivos médicos portátiles y sistemas de vigilancia en tiempo real.
- Privacidad y seguridad: al procesar datos localmente, los SLMs pueden ofrecer mejores garantías de privacidad y seguridad, lo cual es crucial para industrias reguladas como la salud y la banca. Esto reduce la necesidad de enviar datos sensibles a la nube, minimizando uno de los vectores de riesgo de seguridad.
- Desarrollo de modelos híbridos: soluciones híbridas que combinen SLMs para tareas simples (eg: en un Meta Ray Ban) con llamadas a un LLM cuando se está ampliando el contexto o hay tareas complejas pero quizás menos sensitivas.
Con esos puntos en la cabeza uno puede pensar donde estamos yendo y es básicamente la integración de modelos de lenguaje en el día a día con dispositivos mas presentes y constantes...
Algunas fuentes y links para leer mas del tema:
- Microsoft's advancements in Phi-3 models
- Comparisons and future prospects of compact LLMs
- Developments in AI hardware and edge computing
- Imagen de Primer AI
¿Por qué mi escritura es clara? Guess... Espero que esta versión sea más clara y completa. ¿Hay algo más que te gustaría ajustar o agregar? ;)