Evaluar el Modelo Phi-3 / Phi-3.5 Ajustado en Azure AI Foundry Enfocado en los Principios de IA Responsable de Microsoft
Este ejemplo de extremo a extremo (E2E) se basa en la guía "Evaluate Fine-tuned Phi-3 / 3.5 Models in Azure AI Foundry Focusing on Microsoft's Responsible AI" de la Comunidad Técnica de Microsoft.
¿Cómo puedes evaluar la seguridad y el rendimiento de un modelo Phi-3 / Phi-3.5 ajustado en Azure AI Foundry?
Ajustar un modelo puede a veces llevar a respuestas no intencionadas o indeseadas. Para asegurarse de que el modelo sigue siendo seguro y efectivo, es importante evaluar su potencial para generar contenido dañino y su capacidad para producir respuestas precisas, relevantes y coherentes. En este tutorial, aprenderás cómo evaluar la seguridad y el rendimiento de un modelo Phi-3 / Phi-3.5 ajustado integrado con Prompt flow en Azure AI Foundry.
Aquí está el proceso de evaluación de Azure AI Foundry.
Fuente de la imagen: Evaluación de aplicaciones de IA generativa
Note
Para obtener información más detallada y explorar recursos adicionales sobre Phi-3 / Phi-3.5, por favor visita el Phi-3CookBook.
- Python
- Suscripción de Azure
- Visual Studio Code
- Modelo Phi-3 / Phi-3.5 ajustado
-
Escenario 1: Introducción a la evaluación de Prompt flow de Azure AI Foundry
-
Escenario 2: Evaluación del modelo Phi-3 / Phi-3.5 en Azure AI Foundry
Para asegurarte de que tu modelo de IA es ético y seguro, es crucial evaluarlo contra los Principios de IA Responsable de Microsoft. En Azure AI Foundry, las evaluaciones de seguridad te permiten evaluar la vulnerabilidad de tu modelo a ataques de jailbreak y su potencial para generar contenido dañino, lo cual está directamente alineado con estos principios.
Fuente de la imagen: Evaluación de aplicaciones de IA generativa
Antes de comenzar con los pasos técnicos, es esencial entender los Principios de IA Responsable de Microsoft, un marco ético diseñado para guiar el desarrollo, despliegue y operación responsable de sistemas de IA. Estos principios guían el diseño, desarrollo y despliegue responsable de sistemas de IA, asegurando que las tecnologías de IA se construyan de manera justa, transparente e inclusiva. Estos principios son la base para evaluar la seguridad de los modelos de IA.
Los Principios de IA Responsable de Microsoft incluyen:
-
Equidad e Inclusividad: Los sistemas de IA deben tratar a todos de manera justa y evitar afectar a grupos de personas en situaciones similares de diferentes maneras. Por ejemplo, cuando los sistemas de IA proporcionan orientación sobre tratamientos médicos, solicitudes de préstamos o empleo, deben hacer las mismas recomendaciones a todos los que tengan síntomas similares, circunstancias financieras o calificaciones profesionales.
-
Fiabilidad y Seguridad: Para generar confianza, es crítico que los sistemas de IA operen de manera fiable, segura y consistente. Estos sistemas deben ser capaces de operar como fueron diseñados originalmente, responder de manera segura a condiciones imprevistas y resistir manipulaciones dañinas. Su comportamiento y la variedad de condiciones que pueden manejar reflejan el rango de situaciones y circunstancias que los desarrolladores anticiparon durante el diseño y las pruebas.
-
Transparencia: Cuando los sistemas de IA ayudan a informar decisiones que tienen un gran impacto en la vida de las personas, es crítico que las personas entiendan cómo se tomaron esas decisiones. Por ejemplo, un banco podría usar un sistema de IA para decidir si una persona es digna de crédito. Una empresa podría usar un sistema de IA para determinar los candidatos más calificados para contratar.
-
Privacidad y Seguridad: A medida que la IA se vuelve más prevalente, proteger la privacidad y asegurar la información personal y empresarial se vuelve más importante y complejo. Con la IA, la privacidad y la seguridad de los datos requieren una atención cercana porque el acceso a los datos es esencial para que los sistemas de IA hagan predicciones y decisiones precisas e informadas sobre las personas.
-
Responsabilidad: Las personas que diseñan y despliegan sistemas de IA deben ser responsables de cómo operan sus sistemas. Las organizaciones deben basarse en los estándares de la industria para desarrollar normas de responsabilidad. Estas normas pueden asegurar que los sistemas de IA no sean la autoridad final en ninguna decisión que afecte la vida de las personas. También pueden asegurar que los humanos mantengan un control significativo sobre sistemas de IA altamente autónomos.
Fuente de la imagen: ¿Qué es IA Responsable?
Note
Para aprender más sobre los Principios de IA Responsable de Microsoft, visita ¿Qué es IA Responsable?.
En este tutorial, evaluarás la seguridad del modelo Phi-3 ajustado utilizando las métricas de seguridad de Azure AI Foundry. Estas métricas te ayudan a evaluar el potencial del modelo para generar contenido dañino y su vulnerabilidad a ataques de jailbreak. Las métricas de seguridad incluyen:
- Contenido relacionado con autolesiones: Evalúa si el modelo tiene tendencia a producir contenido relacionado con autolesiones.
- Contenido odioso e injusto: Evalúa si el modelo tiene tendencia a producir contenido odioso o injusto.
- Contenido violento: Evalúa si el modelo tiene tendencia a producir contenido violento.
- Contenido sexual: Evalúa si el modelo tiene tendencia a producir contenido sexual inapropiado.
Evaluar estos aspectos asegura que el modelo de IA no produzca contenido dañino u ofensivo, alineándolo con los valores sociales y los estándares regulatorios.
Para asegurarte de que tu modelo de IA está funcionando como se espera, es importante evaluar su rendimiento contra métricas de rendimiento. En Azure AI Foundry, las evaluaciones de rendimiento te permiten evaluar la efectividad de tu modelo en generar respuestas precisas, relevantes y coherentes.
Fuente de la imagen: Evaluación de aplicaciones de IA generativa
En este tutorial, evaluarás el rendimiento del modelo Phi-3 / Phi-3.5 ajustado utilizando las métricas de rendimiento de Azure AI Foundry. Estas métricas te ayudan a evaluar la efectividad del modelo en generar respuestas precisas, relevantes y coherentes. Las métricas de rendimiento incluyen:
- Fundamentación: Evalúa qué tan bien las respuestas generadas se alinean con la información de la fuente de entrada.
- Relevancia: Evalúa la pertinencia de las respuestas generadas a las preguntas dadas.
- Coherencia: Evalúa qué tan suavemente fluye el texto generado, si lee de manera natural y se asemeja al lenguaje humano.
- Fluidez: Evalúa la competencia lingüística del texto generado.
- Similitud con GPT: Compara la respuesta generada con la verdad de base para la similitud.
- Puntuación F1: Calcula la proporción de palabras compartidas entre la respuesta generada y los datos de origen.
Estas métricas te ayudan a evaluar la efectividad del modelo en generar respuestas precisas, relevantes y coherentes.
Este tutorial es una continuación de las publicaciones anteriores en el blog, "Fine-Tune and Integrate Custom Phi-3 Models with Prompt Flow: Step-by-Step Guide" y "Fine-Tune and Integrate Custom Phi-3 Models with Prompt Flow in Azure AI Foundry." En estas publicaciones, recorrimos el proceso de ajuste de un modelo Phi-3 / Phi-3.5 en Azure AI Foundry e integrarlo con Prompt flow.
En este tutorial, desplegarás un modelo Azure OpenAI como evaluador en Azure AI Foundry y lo usarás para evaluar tu modelo Phi-3 / Phi-3.5 ajustado.
Antes de comenzar este tutorial, asegúrate de tener los siguientes requisitos previos, como se describe en los tutoriales anteriores:
- Un conjunto de datos preparado para evaluar el modelo Phi-3 / Phi-3.5 ajustado.
- Un modelo Phi-3 / Phi-3.5 que ha sido ajustado y desplegado en Azure Machine Learning.
- Un Prompt flow integrado con tu modelo Phi-3 / Phi-3.5 ajustado en Azure AI Foundry.
Note
Utilizarás el archivo test_data.jsonl, ubicado en la carpeta de datos del conjunto de datos ULTRACHAT_200k descargado en las publicaciones anteriores del blog, como el conjunto de datos para evaluar el modelo Phi-3 / Phi-3.5 ajustado.
Integrar el modelo Phi-3 / Phi-3.5 personalizado con Prompt flow en Azure AI Foundry (Enfoque basado en código)
Note
Si seguiste el enfoque de bajo código descrito en "Fine-Tune and Integrate Custom Phi-3 Models with Prompt Flow in Azure AI Foundry", puedes omitir este ejercicio y proceder al siguiente. Sin embargo, si seguiste el enfoque basado en código descrito en "Fine-Tune and Integrate Custom Phi-3 Models with Prompt Flow: Step-by-Step Guide" para ajustar y desplegar tu modelo Phi-3 / Phi-3.5, el proceso de conectar tu modelo a Prompt flow es ligeramente diferente. Aprenderás este proceso en este ejercicio.
Para proceder, necesitas integrar tu modelo Phi-3 / Phi-3.5 ajustado en Prompt flow en Azure AI Foundry.
Necesitas crear un Hub antes de crear el Proyecto. Un Hub actúa como un Grupo de Recursos, permitiéndote organizar y gestionar múltiples Proyectos dentro de Azure AI Foundry.
-
Inicia sesión en Azure AI Foundry.
-
Selecciona Todos los hubs desde la pestaña del lado izquierdo.
-
Selecciona + Nuevo hub desde el menú de navegación.
-
Realiza las siguientes tareas:
- Ingresa el Nombre del hub. Debe ser un valor único.
- Selecciona tu Suscripción de Azure.
- Selecciona el Grupo de recursos a utilizar (crea uno nuevo si es necesario).
- Selecciona la Ubicación que deseas usar.
- Selecciona los Servicios de Azure AI a conectar (crea uno nuevo si es necesario).
- Selecciona Conectar Azure AI Search para Omitir la conexión.
-
Selecciona Next.
-
En el Hub que creaste, selecciona All projects desde la pestaña del lado izquierdo.
-
Selecciona + New project desde el menú de navegación.
-
Ingresa el Project name. Debe ser un valor único.
-
Selecciona Create a project.
Para integrar tu modelo personalizado Phi-3 / Phi-3.5 con Prompt flow, necesitas guardar el endpoint y la clave del modelo en una conexión personalizada. Esta configuración asegura el acceso a tu modelo personalizado Phi-3 / Phi-3.5 en Prompt flow.
-
Visita Azure ML Studio.
-
Navega al espacio de trabajo de Azure Machine Learning que creaste.
-
Selecciona Endpoints desde la pestaña del lado izquierdo.
-
Selecciona el endpoint que creaste.
-
Selecciona Consume desde el menú de navegación.
-
Copia tu REST endpoint y Primary key.
-
Visita Azure AI Foundry.
-
Navega al proyecto de Azure AI Foundry que creaste.
-
En el Proyecto que creaste, selecciona Settings desde la pestaña del lado izquierdo.
-
Selecciona + New connection.
-
Selecciona Custom keys desde el menú de navegación.
-
Realiza las siguientes tareas:
- Selecciona + Add key value pairs.
- Para el nombre de la clave, ingresa endpoint y pega el endpoint que copiaste de Azure ML Studio en el campo de valor.
- Selecciona + Add key value pairs nuevamente.
- Para el nombre de la clave, ingresa key y pega la clave que copiaste de Azure ML Studio en el campo de valor.
- Después de agregar las claves, selecciona is secret para evitar que la clave sea expuesta.
-
Selecciona Add connection.
Has agregado una conexión personalizada en Azure AI Foundry. Ahora, vamos a crear un Prompt flow usando los siguientes pasos. Luego, conectarás este Prompt flow a la conexión personalizada para usar el modelo ajustado dentro del Prompt flow.
-
Navega al proyecto de Azure AI Foundry que creaste.
-
Selecciona Prompt flow desde la pestaña del lado izquierdo.
-
Selecciona + Create desde el menú de navegación.
-
Selecciona Chat flow desde el menú de navegación.
-
Ingresa el Folder name a usar.
-
Selecciona Create.
Necesitas integrar el modelo ajustado Phi-3 / Phi-3.5 en un Prompt flow. Sin embargo, el Prompt flow existente proporcionado no está diseñado para este propósito. Por lo tanto, debes rediseñar el Prompt flow para permitir la integración del modelo personalizado.
-
En el Prompt flow, realiza las siguientes tareas para reconstruir el flujo existente:
-
Selecciona Raw file mode.
-
Elimina todo el código existente en el archivo flow.dag.yml.
-
Agrega el siguiente código a flow.dag.yml.
inputs: input_data: type: string default: "Who founded Microsoft?" outputs: answer: type: string reference: ${integrate_with_promptflow.output} nodes: - name: integrate_with_promptflow type: python source: type: code path: integrate_with_promptflow.py inputs: input_data: ${inputs.input_data}
-
Selecciona Save.
-
-
Agrega el siguiente código a integrate_with_promptflow.py para usar el modelo personalizado Phi-3 / Phi-3.5 en Prompt flow.
import logging import requests from promptflow import tool from promptflow.connections import CustomConnection # Logging setup logging.basicConfig( format="%(asctime)s - %(levelname)s - %(name)s - %(message)s", datefmt="%Y-%m-%d %H:%M:%S", level=logging.DEBUG ) logger = logging.getLogger(__name__) def query_phi3_model(input_data: str, connection: CustomConnection) -> str: """ Send a request to the Phi-3 / Phi-3.5 model endpoint with the given input data using Custom Connection. """ # "connection" is the name of the Custom Connection, "endpoint", "key" are the keys in the Custom Connection endpoint_url = connection.endpoint api_key = connection.key headers = { "Content-Type": "application/json", "Authorization": f"Bearer {api_key}" } data = { "input_data": [input_data], "params": { "temperature": 0.7, "max_new_tokens": 128, "do_sample": True, "return_full_text": True } } try: response = requests.post(endpoint_url, json=data, headers=headers) response.raise_for_status() # Log the full JSON response logger.debug(f"Full JSON response: {response.json()}") result = response.json()["output"] logger.info("Successfully received response from Azure ML Endpoint.") return result except requests.exceptions.RequestException as e: logger.error(f"Error querying Azure ML Endpoint: {e}") raise @tool def my_python_tool(input_data: str, connection: CustomConnection) -> str: """ Tool function to process input data and query the Phi-3 / Phi-3.5 model. """ return query_phi3_model(input_data, connection)
Note
Para más información detallada sobre el uso de Prompt flow en Azure AI Foundry, puedes referirte a Prompt flow in Azure AI Foundry.
-
Selecciona Chat input, Chat output para habilitar el chat con tu modelo.
-
Ahora estás listo para chatear con tu modelo personalizado Phi-3 / Phi-3.5. En el próximo ejercicio, aprenderás cómo iniciar Prompt flow y usarlo para chatear con tu modelo ajustado Phi-3 / Phi-3.5.
-
Selecciona Start compute sessions para iniciar Prompt flow.
-
Selecciona Validate and parse input para renovar parámetros.
-
Selecciona el Value de la connection a la conexión personalizada que creaste. Por ejemplo, connection.
-
Selecciona Chat.
-
Aquí tienes un ejemplo de los resultados: Ahora puedes chatear con tu modelo personalizado Phi-3 / Phi-3.5. Se recomienda hacer preguntas basadas en los datos utilizados para el ajuste fino.
Para evaluar el modelo Phi-3 / Phi-3.5 en Azure AI Foundry, necesitas desplegar un modelo de Azure OpenAI. Este modelo se usará para evaluar el rendimiento del modelo Phi-3 / Phi-3.5.
-
Inicia sesión en Azure AI Foundry.
-
Navega al proyecto de Azure AI Foundry que creaste.
-
En el Proyecto que creaste, selecciona Deployments desde la pestaña del lado izquierdo.
-
Selecciona + Deploy model desde el menú de navegación.
-
Selecciona Deploy base model.
-
Selecciona el modelo de Azure OpenAI que te gustaría usar. Por ejemplo, gpt-4o.
-
Selecciona Confirm.
-
Visita Azure AI Foundry.
-
Navega al proyecto de Azure AI Foundry que creaste.
-
En el Proyecto que creaste, selecciona Evaluation desde la pestaña del lado izquierdo.
-
Selecciona la evaluación de Prompt flow.
-
Realiza las siguientes tareas:
- Ingresa el nombre de la evaluación. Debe ser un valor único.
- Selecciona Pregunta y respuesta sin contexto como el tipo de tarea. Porque el conjunto de datos UlTRACHAT_200k utilizado en este tutorial no contiene contexto.
- Selecciona el flujo de prompt que deseas evaluar.
-
Selecciona Next.
-
Realiza las siguientes tareas:
- Selecciona Add your dataset para subir el conjunto de datos. Por ejemplo, puedes subir el archivo del conjunto de datos de prueba, como test_data.json1, que se incluye cuando descargas el conjunto de datos ULTRACHAT_200k.
- Selecciona la Dataset column apropiada que coincida con tu conjunto de datos. Por ejemplo, si estás usando el conjunto de datos ULTRACHAT_200k, selecciona ${data.prompt} como la columna del conjunto de datos.
-
Selecciona Next.
-
Realiza las siguientes tareas para configurar las métricas de rendimiento y calidad:
- Selecciona las métricas de rendimiento y calidad que deseas usar.
- Selecciona el modelo de Azure OpenAI que creaste para la evaluación. Por ejemplo, selecciona gpt-4o.
-
Realiza las siguientes tareas para configurar las métricas de riesgo y seguridad:
- Selecciona las métricas de riesgo y seguridad que deseas usar.
- Selecciona el umbral para calcular la tasa de defectos que deseas usar. Por ejemplo, selecciona Medium.
- Para question, selecciona Data source a {$data.prompt}.
- Para answer, selecciona Data source a {$run.outputs.answer}.
- Para ground_truth, selecciona Data source a {$data.message}.
-
Selecciona Next.
-
Selecciona Submit para iniciar la evaluación.
-
La evaluación tomará algún tiempo en completarse. Puedes monitorear el progreso en la pestaña Evaluation.
Note
Los resultados presentados a continuación están destinados a ilustrar el proceso de evaluación. En este tutorial, hemos utilizado un modelo ajustado con un conjunto de datos relativamente pequeño, lo que puede llevar a resultados subóptimos. Los resultados reales pueden variar significativamente dependiendo del tamaño, calidad y diversidad del conjunto de datos utilizado, así como de la configuración específica del modelo.
Una vez que la evaluación esté completa, puedes revisar los resultados tanto de las métricas de rendimiento como de seguridad.
-
Métricas de rendimiento y calidad:
- Evalúa la efectividad del modelo en generar respuestas coherentes, fluidas y relevantes.
-
Métricas de riesgo y seguridad:
- Asegúrate de que las salidas del modelo sean seguras y se alineen con los Principios de IA Responsable, evitando cualquier contenido dañino u ofensivo.
-
Puedes desplazarte hacia abajo para ver Resultado detallado de las métricas.
-
Al evaluar tu modelo Phi-3 / Phi-3.5 personalizado contra métricas tanto de rendimiento como de seguridad, puedes confirmar que el modelo no solo es efectivo, sino que también se adhiere a prácticas de IA responsable, haciéndolo listo para su despliegue en el mundo real.
Has evaluado exitosamente el modelo Phi-3 ajustado integrado con Prompt flow en Azure AI Foundry. Este es un paso importante para asegurar que tus modelos de IA no solo funcionen bien, sino que también se adhieran a los principios de IA Responsable de Microsoft para ayudarte a construir aplicaciones de IA confiables y seguras.
Limpia tus recursos de Azure para evitar cargos adicionales en tu cuenta. Ve al portal de Azure y elimina los siguientes recursos:
- El recurso de Azure Machine learning.
- El punto de conexión del modelo de Azure Machine learning.
- El recurso del Proyecto de Azure AI Foundry.
- El recurso de Prompt flow de Azure AI Foundry.
- microsoft/Phi-3CookBook
- Evaluar sistemas de IA utilizando el panel de IA Responsable
- Métricas de evaluación y monitoreo para IA generativa
- Documentación de Azure AI Foundry
- Documentación de Prompt flow
-
Evaluación de aplicaciones de IA generativa
**Descargo de responsabilidad**: Este documento ha sido traducido utilizando servicios de traducción automática basados en inteligencia artificial. Aunque nos esforzamos por lograr precisión, tenga en cuenta que las traducciones automáticas pueden contener errores o inexactitudes. El documento original en su idioma nativo debe considerarse la fuente autorizada. Para información crítica, se recomienda una traducción humana profesional. No nos hacemos responsables de cualquier malentendido o interpretación errónea que surja del uso de esta traducción.