El modelo de base Falcon 180B de TII ya está disponible a través de Amazon SageMaker JumpStart

Hoy, nos complace anunciar que el modelo básico Falcon 180B desarrollado por el Technology Innovation Institute (TII) y entrenado en Amazon SageMaker está disponible para los clientes a través de Inicio rápido de Amazon SageMaker para implementar con un solo clic para ejecutar la inferencia. Con un tamaño de 180 mil millones de parámetros y entrenado en un enorme conjunto de datos de 3,5 billones de tokens, Falcon 180B es el modelo más grande y uno de los de mayor rendimiento con pesos abiertamente accesibles. Puede probar este modelo con SageMaker JumpStart, un centro de aprendizaje automático (ML) que brinda acceso a algoritmos, modelos y soluciones de ML para que pueda comenzar rápidamente con ML. En esta publicación, explicamos cómo descubrir e implementar el modelo Falcon 180B a través de SageMaker JumpStart.

¿Qué es el Halcón 180B?

Falcon 180B es un modelo lanzado por TII que sigue a lanzamientos anteriores de la familia Falcon. Es una versión ampliada de Falcon 40B y utiliza atención de consultas múltiples para una mejor escalabilidad. Es un modelo de lenguaje autorregresivo que utiliza una arquitectura transformadora optimizada. Fue entrenado con 3,5 billones de tokens de datos, principalmente datos web de Web refinada (aproximadamente 85%). El modelo tiene dos versiones: 180B y 180B-Chat. 180B es un modelo sin procesar y previamente entrenado, que debe perfeccionarse aún más para la mayoría de los casos de uso. 180B-Chat es más adecuado para recibir instrucciones genéricas. El modelo de chat se ha perfeccionado en conjuntos de datos de chat e instrucciones junto con varios conjuntos de datos conversacionales a gran escala.

El modelo está disponible bajo el Licencia Falcon-180B TII y Política de uso aceptable.

El Falcon 180B fue entrenado por TII en Amazon SageMaker, en un grupo de GPU A100 de aproximadamente 4K. Utilizó una base de código de entrenamiento distribuida personalizada llamada Gigatron, que utiliza paralelismo 3D con ZeRO y núcleos Triton personalizados de alto rendimiento. La arquitectura de entrenamiento distribuida utilizada. Servicio de almacenamiento simple de Amazon (Amazon S3) como único servicio unificado para carga de datos y escritura y lectura de puntos de control, lo que contribuyó particularmente a la confiabilidad de la carga de trabajo y la simplicidad operativa.

¿Qué es SageMaker JumpStart?

Con SageMaker JumpStart, los profesionales del aprendizaje automático pueden elegir entre una lista cada vez mayor de modelos básicos de mejor rendimiento. Los profesionales del aprendizaje automático pueden implementar modelos básicos en instancias dedicadas de SageMaker dentro de un entorno aislado de red y personalizar modelos utilizando Amazon SageMaker para el entrenamiento y la implementación de modelos.

Ahora puede descubrir e implementar Falcon 180B con unos pocos clics en Amazon SageMaker Estudio o mediante programación a través del SDK de Python de SageMaker, lo que le permite obtener el rendimiento del modelo y controles MLOps con funciones de SageMaker como Canalizaciones de Amazon SageMaker, Depurador de Amazon SageMakero registros de contenedor. El modelo se implementa en un entorno seguro de AWS y bajo los controles de su VPC, lo que ayuda a garantizar la seguridad de los datos. Falcon 180B es reconocible y se puede implementar en regiones donde las instancias necesarias estén disponibles. Actualmente, las instancias ml.p4de están disponibles en el este de EE. UU. (Norte de Virginia) y el oeste de EE. UU. (Oregón).

Descubre modelos

Puede acceder a los modelos básicos a través de SageMaker JumpStart en la interfaz de usuario de SageMaker Studio y el SDK de SageMaker Python. En esta sección, repasamos 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 de desarrollo de ML, desde la preparación de datos hasta la creación, el entrenamiento y la implementación de sus modelos de ML. Para obtener más detalles sobre cómo comenzar y configurar SageMaker Studio, consulte Amazon SageMaker Estudio.

En SageMaker Studio, puede acceder a SageMaker JumpStart, que contiene modelos, cuadernos y soluciones prediseñadas previamente entrenados, en Soluciones prediseñadas y automatizadas.

Desde la página de inicio de SageMaker JumpStart, puede buscar soluciones, modelos, cuadernos y otros recursos. Puedes encontrar el Falcon 180B en el Modelos básicos: generación de texto carrusel.

También puede encontrar otras variantes de modelos eligiendo Explora todos los modelos de generación de texto o buscando Falcon.

Puede elegir la tarjeta de modelo para ver detalles sobre el modelo, como la licencia, los datos utilizados para entrenar y cómo utilizarlo. También encontrarás dos botones, Desplegar y Cuaderno abiertoque le ayudará a utilizar el modelo (la siguiente captura de pantalla muestra el Desplegar opción).

Implementar modelos

cuando tu eliges Desplegar, comenzará la implementación del modelo. Alternativamente, puede implementar a través del cuaderno de ejemplo que aparece eligiendo Cuaderno abierto. El cuaderno de ejemplo proporciona orientación integral sobre cómo implementar el modelo para inferencia y limpieza de recursos.

Para implementar usando un cuaderno, comenzamos seleccionando un modelo apropiado, especificado por el model_id. Puede implementar cualquiera de los modelos seleccionados en SageMaker con el siguiente código:

from sagemaker.jumpstart.model import JumpStartModel

my_model = JumpStartModel(model_id="huggingface-llm-falcon-180b-chat-bf16") predictor = my_model.deploy()

Esto implementa el modelo en SageMaker con configuraciones predeterminadas, incluido el tipo de instancia predeterminado y las configuraciones de VPC predeterminadas. Puede cambiar estas configuraciones especificando valores no predeterminados en JumpStartModel. Para obtener más información, consulte la Documentación API. Una vez implementado, puede ejecutar inferencias contra el punto final implementado a través de un predictor de SageMaker. Vea el siguiente código:

payload = {
    "inputs": "User: Hello!\nFalcon: ",
    "parameters": {"max_new_tokens": 256, "top_p": 0.9, "temperature": 0.6}
}
response = predictor.predict(payload)

Los parámetros de inferencia controlan el proceso de generación de texto en el punto final. El control máximo de nuevos tokens se refiere al tamaño de la salida generada por el modelo. Tenga en cuenta que esto no es lo mismo que el número de palabras porque el vocabulario del modelo no es el mismo que el vocabulario del idioma inglés y es posible que cada token no sea una palabra del idioma inglés. La temperatura controla la aleatoriedad en la salida. Una temperatura más alta da como resultado resultados más creativos y alucinados. Todos los parámetros de inferencia son opcionales.

Este modelo de parámetros de 180B tiene 335 GB y requiere aún más memoria GPU para realizar inferencias suficientes con una precisión de 16 bits. Actualmente, JumpStart solo admite este modelo en instancias ml.p4de.24xlarge. Es posible implementar un modelo cuantificado de 8 bits en una instancia ml.p4d.24xlarge proporcionando el env={"HF_MODEL_QUANTIZE": "bitsandbytes"} argumento de palabra clave para el JumpStartModel constructor y especificando instance_type="ml.p4d.24xlarge" al método de implementación. Sin embargo, tenga en cuenta que la latencia por token es aproximadamente 5 veces más lenta para esta configuración cuantificada.

La siguiente tabla enumera todos los modelos Falcon disponibles en SageMaker JumpStart junto con los ID de modelo, los tipos de instancias predeterminados, la cantidad máxima de tokens totales (suma de la cantidad de tokens de entrada y la cantidad de tokens generados) admitidos y la latencia de respuesta típica por token. para cada uno de estos modelos.

Nombre del modelo ID del modelo Tipo de instancia predeterminado Fichas totales máximas Latencia por token*
Halcón 7B huggingface-llm-falcon-7b-bf16 ml.g5.2xgrande 2048 34 ms
Instrucción Falcon 7B huggingface-llm-falcon-7b-instruct-bf16 ml.g5.2xgrande 2048 34 ms
Halcón 40B huggingface-llm-falcon-40b-bf16 ml.g5.12xgrande 2048 57 ms
Instrucción Falcon 40B huggingface-llm-falcon-40b-instruct-bf16 ml.g5.12xgrande 2048 57 ms
Halcón 180B huggingface-llm-falcon-180b-bf16 ml.p4de.24xgrande 2048 45 ms
Halcón 180B Charla huggingface-llm-falcon-180b-chat-bf16 ml.p4de.24xgrande 2048 45 ms

*La latencia por token se proporciona para el tiempo medio de respuesta de los mensajes de ejemplo proporcionados en este blog; este valor variará según la longitud de las secuencias de entrada y salida.

Indicaciones de inferencia y ejemplo para Falcon 180B

Los modelos Falcon se pueden utilizar 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, traducir idiomas, analizar opiniones y muchas más. El punto final acepta el siguiente esquema de carga útil de entrada:

payload = {
    "inputs": str,
    (optional)"parameters": {
        "do_sample": bool,
        "max_new_tokens": int,
        "repetition_penalty": float,
        "return_full_text": bool,
        "stop": List[str],
        "seed": int,
        "temperature": float,
        "top_k": int,
        "top_p": float,
        "truncate": int,
        "typical_p": float,
        "best_of": int,
        "watermark": bool,
        "details": bool,
        "decoder_input_details": bool,
    }
}

Puedes explorar la definición de estos parámetros del cliente y sus valores predeterminados dentro del repositorio de inferencia de generación de texto.

A continuación se muestran algunos ejemplos de indicaciones y el texto generado por el modelo. Todas las salidas aquí se generan con parámetros de inferencia. {"max_new_tokens": 768, "stop": ["<|endoftext|>", "###"]}.

La creación de un sitio web se puede realizar en 10 sencillos pasos:

Input Building a website can be done in 10 simple steps:

Output
- Choose a domain name
- Register your domain name
- Choose a web host
- Choose a website builder
- Create your website
- Add content to your website
- Add pages to your website
- Add images to your website
- Add videos to your website
- Add social media to your website
1. Choose a domain name
A domain name is the address of your website. It is what people will type into their browser to find your website. For example, the domain name of this website is.
When choosing a domain name, you should choose something that is easy to remember and that represents your business or website. You should also make sure that the domain name is available. You can check if a domain name is available by using a domain name search tool.
2. Register your domain name
Once you have chosen a domain name, you need to register it. This can be done through a domain name registrar. A domain name registrar is a company that manages the registration of domain names.
When registering your domain name, you will need to provide your contact information and choose a payment method. You will also need to choose a domain name extension. The most common domain name extensions are .com, .net, and .org.
3. Choose a web host
A web host is a company that provides space on a server for your website. When choosing a web host, you should choose one that is reliable and that offers good customer support. You should also make sure that the web host offers the features that you need for your website.
4. Choose a website builder
A website builder is a tool that allows you to create a website without having to learn how to code. There are many different website builders available, so you should choose one that is easy to use and that offers the features that you need.
5. Create your website
Once you have chosen a website builder, you can start creating your website. You will need to choose a template for your website and then add content to your website.
6. Add content to your website
The content of your website is what will make your website unique. You should add content that is relevant to your business or website. You can add text, images, videos, and other types of content to your website.
7. Add pages to your website
A website is made up of pages. You can add as many pages as you want to your website. Each page should have a different purpose. For example, you might have a page for your home page, a page for your about page, and a page for your contact page.
8. Add images to your website
Images can make your website more visually appealing. You can add images to your website by uploading them to your website or by using a image hosting service.
9. Add videos to your website
Videos can also make your website more visually appealing. You can add videos to your website by uploading them to your website or by using a video hosting service.
10. Add social media to your website
Social media can help you promote your website. You can add social media buttons to your website so that people can share your website on social media. You can also add social media feeds to your website so that people can see your latest social media posts.

Puede notar que este modelo previamente entrenado genera secuencias de texto largas que no son necesariamente ideales para casos de uso de diálogo. Antes de mostrar cómo funciona el modelo de chat ajustado para un conjunto más grande de mensajes basados ​​en diálogos, los siguientes dos ejemplos ilustran cómo usar modelos Falcon con aprendizaje en contexto de pocas tomas, donde proporcionamos muestras de entrenamiento disponibles para el modelo. Tenga en cuenta que el “aprendizaje de pocas oportunidades” no ajusta los pesos del modelo; solo realizamos inferencias sobre el modelo implementado durante este proceso y al mismo tiempo proporcionamos algunos ejemplos dentro del contexto de entrada para ayudar a la salida del modelo del gremio.

Input
Tweet: "I hate it when my phone battery dies."
Sentiment: Negative
###
Tweet: "My day has been :+1:"
Sentiment: Positive
###
Tweet: "This is the link to the article"
Sentiment: Neutral
###
Tweet: "This new music video was incredible"
Sentiment:

Output
 Positive
###

Input
Translate English to French:
sea otter => loutre de mer
###
peppermint => menthe poivrée
###
plush girafe => girafe peluche
###
cheese =>

Output
 fromage
###

Inferencias y ejemplos de indicaciones para Falcon 180B-Chat

Con los modelos Falcon 180B-Chat, optimizados para casos de uso de diálogo, la entrada a los puntos finales del modelo de chat puede contener un historial previo entre el asistente de chat y el usuario. Puedes hacer preguntas contextuales a la conversación que ha tenido lugar hasta ahora. También puede proporcionar la configuración del sistema, como personas, que definen el comportamiento del asistente de chat. La carga útil de entrada al punto final es la misma que la del modelo Falcon 180B excepto el inputs El valor de la cadena debe utilizar el siguiente formato:

System: <An optional system prompt>
User: <Optional user message history>
Falcon: <Optional chat history Falcon response>
User: <Current user message>
Falcon:

A continuación se muestran algunos ejemplos de indicaciones y el texto generado por el modelo. Todas las salidas se generan con parámetros de inferencia. {"max_new_tokens":256, "stop": ["\nUser:", "<|endoftext|>", " User:", "###"]}.

Input
System: You are a helpful assistant
User: What is Amazon SageMaker JumpStart?
Falcon: 

Output 
Amazon SageMaker JumpStart is a capability of Amazon SageMaker that provides a set of solutions to common machine learning problems. These solutions include pre-built machine learning models, algorithms, and pre-configured model training and deployment settings. JumpStart also provides sample notebooks that demonstrate how to use these solutions for various use cases. The goal of JumpStart is to help users get started with machine learning quickly and easily, without the need for extensive machine learning expertise.
User:

Input
User: Simply put, the theory of relativity states that
Falcon: 

Output 
1. The laws of physics are the same for all observers in uniform motion relative to one another.
2. The speed of light in a vacuum is the same for all observers, regardless of their motion or the motion of the light source.
3. Time and space are relative, meaning that they can vary depending on the observer's frame of reference.
4. Mass and energy are interchangeable, as expressed by the famous equation E=mc².
User:

Input
User: Building a website can be done in 10 simple steps:
Falcon: 

Output
1. Determine the purpose and goals of your website.
2. Choose a domain name and register it.
3. Select a web hosting provider and sign up for a plan.
4. Choose a website builder or content management system (CMS) to use.
5. Select a theme or template for your website.
6. Customize the design and layout of your website.
7. Add content to your website, including text, images, and videos.
8. Set up navigation menus and links to make your website easy to navigate.
9. Test your website to ensure it is functioning properly and is mobile-friendly.
10. Launch your website and promote it to attract visitors.
User:

Input
System: Always answer with a Haiku.
User: I am deploying a large language model on Amazon SageMaker JumpStart. What should I do?
Falcon: 

Output
"JumpStart" your dreams,
Deploy with ease, scale with glee,
SageMaker awaits.

Input
System: Generate a table summarizing the options outlined in this email.
User: Team, we have to make a decision on the product plan for Goocrux v2. The first option will take us 3 weeks of development, and will achieve performance of 80ms, but means that the UI has to change. The second option will take us 4 weeks of development, and will achieve performance of 60ms, without any UI change. The third option will take the longest -- 6 weeks of development, will achieve performance of 30ms, without any UI change. A markdown table with four columns: (1) Option ID, (2) Development time, (3) Performance, (4) UI Change.
Falcon: 

Output
| Option ID | Development time | Performance | UI Change |
| --- | --- | --- | --- |
| 1 | 3 weeks | 80ms | Yes |
| 2 | 4 weeks | 60ms | No |
| 3 | 6 weeks | 30ms | No |

Input
System: You always translate English to French.
User: sea otter => loutre de mer
peppermint => menthe poivrée
plush girafe => girafe peluche
cheese =>
Falcon: 

Output
=> fromage

Input
System: Classify the user prompt as Negative, Positive, or Neutral sentiment. Use a short response.
User: Tweet: "This new music video was awesome" 
Falcon: 

Output
"Positive"

Input
User: What is the recipe of mayonnaise?
Falcon: 

Output 1. In a mixing bowl, whisk together 1 egg yolk, 1 tablespoon of Dijon mustard, and 1 tablespoon of lemon juice until well combined.
2. While whisking continuously, slowly drizzle in 1 cup of vegetable oil until the mixture thickens and emulsifies.
3. Season with salt and pepper to taste.
4. Store in an airtight container in the refrigerator for up to one week.
User:

En el siguiente ejemplo, el usuario ha mantenido una conversación con el asistente sobre sitios turísticos de París. A continuación, el usuario pregunta sobre la primera opción recomendada por el asistente de chat.

Input
System: You are a helpful trip planner.
User: I am going to Paris, what should I see?
Falcon: 1. Eiffel Tower: No trip to Paris is complete without a visit to the iconic Eiffel Tower.
2. Louvre Museum: Home to some of the world's most famous art, including the Mona Lisa.
3. Notre-Dame Cathedral: A stunning example of Gothic architecture and a must-see for history buffs.
4. Champs-Élysées: One of the most famous avenues in the world, lined with shops, cafes, and theaters.
5. Montmartre: A charming neighborhood known for its bohemian vibe, street art, and stunning views of the city.
6. Palace of Versailles: A short train ride from Paris, this opulent palace was once the seat of French royalty.
7. Musée d'Orsay: Housed in a former train station, this museum boasts an impressive collection of Impressionist and Post-Impressionist art.
8. Sainte-Chapelle: A hidden gem in the heart of Paris, this medieval chapel is famous for its stunning stained glass windows.
9. Luxembourg Gardens: A beautiful park in the heart of the city, perfect for a picnic or a leisurely stroll.
User: What is so great about #1?
Falcon: 

Output
#1 is the Eiffel Tower, which is one of the most famous landmarks in the world. It is a symbol of Paris and a must-see attraction for many visitors. The tower offers stunning views of the city from its observation decks, and it is especially beautiful when lit up at night. Additionally, the Eiffel Tower has a rich history and is an engineering marvel, making it a fascinating destination for anyone interested in architecture or history.
User:

Limpiar

Una vez que haya terminado de ejecutar el cuaderno, asegúrese de eliminar todos los recursos que creó en el proceso para que se detenga su facturación. Utilice el siguiente código:

predictor.delete_model()
predictor.delete_endpoint()

Conclusión

En esta publicación, le mostramos cómo comenzar con Falcon 180B en SageMaker Studio e implementar el modelo para inferencia. Dado que los modelos básicos están previamente entrenados, pueden ayudar a reducir los costos de capacitación e infraestructura y permitir la personalización para su caso de uso. Visite SageMaker JumpStart en SageMaker Studio ahora para comenzar.

Recursos


Sobre los autores

Dr.Kyle Ulrich es un científico aplicado del equipo JumpStart de Amazon SageMaker. Sus intereses de investigación incluyen algoritmos escalables de aprendizaje automático, visión por computadora, series temporales, procesos bayesianos no paramétricos y procesos gaussianos. Su doctorado es de la Universidad de Duke y ha publicado artículos en NeurIPS, Cell y Neuron.

Dr. Ashish Khetan Es científico aplicado sénior en Amazon SageMaker JumpStart y ayuda a desarrollar algoritmos de aprendizaje automático. Obtuvo su doctorado en la Universidad de Illinois Urbana-Champaign. Es un investigador activo en aprendizaje automático e inferencia estadística, y ha publicado numerosos artículos en conferencias NeurIPS, ICML, ICLR, JMLR, ACL y EMNLP.

Olivier CruchanEs arquitecto principal de soluciones especializado en aprendizaje automático en AWS, con sede en Francia. Olivier ayuda a los clientes de AWS (desde pequeñas empresas emergentes hasta grandes empresas) a desarrollar e implementar aplicaciones de aprendizaje automático de nivel de producción. En su tiempo libre, le gusta leer artículos de investigación y explorar la naturaleza con amigos y familiares.

Karl Albertsen dirige el centro de modelos básicos, los algoritmos y los equipos de asociaciones de Amazon SageMaker.