La evolución de Llama: Desafiando el Status Quo
Cuando Llama apareció por primera vez, desafió el dominio de los grandes modelos de lenguaje (LLM) de código cerrado de los gigantes tecnológicos. Meta AI adoptó una estrategia que se centró en modelos más pequeños y generalizados. La idea central era que estos modelos más pequeños, entrenados con una gran cantidad de tokens, serían más fáciles y rentables de reentrenar y ajustar para tareas especializadas. Este enfoque contrastaba marcadamente con la tendencia de construir modelos cada vez más grandes e intensivos en recursos.
Sin embargo, la naturaleza de “código abierto” de Llama es un tema de debate. La licencia de Meta Llama incluye restricciones específicas sobre el uso comercial y aceptable. Si bien estas restricciones son posiblemente justificables, entran en conflicto con la definición estricta de código abierto de la Open Source Initiative. Esto ha dado lugar a debates en curso sobre si Llama realmente califica como código abierto.
Navegando por los desafíos legales: preocupaciones sobre los derechos de autor
El desarrollo de Llama no ha estado exento de obstáculos legales. En 2023, Meta se enfrentó a dos demandas colectivas de autores que alegaban que sus libros con derechos de autor se utilizaron sin permiso para entrenar a Llama. Estas demandas resaltan los complejos problemas de derechos de autor que rodean los datos de entrenamiento utilizados para los grandes modelos de lenguaje. Hasta ahora, los tribunales no han sido demasiado comprensivos con las reclamaciones de los autores.
Ampliando las capacidades: la creciente familia de modelos de Llama
Desde finales de 2023, Meta AI ha ampliado significativamente la familia Llama. Los modelos ya no se limitan a las interacciones basadas en texto. El ecosistema actual de Llama incluye modelos multimodales capaces de procesar tanto texto como entradas visuales, así como modelos diseñados para la interpretación de código y la integración de herramientas. Además, Meta ha introducido componentes de seguridad, conocidos como Llama Guard, para identificar y mitigar riesgos y ataques potenciales, estos están diseñados para ser parte de un marco general llamado “Llama Stack”.
Aquí hay una mirada más profunda a algunos de los modelos clave en la familia Llama (condensado de las tarjetas de modelo de Meta AI):
Llama Guard 1: Salvaguardando las interacciones
Llama Guard 1 es un modelo de 7 mil millones de parámetros basado en Llama 2. Sirve como una salvaguarda de entrada y salida, clasificando el contenido tanto en las indicaciones del usuario (clasificación de la indicación) como en las respuestas del LLM (clasificación de la respuesta). Este modelo ayuda a garantizar interacciones más seguras y responsables con los sistemas basados en Llama.
Llama Guard emplea una taxonomía de seis niveles para categorizar los daños potenciales:
- Violencia y odio: Contenido que promueve la violencia o el odio hacia individuos o grupos.
- Contenido sexual: Material sexualmente explícito o contenido que explota, abusa o pone en peligro a los niños.
- Armas de fuego y armas ilegales: Contenido relacionado con la venta, el uso o la modificación ilegal de armas de fuego y otras armas.
- Sustancias reguladas o controladas: Contenido que promueve el uso o la venta ilegal de drogas, alcohol o tabaco.
- Suicidio y autolesiones: Contenido que fomenta o proporciona instrucciones para el suicidio o las autolesiones.
- Planificación criminal: Contenido que facilita o planifica actividades ilegales.
Code Llama 70B: Una tríada de destreza en la codificación
Code Llama 70B marcó una expansión significativa en las capacidades de codificación de Llama. Este modelo está disponible en tres variantes distintas:
- Code Llama: El modelo base diseñado para la síntesis y comprensión general del código. Puede generar código, explicar la funcionalidad del código y ayudar con la depuración.
- Code Llama – Python: Una versión especializada adaptada para la programación en Python. Este modelo está optimizado para generar y comprender código Python, lo que lo convierte en una herramienta valiosa para los desarrolladores de Python.
- Code Llama – Instruct: Una variante centrada en seguir instrucciones y garantizar una implementación más segura. Este modelo es particularmente útil para generar código que se adhiera a pautas y protocolos de seguridad específicos.
Las tres variantes están disponibles en diferentes tamaños: 7 mil millones, 13 mil millones, 34 mil millones y 70 mil millones de parámetros. Code Llama y sus variantes están diseñados tanto para uso comercial como de investigación, principalmente en inglés y lenguajes de programación relacionados. Existe amplia evidencia que sugiere que Code Llama posee fuertes habilidades de codificación.
Llama Guard 2: Clasificación de seguridad mejorada
Llama Guard 2 se basa en la base de su predecesor, ofreciendo capacidades mejoradas de clasificación de seguridad. Este modelo de 8 mil millones de parámetros, basado en Llama 3, está entrenado para predecir etiquetas de seguridad en 11 categorías, alineándose con la taxonomía de peligros de MLCommons.
Las categorías de peligro cubiertas por Llama Guard 2 incluyen:
- S1: Delitos violentos: Contenido relacionado con actos criminales violentos.
- S2: Delitos no violentos: Contenido relacionado con delitos no violentos.
- S3: Delitos relacionados con el sexo: Contenido que involucra delitos sexuales.
- S4: Explotación sexual infantil: Contenido que explota, abusa o pone en peligro a los niños sexualmente.
- S5: Asesoramiento especializado: Asesoramiento no calificado o engañoso en campos especializados (por ejemplo, médico, legal, financiero).
- S6: Privacidad: Contenido que viola la privacidad o divulga información personal sin consentimiento.
- S7: Propiedad intelectual: Contenido que infringe los derechos de propiedad intelectual.
- S8: Armas indiscriminadas: Contenido relacionado con armas que causan daños generalizados e indiscriminados.
- S9: Odio: Contenido que expresa odio o prejuicio hacia individuos o grupos.
- S10: Suicidio y autolesiones: Contenido que promueve o proporciona instrucciones para el suicidio o las autolesiones.
- S11: Contenido sexual: Material sexualmente explícito.
Meta Llama 3: Versatilidad en el diálogo
Meta Llama 3 se ofrece en dos tamaños, 8 mil millones y 70 mil millones de parámetros, con variantes pre-entrenadas y ajustadas a instrucciones. Los modelos ajustados a instrucciones están específicamente optimizados para aplicaciones basadas en diálogo, lo que los hace adecuados para chatbots y sistemasde IA conversacionales.
Prompt Guard: Defensa contra entradas maliciosas
Prompt Guard es un modelo clasificador diseñado para detectar indicaciones maliciosas, incluidos los jailbreaks (intentos de eludir las restricciones de seguridad) y las inyecciones de indicaciones (intentos de manipular la salida del modelo a través de entradas elaboradas). Meta AI recomienda ajustar Prompt Guard con datos específicos de la aplicación para lograr un rendimiento óptimo.
A diferencia de Llama Guard, Prompt Guard no requiere una estructura de indicación específica. Opera en una entrada de cadena, clasificándola como segura o insegura (en dos niveles diferentes de gravedad). Es un modelo BERT que genera etiquetas exclusivamente.
Llama Guard 3: Seguridad multimodal y multilingüe
Llama Guard 3 está disponible en tres versiones: Llama Guard 3 1B, Llama Guard 3 8B y Llama Guard 3 11B-Vision. Los dos primeros son modelos solo de texto, mientras que el tercero incorpora las capacidades de comprensión de la visión del modelo Llama 3.2 11B-Vision. Todas las versiones son multilingües (para indicaciones solo de texto) y se adhieren a las categorías de peligro definidas por el consorcio MLCommons.
Llama Guard 3 8B también se puede utilizar para la categoría S14, Abuso del intérprete de código. Es importante tener en cuenta que el modelo Llama Guard 3 1B no está optimizado para esta categoría específica.
Las categorías de peligro, ampliando las de Llama Guard 2 son:
- S1: Delitos violentos
- S2: Delitos no violentos
- S3: Delitos relacionados con el sexo
- S4: Explotación sexual infantil
- S5: Difamación
- S6: Asesoramiento especializado
- S7: Privacidad
- S8: Propiedad intelectual
- S9: Armas indiscriminadas
- S10: Odio
- S11: Suicidio y autolesiones
- S12: Contenido sexual
- S13: Elecciones
- S14: Abuso del intérprete de código
Meta Llama 3.1: Modelos generativos multilingües
La colección Meta Llama 3.1 comprende modelos de lenguaje grandes multilingües, incluidos modelos generativos pre-entrenados y ajustados a instrucciones en tamaños de 8 mil millones, 70 mil millones y 405 mil millones de parámetros (entrada de texto, salida de texto).
Los idiomas admitidos incluyen: inglés, alemán, francés, italiano, portugués, hindi, español y tailandés.
Meta Llama 3.2: Capacidades de diálogo mejoradas
La colección Llama 3.2 presenta modelos de lenguaje grandes multilingües, que abarcan modelos generativos pre-entrenados y ajustados a instrucciones en tamaños de 1 mil millones y 3 mil millones de parámetros (entrada de texto, salida de texto). También están disponibles versiones cuantificadas de estos modelos. Los modelos solo de texto ajustados a instrucciones de Llama 3.2 están optimizados para el diálogo multilingüe, sobresaliendo en tareas como la recuperación y el resumen de agentes. Los modelos 1B y 3B son derivados más pequeños y menos potentes de Llama 3.1.
Los idiomas admitidos oficialmente son: inglés, alemán, francés, italiano, portugués, hindi, español y tailandés. Sin embargo, Llama 3.2 ha sido entrenado en una gama más amplia de idiomas más allá de estos ocho.
Llama 3.2-Vision: Razonamiento y comprensión de imágenes
La colección Llama 3.2-Vision presenta modelos de lenguaje grandes multimodales. Estos modelos están pre-entrenados y ajustados a instrucciones para el razonamiento de imágenes, disponibles en tamaños de 11 mil millones y 90 mil millones de parámetros (entrada de texto e imagen, salida de texto). Los modelos ajustados a instrucciones están optimizados para el reconocimiento visual, el razonamiento de imágenes, la subtitulación y la respuesta a preguntas generales sobre imágenes.
Para tareas solo de texto, los idiomas admitidos oficialmente son inglés, alemán, francés, italiano, portugués, hindi, español y tailandés. Llama 3.2 ha sido entrenado en un conjunto más amplio de idiomas, pero para aplicaciones de imagen + texto, el inglés es el único idioma admitido.
Meta Llama 3.3: Un potente modelo 70B
El modelo de lenguaje grande multilingüe Meta Llama 3.3 es un modelo generativo pre-entrenado y ajustado a instrucciones con 70 mil millones de parámetros (entrada de texto, salida de texto).
Idiomas admitidos: inglés, alemán, francés, italiano, portugués, hindi, español y tailandés.
Es crucial comprender que los modelos de lenguaje grandes, incluido Llama 3.2, no están diseñados para una implementación aislada. Deben integrarse en un sistema de IA completo con las protecciones de seguridad adecuadas. Se espera que los desarrolladores implementen salvaguardas del sistema, especialmente cuando construyan sistemas de agentes.
Llama 3.3, los modelos solo de texto de Llama 3.2 y Llama 3.1 incluyen soporte integrado para las siguientes herramientas:
- Brave Search: Una llamada de herramienta para realizar búsquedas web.
- Wolfram Alpha: Una llamada de herramienta para ejecutar cálculos matemáticos complejos.
- Code Interpreter: Una llamada de herramienta que permite al modelo generar código Python.
Nota: Los modelos de visión de Llama 3.2 no admiten llamadas de herramientas con entradas de texto + imagen.
Llama Stack: Un marco unificado
La gran cantidad de modelos Llama puede ser abrumadora. Para simplificar el proceso de selección e integración, Meta ofrece Llama Stack. Este marco enfatiza los modelos Llama, pero también proporciona adaptadores para capacidades relacionadas, como bases de datos vectoriales para la generación aumentada por recuperación (RAG).
Llama Stack actualmente admite SDK en Python, Swift, Node y Kotlin. Ofrece varias distribuciones, que incluyen:
- Distribución local (usando Ollama): Para desarrollo y pruebas locales.
- Distribuciones en el dispositivo (iOS y Android): Para implementar modelos Llama en dispositivos móviles.
- Distribuciones para GPU: Para aprovechar el poder de las GPU para un procesamiento más rápido.
- Distribuciones alojadas de forma remota (Together y Fireworks): Para acceder a los modelos Llama a través de servicios basados en la nube.
El concepto central detrás de Llama Stack es permitir a los desarrolladores crear aplicaciones localmente y luego pasar fácilmente a un entorno de producción. Incluso proporciona un Llama Stack Playground interactivo para el desarrollo local contra un Llama Stack remoto.
Ejecutando modelos Llama: Opciones de implementación versátiles
Los modelos Llama se pueden implementar en una variedad de plataformas, incluyendo Linux, Windows, macOS y la nube. Los modelos Llama cuantificados, como Llama 3.2 y Llama 3.2-Vision, pueden ejecutarse de manera efectiva en hardware moderno, incluso en computadoras portátiles como la M4 Pro MacBook Pro usando herramientas como Ollama.
Meta proporciona guías prácticas completas para implementar y usar modelos Llama. Además, hay guías de integración disponibles para marcos populares como LangChain y LlamaIndex.
En resumen, Llama ha pasado de ser un simple modelo de lenguaje, ahora es un framework de IA multimodal completo con características de seguridad, generación de código y soporte para muchos idiomas. El sistema de Meta permite su implementación en muchos lugares, pero continúan los problemas legales con los datos de entrenamiento y las discusiones sobre si Llama es de código abierto.