La mayoría habréis probado ya ChatGPT, Bing copilot, Bard o incluso los modelos propietarios de Anthropic (si estás fuera de Europa), pero la realidad es que los secretos de implementación y los detalles de estos modelos yacen bajo el paraguas de grandes corporaciones que los mantienen y alimentan con nuevos datos. Esta situación genera una gran dependencia y falta de privacidad para el creciente número de empresas que buscan construir aplicaciones e infraestructuras sobre Large Language Models (LLMs) pero que tienen limitaciones respecto al envío de datos fuera de su organización. A su vez, también impide que otros players más pequeños puedan innovar a escala más reducida.
Pero más allá de los LLMs privados más populares ya mencionados, también han surgido en paralelo una serie de modelos abiertos impulsados por distintos grupos de investigación. Modelos que te puedes descargar de forma local y con los que puedes interactuar de forma privada, pero que hasta hace poco aún se encontraban muy lejos de aquellos desarrollados por OpenAI.
Los inicios de Llama
En mayo se filtró en internet un documento interno de Google que se volvió viral: “We Have No Moat, And Neither Does OpenAI”. En el documento se hablaba de la creciente competencia que representaba la comunidad open source AI para empresas como Google, enfatizando el ritmo de innovación y creación de nuevos proyectos comparado con los grandes players del sector. De alguna manera todo el mundo se estaba fijando en OpenAI como el rival a batir, y se habían olvidado de los modelos abiertos u open source, que cada vez se estaban comiendo más terreno.
En el texto se citaba principalmente el ejemplo de Llama, el modelo desarrollado por Meta que inicialmente solo estaba disponible para investigadores seleccionados, pero que a los pocos días se filtró en 4Chan, y rápidamente se hizo popular entre los developers, que adaptaron y construyeron sistemas a partir del modelo base. A las pocas semanas de la publicación de Llama, aparecieron unas variantes denominadas Alpaca y Vicuna que se acercaban al rendimiento de ChatGPT pero con la ventaja de tener un tamaño mucho menor y la capacidad de poder usarse y reentrenarse localmente en un ordenador, convirtiéndolas así en opciones mucho más flexibles. “El impacto en la comunidad no es exagerado”, decía el documento filtrado de Google. “De repente, cualquiera es capaz de experimentar”.
Los % representan la calidad relativa de la respuesta evaluada por GPT-4
Llama 2: ¿qué es?
Tras el éxito de Llama, Meta dobló la apuesta por su LLM más popular y a finales de Julio presentó Llama 2. Este nuevo modelo open-source se presenta como la primera alternativa real a los modelos de OpenAI y Anthropic en términos de rendimiento, y ha dado ese empujón definitivo que necesitaba la comunidad open source para empezar a innovar y desarrollar soluciones creativas no abarcables por los grandes players.
Llama 2 se presenta en dos versiones: la básica y Llama 2-Chat, diseñada especialmente para interacciones conversacionales, al estilo chatGPT. Ambas versiones están disponibles en varios niveles de sofisticación, definidos por el rango de parámetros: 7 billions, 13 billions y 70 billions. Los parámetros se usan para aprender relaciones entre palabras y frases a partir de los datos de entrenamiento, y determinan la competencia del modelo en un problema concreto (en este caso, la generación de texto). Un modelo con más parámetros será en general y más preciso, pero menos flexible, ya que los costes de modificación y uso serán más elevados.
Más allá del incremento en el número de parámetros, con los modelos LLama 2 se ha hecho crecer el corpus de preentrenamiento un 40% y se ha duplicado la longitud de contexto de los prompts hasta los 4000 tokens (igualando a gpt-3.5-turbo pero aún lejos de los 8000 del modelo GPT-4 standard).
¿Por qué es relevante?
A diferencia de la primera versión de Llama, que sólo estaba disponible para investigadores, Meta ha dado acceso a todo el mundo al modelo base preentrenado de Llama 2 (sin ajuste por feedback humano), además de la versión Llama2 chat (con ajuste por feedback humano). Al ofrecer la comodidad del soporte nativo en varias plataformas cloud como AWS, Azure y Hugging Face’s AI, se permite a los usuarios acceder a funciones avanzadas de forma inmediata, como realizar fine tuning o acelerar el proceso de reentreno con algoritmos como LoRA, sin necesidad de ningún tipo de setup.
Es interesante destacar la asociación de Meta con Microsoft (principal inversor de OpenAI) para lanzar Llama 2 en Azure, que ha incluido también la optimización del modelo para Windows y dispositivos equipados con el chip Snapdragon de Qualcomm.
La principal diferencia entre Llama y otros LLMs importantes es que Meta ha compartido los pesos del modelo. En el contexto de modelos de IA, “pesos” se refiere a los parámetros aprendidos por un modelo durante el proceso de entrenamiento. Estos parámetros se almacenan en un archivo y se utilizan durante la fase de inferencia o predicción. Otros LLMs relevantes, como GPT-3.5, generalmente solo se pueden utilizar vía APIs o vía interfaz chatbot, pero realmente no puedes descargar el modelo o ejecutarlo de forma local, es decir, no puedes hacer nada completamente personalizado y que respete tu privacidad. Poder personalizar un modelo de lenguaje en unas pocas horas en hardware de bajo coste es un gran avance, especialmente para aspiraciones que involucran incorporar conocimientos nuevos y diversos en tiempo casi real.
Meta ha puesto énfasis en que LLama 2 es un modelo con licencia comercial de código abierto, condición que podría revolucionar las reglas de competencia en el desarrollo de nuevas aplicaciones IA. No obstante, la etiqueta open source no está del todo cubierta.
El modelo IA de Meta más reciente es gratuito, permite la colaboración entre desarrolladores para modificarlo y reentrenarlo para casos de uso específicos, y puede ser adaptado por las empresas para crear herramientas propias con fines lucrativos. Sin embargo, la licencia de uso de LLaMa 2 impone una restricción que va contra los principios del open source. Para fines comerciales, el modelo es accesible libremente a menos que el producto supere los 700 millones de usuarios mensuales, en tal caso, la empresa encargada del producto deberá “solicitar una licencia a Meta”. Un techo muy alto al que ni tan solo se acerca chatGPT en estos momentos.
¿Cómo podemos empezar a utilizarlo?
Hay varias técnicas para ejecutar Llama 2 localmente. Lo genial de esto, aparte de evitar preocupaciones de privacidad, es que no necesitas una conexión a internet cuando lo ejecutas localmente. Veamos dos herramientas de código abierto que puedes usar para ejecutar Llama 2 en tus propios dispositivos:
- Llama.cpp (Windows/Linux)
- Ollama (Mac)
Llama.cpp (Windows/Linux) Llama.cpp es una implementación de llama en C++ que permite ejecutar llama con la GPU de nuestro ordenador, lo que hace posible ejecutar Llama 2 localmente en Linux y Windows.
Aquí tienes el script que debes ejecutar en tu terminal:
Con este script activamos el modo interactivo de Llama 2, es decir, la versión Llama 2-chat, y tal como vemos a continuación, ya podemos empezar a hablar con el modelo:
Ollama (Mac) Ollama es una aplicación de macOS open source (para Apple Silicon) que te permite ejecutar, crear y compartir LLMs con una command-line interface. Ollama ya tiene soporte para Llama 2.
Para usar la CLI de Ollama, descarga primero la aplicación macOS en ollama.ai/download. Una vez que la hayas instalado, puedes descargar Lllama 2 sin tener que registrarte para obtener una cuenta. Ejecuta este comando en tu terminal:
Luego puedes ejecutar el modelo y chatear con él:
Nota: Ollama recomienda tener al menos 8 GB de RAM para ejecutar los modelos de 3B, 16 GB para los de 7B y 32 GB para los de 13B.
Conclusión
La aparición de Llama y Llama 2, los LLM open-source desarrollados por Meta, representan un hito en el mundo de Generative AI, y desafían el dominio de los grandes players ofreciendo mayor accesibilidad y flexibilidad. Estos avances permiten una innovación más democratizada en IA, con la capacidad de ejecutar modelos localmente, abordando preocupaciones de privacidad y dependencia. Aunque la restricción de uso comercial para productos con más de 700 millones de usuarios mensuales genera debates sobre su naturaleza “open source”, Llama 2 es un paso significativo hacia un entorno más inclusivo y experimental en la IA, redefiniendo las posibilidades de personalización y colaboración en este campo.