Skip to content

Latest commit

 

History

History
539 lines (329 loc) · 33 KB

E2E_Phi-3-Evaluation_AIstudio.md

File metadata and controls

539 lines (329 loc) · 33 KB

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.

Visión General

¿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.

Arquitectura del tutorial.

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.

Requisitos Previos

Tabla de Contenidos

  1. Escenario 1: Introducción a la evaluación de Prompt flow de Azure AI Foundry

  2. Escenario 2: Evaluación del modelo Phi-3 / Phi-3.5 en Azure AI Foundry

  3. ¡Felicitaciones!

Escenario 1: Introducción a la evaluación de Prompt flow de Azure AI Foundry

Introducción a la evaluación de seguridad

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.

Evaluación de seguridad.

Fuente de la imagen: Evaluación de aplicaciones de IA generativa

Principios de IA Responsable de Microsoft

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.

Hub de IA Responsable.

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?.

Métricas de seguridad

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.

Evaluar basado en la seguridad.

Introducción a la evaluación de rendimiento

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.

Evaluación de rendimiento.

Fuente de la imagen: Evaluación de aplicaciones de IA generativa

Métricas de rendimiento

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.

Evaluar basado en el rendimiento.

Escenario 2: Evaluación del modelo Phi-3 / Phi-3.5 en Azure AI Foundry

Antes de comenzar

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:

  1. Un conjunto de datos preparado para evaluar el modelo Phi-3 / Phi-3.5 ajustado.
  2. Un modelo Phi-3 / Phi-3.5 que ha sido ajustado y desplegado en Azure Machine Learning.
  3. 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.

Crear el Hub de 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.

  1. Inicia sesión en Azure AI Foundry.

  2. Selecciona Todos los hubs desde la pestaña del lado izquierdo.

  3. Selecciona + Nuevo hub desde el menú de navegación.

    Crear hub.

  4. 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. Llenar hub.
  5. Selecciona Next.

Crear Proyecto en Azure AI Foundry

  1. En el Hub que creaste, selecciona All projects desde la pestaña del lado izquierdo.

  2. Selecciona + New project desde el menú de navegación.

    Seleccionar nuevo proyecto.

  3. Ingresa el Project name. Debe ser un valor único.

    Crear proyecto.

  4. Selecciona Create a project.

Agregar una conexión personalizada para el modelo ajustado Phi-3 / Phi-3.5

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.

Configurar la clave API y el URI del endpoint del modelo ajustado Phi-3 / Phi-3.5

  1. Visita Azure ML Studio.

  2. Navega al espacio de trabajo de Azure Machine Learning que creaste.

  3. Selecciona Endpoints desde la pestaña del lado izquierdo.

    Seleccionar endpoints.

  4. Selecciona el endpoint que creaste.

    Seleccionar endpoints.

  5. Selecciona Consume desde el menú de navegación.

  6. Copia tu REST endpoint y Primary key.

    Copiar clave API y URI del endpoint.

Agregar la Conexión Personalizada

  1. Visita Azure AI Foundry.

  2. Navega al proyecto de Azure AI Foundry que creaste.

  3. En el Proyecto que creaste, selecciona Settings desde la pestaña del lado izquierdo.

  4. Selecciona + New connection.

    Seleccionar nueva conexión.

  5. Selecciona Custom keys desde el menú de navegación.

    Seleccionar claves personalizadas.

  6. 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.

    Agregar conexión.

  7. Selecciona Add connection.

Crear Prompt flow

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.

  1. Navega al proyecto de Azure AI Foundry que creaste.

  2. Selecciona Prompt flow desde la pestaña del lado izquierdo.

  3. Selecciona + Create desde el menú de navegación.

    Seleccionar Promptflow.

  4. Selecciona Chat flow desde el menú de navegación.

    Seleccionar chat flow.

  5. Ingresa el Folder name a usar.

    Seleccionar chat flow.

  6. Selecciona Create.

Configurar Prompt flow para chatear con tu modelo personalizado Phi-3 / Phi-3.5

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.

  1. 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.

    Seleccionar modo de archivo sin procesar.

  2. 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)

    Pegar código de prompt flow.

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.

  1. Selecciona Chat input, Chat output para habilitar el chat con tu modelo.

    Seleccionar Entrada Salida.

  2. 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.

Note

El flujo reconstruido debería verse como la imagen a continuación:

Ejemplo de flujo

Iniciar Prompt flow

  1. Selecciona Start compute sessions para iniciar Prompt flow.

    Iniciar sesión de cómputo.

  2. Selecciona Validate and parse input para renovar parámetros.

    Validar entrada.

  3. Selecciona el Value de la connection a la conexión personalizada que creaste. Por ejemplo, connection.

    Conexión.

Chatear con tu modelo personalizado Phi-3 / Phi-3.5

  1. Selecciona Chat.

    Seleccionar chat.

  2. 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.

    Chatear con prompt flow.

Desplegar Azure OpenAI para evaluar el modelo Phi-3 / Phi-3.5

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.

Desplegar Azure OpenAI

  1. Inicia sesión en Azure AI Foundry.

  2. Navega al proyecto de Azure AI Foundry que creaste.

    Seleccionar Proyecto.

  3. En el Proyecto que creaste, selecciona Deployments desde la pestaña del lado izquierdo.

  4. Selecciona + Deploy model desde el menú de navegación.

  5. Selecciona Deploy base model.

    Seleccionar Despliegues.

  6. Selecciona el modelo de Azure OpenAI que te gustaría usar. Por ejemplo, gpt-4o.

    Seleccionar modelo de Azure OpenAI que te gustaría usar.

  7. Selecciona Confirm.

Evaluar el modelo ajustado Phi-3 / Phi-3.5 usando la evaluación de Prompt flow de Azure AI Foundry

Iniciar una nueva evaluación

  1. Visita Azure AI Foundry.

  2. Navega al proyecto de Azure AI Foundry que creaste.

    Seleccionar Proyecto.

  3. En el Proyecto que creaste, selecciona Evaluation desde la pestaña del lado izquierdo.

  4. Selecciona + New evaluation desde el menú de navegación. Seleccionar evaluación.

  5. Selecciona la evaluación de Prompt flow.

    Seleccionar evaluación de Prompt flow.

  6. 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.

    Evaluación de Prompt flow.

  7. Selecciona Next.

  8. 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.

    Evaluación de Prompt flow.

  9. Selecciona Next.

  10. 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.

    Evaluación de Prompt flow.

  11. 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}.

    Evaluación de Prompt flow.

  12. Selecciona Next.

  13. Selecciona Submit para iniciar la evaluación.

  14. La evaluación tomará algún tiempo en completarse. Puedes monitorear el progreso en la pestaña Evaluation.

Revisión de los Resultados de la Evaluación

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.

  1. Métricas de rendimiento y calidad:

    • Evalúa la efectividad del modelo en generar respuestas coherentes, fluidas y relevantes.

    Resultado de la evaluación.

  2. 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.

    Resultado de la evaluación.

  3. Puedes desplazarte hacia abajo para ver Resultado detallado de las métricas.

    Resultado de la evaluación.

  4. 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.

¡Felicidades!

Has completado este tutorial

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.

Arquitectura.

Limpiar Recursos de Azure

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.

Próximos Pasos

Documentación

Contenido de Capacitación

Referencia