Blog LLMs GenAI AI/ML LLMs

Evaluación de SLMs y LLMs en Datos Personalizados con Prompt Flow

Evaluación de modelos de lenguaje con Azure Prompt Flow

Introducción

Evaluar modelos de lenguaje grandes (LLMs) y pequeños (SLMs) en datos personalizados es esencial para garantizar su rendimiento en casos de uso específicos. Azure Prompt Flow, combinado con Azure Machine Learning (AML), ofrece una solución robusta para construir pipelines de evaluación que permiten comparar modelos en escenarios reales. Este artículo detalla cómo implementar un pipeline de evaluación utilizando estas herramientas.

Note: Este enfoque es particularmente útil para organizaciones que buscan optimizar modelos de lenguaje para tareas específicas, como generación de texto, clasificación o análisis semántico.

Preparación del entorno

Requisitos previos

Antes de comenzar, asegúrate de tener configurados los siguientes recursos en Azure:

  1. Azure Machine Learning Workspace: Necesitarás un workspace activo para gestionar los experimentos y pipelines.
  2. Prompt Flow: Habilitado dentro de tu workspace de AML.
  3. Modelos de lenguaje: Puedes usar modelos preentrenados disponibles en Azure AI o cargar tus propios modelos personalizados.

Configuración inicial

Primero, inicia sesión en tu cuenta de Azure y configura el entorno de trabajo. Usa el siguiente comando para autenticarte en Azure CLI:

az login

Luego, selecciona el subscription y el resource group donde se encuentra tu workspace de AML:

az account set --subscription "<ID_DE_TU_SUBSCRIPCIÓN>"
az configure --defaults group="<NOMBRE_DE_TU_RESOURCE_GROUP>"

Warning: Asegúrate de que los permisos de tu cuenta incluyen acceso a los recursos de AML y Prompt Flow. Sin estos permisos, no podrás completar la configuración.

Creación del pipeline de evaluación

Paso 1: Implementación del modelo en un endpoint online

Para evaluar un modelo, primero necesitas desplegarlo en un endpoint online. Usa el siguiente código para registrar tu modelo en AML:

from azure.ai.ml import MLClient
from azure.ai.ml.entities import Model, OnlineEndpoint, Deployment

# Configuración del cliente de AML
ml_client = MLClient.from_config()

# Registro del modelo
model = Model(
    path="./model/",
    name="mi-modelo-llm",
    description="Modelo LLM personalizado para evaluación",
    tags={"tipo": "LLM", "versión": "1.0"}
)
ml_client.models.create_or_update(model)

# Creación del endpoint online
endpoint = OnlineEndpoint(
    name="mi-endpoint-llm",
    description="Endpoint para evaluación de LLMs",
    auth_mode="key"
)
ml_client.online_endpoints.create_or_update(endpoint)

# Despliegue del modelo en el endpoint
deployment = Deployment(
    name="mi-despliegue-llm",
    endpoint_name=endpoint.name,
    model=model,
    instance_type="Standard_DS3_v2",
    instance_count=1
)
ml_client.online_deployments.create_or_update(deployment)

Note: El tamaño de instancia Standard_DS3_v2 es adecuado para pruebas iniciales. Para cargas más pesadas, considera opciones como Standard_NC6.

Paso 2: Configuración de Prompt Flow

Prompt Flow permite crear flujos de trabajo interactivos para evaluar modelos. Configura un flujo básico para comparar el rendimiento de un SLM y un LLM en tareas de clasificación de texto.

Creación de un flujo de trabajo

  1. Accede a tu workspace de AML y selecciona la opción de Prompt Flow.
  2. Crea un nuevo flujo de trabajo y define los siguientes pasos:
    • Input: Datos personalizados para evaluación.
    • Model Evaluation: Configura las llamadas al endpoint online.
    • Metrics Calculation: Define las métricas de evaluación (precisión, recall, F1-score).

Ejemplo de configuración en YAML

steps:
  - name: input_data
    type: data_input
    parameters:
      path: "datasets/evaluacion.csv"
  - name: model_evaluation
    type: model_inference
    parameters:
      endpoint: "https://<NOMBRE_DE_TU_ENDPOINT>.azureml.net"
      model: "mi-modelo-llm"
  - name: metrics_calculation
    type: metrics
    parameters:
      metrics:
        - name: accuracy
        - name: f1_score

Warning: Asegúrate de que el dataset evaluacion.csv esté almacenado en tu workspace de AML y tenga el formato correcto.

Paso 3: Ejecución y análisis

Ejecuta el flujo de trabajo desde la interfaz de Prompt Flow. Los resultados se mostrarán en tiempo real, incluyendo las métricas calculadas para cada modelo.

Comparación de resultados

Una vez ejecutado el pipeline, analiza los resultados obtenidos por el SLM y el LLM. Usa las métricas generadas para identificar cuál modelo se adapta mejor a tus datos personalizados.

Note: En escenarios donde los datos son limitados, los SLMs pueden ofrecer un rendimiento competitivo con menor costo computacional.

Conclusión

Azure Prompt Flow, junto con AML, proporciona una solución escalable para evaluar modelos de lenguaje en datos personalizados. Este enfoque no solo permite comparar modelos, sino también optimizar su rendimiento para tareas específicas.

Para profundizar en el rendimiento de modelos frontier como Claude Sonnet 4.6, consulta nuestro artículo relacionado: Claude Sonnet 4.6 en Microsoft Foundry: Rendimiento Frontier a Escala.

Note: La elección entre SLMs y LLMs dependerá de tus necesidades específicas de negocio, presupuesto y capacidad de datos.