Imagine aprovechar el poder de los modelos de lenguaje avanzados para comprender y responder las consultas de sus clientes. Roca Amazónica, un servicio totalmente gestionado que proporciona acceso a dichos modelos, lo hace posible. El ajuste de modelos de lenguaje grandes (LLM) en datos de dominios específicos potencia tareas como responder preguntas sobre productos o generar contenido relevante.
En esta publicación, mostramos cómo Amazon Bedrock y Lienzo de Amazon SageMaker, una suite de IA sin código, permite a los usuarios empresariales sin conocimientos técnicos profundos ajustar e implementar LLM. Puede transformar la interacción con el cliente utilizando conjuntos de datos como preguntas y respuestas sobre productos con solo unos pocos clics usando Amazon Bedrock y Inicio rápido de Amazon SageMaker modelos.
Descripción general de la solución
El siguiente diagrama ilustra esta arquitectura.
En las siguientes secciones, le mostramos cómo ajustar un modelo preparando su conjunto de datos, creando un nuevo modelo, importando el conjunto de datos y seleccionando un modelo base. También demostramos cómo analizar y probar el modelo y luego implementarlo a través de Amazon Bedrock.
Requisitos previos
Los usuarios nuevos necesitan una cuenta de AWS y Gestión de acceso e identidad de AWS (IAM) con SageMaker, Amazon Bedrock y Servicio de almacenamiento simple de Amazon (Amazon S3) acceso.
Para seguir esta publicación, complete los pasos de requisitos previos para crear un dominio y habilitar el acceso a los modelos de Amazon Bedrock:
- Crear un dominio SageMaker.
- En la página de detalles del dominio, vea los perfiles de usuario.
- Elegir Lanzamiento por tu perfil, y elige Lienzo.
- Confirme que su rol de SageMaker IAM y sus roles de dominio tengan la permisos necesarios y relaciones de confianza.
- En la consola de Amazon Bedrock, elija Acceso al modelo en el panel de navegación.
- Elegir Administrar el acceso al modelo.
- Seleccionar Amazonas para habilitar el modelo Amazon Titan.
Prepare su conjunto de datos
Complete los siguientes pasos para preparar su conjunto de datos:
- Descarga lo siguiente Conjunto de datos CSV de pares de preguntas y respuestas.
- Confirme que su conjunto de datos no tenga problemas de formato.
- Copie los datos a una hoja nueva y elimine el original.
Crear un nuevo modelo
SageMaker Canvas permite el ajuste simultáneo de múltiples modelos, lo que le permite comparar y elegir el mejor de una tabla de clasificación después de realizar ajustes. Sin embargo, esta publicación se centra en Amazon Titan Text G1-Express LLM. Complete los siguientes pasos para crear su modelo:
- En el lienzo de SageMaker, elija Mis modelos en el panel de navegación.
- Elegir Nuevo modelo.
- Para Nombre del modelointroduzca un nombre (por ejemplo,
MyModel
). - Para tipo de problemaseleccionar Ajustar el modelo de base.
- Elegir Crear.
El siguiente paso es importar su conjunto de datos a SageMaker Canvas:
- Cree un conjunto de datos denominado QA-Pairs.
- Cargue el archivo CSV preparado o selecciónelo de un depósito de S3.
- Elija el conjunto de datos, luego elija Seleccionar conjunto de datos.
Seleccione un modelo de base
Después de cargar su conjunto de datos, seleccione un modelo básico y ajústelo con su conjunto de datos. Complete los siguientes pasos:
- Sobre el Afinar pestaña, en la Seleccionar modelos básicos menú¸ seleccionar Titán expreso.
- Para Seleccionar columna de entradaelegir pregunta.
- Para Seleccionar columna de salidaelegir respuesta.
- Elegir Afinar.
Espere de 2 a 5 horas para que SageMaker termine de ajustar sus modelos.
Analizar el modelo
Cuando se complete el ajuste, podrá ver las estadísticas sobre su nuevo modelo, que incluyen:
- Pérdida de entrenamiento – La penalización por cada error en la predicción de la siguiente palabra durante el entrenamiento. Los valores más bajos indican un mejor rendimiento.
- Perplejidad del entrenamiento – Una medida de la sorpresa del modelo al encontrar texto durante el entrenamiento. Una menor perplejidad sugiere una mayor confianza en el modelo.
- Pérdida de validación y perplejidad en la validación. – Similar a las métricas de entrenamiento, pero medida durante la etapa de validación.
Para obtener un informe detallado sobre el rendimiento de su modelo personalizado en varias dimensiones, como toxicidad y precisión, elija Generar informe de evaluación. Luego seleccione Descargar informe.
Canvas ofrece un cuaderno Python Jupyter que detalla su trabajo de ajuste, aliviando las preocupaciones sobre la dependencia del proveedor asociada con herramientas sin código y permitiendo compartir detalles con equipos de ciencia de datos para una mayor validación e implementación.
Si seleccionó varios modelos de base para crear modelos personalizados a partir de su conjunto de datos, consulte la Tabla de clasificación modelo compararlos en dimensiones como la pérdida y la perplejidad.
Prueba los modelos
Ahora tiene acceso a modelos personalizados que se pueden probar en SageMaker Canvas. Complete los siguientes pasos para probar los modelos:
- Elegir Prueba en modelos listos para usar y espere entre 15 y 30 minutos para que se implemente su punto final de prueba.
Este punto final de prueba solo permanecerá activo durante 2 horas para evitar costos no deseados.
Cuando se complete la implementación, será redirigido al área de juegos de SageMaker Canvas, con su modelo preseleccionado.
- Elegir Comparar y seleccione el modelo de base utilizado para su modelo personalizado.
- Ingrese una frase directamente desde su conjunto de datos de entrenamiento, para asegurarse de que el modelo personalizado al menos responda mejor a esa pregunta.
Para este ejemplo, ingresamos la pregunta, “Who developed the lie-detecting algorithm Fraudoscope?”
El modelo ajustado respondió correctamente:
“The lie-detecting algorithm Fraudoscope was developed by Tselina Data Lab.”
Amazon Titan respondió de forma incorrecta y detallada. Sin embargo, hay que reconocer que el modelo generó importantes preocupaciones éticas y limitaciones de las tecnologías de reconocimiento facial en general:
Hagamos una pregunta sobre un chip NVIDIA, que alimenta Nube informática elástica de Amazon (Amazon EC2) Instancias P4d: “How much memory in an A100?”
Nuevamente, el modelo personalizado no solo obtiene la respuesta más correcta, sino que también responde con la brevedad que desearía de un robot de preguntas y respuestas:
“An A100 GPU provides up to 40 GB of high-speed HBM2 memory.”
La respuesta de Amazon Titan es incorrecta:
Implementar el modelo a través de Amazon Bedrock
Para uso en producción, especialmente si está considerando brindar acceso a docenas o incluso miles de empleados mediante la incorporación del modelo en una aplicación, puede implementar los modelos como puntos finales de API. Complete los siguientes pasos para implementar su modelo:
- En la consola de Amazon Bedrock, elija Modelos de cimentacion en el panel de navegación, luego elija Modelos personalizados.
- Localice el modelo con el prefijo Canvas- con Amazon Titan como fuente.
Alternativamente, puede utilizar el Interfaz de línea de comandos de AWS (AWS CLI): aws bedrock list-custom-models
- Tome nota de la
modelArn
que usará en el siguiente paso, y elmodelName
o guárdelos directamente como variables:
Para comenzar a utilizar su modelo, debe aprovisionar el rendimiento.
- En la consola de Amazon Bedrock, elija Rendimiento aprovisionado de compras.
- Nómbrelo, establezca 1 unidad modelo, sin plazo de compromiso.
- Confirma la compra.
Alternativamente, puede utilizar la CLI de AWS:
O, si guardó los valores como variables en el paso anterior, use el siguiente código:
Después de unos cinco minutos, el estado del modelo cambia de Creando a En servicio.
Si está utilizando la CLI de AWS, puede ver el estado a través de aws bedrock list-provisioned-model-throughputs
.
Usa el modelo
Puede acceder a su LLM optimizado a través de la consola, API, CLI o SDK de Amazon Bedrock.
En el Zona de juegos de chatelija la categoría de modelos ajustados, seleccione su modelo con prefijo Canvas y el rendimiento aprovisionado.
Enriquezca su software como servicio (SaaS), plataformas de software, portales web o aplicaciones móviles existentes con su LLM optimizado utilizando la API o los SDK. Estos le permiten enviar indicaciones al punto final de Amazon Bedrock utilizando su lenguaje de programación preferido.
La respuesta demuestra la capacidad personalizada del modelo para responder este tipo de preguntas:
“The lie-detecting algorithm Fraudoscope was developed by Tselina Data Lab.”
Esto mejora la respuesta de Amazon Titan antes del ajuste:
“Marston Morse developed the lie-detecting algorithm Fraudoscope.”
Para obtener un ejemplo completo de cómo invocar modelos en Amazon Bedrock, consulte lo siguiente repositorio de GitHub. Este repositorio proporciona una base de código lista para usar que le permite experimentar con varios LLM e implementar una arquitectura de chatbot versátil dentro de su cuenta de AWS. Ahora tienes las habilidades para usar esto con tu modelo personalizado.
Otro repositorio que puede despertar tu imaginación es Muestras de lecho de roca amazónicaque puede ayudarle a comenzar con otros casos de uso.
Conclusión
En esta publicación, le mostramos cómo ajustar un LLM para que se ajuste mejor a sus necesidades comerciales, implementar su modelo personalizado como un punto final de la API de Amazon Bedrock y utilizar ese punto final en el código de la aplicación. Esto abrió el poder del modelo de lenguaje personalizado para un conjunto más amplio de personas dentro de su empresa.
Aunque utilizamos ejemplos basados en un conjunto de datos de muestra, esta publicación mostró las capacidades de estas herramientas y sus posibles aplicaciones en escenarios del mundo real. El proceso es sencillo y aplicable a varios conjuntos de datos, como las preguntas frecuentes de su organización, siempre que estén en formato CSV.
Tome lo que aprendió y comience a pensar en formas de utilizar modelos de IA personalizados en su organización. Para más inspiración, consulte Superar los desafíos comunes de los centros de contacto con IA generativa y Amazon SageMaker Canvas y AWS re:Invent 2023: nuevas capacidades LLM en Amazon SageMaker Canvas, con Bain & Company (AIM363).
Sobre los autores
Yann Stoneman es un arquitecto de soluciones en AWS centrado en el aprendizaje automático y el desarrollo de aplicaciones sin servidor. Con experiencia en ingeniería de software y una combinación de educación artística y tecnológica de Juilliard y Columbia, Yann aporta un enfoque creativo a los desafíos de la IA. Comparte activamente su experiencia a través de su canal de YouTube, publicaciones de blog y presentaciones.
Davide Gallitelli es un arquitecto de soluciones especializado para AI/ML en la región EMEA. Tiene su sede en Bruselas y trabaja en estrecha colaboración con clientes de todo el Benelux. Ha sido desarrollador desde muy joven y comenzó a codificar a la edad de 7 años. Comenzó a aprender AI/ML en sus últimos años de universidad y se ha enamorado de ello desde entonces.