Ajuste e implemente Mistral 7B con Amazon SageMaker JumpStart | Servicios web de Amazon

Ajuste e implemente Mistral 7B con Amazon SageMaker JumpStart | Servicios web de Amazon

Hoy, nos complace anunciar la capacidad de ajustar el modelo Mistral 7B usando JumpStart de Amazon SageMaker. Ahora puede ajustar e implementar modelos de generación de texto Mistral en SageMaker JumpStart usando el Estudio Amazon SageMaker UI con unos pocos clics o usando el SDK de SageMaker Python.

Los modelos básicos funcionan muy bien con tareas generativas, desde redactar textos y resúmenes, responder preguntas hasta producir imágenes y videos. A pesar de las grandes capacidades de generalización de estos modelos, a menudo hay casos de uso que tienen datos de dominio muy específicos (como atención médica o servicios financieros), y es posible que estos modelos no puedan proporcionar buenos resultados para estos casos de uso. Esto resulta en la necesidad de seguir ajustando estos modelos de IA generativa sobre los datos específicos del caso de uso y del dominio.

En esta publicación, demostramos cómo ajustar el modelo Mistral 7B usando SageMaker JumpStart.

¿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 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 conversaciones 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 agrupadas 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. El método de atención de ventana deslizante utiliza los múltiples niveles de un modelo transformador para centrarse en la información que llegó antes, lo que ayuda al modelo a comprender un contexto más amplio. . Mistral 7B tiene una longitud de contexto de 8,000 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 la licencia permisiva Apache 2.0, para su uso sin restricciones.

Puede ajustar los modelos utilizando la interfaz de usuario de SageMaker Studio o el SDK de SageMaker Python. Discutimos ambos métodos en esta publicación.

Ajuste a través de la interfaz de usuario de SageMaker Studio

En SageMaker Studio, puede acceder al modelo Mistral a través de SageMaker JumpStart en Modelos, cuadernos y soluciones., como se muestra en la siguiente captura de pantalla.

Si no ve los modelos de Mistral, actualice su versión de SageMaker Studio apagándolo y reiniciándolo. Para obtener más información sobre las actualizaciones de versión, consulte Cierre y actualice las aplicaciones de Studio.

Ajuste e implemente Mistral 7B con Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.

En la página del modelo, puede señalar el Servicio de almacenamiento simple de Amazon (Amazon S3) depósito que contiene los conjuntos de datos de entrenamiento y validación para realizar ajustes. Además, puede configurar la configuración de implementación, los hiperparámetros y la configuración de seguridad para realizar ajustes. Luego puedes elegir Entrenar para iniciar el trabajo de capacitación en una instancia de SageMaker ML.

Ajuste e implemente Mistral 7B con Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.

Implementar el modelo

Una vez que el modelo esté ajustado, puede implementarlo usando la página del modelo en SageMaker JumpStart. La opción para implementar el modelo ajustado aparecerá cuando se complete el ajuste, como se muestra en la siguiente captura de pantalla.

Ajuste e implemente Mistral 7B con Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.

Ajuste a través del SDK de SageMaker Python

También puede ajustar los modelos Mistral utilizando el SDK de SageMaker Python. El cuaderno completo está disponible en GitHub. En esta sección, proporcionamos ejemplos de dos tipos de ajuste fino.

Ajuste de instrucciones

El ajuste de instrucciones es una técnica que implica ajustar un modelo de lenguaje en una colección de tareas de procesamiento del lenguaje natural (PLN) mediante instrucciones. En esta técnica, el modelo está entrenado para realizar tareas siguiendo instrucciones textuales en lugar de conjuntos de datos específicos para cada tarea. El modelo está ajustado con un conjunto de ejemplos de entrada y salida para cada tarea, lo que permite que el modelo se generalice a nuevas tareas en las que no ha sido entrenado explícitamente, siempre y cuando se proporcionen indicaciones para las tareas. El ajuste de instrucciones ayuda a mejorar la precisión y eficacia de los modelos y es útil en situaciones en las que no hay grandes conjuntos de datos disponibles para tareas específicas.

Repasemos el código de ajuste proporcionado en el ejemplo. cuaderno con el SDK de Python de SageMaker.

Usamos un subconjunto de conjunto de datos de plataforma rodante en un formato de ajuste de instrucciones y especifique el template.json archivo que describe los formatos de entrada y salida. Los datos de entrenamiento deben tener el formato de líneas JSON (.jsonl), donde cada línea es un diccionario que representa una única muestra de datos. En este caso le ponemos el nombre train.jsonl.

El siguiente fragmento es un ejemplo de train.jsonl. Las llaves instruction, contexty response en cada muestra debe haber entradas correspondientes {instruction}, {context}, {response} existentes template.json.

{ "instruction": "What is a dispersive prism?", "context": "In optics, a dispersive prism is an optical prism that is used to disperse light, that is, to separate light into its spectral components (the colors of the rainbow). Different wavelengths (colors) of light will be deflected by the prism at different angles. This is a result of the prism material's index of refraction varying with wavelength (dispersion). Generally, longer wavelengths (red) undergo a smaller deviation than shorter wavelengths (blue). The dispersion of white light into colors by a prism led Sir Isaac Newton to conclude that white light consisted of a mixture of different colors.", "response": "A dispersive prism is an optical prism that disperses the light's different wavelengths at different angles. When white light is shined through a dispersive prism it will separate into the different colors of the rainbow."
}

La siguiente es una muestra de template.json:

{ "prompt": "Below is an instruction that describes a task, paired with an input that provides further context. " "Write a response that appropriately completes the request.nn" "### Instruction:n{instruction}nn### Input:n{context}nn", "completion": " {response}",
}

Después de cargar la plantilla de solicitud y los datos de entrenamiento en un depósito de S3, puede configurar los hiperparámetros.

my_hyperparameters["epoch"] = "1"
my_hyperparameters["per_device_train_batch_size"] = "2"
my_hyperparameters["gradient_accumulation_steps"] = "2"
my_hyperparameters["instruction_tuned"] = "True"
print(my_hyperparameters)

Luego puede iniciar el proceso de ajuste e implementar el modelo en un punto final de inferencia. En el siguiente código, utilizamos una instancia ml.g5.12xlarge:

from sagemaker.jumpstart.estimator import JumpStartEstimator instruction_tuned_estimator = JumpStartEstimator( model_id=model_id, hyperparameters=my_hyperparameters, instance_type="ml.g5.12xlarge",
)
instruction_tuned_estimator.fit({"train": train_data_location}, logs=True) instruction_tuned_predictor = instruction_tuned_estimator.deploy()

Ajuste de la adaptación del dominio

El ajuste de la adaptación del dominio es un proceso que perfecciona un LLM previamente capacitado para que se adapte mejor a un dominio o tarea específica. Al utilizar un conjunto de datos más pequeño y específico de un dominio, el LLM se puede ajustar para comprender y generar contenido que sea más preciso, relevante y esclarecedor para ese dominio específico, sin dejar de conservar el vasto conocimiento adquirido durante su capacitación original.

El modelo Mistral se puede ajustar en cualquier conjunto de datos de dominio específico. Una vez ajustado, se espera que genere texto de dominio específico y resuelva varias tareas de PNL en ese dominio específico. Para el conjunto de datos de entrenamiento, proporcione un directorio de entrenamiento y un directorio de validación opcional, cada uno de los cuales contenga un único archivo CSV, JSON o TXT. Para formatos CSV y JSON, utilice datos del text columna o la primera columna si text no está presente. Asegúrese de que solo exista un archivo en cada directorio. Por ejemplo, los datos de entrada pueden ser presentaciones ante la SEC de Amazon como un archivo de texto:

This report includes estimates, projections, statements relating to our
business plans, objectives, and expected operating results that are “forward-
looking statements” within the meaning of the Private Securities Litigation
Reform Act of 1995, Section 27A of the Securities Act of 1933, and Section 21E
of the Securities Exchange Act of 1934. Forward-looking statements may appear
throughout this report, including the following sections: “Business” (Part I,
Item 1 of this Form 10-K), “Risk Factors” (Part I, Item 1A of this Form 10-K),
and “Management’s Discussion and Analysis of Financial Condition and Results
of Operations” (Part II, Item 7 of this Form 10-K). These forward-looking
statements generally are identified by the words “believe,” “project,”
“expect,” “anticipate,” “estimate,” “intend,” “strategy,” “future,”
“opportunity,” “plan,” “may,” “should,” “will,” “would,” “will be,” “will
continue,” “will likely result,” and similar expressions.

Puede iniciar el ajuste de la adaptación del dominio especificando el hiperparámetro "instruction_tuned" como "False“. El resto de los pasos son similares a los pasos de ajuste fino de las instrucciones.

Nosotros fijamos max_input_length ser 2048 en g5.12xlarge. Puede utilizar una longitud de entrada mayor en un tipo de instancia más grande. Para más detalles, consulte el cuaderno de ejemplo.

Ejemplo de inferencia con y sin ajuste fino

La siguiente tabla contiene los resultados del modelo Mistral 7B ajustado con los documentos de presentación de Amazon ante la SEC de 2021 a 2022. Comparamos el resultado antes y después del ajuste fino.

Solicitud de entrada Salida antes del ajuste fino Salida después del ajuste fino parámetros
Este informe del Formulario 10-K muestra que

La empresa existe desde hace 10 años y cuenta con un total de 10 empleados. La empresa cuenta con un total de 10 empleados y se dedica a prestar servicios al público. La empresa cuenta con un total de 10 empleados y se dedica a prestar servicios al público.

La empresa cuenta con un total de 10 empleados y se dedica a prestar servicios al público. La empresa cuenta con un total de 10 empleados y se dedica a prestar servicios al público. La empresa cuenta con un total de 10 empleados y se dedica a prestar servicios al público. La empresa tiene un total de 10 empleados y se dedica a proporcionar

tuvimos ventas netas de $1.2 mil millones, $1.5 mil millones y $1.8 mil millones en 2004, 2003 y 2002. Estas cantidades incluyen las ventas de nuestros sitios web internacionales. Las ventas netas de nuestros sitios web internacionales fueron de $323 millones, $242 millones y $150 millones en 2004, 2003 y 2002. Las ventas netas de nuestros sitios web internacionales representaron el 27%, el 16% y el 8% de las ventas netas en 2004, 2003 y 2002. . “temperatura”: 0.2,
“max_new_tokens”: 150,
Atendemos a los consumidores a través de

nuestra red minorista de 1,700 tiendas, que incluye 1,200 tiendas en Estados Unidos, 400 tiendas en Canadá y 100 tiendas en México. También atendemos a los consumidores a través de nuestros sitios web de comercio electrónico.

## ¿Cuál es la tienda de mejoras para el hogar más grande?

The Home Depot es el minorista de mejoras para el hogar más grande de Estados Unidos.

## ¿Cuál es la tienda de mejoras para el hogar más grande del mundo?

La tienda de mejoras para el hogar más grande del mundo es Home Depot.

## ¿Cuál es la tienda de mejoras para el hogar más grande del mundo?

nuestras tiendas físicas y en línea y nos centramos en la selección, el precio y la conveniencia. Diseñamos nuestras tiendas para permitir que nosotros y terceros vendamos cientos de millones de productos únicos en docenas de categorías de productos. Los clientes acceden a nuestras ofertas a través de nuestros sitios web, aplicaciones móviles, Alexa, dispositivos, streaming y visitando físicamente nuestras tiendas. También fabricamos y vendemos dispositivos electrónicos, incluidos Kindle, tableta Fire, Fire TV, Echo y Ring, y desarrollamos y producimos contenido multimedia. Buscamos ofrecer a nuestros clientes precios bajos, entrega rápida y gratuita, funcionalidad fácil de usar y servicio al cliente oportuno. Además, ofrecemos servicios de suscripción como Amazon Prime, un
Nuestra vision es

ser el proveedor líder de servicios de atención médica accesibles, asequibles y de calidad en las comunidades a las que servimos.

Nuestra misión es brindar servicios de atención médica accesibles, asequibles y de calidad a las comunidades a las que servimos.

Nuestros valores son:

– Integridad: Actuamos con honestidad e integridad en todos nuestros tratos.
– Respeto: Tratamos a todos con respeto y dignidad.
– Excelencia: Nos esforzamos por alcanzar la excelencia en todo lo que hacemos.
– Compasión: Cuidamos a nuestros pacientes y a los demás con compasión.
– Trabajo en equipo: Trabajamos juntos como un equipo para lograr nuestros objetivos.

Nuestro compromiso con nuestros pacientes es brindar servicios de atención médica de calidad, asequibles y accesibles.

ser la empresa más centrada en el cliente del planeta. Nos guiamos por cuatro principios: obsesión por el cliente en lugar de enfoque en la competencia, pasión por la invención, compromiso con la excelencia operativa y pensamiento a largo plazo. En cada uno de nuestros segmentos, atendemos a nuestros principales conjuntos de clientes, compuestos por consumidores, vendedores, desarrolladores, empresas y creadores de contenido. Además, brindamos servicios, como publicidad. Hemos organizado nuestras operaciones en tres segmentos: Norteamérica, Internacional y AWS. Estos segmentos reflejan la forma en que la Compañía evalúa su desempeño comercial y administra sus operaciones. La información sobre nuestras ventas netas está contenida en el Punto 8 de la Parte II, “Estados Financieros

Como puede ver, el modelo ajustado proporciona información más específica relacionada con Amazon en comparación con el modelo genérico previamente entrenado. Esto se debe a que el ajuste adapta el modelo para comprender los matices, patrones y detalles del conjunto de datos proporcionado. Al utilizar un modelo previamente entrenado y adaptarlo con ajustes, nos aseguramos de que obtenga lo mejor de ambos mundos: el amplio conocimiento del modelo previamente entrenado y la precisión especializada para su conjunto de datos único. Es posible que una talla única no sirva para todos en el mundo del aprendizaje automático, ¡y el ajuste fino es la solución hecha a medida que necesita!

Conclusión

En esta publicación, analizamos el ajuste del modelo Mistral 7B utilizando SageMaker JumpStart. Mostramos cómo puede utilizar la consola SageMaker JumpStart en SageMaker Studio o el SDK de SageMaker Python para ajustar e implementar estos modelos. Como siguiente paso, puede intentar ajustar estos modelos en su propio conjunto de datos utilizando el código proporcionado en el repositorio de GitHub para probar y comparar los resultados para sus casos de uso.


Acerca de los autores

XinHuangXinHuang es un científico senior aplicado para los algoritmos integrados de Amazon SageMaker JumpStart y Amazon SageMaker. Se centra en el desarrollo de algoritmos escalables de aprendizaje automático. Sus intereses de investigación se encuentran en el área del procesamiento del lenguaje natural, el aprendizaje profundo explicable en datos tabulares y el análisis sólido de la agrupación de espacio-tiempo no paramétrica. Ha publicado muchos artículos en conferencias ACL, ICDM, KDD y Royal Statistical Society: Serie A.

Ajuste e implemente Mistral 7B con Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.Vivek Gangasani es un arquitecto de soluciones de inicio de IA/ML para nuevas empresas de IA generativa en AWS. Ayuda a las nuevas empresas emergentes de GenAI a crear soluciones innovadoras utilizando los servicios de AWS y la computación acelerada. Actualmente, se centra en desarrollar estrategias para afinar y optimizar el rendimiento de inferencia de modelos de lenguaje grandes. En su tiempo libre, Vivek disfruta haciendo senderismo, viendo películas y probando diferentes platos.

Ajuste e implemente Mistral 7B con Amazon SageMaker JumpStart | Amazon Web Services PlatoBlockchain Inteligencia de datos. Búsqueda vertical. Ai.Dr. Ashish Khetan es científico senior aplicado con algoritmos integrados de Amazon SageMaker 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 muchos artículos en conferencias NeurIPS, ICML, ICLR, JMLR, ACL y EMNLP.

Sello de tiempo:

Mas de Aprendizaje automático de AWS