Referencia de la API REST de inferencia del modelo de Azure AI
La inferencia del modelo de Azure AI es una API que expone un conjunto común de funcionalidades para los modelos fundamentales y que los desarrolladores pueden usar para consumir predicciones de un conjunto diverso de modelos de forma uniforme y coherente. Los desarrolladores pueden hablar con diferentes modelos implementados en el portal de Azure AI Foundry sin cambiar el código subyacente que usan.
Beneficios
Los modelos fundamentales, como los modelos de lenguaje, han hecho avances notables en los últimos años. Estos avances han revolucionado varios campos, incluidos el procesamiento de lenguaje natural y computer vision, y han habilitado aplicaciones como bots de chat, asistentes virtuales y servicios de traducción de idiomas.
Aunque los modelos fundamentales se destacan en dominios específicos, carecen de un conjunto uniforme de funcionalidades. Algunos modelos son mejores en tareas específicas e incluso en la misma tarea, algunos modelos pueden abordar el problema de una manera, mientras que otros en otro. Los desarrolladores pueden beneficiarse de esta diversidad usar el modelo adecuado para el trabajo adecuado permitirles:
- Mejore el rendimiento en una tarea de bajada específica.
- Use modelos más eficaces para tareas más sencillas.
- Use modelos más pequeños que se puedan ejecutar más rápido en tareas específicas.
- Compone varios modelos para desarrollar experiencias inteligentes.
Tener una manera uniforme de consumir modelos fundamentales permite a los desarrolladores obtener todas esas ventajas sin sacrificar la portabilidad ni cambiar el código subyacente.
Compatibilidad con el SDK de inferencia
El paquete de inferencia de Azure AI permite consumir todos los modelos que admiten la API de inferencia de modelos de Azure AI y cambiar fácilmente entre ellos. El paquete de inferencia de Azure AI forma parte del SDK de Azure AI Foundry.
Idioma | Documentación | Paquete | Ejemplos |
---|---|---|---|
C# | de referencia de | azure-ai-inference (NuGet) | ejemplos de C# |
Java | de referencia de | azure-ai-inference (Maven) | ejemplos de Java |
JavaScript | de referencia de | @azure/ai-inferencia (npm) | ejemplos de JavaScript |
Pitón | de referencia de | azure-ai-inference (PyPi) | ejemplos de Python |
Capacidades
En la sección siguiente se describen algunas de las funcionalidades que expone la API:
Modalidades
La API indica cómo los desarrolladores pueden consumir predicciones para las siguientes modalidades:
- Obtener información: devuelve la información sobre el modelo implementado en el punto de conexión.
- incrustaciones de texto: crea un vector de inserción que representa el texto de entrada.
- finalizaciones de chat: crea una respuesta de modelo para la conversación de chat dada.
- incrustaciones de imágenes: crea un vector de inserción que representa el texto de entrada y la imagen.
Extensibilidad
La API de inferencia de modelos de Azure AI especifica un conjunto de modalidades y parámetros a los que los modelos pueden suscribirse. Sin embargo, algunos modelos pueden tener más funcionalidades que indica la API. En esos casos, la API permite al desarrollador pasarlos como parámetros adicionales en la carga.
Al establecer un encabezado extra-parameters: pass-through
, la API intentará pasar cualquier parámetro desconocido directamente al modelo subyacente. Si el modelo puede controlar ese parámetro, se completa la solicitud.
En el ejemplo siguiente se muestra una solicitud que pasa el parámetro safe_prompt
compatible con Mistral-Large, que no se especifica en la API de inferencia de modelos de Azure AI.
de solicitud de
POST /chat/completions?api-version=2024-05-01-preview
Authorization: Bearer <bearer-token>
Content-Type: application/json
extra-parameters: pass-through
{
"messages": [
{
"role": "system",
"content": "You are a helpful assistant"
},
{
"role": "user",
"content": "Explain Riemann's conjecture in 1 paragraph"
}
],
"temperature": 0,
"top_p": 1,
"response_format": { "type": "text" },
"safe_prompt": true
}
Nota
El valor predeterminado de extra-parameters
es error
que devuelve un error si se indica un parámetro adicional en la carga útil. Como alternativa, puede establecer extra-parameters: drop
para quitar cualquier parámetro desconocido en la solicitud. Use esta funcionalidad en caso de que se envíen solicitudes con parámetros adicionales que sabe que el modelo no admitirá, pero quiere que la solicitud se complete de todos modos. Un ejemplo típico de esto es indicar seed
parámetro.
Modelos con un conjunto dispar de funcionalidades
La API de inferencia de modelos de Azure AI indica un conjunto general de funcionalidades, pero cada uno de los modelos puede decidir implementarlas o no. Se devuelve un error específico en aquellos casos en los que el modelo no puede admitir un parámetro específico.
En el ejemplo siguiente se muestra la respuesta de una solicitud de finalización del chat que indica el parámetro reponse_format
y se solicita una respuesta en formato JSON
. En el ejemplo, dado que el modelo no admite dicha funcionalidad, se devuelve un error 422 al usuario.
de solicitud de
POST /chat/completions?api-version=2024-05-01-preview
Authorization: Bearer <bearer-token>
Content-Type: application/json
{
"messages": [
{
"role": "system",
"content": "You are a helpful assistant"
},
{
"role": "user",
"content": "Explain Riemann's conjecture in 1 paragraph"
}
],
"temperature": 0,
"top_p": 1,
"response_format": { "type": "json_object" },
}
de respuesta de
{
"status": 422,
"code": "parameter_not_supported",
"detail": {
"loc": [ "body", "response_format" ],
"input": "json_object"
},
"message": "One of the parameters contain invalid values."
}
Propina
Puede inspeccionar la propiedad details.loc
para comprender la ubicación del parámetro infractor y details.input
para ver el valor que se pasó en la solicitud.
Seguridad del contenido
La API de inferencia de modelos de Azure AI admite seguridad de contenido de Azure AI. Al usar implementaciones con seguridad de contenido de Azure AI en, 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 (versión preliminar) 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 la respuesta de una solicitud de finalización de chat que ha desencadenado la seguridad del contenido.
de solicitud de
POST /chat/completions?api-version=2024-05-01-preview
Authorization: Bearer <bearer-token>
Content-Type: application/json
{
"messages": [
{
"role": "system",
"content": "You are a helpful assistant"
},
{
"role": "user",
"content": "Chopping tomatoes and cutting them into cubes or wedges are great ways to practice your knife skills."
}
],
"temperature": 0,
"top_p": 1,
}
de respuesta de
{
"status": 400,
"code": "content_filter",
"message": "The response was filtered",
"param": "messages",
"type": null
}
Empezar
La API de inferencia de modelos de Azure AI está disponible en los recursos de Azure AI Services. Puede empezar a trabajar con él de la misma manera que cualquier otro producto de Azure en el que crear y configurar el recurso para la inferencia del modelo de Azure AI, o instancia del servicio, en la suscripción de Azure. Puede crear tantos recursos como sea necesario y configurarlos de forma independiente en caso de que tenga varios equipos con requisitos diferentes.
Una vez creado un recurso de Azure AI Services, debe implementar un modelo para poder empezar a realizar llamadas API. De forma predeterminada, no hay modelos disponibles en él, por lo que puede controlar los que se van a iniciar. Consulte el tutorial Creación de la primera implementación de modelos en la inferencia de modelos de Azure AI.