Azure AI Model Inference API | Azure Machine Learning
A Inferência de Modelo de IA do Azure é uma API que expõe um conjunto comum de recursos para modelos fundamentais e que pode ser usada por desenvolvedores para consumir previsões de um conjunto diversificado de modelos de maneira uniforme e consistente. Os desenvolvedores podem conversar com diferentes modelos implantados no Azure AI Studio sem alterar o código subjacente que estão usando.
Benefícios
Os modelos fundacionais, como os modelos linguísticos, registaram, de facto, progressos notáveis nos últimos anos. Esses avanços revolucionaram vários campos, incluindo processamento de linguagem natural e visão computacional, e habilitaram aplicativos como chatbots, assistentes virtuais e serviços de tradução de idiomas.
Embora os modelos fundamentais se destaquem em domínios específicos, eles carecem de um conjunto uniforme de recursos. Alguns modelos são melhores em tarefas específicas e, mesmo na mesma tarefa, alguns modelos podem abordar o problema de uma forma, enquanto outros de outra. Os desenvolvedores podem se beneficiar dessa diversidade usando o modelo certo para o trabalho certo, permitindo-lhes:
- Melhore o desempenho em uma tarefa downstream específica.
- Use modelos mais eficientes para tarefas mais simples.
- Use modelos menores que podem ser executados mais rapidamente em tarefas específicas.
- Componha vários modelos para desenvolver experiências inteligentes.
Ter uma maneira uniforme de consumir modelos fundamentais permite que os desenvolvedores percebam todos esses benefícios sem sacrificar a portabilidade ou alterar o código subjacente.
Disponibilidade
A API de Inferência de Modelo de IA do Azure está disponível nos seguintes modelos:
Modelos implantados em pontos de extremidade de API sem servidor:
- Cohere Embed V3 família de modelos
- Família de modelos Cohere Command R
- Meta Llama 2 chat família de modelos
- Meta Llama 3 instruir família de modelos
- Mistral-Pequeno
- Mistral-Grande
- Família de modelos Jais
- Família de modelos Jamba
- Família de modelos Phi-3
Modelos implantados para inferência gerenciada:
- Meta Llama 3 instruir família de modelos
- Família de modelos Phi-3
- Família de modelos Mixtral
A API é compatível com implantações de modelo OpenAI do Azure.
Nota
A API de inferência de modelo de IA do Azure está disponível em inferência gerenciada (Pontos de extremidade online gerenciados) para modelos implantados após 24 de junho de 2024. Para antecipar a API, reimplante seu ponto de extremidade se o modelo tiver sido implantado antes dessa data.
Capacidades
A seção a seguir descreve alguns dos recursos que a API expõe. Para obter uma especificação completa da API, consulte a seção de referência.
Modalidades
A API indica como os desenvolvedores podem consumir previsões para as seguintes modalidades:
- Obter informações: retorna as informações sobre o modelo implantado sob o ponto de extremidade.
- Incorporações de texto: cria um vetor de incorporação que representa o texto de entrada.
- Conclusão de texto: Cria uma conclusão para o prompt e os parâmetros fornecidos.
- Conclusão do chat: cria um modelo de resposta para uma determinada conversa de chat.
- Incorporação de imagem: cria um vetor de incorporação que representa o texto e a imagem de entrada.
Suporte ao SDK de inferência
Você pode usar clientes de inferência simplificados no idioma de sua escolha para consumir previsões de modelos que executam a API de inferência de modelo de IA do Azure.
Instale o pacote azure-ai-inference
usando seu gerenciador de pacotes, como pip:
pip install azure-ai-inference
Em seguida, você pode usar o pacote para consumir o modelo. O exemplo a seguir mostra como criar um cliente para consumir finalizações de chat:
import os
from azure.ai.inference import ChatCompletionsClient
from azure.core.credentials import AzureKeyCredential
client = ChatCompletionsClient(
endpoint=os.environ["AZUREAI_ENDPOINT_URL"],
credential=AzureKeyCredential(os.environ["AZUREAI_ENDPOINT_KEY"]),
)
Se você estiver usando um ponto de extremidade com suporte para Entra ID, você pode criar seu cliente da seguinte maneira:
import os
from azure.ai.inference import ChatCompletionsClient
from azure.identity import AzureDefaultCredential
client = ChatCompletionsClient(
endpoint=os.environ["AZUREAI_ENDPOINT_URL"],
credential=AzureDefaultCredential(),
)
Explore nossos exemplos e leia a documentação de referência da API para começar.
Extensibilidade
A API de Inferência de Modelo de IA do Azure especifica um conjunto de modalidades e parâmetros que os modelos podem assinar. No entanto, alguns modelos podem ter outros recursos que os indicados pela API. Nesses casos, a API permite que o desenvolvedor os passe como parâmetros extras na carga útil.
Ao definir um cabeçalho extra-parameters: pass-through
, a API tentará passar qualquer parâmetro desconhecido diretamente para o modelo subjacente. Se o modelo puder lidar com esse parâmetro, a solicitação será concluída.
O exemplo a seguir mostra uma solicitação que passa o parâmetro safe_prompt
suportado por Mistral-Large, que não é especificado na API de Inferência de Modelo de IA do Azure:
response = client.complete(
messages=[
SystemMessage(content="You are a helpful assistant."),
UserMessage(content="How many languages are in the world?"),
],
model_extras={
"safe_mode": True
}
)
print(response.choices[0].message.content)
Gorjeta
Ao usar o SDK do Azure AI Inference, usar model_extras
configura a solicitação automaticamente extra-parameters: pass-through
para você.
Nota
O valor padrão para extra-parameters
é error
que retorna um erro se um parâmetro extra for indicado na carga útil. Como alternativa, você pode definir extra-parameters: drop
para descartar qualquer parâmetro desconhecido na solicitação. Use esse recurso caso você esteja enviando solicitações com parâmetros extras que você sabe que o modelo não suportará, mas deseja que a solicitação seja concluída de qualquer maneira. Um exemplo típico disso é a indicação seed
do parâmetro.
Modelos com diferentes conjuntos de capacidades
A API de Inferência de Modelo de IA do Azure indica um conjunto geral de recursos, mas cada um dos modelos pode decidir implementá-los ou não. Um erro específico é retornado nos casos em que o modelo não pode suportar um parâmetro específico.
O exemplo a seguir mostra a resposta para uma solicitação de conclusão de bate-papo indicando o parâmetro reponse_format
e solicitando uma resposta no JSON
formato. No exemplo, como o modelo não suporta tal capacidade, um erro 422 é retornado ao usuário.
import json
from azure.ai.inference.models import SystemMessage, UserMessage, ChatCompletionsResponseFormatJSON
from azure.core.exceptions import HttpResponseError
try:
response = client.complete(
messages=[
SystemMessage(content="You are a helpful assistant."),
UserMessage(content="How many languages are in the world?"),
],
response_format=ChatCompletionsResponseFormatJSON()
)
except HttpResponseError as ex:
if ex.status_code == 422:
response = json.loads(ex.response._content.decode('utf-8'))
if isinstance(response, dict) and "detail" in response:
for offending in response["detail"]:
param = ".".join(offending["loc"])
value = offending["input"]
print(
f"Looks like the model doesn't support the parameter '{param}' with value '{value}'"
)
else:
raise ex
Gorjeta
Você pode inspecionar a propriedade detail.loc
para entender a localização do parâmetro ofensivo e detail.input
ver o valor que foi passado na solicitação.
Segurança dos Conteúdos
A API de inferência de modelo de IA do Azure dá suporte à Segurança de Conteúdo do Azure AI. Ao usar implantações com a Segurança de Conteúdo de IA do Azure ligada, as entradas e saídas passam por um conjunto de modelos de classificação destinados a detetar e prevenir a saída de conteúdo nocivo. O sistema de filtragem de conteúdo (visualização) deteta e executa ações em categorias específicas de conteúdo potencialmente nocivo em prompts de entrada e finalizações de saída.
O exemplo a seguir mostra a resposta para uma solicitação de conclusão de bate-papo que acionou a segurança do conteúdo.
from azure.ai.inference.models import AssistantMessage, UserMessage, SystemMessage
from azure.core.exceptions import HttpResponseError
try:
response = client.complete(
messages=[
SystemMessage(content="You are an AI assistant that helps people find information."),
UserMessage(content="Chopping tomatoes and cutting them into cubes or wedges are great ways to practice your knife skills."),
]
)
print(response.choices[0].message.content)
except HttpResponseError as ex:
if ex.status_code == 400:
response = json.loads(ex.response._content.decode('utf-8'))
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 ex
else:
raise ex
Introdução
A API de Inferência de Modelo de IA do Azure é atualmente suportada em determinados modelos implantados como pontos de extremidade de API sem servidor e pontos de extremidade online gerenciados. Implante qualquer um dos modelos suportados e use exatamente o mesmo código para consumir suas previsões.
A biblioteca azure-ai-inference
de cliente faz inferência, incluindo conclusão de chat, para modelos de IA implantados pelo Azure AI Studio e pelo Azure Machine Learning Studio. Ele suporta pontos de extremidade de API sem servidor e pontos de extremidade de computação gerenciada (anteriormente conhecidos como pontos de extremidade on-line gerenciados).
Explore nossos exemplos e leia a documentação de referência da API para começar.