Hoy, nos complace anunciar que los modelos de base Mistral 7B, desarrollados por Mistral AI, están disponibles para los clientes a través de Inicio rápido de Amazon SageMaker para implementar con un clic para ejecutar la inferencia. Con 7 mil millones de parámetros, Mistral 7B se puede personalizar fácilmente e implementar rápidamente. Puede probar este modelo con SageMaker JumpStart, un centro de aprendizaje automático (ML) que brinda acceso a algoritmos y modelos para que pueda comenzar rápidamente con ML. En esta publicación, explicamos cómo descubrir e implementar el modelo Mistral 7B.
¿Qué es Mistral 7B?
Mistral 7B es un modelo básico desarrollado por Mistral AI, que admite capacidades de generación de código y texto en inglés. Admite una variedad de casos de uso, como resumen de texto, clasificación, finalización de texto y finalización de código. Para demostrar la fácil personalización del modelo, Mistral AI también lanzó un modelo Mistral 7B Instruct para casos de uso de chat, ajustado utilizando una variedad de conjuntos de datos de conversación disponibles públicamente.
Mistral 7B es un modelo transformador y utiliza atención de consultas agrupadas y atención de ventana deslizante para lograr una inferencia más rápida (baja latencia) y manejar secuencias más largas. La atención de consultas grupales es una arquitectura que combina la atención de múltiples consultas y de múltiples cabezas para lograr una calidad de salida cercana a la atención de múltiples cabezas y una velocidad comparable a la atención de múltiples consultas. La atención de ventana deslizante utiliza las capas apiladas de un transformador para atender en el pasado más allá del tamaño de la ventana para aumentar la longitud del contexto. Mistral 7B tiene una longitud de contexto de 8000 tokens, demuestra baja latencia y alto rendimiento, y tiene un rendimiento sólido en comparación con alternativas de modelos más grandes, lo que proporciona bajos requisitos de memoria en un tamaño de modelo 7B. El modelo está disponible bajo el permiso. licencia apache 2.0para uso sin restricciones.
¿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 sitios dedicados. Amazon SageMaker instancias dentro de un entorno aislado de red y personalice modelos utilizando SageMaker para el entrenamiento e implementación de modelos.
Ahora puede descubrir e implementar Mistral 7B 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.
Descubre modelos
Puede acceder a los modelos básicos de Mistral 7B 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 Mistral 7B en el Modelos básicos: generación de texto carrusel.
También puede encontrar otras variantes de modelos eligiendo Explora todos los modelos de texto o buscando “Mistral”.
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
La implementación comienza cuando usted elija Desplegar. Alternativamente, puede implementar a través del cuaderno de ejemplo que aparece cuando elige 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 una computadora portátil, comenzamos seleccionando el modelo Mistral 7B, especificado por el model_id. Puede implementar cualquiera de los modelos seleccionados en SageMaker con el siguiente código:
Esto implementa el modelo en SageMaker con configuraciones predeterminadas, incluido el tipo de instancia predeterminado (ml.g5.2xlarge) y las configuraciones de VPC predeterminadas. Puede cambiar estas configuraciones especificando valores no predeterminados en JumpStartModelo. Una vez implementado, puede ejecutar inferencia contra el punto final implementado a través del predictor de SageMaker:
Optimización de la configuración de implementación
Los modelos Mistral utilizan el servicio de modelos de inferencia de generación de texto (TGI versión 1.1). Al implementar modelos con el contenedor de aprendizaje profundo (DLC) TGI, puede configurar una variedad de argumentos del lanzador a través de variables de entorno al implementar su punto final. Para admitir la longitud de contexto de 8000 tokens de los modelos Mistral 7B, SageMaker JumpStart ha configurado algunos de estos parámetros de forma predeterminada: configuramos MAX_INPUT_LENGTH y MAX_TOTAL_TOKENS a 8191 y 8192, respectivamente. Puede ver la lista completa inspeccionando su objeto modelo:
De forma predeterminada, SageMaker JumpStart no bloquea a los usuarios simultáneos a través de la variable de entorno. MAX_CONCURRENT_REQUESTS menor que el valor predeterminado de TGI de 128. La razón es que algunos usuarios pueden tener cargas de trabajo típicas con longitudes de contexto de carga útil pequeñas y desean una alta simultaneidad. Tenga en cuenta que el DLC SageMaker TGI admite varios usuarios simultáneos mediante lotes continuos. Al implementar su punto final para su aplicación, podría considerar si debe fijar MAX_TOTAL_TOKENS o MAX_CONCURRENT_REQUESTS antes de la implementación para proporcionar el mejor rendimiento para su carga de trabajo:
Aquí, mostramos cómo el rendimiento del modelo puede diferir para su carga de trabajo de endpoint típica. En las siguientes tablas, puede observar que las consultas de tamaño pequeño (128 palabras de entrada y 128 tokens de salida) tienen bastante rendimiento con una gran cantidad de usuarios simultáneos, alcanzando un rendimiento de tokens del orden de 1000 tokens por segundo. Sin embargo, a medida que la cantidad de palabras de entrada aumenta a 512 palabras de entrada, el punto final satura su capacidad de procesamiento por lotes (la cantidad de solicitudes simultáneas que se permite procesar simultáneamente), lo que genera una meseta en el rendimiento y degradaciones significativas de la latencia que comienzan alrededor de 16 usuarios simultáneos. Finalmente, cuando varios usuarios simultáneos consultan el punto final con contextos de entrada grandes (por ejemplo, 6400 palabras) simultáneamente, esta meseta de rendimiento se produce relativamente rápido, hasta el punto en que su cuenta de SageMaker comenzará a encontrar límites de tiempo de espera de respuesta de 60 segundos para sus solicitudes sobrecargadas. .
| . | rendimiento (tokens/s) | ||||||||||
| usuarios concurrentes | 1 | 2 | 4 | 8 | dieciséis | 32 | 64 | 128 | |||
| modelo | tipo de instancia | palabras de entrada | fichas de salida | . | |||||||
| mistral-7b-instruir | ml.g5.2xgrande | 128 | 128 | 30 | 54 | 89 | 166 | 287 | 499 | 793 | 1030 |
| 512 | 128 | 29 | 50 | 80 | 140 | 210 | 315 | 383 | 458 | ||
| 6400 | 128 | 17 | 25 | 30 | 35 | — | — | — | — | ||
| . | Latencia p50 (ms/token) | ||||||||||
| usuarios concurrentes | 1 | 2 | 4 | 8 | dieciséis | 32 | 64 | 128 | |||
| modelo | tipo de instancia | palabras de entrada | fichas de salida | . | |||||||
| mistral-7b-instruir | ml.g5.2xgrande | 128 | 128 | 32 | 33 | 34 | 36 | 41 | 46 | 59 | 88 |
| 512 | 128 | 34 | 36 | 39 | 43 | 54 | 71 | 112 | 213 | ||
| 6400 | 128 | 57 | 71 | 98 | 154 | — | — | — | — | ||
Indicaciones de inferencia y ejemplo
Mistral 7B
Puede interactuar con un modelo Mistral 7B base como cualquier modelo de generación de texto estándar, donde el modelo procesa una secuencia de entrada y genera las siguientes palabras predichas en la secuencia. El siguiente es un ejemplo simple con aprendizaje de múltiples disparos, donde el modelo recibe varios ejemplos y la respuesta del ejemplo final se genera con conocimiento contextual de estos ejemplos anteriores:
Instrucción Mistral 7B
La versión adaptada a las instrucciones de Mistral acepta instrucciones formateadas en las que los roles de conversación deben comenzar con un mensaje de usuario y alternar entre usuario y asistente. Un mensaje de usuario simple puede verse como el siguiente:
Un mensaje de varios giros sería similar al siguiente:
Este patrón se repite durante todos los turnos que haya en la conversación.
En las siguientes secciones, exploramos algunos ejemplos utilizando el modelo Mistral 7B Instruct.
Recuperación de conocimientos
El siguiente es un ejemplo de recuperación de conocimientos:
Respuesta a preguntas de contexto amplio
Para demostrar cómo utilizar este modelo para admitir contextos de entrada de gran longitud, el siguiente ejemplo incorpora un pasaje titulado “Ratas” de Robert Sullivan (referencia), de la prueba de comprensión de lectura de artes del lenguaje inglés de grado 10 del MCAS a la instrucción de indicaciones de entrada y le hace al modelo una pregunta dirigida sobre el texto:
Matemáticas y razonamiento
Los modelos Mistral también reportan fortalezas en la precisión matemática. Mistral puede proporcionar comprensión como la siguiente lógica matemática:
Codificación
El siguiente es un ejemplo de un mensaje de codificación:
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:
Conclusión
En esta publicación, le mostramos cómo comenzar con Mistral 7B 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. Visita Inicio rápido de Amazon SageMaker ahora para empezar.
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.
Vivek Singh es gerente de producto de Amazon SageMaker JumpStart. Se centra en permitir que los clientes incorporen SageMaker JumpStart para simplificar y acelerar su viaje de aprendizaje automático para crear aplicaciones de IA generativa.
Roy Allela es un arquitecto senior de soluciones especializado en IA/ML en AWS con sede en Munich, Alemania. Roy ayuda a los clientes de AWS (desde pequeñas empresas emergentes hasta grandes empresas) a capacitar e implementar modelos de lenguaje grandes de manera eficiente en AWS. A Roy le apasionan los problemas de optimización computacional y la mejora del rendimiento de las cargas de trabajo de IA.