Modelos y plataformas de IA
Llama 2: Una inmersiÃģn profunda en el desafÃo de cÃģdigo abierto a ChatGPT
Los Modelos de Lenguaje Grande (LLM) capaces de realizar tareas de razonamiento complejas han mostrado promesa en dominios especializados como la programaciÃģn y la escritura creativa. Sin embargo, el mundo de los LLM no es simplemente un paraÃso de plug-and-play; existen desafÃos en la usabilidad, la seguridad y las demandas computacionales. En este artÃculo, nos sumergiremos profundamente en las capacidades de Llama 2, mientras proporcionamos una guÃa detallada para configurar este LLM de alto rendimiento a travÃĐs de Hugging Face y T4 GPUs en Google Colab.
Desarrollado por Meta con su asociaciÃģn con Microsoft (MSFT ), este modelo de lenguaje grande de cÃģdigo abierto tiene como objetivo redefinir los ÃĄmbitos de la inteligencia artificial generativa y la comprensiÃģn del lenguaje natural. Llama 2 no es solo otro modelo estadÃstico entrenado en terabytes de datos; es la encarnaciÃģn de una filosofÃa. Una que enfatiza el enfoque de cÃģdigo abierto como la columna vertebral del desarrollo de la IA, particularmente en el espacio de la inteligencia artificial generativa.
Llama 2 y su sustituto optimizado para diÃĄlogos, Llama 2-Chat, vienen equipados con hasta 70 mil millones de parÃĄmetros. Pasan por un proceso de afinamiento diseÃąado para alinearlos estrechamente con las preferencias humanas, lo que los hace mÃĄs seguros y efectivos que muchos otros modelos pÚblicamente disponibles. Este nivel de granularidad en el afinamiento es a menudo reservado para LLM âcerradosâ de âproductoâ, como ChatGPT y BARD, que no estÃĄn generalmente disponibles para escrutinio o personalizaciÃģn pÚblica.
InmersiÃģn tÃĐcnica profunda en Llama 2
Para entrenar el modelo Llama 2; al igual que sus predecesores, utiliza una arquitectura de transformador auto-regresivo, pre-entrenado en un corpus extenso de datos auto-supervisados. Sin embargo, agrega una capa adicional de sofisticaciÃģn al utilizar el Aprendizaje de Refuerzo con RetroalimentaciÃģn Humana (RLHF) para alinear mejor con el comportamiento y las preferencias humanas. Esto es computacionalmente costoso pero vital para mejorar la seguridad y la efectividad del modelo.
Pre-entrenamiento y eficiencia de datos
La innovaciÃģn fundamental de Llama 2 radica en su rÃĐgimen de pre-entrenamiento. El modelo toma pistas de su predecesor, Llama 1, pero introduce varias mejoras cruciales para elevar su rendimiento. Notablemente, un aumento del 40% en el nÚmero total de tokens entrenados y una expansiÃģn de dos veces en la longitud de contexto destacan. AdemÃĄs, el modelo aprovecha la atenciÃģn de consulta agrupada (GQA) para amplificar la escalabilidad de inferencia.
Afinamiento supervisado (SFT) y Aprendizaje de Refuerzo con RetroalimentaciÃģn Humana (RLHF)
Llama-2-Chat ha sido rigurosamente afinado utilizando tanto SFT como RLHF. En este contexto, SFT sirve como un componente integral del marco de RLHF, afinando las respuestas del modelo para alinearlas estrechamente con las preferencias y expectativas humanas.
OpenAI ha proporcionado una ilustraciÃģn informativa que explica las metodologÃas SFT y RLHF empleadas en InstructGPT. Al igual que LLaMa 2, InstructGPT tambiÃĐn aprovecha estas tÃĐcnicas de entrenamiento avanzadas para optimizar el rendimiento de su modelo.
El paso 1 en la imagen a continuaciÃģn se centra en el Afinamiento Supervisado (SFT), mientras que los pasos posteriores completan el proceso de Aprendizaje de Refuerzo con RetroalimentaciÃģn Humana (RLHF).
El Afinamiento Supervisado (SFT) es un proceso especializado destinado a optimizar un LLM pre-entrenado para una tarea de flujo descendente especÃfica. A diferencia de los mÃĐtodos no supervisados, que no requieren validaciÃģn de datos, SFT emplea un conjunto de datos que ha sido pre-validado y etiquetado.
Generalmente, crear estos conjuntos de datos es costoso y consume mucho tiempo. El enfoque de Llama 2 fue la calidad sobre la cantidad. Con solo 27,540 anotaciones, el equipo de Meta logrÃģ niveles de rendimiento competitivos con los anotadores humanos. Esto se alinea bien con estudios recientes que muestran que incluso conjuntos de datos limitados pero limpios pueden impulsar resultados de alta calidad.
En el proceso de SFT, el LLM pre-entrenado se expone a un conjunto de datos etiquetado, donde los algoritmos de aprendizaje supervisado entran en juego. Los pesos internos del modelo se recalibran en funciÃģn de gradientes calculados a partir de una funciÃģn de pÃĐrdida especÃfica de la tarea. Esta funciÃģn de pÃĐrdida cuantifica las discrepancias entre las salidas predichas del modelo y las etiquetas de verdad real.
Esta optimizaciÃģn permite que el LLM comprenda los patrones y matices intrincados incrustados en el conjunto de datos etiquetado. En consecuencia, el modelo no es solo una herramienta generalizada, sino que evoluciona hacia un activo especializado, hÃĄbil para realizar la tarea objetivo con un alto grado de precisiÃģn.
El aprendizaje de refuerzo es el siguiente paso, destinado a alinear el comportamiento del modelo mÃĄs estrechamente con las preferencias humanas.
La fase de afinamiento aprovechÃģ el Aprendizaje de Refuerzo con RetroalimentaciÃģn Humana (RLHF), empleando tÃĐcnicas como Muestreo de Importancia y OptimizaciÃģn de PolÃtica Proximal para introducir ruido algorÃtmico, evitando asà los Ãģptimos locales. Este afinamiento iterativo no solo mejorÃģ el modelo, sino que tambiÃĐn alineÃģ su salida con las expectativas humanas.
Llama 2-Chat utilizÃģ un protocolo de comparaciÃģn binaria para recopilar datos de preferencia humana, marcando una tendencia notable hacia enfoques mÃĄs cualitativos. Este mecanismo informÃģ los Modelos de Recompensa, que se utilizan posteriormente para afinar el modelo de inteligencia artificial conversacional.
AtenciÃģn Fantasma: DiÃĄlogos de varias vueltas
Meta introdujo una nueva funciÃģn, AtenciÃģn Fantasma (GAtt), diseÃąada para mejorar el rendimiento de Llama 2 en diÃĄlogos de varias vueltas. Esto resuelve efectivamente el problema persistente de pÃĐrdida de contexto en conversaciones en curso. GAtt actÚa como un ancla, vinculando las instrucciones iniciales a todos los mensajes de usuario posteriores. Combinado con tÃĐcnicas de aprendizaje de refuerzo, ayuda a producir respuestas consistentes, relevantes y alineadas con el usuario a lo largo de diÃĄlogos mÃĄs largos.
Desde el repositorio de Meta Git utilizando download.sh
- Visite el sitio web de Meta: Navegue hasta el sitio oficial de Llama 2 de Meta y haga clic en âDescargar el modeloâ
- Rellene los detalles: Lea y acepte los tÃĐrminos y condiciones para continuar.
- ConfirmaciÃģn de correo electrÃģnico: Una vez que se envÃe el formulario, recibirÃĄ un correo electrÃģnico de Meta con un enlace para descargar el modelo desde su repositorio de Git.
- Ejecutar download.sh: Clone el repositorio de Git y ejecute el script
download.sh. Este script lo pedirÃĄ que se autentique utilizando una URL de Meta que caduca en 24 horas. TambiÃĐn elegirÃĄ el tamaÃąo del modelo: 7B, 13B o 70B.
Desde Hugging
- Reciba el correo electrÃģnico de aceptaciÃģn: DespuÃĐs de obtener acceso desde Meta, vaya a Hugging Face.
- Solicite acceso: Elija el modelo deseado y envÃe una solicitud para otorgar acceso.
- ConfirmaciÃģn: Espere un correo electrÃģnico de âacceso concedidoâ dentro de 1-2 dÃas.
- Generar tokens de acceso: Navegue hasta âConfiguraciÃģnâ en su cuenta de Hugging Face para crear tokens de acceso.
La versiÃģn 4.31 de Transformers es completamente compatible con LLaMa 2 y abre muchas herramientas y funcionalidades dentro del ecosistema de Hugging Face. Desde scripts de entrenamiento e inferencia hasta cuantificaciÃģn de 4 bits con bitsandbytes y Afinamiento de ParÃĄmetros Eficiente (PEFT), la herramienta es extensa. Para empezar, asegÚrese de estar en la Última versiÃģn de Transformers y haber iniciado sesiÃģn en su cuenta de Hugging Face.
Aquà hay una guÃa simplificada para ejecutar la inferencia del modelo LLaMa 2 en un entorno Google Colab, aprovechando un tiempo de ejecuciÃģn de GPU:
Â
Â
Â
Â
Â
Â
InstalaciÃģn del paquete
<p>!pip install transformers !huggingface-cli login
Importar las bibliotecas de Python necesarias.
from transformers import AutoTokenizer import transformers import torch
Inicializar el modelo y el tokenizador
En este paso, especifique quÃĐ modelo Llama 2 utilizarÃĄ. Para esta guÃa, utilizamos meta-llama/Llama-2-7b-chat-hf.
model = "meta-llama/Llama-2-7b-chat-hf" tokenizer = AutoTokenizer.from_pretrained(model)
Configurar la canalizaciÃģn
Utilice la canalizaciÃģn de Hugging Face para la generaciÃģn de texto con configuraciones especÃficas:
pipeline = transformers.pipeline( "text-generation", model=model, torch_dtype=torch.float16, device_map="auto")
Generar secuencias de texto
Finalmente, ejecute la canalizaciÃģn y genere una secuencia de texto basada en su entrada:
sequences = pipeline(
'ÂŋQuiÃĐnes son los contribuyentes clave en el campo de la inteligencia artificial?\n',
do_sample=True,
top_k=10,
num_return_sequences=1,
eos_token_id=tokenizer.eos_token_id,
max_length=200)
for seq in sequences:
print(f"Resultado: {seq['generated_text']}")
Interfaz de usuario de A16Z para LLaMa 2
Andreessen Horowitz (A16Z) ha lanzado recientemente una interfaz de chatbot de vanguardia basada en Streamlit para Llama 2. Alojada en GitHub, esta interfaz de usuario conserva el historial de chat de sesiÃģn y tambiÃĐn proporciona la flexibilidad de seleccionar entre varios puntos finales de API de Llama 2 alojados en Replicate. Este diseÃąo centrado en el usuario tiene como objetivo simplificar las interacciones con Llama 2, lo que lo convierte en una herramienta ideal tanto para desarrolladores como para usuarios finales. Para aquellos interesados en experimentar esto, hay una demo en vivo disponible en Llama2.ai.
Llama 2: ÂŋQuÃĐ lo hace diferente de los modelos GPT y su predecesor Llama 1?
VariaciÃģn en escala
A diferencia de muchos modelos de lenguaje que ofrecen escalabilidad limitada, Llama 2 ofrece una variedad de opciones para modelos con parÃĄmetros variados. El modelo se escala desde 7 mil millones hasta 70 mil millones de parÃĄmetros, proporcionando asà una serie de configuraciones para satisfacer diversas necesidades computacionales.
Longitud de contexto mejorada
El modelo tiene una longitud de contexto aumentada de 4K tokens en comparaciÃģn con Llama 1. Esto permite que retenga mÃĄs informaciÃģn, mejorando asà su capacidad para comprender y generar contenido mÃĄs complejo y extenso.
AtenciÃģn de consulta agrupada (GQA)
La arquitectura utiliza el concepto de GQA, diseÃąado para acelerar el proceso de cÃĄlculo de atenciÃģn al almacenar en cachÃĐ pares de tokens anteriores. Esto mejora efectivamente la escalabilidad de inferencia del modelo para mejorar la accesibilidad.
Medidas de rendimiento
Llama 2 ha establecido un nuevo estÃĄndar en las mÃĐtricas de rendimiento. No solo supera a su predecesor, Llama 1, sino que tambiÃĐn ofrece una competencia significativa a otros modelos como Falcon y GPT-3.5.
El modelo Llama 2-Chat mÃĄs grande, el 70B, tambiÃĐn supera a ChatGPT en el 36% de los casos y coincide en el rendimiento en otro 31,5% de los casos. Fuente: ArtÃculo
CÃģdigo abierto: El poder de la comunidad
Meta y Microsoft pretenden que Llama 2 sea mÃĄs que un producto; lo ven como una herramienta impulsada por la comunidad. Llama 2 es gratuito para acceder tanto para investigaciÃģn como para fines no comerciales. EstÃĄn buscando democratizar las capacidades de la IA, haciÃĐndolas accesibles para startups, investigadores y empresas. Un enfoque de cÃģdigo abierto permite la âdepuraciÃģn de crowdsourcingâ del modelo. Los desarrolladores y ÃĐticos de la IA pueden probar el modelo a fondo, identificar vulnerabilidades y ofrecer soluciones a un ritmo acelerado.
Aunque los tÃĐrminos de licencia para LLaMa 2 son en general permisivos, existen excepciones. Las grandes empresas con mÃĄs de 700 millones de usuarios mensuales, como Google, requieren autorizaciÃģn explÃcita de Meta para su utilizaciÃģn. AdemÃĄs, la licencia prohÃbe el uso de LLaMa 2 para la mejora de otros modelos de lenguaje.
DesafÃos actuales con Llama 2
- GeneralizaciÃģn de datos: Tanto Llama 2 como GPT-4 a veces vacilan en un rendimiento uniformemente alto en tareas divergentes. La calidad y diversidad de los datos son tan cruciales como el volumen en estos escenarios.
- Transparencia del modelo: Dado los contratiempos anteriores con la IA que produce salidas engaÃąosas, explorar la lÃģgica de decisiÃģn detrÃĄs de estos modelos complejos es fundamental.
CÃģdigo Llama â El lanzamiento mÃĄs reciente de Meta
Meta anunciÃģ recientemente Code Llama, que es un modelo de lenguaje grande especializado en programaciÃģn con tamaÃąos de parÃĄmetros que van desde 7B hasta 34B. Similar a ChatGPT Code Interpreter; Code Llama puede simplificar los flujos de trabajo de los desarrolladores y hacer que la programaciÃģn sea mÃĄs accesible. Acomoda varios lenguajes de programaciÃģn y viene en variaciones especializadas, como Code Llama-Python para tareas especÃficas de Python. El modelo tambiÃĐn ofrece diferentes niveles de rendimiento para satisfacer diversas necesidades de latencia. Con licencia abierta, Code Llama invita a la comunidad a contribuir con mejoras continuas.
https://about.fb.com/news/2023/08/code-llama-ai-for-coding/
ConclusiÃģn
Este artÃculo lo ha llevado a travÃĐs de la configuraciÃģn de un modelo Llama 2 para la generaciÃģn de texto en Google Colab con soporte de Hugging Face. El rendimiento de Llama 2 estÃĄ impulsado por una serie de tÃĐcnicas avanzadas, desde arquitecturas de transformadores auto-regresivos hasta Aprendizaje de Refuerzo con RetroalimentaciÃģn Humana (RLHF). Con hasta 70 mil millones de parÃĄmetros y caracterÃsticas como AtenciÃģn Fantasma, este modelo supera los estÃĄndares actuales de la industria en ciertas ÃĄreas, y con su naturaleza de cÃģdigo abierto, allana el camino para una nueva era en la comprensiÃģn del lenguaje natural y la inteligencia artificial generativa.

















