Partilhar via


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:

Modelos implantados para inferência gerenciada:

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:

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.