Solución de agilidad del modelo de IA generativa de AWS: una guía completa para migrar LLM para la producción de IA generativa

Mantener la agilidad del modelo es crucial para que las organizaciones se adapten a los avances tecnológicos y optimicen sus soluciones de inteligencia artificial (IA). Ya sea que se realice una transición entre diferentes familias de modelos de lenguaje grande (LLM) o se actualice a versiones más nuevas dentro de la misma familia, un enfoque de migración estructurado y un proceso estandarizado son esenciales para facilitar la mejora continua del rendimiento y al mismo tiempo minimizar las interrupciones operativas. Sin embargo, desarrollar una solución de este tipo es un desafío tanto en los aspectos técnicos como en los no técnicos porque la solución necesita:

Ser genérico para cubrir una variedad de casos de uso Ser específico para que un nuevo usuario pueda aplicarlo al caso de uso objetivo Proporcionar una comparación integral y justa entre los LLM Ser automatizado y escalable Incorporar conocimientos y aportes específicos del dominio y de la tarea Tener un proceso bien definido de principio a fin, desde la guía de preparación de datos hasta los criterios de éxito finales

En esta publicación, presentamos un marco sistemático para la migración o actualización de LLM en la producción de IA generativa, que abarca herramientas, metodologías y mejores prácticas esenciales. El marco facilita las transiciones entre diferentes LLM al proporcionar protocolos sólidos para una rápida conversión y optimización. Incluye mecanismos de evaluación que evalúan múltiples dimensiones del desempeño, lo que permite la toma de decisiones basada en datos a través de un análisis detallado y comparativo de los modelos de origen y destino. El enfoque propuesto ofrece una solución integral que incluye los aspectos técnicos de la migración de modelos y proporciona métricas cuantificables para validar la migración exitosa e identificar áreas para una mayor optimización, facilitando una transición fluida y una mejora continua. A continuación se muestran algunos aspectos destacados de la solución:

Proporciona una variedad de opciones de informes con varios marcos de evaluación de LLM y una guía integral para la selección de métricas para casos de uso objetivo. Proporciona migración y optimización de avisos automatizados con Amazon Bedrock Prompt Optimization y la herramienta Anthropic Metaprompt, además de prácticas recomendadas para una mayor optimización de avisos. Proporciona orientación integral para la selección de modelos y una solución de extremo a extremo para comparar modelos en cuanto a costo, latencia, precisión y calidad. Proporciona ejemplos de funciones y ejemplos de casos de uso para que los usuarios apliquen rápidamente la solución al caso de uso objetivo. El tiempo total requerido para una migración o actualización de LLM siguiendo este marco es de dos días a dos semanas, según la complejidad del caso de uso.

Descripción general de la solución

El núcleo de la migración implica un enfoque de tres pasos, como se muestra en el diagrama anterior.

Evaluar el modelo fuente. Migración rápida y optimización del modelo de destino con la optimización rápida de Amazon Bedrock y la herramienta Anthropic Metaprompt. Evaluar el modelo objetivo.

Esta solución proporciona un enfoque integral para actualizar las soluciones de IA generativa existentes (modelo de origen) a LLM en Amazon Bedrock (modelo de destino). Esta solución aborda los desafíos técnicos a través de:

Selección de métricas de evaluación con un marco que utiliza varios LLM Mejora y migración inmediatas con Amazon Bedrock Prompt Optimization y la herramienta Anthropic Metaprompt Comparación de modelos entre costo, latencia y rendimiento

Este enfoque estructurado proporciona un marco sólido para evaluar, migrar y optimizar los LLM. Siguiendo estos pasos, podemos realizar la transición entre modelos, lo que potencialmente desbloqueará un rendimiento, una rentabilidad y capacidades mejorados en sus aplicaciones de IA. El proceso enfatiza la preparación minuciosa, la evaluación sistemática y la mejora continua; preparando el escenario para el éxito a largo plazo en el uso de modelos de lenguaje avanzados.

Implementación de la solución

Preparación del conjunto de datos

Un conjunto de datos de evaluación con muestras de alta calidad es fundamental para el proceso de migración. Para la mayoría de los casos de uso, se requieren muestras con respuestas reales; mientras que para otros casos de uso, las métricas que no requieren verdad sobre el terreno, como la relevancia de las respuestas, la fidelidad, la toxicidad y el sesgo (consulte la sección Evaluación de marcos y selección de métricas), se pueden utilizar como métricas de determinación. Utilice la siguiente guía y formato de datos para preparar los datos de muestra para los casos de uso de destino.

Los campos sugeridos para datos de muestra incluyen:

Solicitud utilizada para el modelo de origen Entrada de solicitud (si existe), por ejemplo: Preguntas y contexto para la generación de respuestas basada en generación aumentada de recuperación (RAG) Configuraciones utilizadas para la invocación del modelo de origen, por ejemplo, temperatura, top_p, top_k, etc. Verdades fundamentales Salida del modelo fuente Latencia del modelo fuente Tokens de entrada y salida del modelo fuente, que se pueden utilizar para el cálculo de costos

Es importante recordar que los datos básicos de alta calidad son esenciales para una migración exitosa en la mayoría de los casos de uso. Las verdades sobre el terreno no sólo deben validarse en cuanto a su exactitud, sino también verificar que se ajustan a los criterios de orientación y evaluación del experto en la materia (PYME). Consulte la sección Análisis de errores para ver un ejemplo de criterios de orientación y evaluación de una PYME.

Además, si hay disponibles métricas de evaluación existentes, como una puntuación de evaluación humana o el visto bueno o negativo de una PYME, incluya esas métricas y el razonamiento o comentarios correspondientes para cada muestra de datos. Si se han realizado evaluaciones automatizadas, incluya las puntuaciones, los métodos y las configuraciones de la evaluación automatizada. La siguiente sección proporciona orientación más detallada sobre cómo seleccionar marcos de evaluación y definir las métricas. Sin embargo, sigue siendo valioso recopilar las métricas de evaluación existentes o preferidas de las partes interesadas como referencia.

Incluya los siguientes campos si corresponde:

Métricas de evaluación humana existentes para el modelo fuente, por ejemplo, la puntuación SME para el modelo fuente. Métricas de evaluación automatizadas existentes para el modelo fuente, por ejemplo, la puntuación de LLM como juez para el modelo fuente.

La siguiente tabla es un formato de ejemplo de los ejemplos de datos:

sample_id… contenido de la pregunta Prompt_source_llm respuesta_ground_truth respuesta_ source_llm latencia_ source_llm input_token_source_llm salida_token_source_llm llm_judge_score_source_llm human_score_source_llm human_score_reasoning_source_llm

Evaluación de frameworks y selección de métricas.

Después de recopilar información y muestras de datos, el siguiente paso es elegir las métricas de evaluación adecuadas para el caso de uso de IA generativa. Además de la evaluación humana por parte de una PYME, se recomiendan métricas de evaluación automatizadas porque son más escalables y objetivas y respaldan la salud y la sostenibilidad del producto a largo plazo. La siguiente tabla muestra las métricas automatizadas que están disponibles para cada caso de uso.

Selección de modelo

La selección de un LLM apropiado requiere una consideración cuidadosa de múltiples factores. Ya sea que se migre a un LLM dentro de la misma familia LLM o a una familia LLM diferente, comprender las características clave de cada modelo y los criterios de evaluación es crucial para el éxito. Cuando planee migrar entre LLM, compare y evalúe cuidadosamente las diversas opciones disponibles y consulte la tarjeta modelo y las respectivas guías publicadas por cada proveedor modelo. Al evaluar las opciones de LLM, considere varios criterios clave:

Modalidades de entrada y salida: texto, código y capacidades multimodales Tamaño de la ventana de contexto: tokens de entrada máximos que el modelo puede procesar Costo por inferencia o token Métricas de rendimiento: latencia y rendimiento Calidad y precisión de la salida Especialización de dominio y compatibilidad de casos de uso específicos Opciones de hospedaje: nube, local e híbrido Requisitos de seguridad y privacidad de los datos

Después del filtrado inicial basado en estas características, se deben realizar pruebas de evaluación comparativa evaluando el desempeño en tareas específicas para comparar los modelos preseleccionados. Amazon Bedrock ofrece una solución integral con acceso a varios LLM a través de una API unificada. Esto nos permite experimentar con diferentes modelos, comparar su rendimiento e incluso utilizar varios modelos en paralelo, todo ello manteniendo un único punto de integración. Este enfoque no solo simplifica la implementación técnica, sino que también ayuda a evitar la dependencia del proveedor al permitir una estrategia de modelo de IA diversificada.

Migración inmediata

Aquí se presentan dos herramientas automatizadas de optimización y migración de avisos: Amazon Bedrock Prompt Optimization y la herramienta Anthropic Metaprompt.

Optimización rápida de Amazon Bedrock

Amazon Bedrock Prompt Optimization es una herramienta disponible en Amazon Bedrock para optimizar automáticamente las indicaciones escritas por los usuarios. Esto ayuda a los usuarios a crear aplicaciones de IA generativa de alta calidad en Amazon Bedrock y reduce la fricción al trasladar cargas de trabajo de otros proveedores a Amazon Bedrock. Amazon Bedrock Prompt Optimization puede permitir la migración de cargas de trabajo existentes desde un modelo de origen a LLM en Amazon Bedrock con una mínima ingeniería inmediata. Con esta herramienta, podemos elegir el modelo para optimizar el mensaje y luego generar un mensaje optimizado para el modelo de destino. La principal ventaja de utilizar Amazon Bedrock Prompt Optimization es la posibilidad de utilizarlo desde la Consola de administración de AWS para Amazon Bedrock. Usando la consola, podemos generar rápidamente un nuevo mensaje para el modelo de destino. También podemos usar la API de Bedrock para generar un mensaje migrado; consulte la implementación detallada a continuación.

Opción A) Optimizar un mensaje desde la consola de Amazon Bedrock En la consola de Amazon Bedrock, vaya a Administración de mensajes. Elija Crear mensaje, ingrese un nombre para la plantilla de mensaje y elija Crear.

Captura de pantalla del cuadro de diálogo Create Prompt de AWS con el campo de nombre que muestra

Ingrese el mensaje del modelo de origen. Cree variables encerrando un nombre entre llaves dobles: {{variable}}. En la sección Variables de prueba, ingrese valores para reemplazar las variables al realizar la prueba. Seleccione un modelo de destino para su mensaje optimizado. Por ejemplo, Claude Sonnet 4 de Anthropic.

Cuadro de diálogo AWS Bedrock Select Model que muestra el proveedor Anthropic seleccionado con variantes del modelo Claude, incluido Claude Sonnet 4, configuración del perfil de inferencia y configuración de implementación entre regiones.

Elija el botón Optimizar para generar un mensaje optimizado para el modelo de destino.

Interfaz de configuración rápida que muestra instrucciones para crear variables utilizando la sintaxis de doble llave con un botón Optimizar para mejorar las indicaciones de IA.

6. Una vez generada la solicitud, se muestra la ventana de comparación de la solicitud optimizada para el modelo de destino con la solicitud original del modelo de origen.

Interfaz de comparación de mensajes en paralelo que muestra un mensaje original simple frente a una Variante_1 optimizada con etiquetas de estilo XML estructuradas, definiciones de tareas y plantillas de formato de respuesta utilizando Claude 3.5 Sonnet.

7. Guarde el nuevo mensaje optimizado antes de salir del modo de comparación.

Opción B) Optimizar un mensaje mediante la API de Amazon Bedrock

También podemos usar la API de Bedrock para generar un mensaje migrado enviando una solicitud OptimizePrompt con un punto final de tiempo de ejecución de Agents for Amazon Bedrock. Proporcione el mensaje para optimizar en el objeto de entrada y especifique el modelo para optimizar en el campo targetModelId.

El flujo de respuesta devuelve los siguientes eventos:

analysePromptEvent: aparece cuando finaliza el análisis del mensaje. Contiene un mensaje que describe el análisis del mensaje. optimizadoPromptEvent: aparece cuando el mensaje ha terminado de reescribirse. Contiene el mensaje optimizado.

Ejecute el siguiente ejemplo de código para optimizar un mensaje:

import boto3 # Establece valores aquí TARGET_MODEL_ID = "anthropic.claude-3-sonnet-20240229-v1:0" # Modelo para optimizar. Para conocer los ID de modelo, consulte https://docs.aws.amazon.com/bedrock/latest/userguide/model-ids.html PROMPT = "Resuma este texto: " # Solicitud para optimizar def get_input(prompt): return { "textPrompt": { "text": Prompt } } def handle_response_stream(response): try: event_stream = respuesta['optimizedPrompt'] para evento en event_stream: if 'optimizedPromptEvent' en el evento: print("=========================== AVISO OPTIMIZADO ========================n") optimizado_prompt = evento['optimizedPromptEvent'] print(optimized_prompt) else: print("========================= ANALIZAR PROMPT ========================n") analice_prompt = evento['analyzePromptEvent'] print(analyze_prompt) excepto Excepción como e: elevar e si __name__ == '__main__': cliente = boto3.client('bedrock-agent-runtime') intente: respuesta = client.optimize_prompt( input=get_input(PROMPT), targetModelId=TARGET_MODEL_ID ) print("ID de solicitud:", respuesta.get("ResponseMetadata").get("RequestId")) print("============================ INDICACIÓN DE ENTRADA ======================n") print(PROMPT) handle_response_stream(respuesta) excepto Excepción como e: elevar e

Herramienta Metaprompt antrópico

Metaprompt es una herramienta de optimización de mensajes ofrecida por Anthropic donde se le pide a Claude que escriba plantillas de mensajes en nombre del usuario en función de un tema o tarea. Podemos usarlo para instruir a Claude sobre cómo elaborar mejor una pauta para lograr un objetivo determinado de manera consistente y precisa.

Los pasos clave son:

Especifique la plantilla de solicitud sin formato, explique la tarea y especifique las variables de entrada y el resultado esperado. Ejecute Metaprompt con un Claude LLM como Claude-3-Sonnet ingresando el mensaje sin formato del modelo fuente. La nueva plantilla de aviso se genera con un conjunto optimizado de instrucciones y formato siguiendo las mejores prácticas de Claude LLM.

Beneficios de usar metaprompts:

Las indicaciones son mucho más detalladas y completas en comparación con las indicaciones creadas por humanos. Ayuda a aumentar la probabilidad de que se sigan las mejores prácticas para impulsar los modelos antrópicos. Permite especificar detalles clave como el tono preferido. Mejora la calidad y la coherencia de los resultados del modelo.

La herramienta Metaprompt es particularmente útil para aprender el estilo de mensaje preferido de Claude o como método para generar múltiples versiones de mensaje para una tarea determinada, simplificando la prueba de una variedad de variaciones de mensaje iniciales para el caso de uso objetivo.

Para implementar este proceso, siga los pasos en Migración de solicitudes de Jupyter Notebook para migrar las solicitudes del modelo de origen a las solicitudes del modelo de destino. Este cuaderno requiere que Claude-3-Sonnet esté habilitado como LLM en Amazon Bedrock mediante Model Access para generar las indicaciones convertidas.

El siguiente es un ejemplo de un mensaje de modelo fuente en un caso de uso de preguntas y respuestas financieras:

Para responder a la pregunta financiera, piense paso a paso: 1. Lea atentamente la pregunta y los párrafos de contexto proporcionados relacionados con los informes de documentos anuales y trimestrales para encontrar todos los párrafos relevantes. Priorice los párrafos contextuales con tablas CSV. 2. Si es necesario, analice las tendencias financieras y el desempeño trimestre tras trimestre (Q/Q) durante los períodos de tiempo detectados mencionados en las palabras clave de tiempo relacionadas. Calcule las tasas de cambio entre trimestres para identificar el crecimiento o la disminución. 3. Realice los cálculos necesarios para obtener la respuesta final, como sumas o divisiones. Muestra los pasos matemáticos. 4. Proporcione una respuesta completa y correcta basada en la información proporcionada. Si falta información, indique qué se necesita para responder la pregunta completamente. 5. Presentar valores numéricos en formato redondeado usando unidades fáciles de leer. 6. No comience la respuesta con "Basado en el contexto proporcionado" ni nada similar. Simplemente proporcione la respuesta directamente. 7. Incluya la respuesta con información relevante y exhaustiva en todos los contextos. Fundamente su respuesta con explicaciones basadas en el contexto proporcionado. Concluya con una respuesta precisa, concisa, honesta y directa. 8. Agregue la fuente y el número de la página. 9. Agregue todos los archivos fuente desde donde se utilizaron los contextos para generar las respuestas. contexto = {CONTEXTO} consulta = {CONSULTA} consulta_refraseada = {REPHARSED_QUERY} time_kwds = {TIME_KWDS}

Después de completar los pasos en el cuaderno, podemos obtener automáticamente el mensaje optimizado para el modelo de destino. El siguiente ejemplo genera un mensaje optimizado para Claude LLM de Anthropic.

Estos son los pasos para responder la pregunta financiera: 1. Lea atentamente el {$CONTEXT} proporcionado, prestando especial atención a los párrafos y tablas CSV relacionados con los informes financieros anuales y trimestrales. Priorice los párrafos contextuales que contengan tablas CSV. 2. Identifique los períodos de tiempo relevantes mencionados en {$TIME_KWDS}. Analice las tendencias financieras y el desempeño trimestre tras trimestre (Q/Q) durante esos períodos de tiempo. Calcule las tasas de cambio entre trimestres para determinar el crecimiento o la disminución. 3. En este espacio, puedes realizar los cálculos necesarios para llegar a la respuesta final de {$QUERY} o {$REPHARSED_QUERY}. Muestra tu trabajo paso a paso, incluyendo fórmulas utilizadas y valores intermedios. 4. Proporcionar una respuesta completa y correcta basada en la información dada en el contexto. Si falta alguna información crucial para responder completamente la pregunta, indique qué detalles adicionales se necesitan. Presente valores numéricos en un formato fácil de entender utilizando las unidades apropiadas. Redondea los números según sea necesario. No incluya ningún preámbulo como "Según el contexto proporcionado…" Simplemente proporcione la respuesta directa. Incluya toda la información relevante y exhaustiva de los contextos para fundamentar su respuesta. Explique su razonamiento basado en la evidencia proporcionada. Concluya con una respuesta final precisa, concisa, honesta y directa. Finalmente, cite la fuente y el número de la página, así como también enumere todos los archivos que contenían el contexto utilizado para generar esta respuesta.

Como se muestra en el ejemplo anterior, el estilo y el formato del mensaje se convierten automáticamente para seguir las mejores prácticas del modelo de destino, como el uso de etiquetas XML y la reagrupación de las instrucciones para que sean más claras y directas.

Generar resultados

La generación de respuestas durante la migración es un proceso iterativo. El flujo general incluye pasar indicaciones y contexto migrados al LLM y generar una respuesta. Se necesitan múltiples iteraciones para comparar diferentes versiones de solicitudes, múltiples LLM y diferentes configuraciones de cada LLM para ayudarnos a seleccionar la mejor combinación. En la mayoría de los casos, no se migra todo el proceso de un sistema de IA generativo (como un chatbot basado en RAG). En cambio, solo se migra una parte de la canalización. Por lo tanto, es crucial que esté disponible una versión fija de los componentes restantes en proceso. Por ejemplo, en un sistema de preguntas y respuestas (Q&A) basado en RAG, podríamos migrar solo el componente de generación de respuestas del proceso. Como resultado, podemos seguir utilizando el contexto ya generado del modelo de producción existente.

Como práctica recomendada, utilice el método de invocación estándar de los modelos de Amazon Bedrock (en el repositorio de código de migración) para generar metadatos como latencia, tiempo hasta el primer token, token de entrada y token de salida, además de la respuesta final. Estos campos de metadatos se agregan como una nueva columna al final de la tabla de resultados y se utilizan para la evaluación. El formato de salida y el nombre de la columna deben estar alineados con los requisitos de las métricas de evaluación. La siguiente tabla muestra un ejemplo de los datos de muestra antes de introducirlos en el proceso de evaluación para un caso de uso de RAG.

Ejemplo de datos de muestra antes de la evaluación:

Financebench_id Financebench_id_03029 doc_name 3M_2018_10K doc_link https://investors.3m.com/financials/sec-filings/content/0001558370-19-000470/0001558370-19-000470.pdf doc_period 2018 question_type pregunta generada por métricas ¿Cuál es el monto del gasto de capital para el año fiscal 2018 (en millones de dólares) para 3M? Responda a la pregunta basándose en los detalles que se muestran en el estado de flujo de efectivo. ground_truths ['$1577.00'] evidencia_texto… número_página 60 llm_answer Según el estado de flujo de efectivo en el informe 10-K de 3M 2018, los gastos de capital (compras de propiedades, planta y equipo) para el año fiscal llm_contexts… latency_meta_time 0.92706 latency_meta_kwd 0.60666 latency_meta_comb 1.44876 latency_meta_ans_gen 2.48371 tokens de entrada 21147 tokens de salida 401

Evaluación

La evaluación es una de las partes más importantes del proceso de migración porque se conecta directamente con los criterios de aprobación y determina el éxito de la migración. En la mayoría de los casos, la evaluación se centra en métricas en tres categorías principales: precisión y calidad, latencia y costo. Se puede utilizar una evaluación automatizada o una evaluación humana para evaluar la precisión y la calidad de la respuesta del modelo.

Evaluación automatizada

La integración de los LLM en el proceso de evaluación de la calidad representa un avance significativo en la metodología de evaluación. Estos modelos destacan por realizar evaluaciones integrales en múltiples dimensiones, incluida la relevancia contextual, la coherencia y la precisión fáctica, manteniendo al mismo tiempo la coherencia y la escalabilidad. Aquí se presentan dos categorías principales de métricas de evaluación automatizadas:

Métricas predefinidas: métricas predefinidas en marcos de evaluación basados ​​en LLM, como Ragas, DeepEval y Amazon Bedrock Evaluaciones, o directamente basadas en algoritmos que no son de LLM, como los introducidos en Evaluación de marcos. Métricas personalizadas: métricas personalizadas con definiciones proporcionadas por el usuario, criterios de evaluación o indicaciones para utilizar LLM como juez imparcial.

Métricas predefinidas

Estas métricas utilizan algunos marcos de evaluación basados ​​en LLM, como Ragas y DeepEval, o se basan directamente en algoritmos que no son de LLM. Estas métricas están ampliamente adoptadas, predefinidas y tienen opciones limitadas de personalización. Ragas y DeepEval son dos marcos y métricas de evaluación basados ​​en LLM que utilizamos como ejemplos en el repositorio de código de migración.

Ragas: Ragas es un marco de código abierto que ayuda a evaluar los oleoductos RAG. RAG denota una clase de aplicaciones LLM que utilizan datos externos para aumentar el contexto del LLM. Proporciona una variedad de métricas de evaluación automatizadas basadas en LLM. Las siguientes métricas se introducen en el cuaderno de evaluación de Ragas en el repositorio de código de migración. Precisión de la respuesta: mide con qué precisión la respuesta generada por el modelo contiene afirmaciones relevantes y correctas en comparación con la respuesta real. Recuerdo de respuesta: Evalúa la integridad de la respuesta; es decir, la capacidad del modelo para recuperar las afirmaciones correctas y compararlas con la respuesta real. Un alto recuerdo indica que la respuesta cubre completamente los detalles necesarios de acuerdo con la verdad fundamental. Corrección de la respuesta: la evaluación de la corrección de la respuesta implica medir la precisión de la respuesta generada en comparación con la verdad básica. Esta evaluación se basa en la verdad fundamental y la respuesta, con puntuaciones que van de 0 a 1. Una puntuación más alta indica una alineación más cercana entre la respuesta generada y la verdad fundamental, lo que significa una mayor corrección. Similitud de respuesta: la evaluación de la semejanza semántica entre la respuesta generada y la verdad fundamental. Esta evaluación se basa en la verdad fundamental y la respuesta, con valores que se encuentran dentro del rango de 0 a 1. Una puntuación más alta significa una mejor alineación entre la respuesta generada y la verdad fundamental.

La siguiente tabla es un ejemplo de salida de datos después de la evaluación de Ragas.

Financebench_id Financebench_id_03029 doc_name 3M_2018_10K doc_link https://investors.3m.com/financials/sec-filings/content/0001558370-19-000470/0001558370-19-000470.pdf doc_period 2018 question_type Pregunta generada por métricas ¿Cuál es el monto del gasto de capital para el año fiscal 2018 (en millones de dólares) para 3M? ground_truths ['$1577.00'] evidencia_texto… número_página 60 llm_answer Según el estado de flujo de efectivo en el informe 10-K de 3M 2018, el gasto de capital (compras de propiedades, planta y equipo) para el año fiscal 2018 fue de $1,577 millones. … llm_contexts … latency_meta_time 0,92706 latency_meta_kwd 0,60666 latency_meta_comb 1,44876 latency_meta_ans_gen 2,48371 tokens de entrada 21147 tokens de salida 401 precisión_respuesta 0 recuperación_respuesta 1 corrección_respuesta 0,16818 respuesta_similaridad 0.33635 DeepEval: DeepEval es un marco de evaluación de LLM de código abierto. Es similar a Pytest pero especializado en pruebas unitarias de resultados de LLM. DeepEval incorpora las últimas investigaciones para evaluar los resultados de LLM en función de métricas como G-Eval, alucinaciones, relevancia de las respuestas, Ragas, etc. Utiliza LLM y varios otros modelos de procesamiento de lenguaje natural (NLP) que se ejecutan localmente en su máquina para su evaluación. En DeepEval, una métrica sirve como estándar de medición para evaluar el desempeño de un resultado de LLM en función de criterios específicos. DeepEval ofrece una variedad de métricas predeterminadas para comenzar rápidamente. Las siguientes métricas se presentan en el cuaderno de evaluación de DeepEval en el repositorio de código de migración.| Relevancia de la respuesta: la métrica de relevancia de la respuesta mide la calidad del generador de su canalización RAG al evaluar qué tan relevante es la salida_actual de su aplicación LLM en comparación con la entrada proporcionada. Fidelidad: la métrica de fidelidad mide la calidad del generador de su canalización RAG al evaluar si la salida_actual se alinea de hecho con el contenido de su contexto_de recuperación. Toxicidad: la métrica de toxicidad es otra métrica sin referencia que evalúa la toxicidad en los resultados de su LLM. Sesgo: la métrica de sesgo determina si el resultado de su LLM contiene sesgos de género, raciales o políticos. Evaluaciones de Amazon Bedrock: Amazon Bedrock Assessments es un conjunto de herramientas para evaluar, comparar y seleccionar modelos básicos (incluidos modelos personalizados o de terceros) para sus casos de uso específicos. Admite la evaluación de tuberías RAG y solo de modelo. Podemos utilizar Bedrock Assessments ya sea a través de la consola de AWS o API. Amazon Bedrock Assessments ofrece una lista extensa de métricas integradas tanto para LLM independientes como para procesos de RAG completos, que incluyen, entre otros: Precisión: mide la exactitud de los resultados del modelo. Fidelidad: comprueba la exactitud de los hechos y evita alucinaciones. Utilidad: Mide de manera integral qué tan útiles son las respuestas para responder preguntas. Coherencia lógica: Mide si las respuestas están libres de lagunas lógicas, inconsistencias o contradicciones. Nocividad: Mide el contenido dañino en las respuestas, incluido el odio, los insultos, la violencia o el contenido sexual. Estereotipos: Mide declaraciones generalizadas sobre individuos o grupos de personas en las respuestas. Negativa: Mide cuán evasivas son las respuestas al contestar preguntas. Seguir instrucciones: Mide qué tan bien la respuesta del modelo respeta las instrucciones exactas que se encuentran en la indicación. Estilo y tono profesional: mide qué tan apropiado es el estilo, el formato y el tono de la respuesta para un entorno profesional.

Métricas personalizadas

Estas métricas las define el usuario y normalmente se adaptan a tareas o dominios específicos. Un método popular es utilizar un LLM personalizado como juez para proporcionar una puntuación de evaluación para una respuesta mediante un mensaje proporcionado por el usuario. A diferencia del uso de métricas predefinidas, este método es altamente personalizable porque podemos proporcionar al mensaje requisitos de evaluación específicos de la tarea. Por ejemplo, podemos pedirle al LLM que genere un sistema de puntuación de 10 puntos y evalúe exhaustivamente la respuesta frente a la verdad fundamental en diferentes dimensiones, como la exactitud de la información, la relevancia contextual, la profundidad y amplitud de los detalles, y la utilidad y utilidad general.

El siguiente es un ejemplo de un mensaje personalizado para LLM como juez:

#Pregunta: Sistema: "Usted es un evaluador de IA que ayuda a evaluar los resultados de LLM", resp_fmt = """{ "score":float, "reasoning": str } """ Usuario = f"""[Instrucción]nActúe como un juez imparcial y evalúe la calidad de la respuesta proporcionada por un asistente de IA a la pregunta del usuario que se muestra a continuación. Su evaluación debe considerar la exactitud, relevancia, nivel de detalle y utilidad. Se le dará una respuesta de referencia y el Respuesta del asistente. Comience su evaluación comparando la respuesta del asistente con la respuesta de referencia. Sea lo más objetivo posible. Después de proporcionar su explicación en la pestaña "razonamiento", debe calificar la respuesta en una escala de 1 a 10 en la pestaña "puntuación". Respuesta]n{referencia}n[El fin de la respuesta de referencia]nn[El inicio de la respuesta del Asistente]n{respuesta}n[El fin de la respuesta del Asistente]"""

Evaluación humana

Si bien las métricas cuantitativas proporcionan datos valiosos, también es necesaria una evaluación cualitativa integral basada en directrices profesionales y comentarios de las PYME para validar el rendimiento del modelo. Una evaluación cualitativa eficaz suele cubrir varias áreas clave, incluida la coherencia del tono y el tema de la respuesta, la detección de contenido inapropiado o no deseado, la precisión específica del dominio, los problemas relacionados con la fecha y la hora, etc. Al utilizar la experiencia de las PYME, podemos identificar matices sutiles y problemas potenciales que podrían escapar al análisis cuantitativo. El análisis de errores proporciona algunos aspectos potenciales que la PYME puede utilizar como criterios de evaluación, que también pueden servir como guía para validar y preparar datos reales. Podemos utilizar herramientas como Amazon Bedrock Assessments para la evaluación humana.

Aunque la evaluación humana o los comentarios de los usuarios recopilados de una interfaz de usuario pueden reflejar directamente los criterios de evaluación de la PYME, no son tan eficientes, escalables y objetivos como los métodos de evaluación automatizados. Por lo tanto, un ciclo de vida de desarrollo de un sistema de IA generativa podría comenzar con la evaluación humana pero eventualmente avanzar hacia la evaluación automatizada. Se puede utilizar la evaluación humana si la evaluación automatizada no cumple con los objetivos de referencia o los criterios de evaluación predefinidos.

Métricas de latencia

Al migrar modelos de lenguaje, las métricas de rendimiento del tiempo de ejecución son indicadores cruciales del éxito operativo. La latencia total y el tiempo hasta el primer token (TTFT) son las métricas más comunes para medir la latencia.

La latencia total es una métrica de un extremo a otro que mide la duración total requerida para la generación de una respuesta completa, desde el aviso inicial hasta el resultado final. Abarca procesar la entrada, generar la respuesta y entregarla al usuario. La latencia total afecta la satisfacción del usuario, el rendimiento del sistema y la utilización de recursos. El tiempo hasta el primer token (TTFT) cuantifica la velocidad de respuesta inicial, específicamente, la duración hasta que el modelo genera su primer token de salida. Esta métrica afecta significativamente la capacidad de respuesta percibida y la experiencia del usuario, especialmente en aplicaciones interactivas. TTFT es particularmente importante en la IA conversacional y los sistemas en tiempo real (aplicaciones como chatbots, asistentes virtuales y sistemas de búsqueda interactivos) donde los usuarios esperan comentarios inmediatos. Un TTFT bajo crea una impresión de capacidad de respuesta del sistema y puede mejorar en gran medida la participación del usuario.

Si el paso de generación de resultados requiere varias llamadas de LLM, se deben proporcionar las métricas de latencia de desglose porque solo se debe comparar la latencia del submódulo correspondiente a la migración de LLM en el siguiente paso de comparación de modelos.

Cálculo de costos

Para la invocación de LLM, el costo se puede calcular en función de la cantidad de tokens de entrada y salida y el precio correspondiente por token:

Costo_invocación_LLM = número_de_tokens_de_entrada * precio_por_token_de_entrada + número_de_tokens_de_salida * precio_por_token_de_salida

La tabla de cálculos de costos para el precio por token de entrada y salida se puede encontrar en Precios de Amazon Bedrock.

Informe de comparación de modelos: rendimiento, latencia y costo

Podemos usar el cuaderno Generar informe de comparación en el repositorio de código para generar automáticamente un informe de comparación final para el modelo de origen y de destino en una vista holística.

También podemos utilizar informes de evaluación generados por Ragas y DeepEval con las métricas correspondientes para comparar los modelos de los dos marcos de evaluación. Podemos obtener una comparación lado a lado de los tokens de entrada y salida promedio y el costo y la latencia promedio para los modelos seleccionados. Como se muestra en la siguiente figura, después de ejecutar este cuaderno, hay dos tablas de comparación para los modelos de origen y de destino de los dos marcos de evaluación seleccionados.

ragas Tabla de comparación de rendimiento que muestra las métricas de GPT-4 Turbo versus Claude 3 Haiku, incluidas precisión, recuperación, corrección, similitud, uso de tokens, costo y latencia.

Evaluación profunda Tabla de métricas de rendimiento del modelo que compara GPT-4 Turbo y Claude 3 Haiku en cuanto a relevancia de las respuestas, fidelidad, sesgo, toxicidad, uso de tokens, costo y latencia.

Mayor optimización

Al mejorar y optimizar un proceso de producción de IA generativa durante una migración o actualización de un LLM, los usuarios suelen centrarse en dos áreas clave:

Calidad de las respuestas generadas Latencia de generación de respuestas

Optimización inmediata

Para optimizar la calidad de las respuestas generadas, debemos comprender bien los errores realizando un análisis de errores e identificando los elementos para una pronta optimización.

Análisis de errores

Es poco probable obtener la mejor respuesta posible de un candidato a LLM sin ninguna optimización. Por lo tanto, realizar un análisis de errores y centrarse en posibles aspectos de los patrones de error nos ayuda a evaluar la calidad de las respuestas generadas e identificar las oportunidades de mejora. El análisis de errores también proporciona un camino hacia la ingeniería rápida manual para mejorar la calidad. Después de recopilar información sobre el análisis de errores y comentarios de las PYME, se puede llevar a cabo un proceso iterativo de optimización rápida. Para empezar, formular los conocimientos del análisis de errores y los comentarios de las PYME en directrices o criterios claros. Idealmente, estos criterios deberían aclararse antes de iniciar la pronta migración. Estos criterios sirven como consideraciones centrales para una mayor optimización rápida que ayude a proporcionar respuestas consistentes y de alta calidad para cumplir con el estándar de las PYME. El siguiente es un ejemplo de posibles orientaciones y criterios que podríamos recibir de una PYME.

Ejemplo de una guía de estilo de formato de respuesta de una PYME en un caso de uso de preguntas y respuestas financieras:

Corrección Asegúrese de que los números extraídos sean correctos. Todos los números deben compararse con la verdad fundamental. Asegúrese de que todas las afirmaciones de la verdad básica estén disponibles en la respuesta de LLM. Las respuestas generadas no deben agregar oraciones irrelevantes. Las respuestas generadas por tiempo deben reconocer correctamente el año fiscal y todos los trimestres necesarios de la pregunta. En la respuesta, se prefieren los pedidos trimestrales desde el más reciente al más antiguo. Cuando la pregunta se refiere a un año tras otro, la respuesta debe especificar el año general o el último trimestre, no trimestre por trimestre. Cuando la respuesta provenga de un solo documento periodístico, incluya la fecha de publicación en la respuesta. Tema y tono Utilice un lenguaje profesional que refleje el estilo de un periódico. Formato y extractos Cuando la consulta del usuario solicita una lista, preséntela en formato de viñetas. Cuando la consulta del usuario solicite extractos, proporcione una declaración resumida seguida de una lista con viñetas de extractos sin editar directamente del documento. Las consultas que solicitan una lista completa idealmente incluyen viñetas. Las consultas que solicitan temas con categorías subjetivas idealmente incluyen una lista con viñetas. No comience la respuesta haciendo referencia al contexto (según el contexto). Longitud La mayoría de las respuestas deben tener entre 30 y 150 palabras. Se aceptan respuestas más largas cuando la pregunta involucra múltiples entidades o cuando se responden consultas que requieren subcategorías dentro de la respuesta.

Técnicas de optimización

Después de obtener criterios claros, se pueden utilizar varias técnicas de optimización para abordar estos criterios, como por ejemplo:

Ingeniería de indicaciones para especificar ciertos criterios en la instrucción de la instrucción Aprendizaje de pocas oportunidades para especificar el formato de respuesta y ejemplos de respuestas generadas Incorporación de metainformación que podría ayudar al LLM a comprender el contexto de la tarea y la pregunta Procesamiento previo o posterior para aplicar el formato de salida o resolver algunos patrones de error frecuentes

Optimización de latencia

Hay algunas soluciones posibles para optimizar la latencia:

Optimización de mensajes para generar respuestas más cortas

La latencia de un modelo LLM se ve directamente afectada por la cantidad de tokens de salida porque cada token adicional requiere un paso hacia adelante por separado a través del modelo, lo que aumenta el tiempo de procesamiento. A medida que se generan más tokens, la latencia aumenta, especialmente en modelos más grandes como Opus 4. Para reducir la latencia, podemos agregar instrucciones para evitar proporcionar respuestas largas, explicaciones no relacionadas o palabras de relleno.

Utilizar el rendimiento aprovisionado

El rendimiento se refiere al número y la tasa de entradas y salidas que un modelo procesa y devuelve. La compra de rendimiento aprovisionado para proporcionar un mayor nivel de rendimiento para un modelo alojado dedicado puede reducir potencialmente la latencia en comparación con el uso de modelos bajo demanda. Aunque no puede garantizar la mejora de la latencia, ayuda constantemente a evitar solicitudes limitadas.

Ciclo de vida de mejora

Es poco probable que un candidato a LLM pueda lograr el mejor rendimiento posible sin ninguna optimización. También es típico que los procesos de optimización anteriores se realicen de forma iterativa. Por lo tanto, el ciclo de vida de mejora (optimización) es fundamental para mejorar el rendimiento e identificar las brechas o defectos en la tubería o los datos. El ciclo de vida de la mejora normalmente incluye:

Optimización rápida Generación de respuestas Generación de métricas de evaluación Análisis de errores Verificación de etiquetas de muestra Actualizaciones del conjunto de datos sobre defectos de muestra y etiquetas incorrectas

Identificación de conocimiento de tarea o dominio El proceso de migración descrito en esta publicación se puede utilizar en dos fases en un ciclo de vida de producción de una solución de IA generativa.

Migración de LLM de extremo a extremo y agilidad de modelos

Con frecuencia se publican nuevos LLM. Ningún LLM puede mantener consistentemente el máximo rendimiento para un caso de uso determinado. Es común que una solución de IA generativa de producción migre a otra familia de LLM o actualice a una nueva versión de un LLM. Por lo tanto, contar con un proceso de actualización o migración de LLM de extremo a extremo estándar y reutilizable es fundamental para el éxito a largo plazo de cualquier solución de IA generativa.

Seguimiento y aseguramiento de la calidad.

Cuando se estabilizan la migración o las actualizaciones, debe haber un proceso estándar de monitoreo y garantía de calidad utilizando un conjunto de datos de evaluación de oro actualizado periódicamente con verdad sobre el terreno y métricas de evaluación automatizadas o humanas, así como una evaluación de los rastros de usuarios reales. Como parte de esta solución, los procesos establecidos de evaluación y recopilación de datos o información sobre el terreno se pueden reutilizar para el seguimiento y el aseguramiento de la calidad.

Consejos y sugerencias (lecciones aprendidas)

Los siguientes son algunos consejos y sugerencias para el éxito de un proceso de migración o actualización de LLM.

Condición de aprobación: Los datos, los criterios de evaluación y los criterios de éxito definidos al inicio deben ser suficientes para que las partes interesadas aprueben con confianza el proceso. Idealmente, no debería haber cambios en los datos, los datos reales o los criterios de evaluación y éxito de las PYME durante el proceso. Datos y calidad de la muestra: Los datos deben ser de calidad y cantidad suficientes para una evaluación confiable. Las respuestas y etiquetas de la verdad básica deben estar totalmente alineadas con los criterios y expectativas de evaluación de la PYME. Lo ideal es que no haya cambios en los datos, datos reales o criterios de evaluación de las PYME durante el proceso. Ciclo de vida de mejora: asegúrese de planificar e implementar un ciclo de vida de mejora para aprovechar al máximo el LLM elegido. Selección de modelo: al seleccionar modelos de destino competitivos frente a un modelo de origen, utilice recursos como el sitio web de evaluación comparativa de Análisis Artificial para obtener una comparación holística de los modelos. Estas comparaciones suelen cubrir análisis de calidad, rendimiento y precios, lo que proporciona información valiosa antes de comenzar el experimento. Esta investigación preliminar puede ayudar a seleccionar los candidatos más prometedores e informar el diseño experimental. Compensaciones entre rendimiento y costos: al evaluar diferentes modelos o soluciones, es importante considerar el equilibrio entre rendimiento y costo. En algunos casos, un modelo puede ofrecer un rendimiento ligeramente inferior pero a un coste lo suficientemente reducido como para convertirlo en una opción más rentable en general. Esto es particularmente cierto en escenarios donde la diferencia de rendimiento es mínima, pero el ahorro de costos es sustancial. Técnicas de optimización: la exploración de diversas técnicas de optimización, como la ingeniería rápida o el rendimiento aprovisionado, puede generar mejoras significativas en las métricas de rendimiento, como la precisión y la latencia. Estas optimizaciones pueden ayudar a cerrar la brecha entre diferentes modelos y deben considerarse parte del proceso de evaluación.

Conclusión

En esta publicación, presentamos la solución de agilidad del modelo de IA generativa de AWS, una solución integral para migraciones de LLM y actualizaciones de aplicaciones de IA generativa existentes que mantiene y mejora la agilidad del modelo. La solución define un proceso estandarizado y proporciona un conjunto de herramientas integral para la migración o actualización de LLM con una variedad de herramientas listas para usar y técnicas avanzadas que se pueden utilizar para migrar aplicaciones de IA generativa a nuevos LLM. Esto se puede utilizar como un proceso estándar en el ciclo de vida de sus aplicaciones de IA generativa. Después de estabilizar una aplicación con un LLM y una configuración específicos, los procesos de evaluación y recopilación de datos y datos reales en esta solución se pueden reutilizar para el monitoreo de la producción y el control de calidad.

Para obtener más información sobre esta solución, consulte nuestro repositorio de códigos de agilidad del modelo de IA generativa de AWS.

Sobre los autores

Foto profesional de un hombre con gafas rectangulares con montura negra y un polo negro sobre un fondo blanco.

Long Chen es científico aplicado senior en el Centro de innovación de IA generativa de AWS. Tiene un doctorado. en Física Aplicada de la Universidad de Michigan – Ann Arbor. Con más de una década de experiencia en investigación y desarrollo, trabaja en soluciones innovadoras en diversos dominios utilizando IA generativa y otras técnicas de aprendizaje automático, garantizando el éxito de los clientes de AWS. Sus intereses incluyen modelos generativos, sistemas multimodales y aprendizaje de gráficos.

Elaine Wu es arquitecta de aprendizaje profundo en el Centro de innovación de IA generativa de AWS y se especializa en la creación de soluciones RAG sólidas y de IA agente para grandes empresas. Ha resuelto desafíos comerciales del mundo real para clientes de AWS en industrias que incluyen manufactura, energía, atención médica, comercio minorista, software empresarial y servicios financieros. Antes de unirse a AWS, Elaine obtuvo su maestría en Ciencias de la Información de la Universidad de Illinois Urbana-Champaign.

Retrato de una persona sonriente con gafas redondas y un suéter de punto rosa, posando al aire libre junto a un paseo marítimo con un pintoresco fondo de lago.

Samaneh Aminikhanghahi es científica aplicada en el Centro de innovación de IA generativa de AWS, donde trabaja con clientes de diferentes sectores verticales para acelerar su adopción de la IA generativa. Se especializa en marcos de IA agentes, en la creación de sistemas de evaluación sólidos y en la implementación de prácticas de IA responsables que impulsen resultados comerciales sostenibles.

Avinash Yadav es arquitecto de aprendizaje profundo en el Centro de innovación de IA generativa, donde diseña e implementa soluciones GenAI de vanguardia para diversas necesidades empresariales. Se especializa en la creación de sistemas de IA agentes y marcos de múltiples agentes, desarrollando agentes de IA capaces de realizar razonamientos complejos, uso de herramientas y orquestación en flujos de trabajo empresariales. Su experiencia abarca canalizaciones de aprendizaje automático que utilizan grandes modelos de lenguaje, arquitecturas agentes que aprovechan marcos como LangGraph y Amazon Bedrock AgentCore, junto con arquitectura de nube, infraestructura como código (IaC) y automatización. Su enfoque radica en la creación de aplicaciones escalables de un extremo a otro que aprovechen el poder del aprendizaje profundo, los flujos de trabajo agentes y las tecnologías en la nube para resolver desafíos comerciales del mundo real.

Foto profesional de la cabeza de un hombre de cabello oscuro que lleva una chaqueta gris claro sobre una camisa granate contra un fondo oscuro.

Vidya Sagar Ravipati es gerente científico en el Centro de innovación de IA generativa, donde aprovecha su vasta experiencia en sistemas distribuidos a gran escala y su pasión por el aprendizaje automático para ayudar a los clientes de AWS en diferentes sectores verticales de la industria a acelerar su adopción de la IA y la nube.