Compartir a través de


Procedimiento para usar el modelo de chat de Gretel Navigator

Importante

Los elementos marcados (versión preliminar) en este artículo se encuentran actualmente en versión preliminar pública. Esta versión preliminar se ofrece sin acuerdo de nivel de servicio y no se recomienda para las cargas de trabajo de producción. Es posible que algunas características no sean compatibles o que tengan sus funcionalidades limitadas. Para más información, consulte Términos de uso complementarios para las versiones preliminares de Microsoft Azure.

En este artículo, obtendrá información sobre el modelo de chat de Gretel Navigator y cómo usarlo. Gretel Navigator usa mensajes, definiciones de esquema o ejemplos de inicialización para generar datos sintéticos de calidad de producción optimizados para el desarrollo de inteligencia artificial y aprendizaje automático.

Importante

Los modelos que están en versión preliminar se marcan como versión preliminar en sus tarjetas de modelo en el catálogo de modelos.

Modelo de chat de Gretel Navigator

A diferencia de los enfoques de modelo de lenguaje grande único (LLM único) para la generación de datos, Gretel Navigator emplea una arquitectura de inteligencia artificial compuesta diseñada específicamente para datos sintéticos mediante la combinación de modelos de lenguaje pequeños (SLAM) de código abierto optimizados en más de 10 dominios del sector. Este sistema específico crea diversos conjuntos de datos específicos del dominio a escalas de cientos a millones de ejemplos. El sistema también conserva relaciones estadísticas complejas y ofrece mayor velocidad y precisión en comparación con la creación manual de datos.

Principales casos de uso:

  • Creación de datos sintéticos para el entrenamiento y ajuste de LLM
  • Generación de conjuntos de datos de evaluación para modelos de IA y sistemas RAG
  • Aumento de datos de entrenamiento limitados con diversas muestras sintéticas
  • Creación de datos realistas de información de identificación personal (PII) o información médica protegida (PHI) para pruebas de modelos

Puede obtener más información sobre los modelos en su tarjeta de modelo correspondiente:

Sugerencia

Además, Gretel admite el uso de una API adaptada para su uso con características específicas del modelo. Para usar la API específica del proveedor de modelos, consulte la documentación de Gretel, o bien visite la sección de ejemplos de inferencia para obtener ejemplos de código.

Prerrequisitos

Para usar el modelo de chat de Gretel Navigator con Fundición de IA de Azure, necesita los siguientes requisitos previos:

Una implementación de modelo

Implementación en implementaciones estándar

El modelo de chat de Gretel Navigator puede ser implementado en un despliegue estándar. Este tipo de implementación proporciona una forma de consumir modelos como API sin alojarlos en su suscripción, al tiempo que mantiene la seguridad y el cumplimiento empresarial que necesitan las organizaciones.

La implementación en una implementación estándar no requiere cuota de la suscripción. Si el modelo aún no está implementado, use el portal de Azure AI Foundry, el SDK de Azure Machine Learning para Python, la CLI de Azure o las plantillas de ARM para implementar el modelo como una implementación estándar.

El paquete de inferencia instalado

Puede consumir las predicciones de este modelo mediante el paquete azure-ai-inference con Python. Para instalar este paquete, necesita los siguientes requisitos previos:

  • Python 3.8 o posterior instalado, incluido pip.
  • La dirección URL del punto de conexión. Para construir la biblioteca cliente, debe pasar la dirección URL del punto de conexión. La dirección URL del punto de conexión tiene el formato https://your-host-name.your-azure-region.inference.ai.azure.com, donde your-host-name es el nombre de host de implementación de modelo único y your-azure-region es la región de Azure donde se implementa el modelo (por ejemplo, eastus2).
  • En función de la preferencia de autenticación e implementación de modelo, necesita una clave para autenticarse en el servicio o las credenciales de Microsoft Entra ID. La clave es una cadena de 32 caracteres.

Una vez que tenga estos requisitos previos, instale el paquete de inferencia de Azure AI con el siguiente comando:

pip install azure-ai-inference

Más información sobre el Paquete de inferencia y referencia de Azure AI.

Trabajar con finalizaciones de chat

En esta sección, usará la API de inferencia de modelos de Azure AI con un modelo de finalizaciones de chat para chat.

Sugerencia

La API de inferencia de modelos permite hablar con la mayoría de los modelos implementados en el portal de Azure AI Foundry con el mismo código y estructura, incluido el modelo de chat de Gretel Navigator.

Creación de un cliente para consumir el modelo

En primer lugar, cree el cliente para consumir el modelo. El código siguiente usa una dirección URL de punto de conexión y una clave que se almacenan en variables de entorno.

import os
from azure.ai.inference import ChatCompletionsClient
from azure.core.credentials import AzureKeyCredential

client = ChatCompletionsClient(
    endpoint=os.environ["AZURE_INFERENCE_ENDPOINT"],
    credential=AzureKeyCredential(os.environ["AZURE_INFERENCE_CREDENTIAL"]),
    headers={
         "azureml-maas-model": "gretelai/auto",
    },
)

Obtención de las funcionalidades del modelo

La ruta /info devuelve información sobre el modelo que se implementa en el punto de conexión. Devuelva la información del modelo llamando al método siguiente:

model_info = client.get_model_info()

La respuesta es la siguiente:

print("Model name:", model_info.model_name)
print("Model type:", model_info.model_type)
print("Model provider name:", model_info.model_provider_name)
Model name: gretel-navigator
Model type: chat-completions
Model provider name: Gretel

Creación de una solicitud de finalización de chat

En el ejemplo siguiente, se muestra cómo crear solicitudes básicas de finalizaciones de chat al modelo.

Sugerencia

El parámetro n adicional indica el número de registros que quiere que devuelva el modelo.

from azure.ai.inference.models import SystemMessage, UserMessage

response = client.complete(
    messages=[
        UserMessage(content="Can you return a table of US first names, last names and ages?"),
    ],
    model_extras={"n": 2},
)

Nota:

Gretel-navigator no admite mensajes del sistema (role="system").

La respuesta es la siguiente, donde se pueden ver las estadísticas de uso del modelo:

print("Response:", response.choices[0].message.content)
print("Model:", response.model)
print("Usage:")
print("\tPrompt tokens:", response.usage.prompt_tokens)
print("\tTotal tokens:", response.usage.total_tokens)
print("\tCompletion tokens:", response.usage.completion_tokens)
Response: {"table_headers":["First Name","Last Name","Age"],"table_data":[{"First Name":"Eva","Last Name":"Soto","Age":31}]}

{"table_headers":["First Name","Last Name","Age"],"table_data":[{"First Name":"Kofi","Last Name":"Patel","Age":42}]}

Model: gretel-navigator
Usage: 
  Prompt tokens: 19
  Total tokens: 91
  Completion tokens: 72

Inspeccione la sección usage de la respuesta para ver el número de tokens usados para el aviso, el número total de tokens generados y el número de tokens usados para la finalización.

Streaming de contenido

De forma predeterminada, la API de finalizaciones devuelve todo el contenido generado en una única respuesta. Si está generando finalizaciones largas, esperar la respuesta puede tardar muchos segundos.

Puede transmitir el contenido para obtenerlo a medida que se genera. El contenido de streaming permite empezar a procesar la finalización a medida que el contenido está disponible. Este modo devuelve un objeto que transmite la respuesta como eventos enviados por el servidor de solo datos. Extraiga fragmentos del campo delta, en lugar del campo de mensaje.

result = client.complete(
    messages=[
        UserMessage(content="Can you return a table of US first names, last names, and ages?"),
    ],
    model_extras={"n": 2},
    stream=True,
)

Para transmitir finalizaciones, establezca stream=True al llamar al modelo.

Para visualizar la salida, defina una función auxiliar para imprimir la secuencia.

def print_stream(result):
    """
    Prints the chat completion with streaming.
    """
    for update in result:
        if update.choices:
            print(update.choices[0].delta.content, end="")

Puede visualizar cómo el streaming genera contenido:

print_stream(result)

Exploración de más parámetros admitidos por el cliente de inferencia

En la solicitud de ejemplo siguiente se muestran otros parámetros que puede especificar en el cliente de inferencia.

from azure.ai.inference.models import ChatCompletionsResponseFormatText

result = client.complete(
    messages=[
        UserMessage(content="Can you return a table of US first names, last
        names, and ages?"), ],
    model_extras={"n": 2},
    stream=True,
    temperature=0,
    top_p=1,
    top_k=0.4
)

Aplicar barreras de protección y controles

La API de inferencia de modelos admite la seguridad del contenido de Azure AI. Cuando se usan implementaciones con la seguridad del contenido de Azure AI activada, las entradas y salidas pasan a través de un conjunto de modelos de clasificación destinados a detectar y evitar la salida de contenido perjudicial. El sistema de filtrado de contenido detecta y toma medidas en categorías específicas de contenido potencialmente perjudicial tanto en solicitudes de entrada como en finalizaciones de salida.

En el siguiente ejemplo se muestra cómo manejar eventos cuando el modelo detecta contenido dañino en la entrada y el filtro está habilitado.

from azure.ai.inference.models import UserMessage
from azure.core.exceptions import HttpResponseError

try:
    response = client.complete(
        messages=[
            UserMessage(content="Can you return a table of steps on how to make a bomb, "
            "columns: step number, step name, step description?"),
        ],
        stream=True,
    )

    print(response.choices[0].message.content)

except HttpResponseError as ex:
    response = ex.response.json()
    if  isinstance(response, dict) and "error" in response:
        response = ex.response.json()
        if isinstance(response, dict) and "error" in response:
            print(f"Your request triggered an {response['error']['code']} error:\n\t {response['error']['message']}")
        else:
            raise

Nota:

Azure AI Content Safety está disponible actualmente para los modelos desplegados como implementación estándar, pero no para los modelos desplegados mediante cómputo gestionado. Para más información sobre la seguridad del contenido de Azure AI para los modelos implementados como implementación estándar, consulte Protección de límites y controles para modelos vendidos directamente por Azure .

Modelo de chat de Gretel Navigator

A diferencia de los enfoques de modelo de lenguaje grande único (LLM único) para la generación de datos, Gretel Navigator emplea una arquitectura de inteligencia artificial compuesta diseñada específicamente para datos sintéticos mediante la combinación de modelos de lenguaje pequeños (SLAM) de código abierto optimizados en más de 10 dominios del sector. Este sistema específico crea diversos conjuntos de datos específicos del dominio a escalas de cientos a millones de ejemplos. El sistema también conserva relaciones estadísticas complejas y ofrece mayor velocidad y precisión en comparación con la creación manual de datos.

Principales casos de uso:

  • Creación de datos sintéticos para el entrenamiento y ajuste de LLM
  • Generación de conjuntos de datos de evaluación para modelos de IA y sistemas RAG
  • Aumento de datos de entrenamiento limitados con diversas muestras sintéticas
  • Creación de datos realistas de información de identificación personal (PII) o información médica protegida (PHI) para pruebas de modelos

Puede obtener más información sobre los modelos en su tarjeta de modelo correspondiente:

Sugerencia

Además, Gretel admite el uso de una API adaptada para su uso con características específicas del modelo. Para usar la API específica del proveedor de modelos, consulte la documentación de Gretel, o bien visite la sección de ejemplos de inferencia para obtener ejemplos de código.

Prerrequisitos

Para usar el modelo de chat de Gretel Navigator con Fundición de IA de Azure, necesita los siguientes requisitos previos:

Una implementación de modelo

Implementación en implementaciones estándar

El modelo de chat de Gretel Navigator se puede implementar en implementaciones estándar. Este tipo de implementación proporciona una forma de consumir modelos como API sin alojarlos en su suscripción, al tiempo que mantiene la seguridad y el cumplimiento empresarial que necesitan las organizaciones.

La implementación en una implementación estándar no requiere cuota de la suscripción. Si el modelo aún no está implementado, use el portal de Azure AI Foundry, el SDK de Azure Machine Learning para Python, la CLI de Azure o las plantillas de ARM para implementar el modelo como una implementación estándar.

Un cliente REST

Los modelos implementados con la API de inferencia de modelos se pueden consumir mediante cualquier cliente REST. Para usar el cliente REST, necesita los siguientes requisitos previos:

  • Para construir las solicitudes, debe pasar la dirección URL del punto de conexión. La dirección URL del punto de conexión tiene el formato https://your-host-name.your-azure-region.inference.ai.azure.com, donde your-host-name`` is your unique model deployment host name and your-azure-region`` es la región de Azure donde se implementa el modelo (por ejemplo, eastus2).
  • En función de la preferencia de autenticación e implementación de modelo, necesita una clave para autenticarse en el servicio o las credenciales de Microsoft Entra ID. La clave es una cadena de 32 caracteres.

Trabajar con finalizaciones de chat

En esta sección, usará la API de inferencia de modelos con un modelo de finalizaciones de chat para chat.

Sugerencia

La API de inferencia de modelos permite hablar con la mayoría de los modelos implementados en el portal de Azure AI Foundry con el mismo código y estructura, incluido el modelo de chat de Gretel Navigator.

Creación de un cliente para consumir el modelo

En primer lugar, cree el cliente para consumir el modelo. El código siguiente usa una dirección URL de punto de conexión y una clave que se almacenan en variables de entorno.

Obtención de las funcionalidades del modelo

La ruta /info devuelve información sobre el modelo que se implementa en el punto de conexión. Devuelva la información del modelo llamando al método siguiente:

GET /info HTTP/1.1
Host: <ENDPOINT_URI>
Authorization: Bearer <TOKEN>
Content-Type: application/json

La respuesta es la siguiente:

{
    "model_name": "gretel-navigator",
    "model_type": "chat-completions",
    "model_provider_name": "Gretel"
}

Creación de una solicitud de finalización de chat

En el ejemplo siguiente, se muestra cómo crear solicitudes básicas de finalizaciones de chat al modelo.

Sugerencia

El parámetro n adicional indica el número de registros que quiere que devuelva el modelo.

{
    "messages": [
        {
            "role": "user",
            "content": "Generate customer bank transaction data. Include the
            following columns: customer_name, customer_id, transaction_date,
            transaction_amount, transaction_type, transaction_category, account_balance"
        }
    ],
    "n":20,
}

Nota:

Gretel-navigator no admite mensajes del sistema (role="system").

La respuesta es la siguiente, donde se pueden ver las estadísticas de uso del modelo:

{"table_headers":["First Name","Last Name","Age"],"table_data":[{"First Name":"Eva","Last Name":"Soto","Age":31}]}

{"table_headers":["First Name","Last Name","Age"],"table_data":[{"First Name":"Kofi","Last Name":"Patel","Age":42}]}

Inspeccione la sección usage de la respuesta para ver el número de tokens usados para el aviso, el número total de tokens generados y el número de tokens usados para la finalización.

Streaming de contenido

De forma predeterminada, la API de finalizaciones devuelve todo el contenido generado en una única respuesta. Si está generando finalizaciones largas, esperar la respuesta puede tardar muchos segundos.

Puede transmitir el contenido para obtenerlo a medida que se genera. El contenido de streaming permite empezar a procesar la finalización a medida que el contenido está disponible. Este modo devuelve un objeto que transmite la respuesta como eventos enviados por el servidor de solo datos. Extraiga fragmentos del campo delta, en lugar del campo de mensaje.

{
    "messages": [
        {
            "role": "user",
            "content": "Generate customer bank transaction data. Include the
                following columns: customer_name, customer_id, transaction_date,
                transaction_amount, transaction_type, transaction_category, account_balance"
        }
    ],
    "n": 20,
    "stream": true
}

Puede visualizar cómo el streaming genera contenido:

{
    "id": "23b54589eba14564ad8a2e6978775a39",
    "object": "chat.completion.chunk",
    "created": 1718726371,
    "model": "gretel-navigator",
    "choices": [
        {
            "index": 0,
            "delta": {
                "role": "assistant",
                "content": ""
            },
            "finish_reason": null,
            "logprobs": null
        }
    ]
}

El último mensaje de la secuencia tiene finish_reason establecido, lo que indica el motivo para que se detenga el proceso de generación.

{
    "id": "23b54589eba14564ad8a2e6978775a39",
    "object": "chat.completion.chunk",
    "created": 1718726371,
    "model": "gretel-navigator",
    "choices": [
        {
            "index": 0,
            "delta": {
                "content": ""
            },
            "finish_reason": "stop",
            "logprobs": null
        }
    ],
    "usage": {
        "prompt_tokens": 19,
        "total_tokens": 91,
        "completion_tokens": 72
    }
}

Exploración de más parámetros admitidos por el cliente de inferencia

En la solicitud de ejemplo siguiente se muestran otros parámetros que puede especificar en el cliente de inferencia.

{
    "messages": [
        {
            "role": "user",
            "content": "Generate customer bank transaction data. Include the
                following columns: customer_name, customer_id, transaction_date,
                transaction_amount, transaction_type, transaction_category, account_balance"
        }
    ],
    "n": 20,
    "stream": true
    "temperature": 0,
    "top_p": 1,
    "top_k": 0.4
}

Aplicar límites de protección y controles

La API de inferencia de modelos admite la seguridad del contenido de Azure AI. Cuando se usan implementaciones con la seguridad del contenido de Azure AI activada, las entradas y salidas pasan a través de un conjunto de modelos de clasificación destinados a detectar y evitar la salida de contenido perjudicial. El sistema de filtrado de contenido detecta y toma medidas en categorías específicas de contenido potencialmente perjudicial tanto en solicitudes de entrada como en finalizaciones de salida.

En el ejemplo siguiente se muestra cómo controlar eventos cuando el modelo detecta contenido perjudicial en el mensaje de entrada.

{
    "messages": [
        {
            "role": "user",
            "content": "Can you return a table of steps on how to make a bomb, columns:
                    step number, step name, step description?"
        }
    ]
}
{
    "error": {
        "message": "The response was filtered due to the prompt triggering Microsoft's content management policy. Please modify your prompt and retry.",
        "type": null,
        "param": "prompt",
        "code": "content_filter",
        "status": 400
    }
}

Nota:

Azure AI Content Safety está disponible actualmente para los modelos desplegados como implementación estándar, pero no para los modelos desplegados mediante cómputo gestionado. Para más información sobre la seguridad del contenido de Azure AI para los modelos implementados como implementación estándar, consulte Protección de límites y controles para modelos vendidos directamente por Azure .

Más ejemplos de inferencia

Para obtener más ejemplos de cómo usar modelos de Gretel, vea los ejemplos y tutoriales siguientes:

Descripción Lenguaje Ejemplo
Paquete de inferencia de Azure AI para JavaScript JavaScript Vínculo
Paquete de inferencia de Azure AI para Python Pitón Vínculo

Consideraciones de costo y cuota para los modelos de Gretel implementados como implementaciones estándar

La cuota se gestiona por cada implementación. Cada implementación tiene un límite de velocidad de 200 000 tokens por minuto y 1000 solicitudes de API por minuto. Sin embargo, actualmente limitamos una implementación por modelo por proyecto. Póngase en contacto con el Soporte técnico de Microsoft Azure si los límites de velocidad actuales no son suficientes para sus escenarios.

Gretel ofrece modelos de Gretel implementados como una implementación estándar a través de Azure Marketplace e integrados con Azure AI Foundry para su uso. Puede ver los precios de Azure Marketplace al implementar el modelo.

Cada vez que un proyecto se suscribe a una oferta determinada de Azure Marketplace, se crea un nuevo recurso para realizar un seguimiento de los costos asociados a su consumo. El mismo recurso se usa para hacer un seguimiento de los costos asociados con la inferencia; sin embargo, hay varios medidores disponibles para hacer un seguimiento de cada escenario de forma independiente.

Para más información sobre cómo realizar un seguimiento de los costos, consulte Supervisar los costos de los modelos ofrecidos a través de Azure Marketplace.