Los modelos base Llama 2 de Meta ahora están disponibles en Amazon SageMaker JumpStart

Los modelos base Llama 2 de Meta están en Amazon SageMaker JumpStart

Hoy, nos complace anunciar que los modelos de base Llama 2 desarrollados por Meta están disponibles para los clientes a través de Amazon SageMaker JumpStart. La familia de modelos de lenguaje grandes (LLM) Llama 2 es una colección de modelos de texto generativos pre-entrenados y afinados que varían en escala desde 7 mil millones hasta 70 mil millones de parámetros. Los LLM afinados, llamados Llama-2-chat, están optimizados para casos de uso de diálogo. Puede probar fácilmente estos modelos y usarlos con SageMaker JumpStart, que es un centro de aprendizaje automático (ML) que proporciona acceso a algoritmos, modelos y soluciones de ML para que pueda comenzar rápidamente con ML.

En esta publicación, explicaremos cómo usar los modelos Llama 2 a través de SageMaker JumpStart.

¿Qué es Llama 2?

Llama 2 es un modelo de lenguaje auto-regresivo que utiliza una arquitectura de transformador optimizada. Llama 2 está destinado para uso comercial e investigación en inglés. Viene en una variedad de tamaños de parámetro, como 7 mil millones, 13 mil millones y 70 mil millones, así como variaciones pre-entrenadas y afinadas. Según Meta, las versiones afinadas utilizan afinamiento supervisado (SFT) y aprendizaje por refuerzo con retroalimentación humana (RLHF) para alinearse con las preferencias humanas de utilidad y seguridad. Llama 2 fue pre-entrenado con 2 billones de tokens de datos de fuentes disponibles públicamente. Los modelos afinados están destinados para chats asistentes, mientras que los modelos pre-entrenados se pueden adaptar para una variedad de tareas de generación de lenguaje natural. Independientemente de la versión del modelo que un desarrollador utilice, la guía de uso responsable de Meta puede ayudar a guiar el afinamiento adicional que pueda ser necesario para personalizar y optimizar los modelos con mitigaciones de seguridad adecuadas.

¿Qué es SageMaker JumpStart?

Con SageMaker JumpStart, los profesionales de ML pueden elegir entre una amplia selección de modelos de base de código abierto. Los profesionales de ML pueden implementar modelos de base en instancias dedicadas de Amazon SageMaker desde un entorno aislado de red y personalizar los modelos utilizando SageMaker para el entrenamiento y la implementación del modelo.

Ahora puede descubrir e implementar Llama 2 con solo unos clics en Amazon SageMaker Studio o programáticamente a través del SDK de Python de SageMaker, lo que le permite obtener rendimiento del modelo y controles de MLOps con funciones de SageMaker como Amazon SageMaker Pipelines, Amazon SageMaker Debugger o registros de contenedor. El modelo se implementa en un entorno seguro de AWS y bajo sus controles de VPC, lo que ayuda a garantizar la seguridad de los datos. Los modelos de Llama 2 están disponibles hoy en Amazon SageMaker Studio, inicialmente en las regiones us-east-1 y us-west-2.

Descubrir modelos

Puede acceder a los modelos de base a través de SageMaker JumpStart en la interfaz de usuario de SageMaker Studio y el SDK de Python de SageMaker. En esta sección, explicaremos cómo descubrir los modelos en SageMaker Studio.

SageMaker Studio es un entorno de desarrollo integrado (IDE) que proporciona una única interfaz visual basada en web donde puede acceder a herramientas diseñadas específicamente para realizar todos los pasos del desarrollo de ML, desde la preparación de datos hasta la construcción, entrenamiento e implementación de sus modelos de ML. Para obtener más detalles sobre cómo comenzar y configurar SageMaker Studio, consulte Amazon SageMaker Studio.

Una vez que esté en SageMaker Studio, puede acceder a SageMaker JumpStart, que contiene modelos pre-entrenados, cuadernos y soluciones preconstruidas, en Soluciones preconstruidas y automatizadas.

Desde la página principal de SageMaker JumpStart, puede buscar soluciones, modelos, cuadernos y otros recursos. Puede encontrar dos modelos destacados de Llama 2 en el carrusel Modelos de base: Generación de texto. Si no ve los modelos de Llama 2, actualice la versión de SageMaker Studio cerrando y reiniciando. Para obtener más información sobre las actualizaciones de versión, consulte Cerrar y actualizar aplicaciones de Studio.

También puede encontrar otras cuatro variantes de modelos al elegir Explorar todos los modelos de generación de texto o buscar llama en el cuadro de búsqueda.

Puedes elegir la tarjeta del modelo para ver detalles sobre el modelo, como la licencia, los datos utilizados para el entrenamiento y cómo utilizarlo. También puedes encontrar dos botones, Desplegar y Abrir Notebook, que te ayudarán a utilizar el modelo.

Cuando elijas uno de los botones, aparecerá una ventana emergente con el acuerdo de licencia de usuario final y la política de uso aceptable para que lo reconozcas.

Una vez que lo reconozcas, pasarás al siguiente paso para utilizar el modelo.

Desplegar un modelo

Cuando elijas Desplegar y reconozcas los términos, comenzará el despliegue del modelo. Alternativamente, puedes desplegarlo a través del cuaderno de ejemplo que aparece al elegir Abrir Notebook. El cuaderno de ejemplo proporciona orientación completa sobre cómo desplegar el modelo para la inferencia y limpiar los recursos.

Para desplegar utilizando un cuaderno, comenzamos seleccionando un modelo adecuado, especificado por el model_id. Puedes desplegar cualquiera de los modelos seleccionados en SageMaker con el siguiente código:

from sagemaker.jumpstart.model import JumpStartModel
my_model = JumpStartModel(model_id = "meta-textgeneration-llama-2-70b-f")
predictor = my_model.deploy()

Esto despliega el modelo en SageMaker con configuraciones predeterminadas, incluyendo el tipo de instancia predeterminado y las configuraciones VPC predeterminadas. Puedes cambiar estas configuraciones especificando valores no predeterminados en JumpStartModel. Una vez desplegado, puedes realizar inferencia contra el punto de conexión desplegado a través del predictor de SageMaker:

payload = {
    “inputs”:  
      [
        [
         {"role": "system", "content": "Siempre responde con Haiku"},
         {"role": "user", "content": "Voy a París, ¿qué debería ver?"},
        ]   
      ],
   "parameters":{"max_new_tokens":256, "top_p":0.9, "temperature":0.6}
}

Los modelos de chat ajustados (Llama-2-7b-chat, Llama-2-13b-chat, Llama-2-70b-chat) aceptan un historial de chat entre el usuario y el asistente de chat, y generan el chat subsiguiente. Los modelos pre-entrenados (Llama-2-7b, Llama-2-13b, Llama-2-70b) requieren una indicación de texto y realizan una completación de texto en función de la indicación proporcionada. Consulta el siguiente código:

predictor.predict(payload, custom_attributes="accept_eula=true")

Ten en cuenta que de forma predeterminada, accept_eula está configurado como falso. Necesitas establecer accept_eula=true para invocar el punto de conexión con éxito. Al hacerlo, aceptas el acuerdo de licencia de usuario y la política de uso aceptable mencionados anteriormente. También puedes descargar el acuerdo de licencia.

Custom_attributes se utiliza para pasar EULA y son pares clave/valor. La clave y el valor están separados por = y los pares están separados por ;. Si el usuario pasa la misma clave más de una vez, se mantiene el último valor y se pasa al controlador de scripts (es decir, en este caso, se utiliza para lógica condicional). Por ejemplo, si se pasa accept_eula=false; accept_eula=true al servidor, se mantiene accept_eula=true y se pasa al controlador de scripts.

Los parámetros de inferencia controlan el proceso de generación de texto en el punto de conexión. El control de máximo de nuevos tokens se refiere al tamaño de la salida generada por el modelo. Ten en cuenta que esto no es lo mismo que el número de palabras, ya que el vocabulario del modelo no es el mismo que el vocabulario del idioma inglés, y cada token puede no ser una palabra del idioma inglés. La temperatura controla la aleatoriedad en la salida. Una temperatura más alta produce salidas más creativas y alucinantes. Todos los parámetros de inferencia son opcionales.

La siguiente tabla enumera todos los modelos de Llama disponibles en SageMaker JumpStart junto con los model_ids, los tipos de instancia predeterminados y el número máximo de tokens totales (suma de la cantidad de tokens de entrada y la cantidad de tokens generados) admitidos para cada uno de estos modelos.

Nombre del Modelo ID del Modelo Máximo de Tokens Totales Tipo de Instancia Predeterminado
Llama-2-7b meta-textgeneration-llama-2-7b 4096 ml.g5.2xlarge
Llama-2-7b-chat meta-textgeneration-llama-2-7b-f 4096 ml.g5.2xlarge
Llama-2-13b meta-textgeneration-llama-2-13b 4096 ml.g5.12xlarge
Llama-2-13b-chat meta-textgeneration-llama-2-13b-f 4096 ml.g5.12xlarge
Llama-2-70b meta-textgeneration-llama-2-70b 4096 ml.g5.48xlarge
Llama-2-70b-chat meta-textgeneration-llama-2-70b-f 4096 ml.g5.48xlarge

Tenga en cuenta que los puntos finales de SageMaker tienen un límite de tiempo de espera de 60s. Por lo tanto, aunque el modelo pueda generar 4096 tokens, si la generación de texto tarda más de 60s, la solicitud fallará. Para los modelos 7B, 13B y 70B, recomendamos establecer max_new_tokens no mayor a 1500, 1000 y 500 respectivamente, manteniendo el número total de tokens por debajo de 4K.

Inferencia y ejemplos de texto para Llama-2-70b

Puede utilizar los modelos de Llama para completar texto en cualquier fragmento de texto. A través de la generación de texto, puede realizar una variedad de tareas, como responder preguntas, traducción de idiomas, análisis de sentimientos y muchas más. La carga útil de entrada al punto final se ve como el siguiente código:

payload = {
    “inputs”: str,
   (opcional)"parameters":{"max_new_tokens":int, "top_p":float, "temperature":float}
}

A continuación se muestran algunos ejemplos de promoción y el texto generado por el modelo. Todos los resultados se generan con los parámetros de inferencia {"max_new_tokens":256, "top_p":0.9, "temperature":0.6}.

Entrada: En pocas palabras, la teoría de la relatividad establece que  

 Salida: 
1) las leyes de la física son las mismas para todos los observadores en movimiento uniforme entre sí, y 2) la velocidad de la luz es la misma para todos los observadores, independientemente de su movimiento relativo o del movimiento de la fuente de luz.
A finales del siglo XIX, los científicos creían que la luz viajaba a través de un VoAGI al que llamaron éter luminífero. Pero en 1887, Albert Michelson y Edward Morley diseñaron un experimento para medir la velocidad de la luz en el éter, y descubrieron que la velocidad de la luz era la misma sin importar cómo orientaran su equipo. Este resultado parecía contradecir la idea del éter, y el experimento de Michelson y Morley se convirtió en uno de los experimentos fallidos más famosos de la historia.
En 1905, Albert Einstein publicó un artículo que utilizaba los resultados del experimento de Michelson-Morley para desarrollar la teoría de la relatividad especial. En 1915, Einstein publicó un artículo sobre la relatividad general, que es una teoría de la gravitación.
En física, la velocidad de la luz se considera constante, y su valor es de 299.792.458 metros.

Entrada: Creo que el significado de la vida es 

 Salida: 
ser feliz, encontrar alegría en la vida, amar y ser amado. Tener el coraje de ser uno mismo y ser amable con los demás. Poder expresarse, crear e inspirarse. Poder dar y recibir. Poder aprender y crecer. Ser capaz de encontrar belleza en el mundo y poder apreciarla. Ser capaz de encontrar paz y contentamiento. Ser capaz de encontrar sentido y propósito. Ser capaz de marcar la diferencia en el mundo. Ser capaz de encontrar alegría en las cosas simples. Ser capaz de encontrar alegría en las cosas difíciles. Ser capaz de encontrar alegría en el viaje. Ser capaz de encontrar alegría en el destino. Ser capaz de encontrar alegría en el momento presente. Ser capaz de encontrar alegría en el futuro. Ser capaz de encontrar alegría en el pasado. Ser capaz de encontrar alegría en el presente. Ser capaz de encontrar alegría en el futuro. Ser capaz de encontrar alegría en el pasado. Ser capaz de encontrar alegría en el presente. Ser capaz de encontrar alegría en el futuro. Ser capaz de encontrar alegría en el pasado. Ser capaz de encontrar alegría en el presente. Ser capaz de encontrar alegría

Entrada: Un breve mensaje felicitando al equipo por el lanzamiento:

        Hola a todos,
        
        Solo  

 Salida: 
quería enviar una nota rápida para felicitar a todos por el lanzamiento de nuestro nuevo sitio web. Sé que ha sido un largo camino y estoy seguro de que todos estamos aliviados de que finalmente esté disponible.
        
        Gracias a todos por su arduo trabajo y dedicación en los últimos meses. Sé que no siempre fue fácil, pero creo que todos podemos estar orgullosos del producto final.
        
        Estoy deseando ver cómo responden nuestros usuarios al nuevo sitio y estoy seguro de que será un éxito.
        
        Gracias de nuevo y disfruten el resto de su día.
        
        Atentamente,
        
        [Tu Nombre]
        
        [Tu Cargo]
        
        [Tu Empresa]
        
        [Tu Correo Electrónico]
        
        [Tu Número de Teléfono]
        
        [Tu Sitio Web]
        
        [Tus Redes Sociales]
        
        [Tu Dirección]
        
        [Tu Ciudad, Estado, Código Postal]
        
        [Tu País]
        
        [Tu Código Postal]
        
        [Tu Sitio Web]
        
        [

En el siguiente ejemplo, mostramos cómo usar modelos de Llama con aprendizaje en contexto de pocos ejemplos, donde proporcionamos muestras de entrenamiento disponibles para el modelo. Tenga en cuenta que solo realizamos inferencia en el modelo implementado y durante este proceso, los pesos del modelo no cambian.

Entrada: Traducir inglés a francés:

        sea otter => loutre de mer
        peppermint => menthe poivrée
        plush girafe => girafe peluche
        cheese => 

 Salida: 
fromage
        chocolate => chocolat
        car => voiture
        hamster => hamster
        beer => bière
        bicycle => bicyclette
        banana => banane
        strawberry => fraise
        pizza => pizza
        cheeseburger => cheeseburger
        pineapple => ananas
        carrot => carotte
        watermelon => pastèque
        whale => baleine
        eggplant => aubergine
        cat => chat
        penguin => manchot
        lion => lion
        elephant => éléphant
        panda => panda
        tiger => tigre
        salmon => saumon
        squirrel => écureuil
        kangaroo => kangourou
        turtle => tortue
        octopus => poulpe
        frog => grenouille
        pig => cochon
        goldfish => poisson rouge
        tiger shark => requin tigre
        gorilla => gorille
        dol

Inferencia y ejemplos de indicaciones para Llama-2-70b-chat

Con modelos de Llama-2-Chat, que están optimizados para casos de uso de diálogo, la entrada a los puntos finales del modelo de chat es el historial anterior entre el asistente de chat y el usuario. Puede hacer preguntas contextualmente a la conversación que ha ocurrido hasta ahora. También puede proporcionar la configuración del sistema, como las personalidades que definen el comportamiento del asistente de chat. La carga útil de entrada al punto final se ve como el siguiente código:

carga_útil = {
    "inputs":  [
     [
      (opcional){"role": "system", "content": str},
      (repetido k veces) {"role": "user", "content": str}, {"role": "assistant", "content": str},
      {"role": "user", "content": str},
     ]
    ],
   (opcional)"parameters":{"max_new_tokens":int, "top_p":float, "temperature":float}
}

A continuación se muestran algunas indicaciones de ejemplo y el texto generado por el modelo. Todas las salidas se generan con los parámetros de inferencia {"max_new_tokens": 512, "top_p": 0.9, "temperature": 0.6}.

Entrada:
Usuario: ¿Cuál es la receta de la mayonesa?

Salida:
Asistente: ¡Claro, puedo ayudarte con eso! La mayonesa es un condimento espeso y cremoso hecho a partir de una mezcla de yemas de huevo, aceite, vinagre o jugo de limón y condimentos. Aquí tienes una receta básica para hacer mayonesa casera:

Ingredientes:

* 2 yemas de huevo
* 1/2 taza (120 ml) de aceite de sabor neutro, como el aceite de canola o de semilla de uva
* 1 cucharada (15 ml) de vinagre o jugo de limón
* 1/2 cucharadita de sal
* 1/4 cucharadita de pimienta negra

Instrucciones:

1. En un tazón de tamaño adecuado, mezcla las yemas de huevo, la sal y la pimienta negra hasta que estén bien combinadas.
2. Vierte lentamente el aceite en el tazón mientras mezclas continuamente la mezcla. Es importante agregar el aceite muy lentamente, de lo contrario, la mezcla puede romperse y terminarás con un desastre separado y cuajado.
3. Continúa batiendo hasta que la mezcla espese y emulsione, lo cual debería tomar alrededor de 5-7 minutos. Sabrás que está lista cuando la mezcla haya duplicado su volumen y tenga una consistencia espesa y cremosa.
4. Agrega el vinagre o el jugo de limón y continúa batiendo durante otro minuto o dos, hasta que los sabores estén completamente incorporados.
5. Prueba la mayonesa y ajusta el condimento según sea necesario. Puedes agregar más sal, pimienta o ácido si lo deseas.
6. Cubre el tazón con papel film y refrigera la mayonesa durante al menos 30 minutos antes de servir. Esto permitirá que los sabores se mezclen y la mayonesa se espese aún más.

¡Eso es todo! Esta receta rinde aproximadamente 1 1/2 tazas (360 ml) de mayonesa, lo cual debería ser suficiente para un lote pequeño o de tamaño adecuado de sándwiches o ensaladas. También puedes personalizar la receta agregando diferentes condimentos, como ajo, mostaza o hierbas, para crear un sabor único. ¡Disfrútala!

En el siguiente ejemplo, el usuario ha tenido una conversación con el asistente sobre los lugares turísticos de París. A continuación, el usuario está preguntando sobre la primera opción recomendada por el asistente de chat.

Entrada:
Usuario: Voy a París, ¿qué debería ver?
Asistente: París, la capital de Francia, es conocida por su impresionante arquitectura, museos de arte, lugares históricos y ambiente romántico. Aquí hay algunas de las principales atracciones para ver en París:

1. La Torre Eiffel: La icónica Torre Eiffel es uno de los hitos más reconocibles del mundo y ofrece vistas impresionantes de la ciudad.
2. El Museo del Louvre: El Louvre es uno de los museos más grandes y famosos del mundo, albergando una impresionante colección de arte y artefactos, incluida la Mona Lisa.
3. La Catedral de Notre-Dame: Esta hermosa catedral es uno de los lugares más famosos de París y es conocida por su arquitectura gótica y sus impresionantes vitrales.

Estas son solo algunas de las muchas atracciones que París tiene para ofrecer. Con tanto para ver y hacer, no es de extrañar que París sea uno de los destinos turísticos más populares del mundo.
Usuario: ¿Qué tiene de especial la opción #1?

Salida:
Asistente: La Torre Eiffel es un hito icónico de renombre mundial que simboliza a París y Francia. Fue construida para la Exposición Universal de 1889 y originalmente se pensó como una estructura temporal, pero se ha convertido en una parte permanente del horizonte parisino. Aquí hay algunas razones por las que la Torre Eiffel es tan grandiosa:

1. Maravilla de la ingeniería: La Torre Eiffel fue una hazaña revolucionaria de la ingeniería en el momento de su construcción. Tiene una altura de 324 metros (1,063 pies) y fue la estructura más alta del mundo durante más de 40 años.
2. Diseño icónico: La forma y el diseño distintivos de la Torre Eiffel la hacen instantáneamente reconocible. Ha sido objeto de innumerables obras de arte, fotografías y películas, y se ha convertido en un símbolo de París y Francia.
3. Vistas panorámicas: La Torre Eiffel ofrece vistas impresionantes de la ciudad desde sus plataformas de observación. Los visitantes pueden disfrutar de una vista de 360 grados de París, que incluye lugares famosos como el río Sena, el Arco de Triunfo y el barrio de Montmartre.
4. Significado histórico: La Torre Eiffel ha desempeñado un papel importante en la historia de París, habiendo sido el escenario de numerosos eventos importantes, incluida la famosa "Batalla de la Torre Eiffel" durante la Segunda Guerra Mundial.
5. Impacto cultural: La Torre Eiffel ha tenido un impacto significativo en la cultura popular, inspirando innumerables obras de arte, literatura y música. También ha sido objeto de numerosos documentales y películas, incluida la película clásica "Un americano en París".
6. Ambiente romántico: La Torre Eiffel es conocida por su ambiente romántico, lo que la convierte en un destino popular para parejas y recién casados. Ha sido escenario de innumerables propuestas de matrimonio y ha aparecido en numerosas películas y obras literarias románticas.
7. Accesibilidad: La Torre Eiffel es fácilmente accesible en transporte público, lo que la convierte en un destino conveniente para los visitantes. También es accesible para sillas de ruedas, con ascensores y rampas que brindan acceso a todos los niveles.

En general, la Torre Eiffel es un destino imperdible para cualquier persona que visite París, ofreciendo una experiencia única e inolvidable que combina historia, cultura, ingeniería y romantismo.

En los siguientes ejemplos, configuramos la configuración del sistema:

Entrada:
Sistema: Siempre responder con Haiku
Usuario: Voy a París, ¿qué debería ver?

Salida:
Asistente: Torre Eiffel alta
Arte en el Museo del Louvre
Fluye el río Sena

Entrada:
Sistema: Siempre responder con emojis
Usuario: ¿Cómo ir de Beijing a Nueva York?

Salida:
Asistente: Aquí están los emojis que representan los pasos para ir de Beijing a Nueva York:

🇨🇳🛫🛬🇺🇸🗽🏙️🚕💨🛩️🛬🛫😴💤🛩️🛬🛫😍

Limpieza

Después de haber terminado de ejecutar el cuaderno, asegúrate de eliminar todos los recursos para que se borren todos los recursos que creaste en el proceso y se detenga la facturación:

predictor.delete_model()
predictor.delete_endpoint()

Conclusión

En esta publicación, te mostramos cómo empezar con los modelos Llama 2 en SageMaker Studio. Con esto, tienes acceso a seis modelos fundamentales de Llama 2 que contienen miles de millones de parámetros. Debido a que los modelos fundamentales están preentrenados, también pueden ayudar a reducir los costos de capacitación e infraestructura y permitir la personalización para tu caso de uso. Para comenzar con SageMaker JumpStart, visita los siguientes recursos:

  • Documentación de SageMaker JumpStart
  • Documentación de los modelos base de SageMaker JumpStart
  • Página de detalles del producto de SageMaker JumpStart
  • Catálogo de modelos de SageMaker JumpStart

We will continue to update Zepes; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

Inteligencia Artificial

RELU vs. Softmax en Vision Transformers ¿Importa la longitud de la secuencia? Ideas de un artículo de investigación de Google DeepMind

Hoy en día, una arquitectura común de aprendizaje automático es la arquitectura de transformer. Una de las partes pri...

Ciencias de la Computación

El Avance en la Computación Cuántica Inicia una Nueva Era, Dice IBM.

Un ordenador cuántico encontró mejores respuestas a un problema de física que un superordenador convencional.

Inteligencia Artificial

Investigadores de la Universidad de Zurich desarrollan SwissBERT un modelo de lenguaje multilingüe para los cuatro idiomas nacionales de Suiza

El famoso modelo BERT ha sido recientemente uno de los principales modelos de lenguaje para el procesamiento del leng...

Inteligencia Artificial

Investigadores de Apple proponen un nuevo modelo de descomposición de tensores para el filtrado colaborativo con retroalimentación implícita

La capacidad para inferir las preferencias del usuario a partir de comportamientos pasados es crucial para ofrecer su...

Inteligencia Artificial

Investigadores de Corea del Sur proponen VITS2 un avance en los modelos de síntesis de voz de una sola etapa para una mayor naturalidad y eficiencia.

El artículo presenta VITS2, un modelo de síntesis de texto a voz de una sola etapa que sintetiza un habla más natural...