Поделиться через


API вывода модели ИИ Azure | Azure AI Studio

Внимание

Некоторые функции, описанные в этой статье, могут быть доступны только в предварительной версии. Эта предварительная версия предоставляется без соглашения об уровне обслуживания, и мы не рекомендуем ее для рабочих нагрузок. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены. Дополнительные сведения см. в статье Дополнительные условия использования Предварительных версий Microsoft Azure.

Вывод модели искусственного интеллекта Azure — это API, предоставляющий общий набор возможностей для базовых моделей и который может использоваться разработчиками для использования прогнозов из различных наборов моделей в едином и согласованном режиме. Разработчики могут взаимодействовать с различными моделями, развернутыми в Azure AI Studio, не изменяя базовый код, который они используют.

Льготы

Базовые модели, такие как языковые модели, действительно добились замечательных успехов в последние годы. Эти улучшения изменили различные области, включая обработку естественного языка и компьютерное зрение, и они включили такие приложения, как чат-боты, виртуальные помощники и службы перевода языка.

Хотя базовые модели excel в определенных доменах, они не имеют единого набора возможностей. Некоторые модели лучше подходят для конкретной задачи и даже в одной задаче, некоторые модели могут подходить к проблеме одним способом, а другие — в другой. Разработчики могут воспользоваться этим разнообразием , используя правильную модель для правильного задания , позволяя им:

  • Повышение производительности в конкретной нижней задаче.
  • Используйте более эффективные модели для более простых задач.
  • Используйте небольшие модели, которые могут выполняться быстрее при определенных задачах.
  • Создание нескольких моделей для разработки интеллектуальных интерфейсов.

Использование базовых моделей позволяет разработчикам реализовать все эти преимущества, не жертвуя переносимостью или изменением базового кода.

Availability

API вывода модели ИИ Azure доступен в следующих моделях:

Модели, развернутые в конечных точках API без сервера:

Модели, развернутые для управляемого вывода:

API совместим с развертываниями моделей Azure OpenAI.

Примечание.

API вывода модели искусственного интеллекта Azure доступен в управляемом выводе (управляемые конечные точки в Интернете) для моделей, развернутых после 24 июня 2024 г. Чтобы перейти к API, повторно разверните конечную точку, если модель была развернута до такой даты.

Возможности

В следующем разделе описаны некоторые возможности, предоставляемые API. Полные спецификации API см. в разделе справочника.

Условия

API указывает, как разработчики могут использовать прогнозы для следующих модальностей:

Поддержка пакета SDK для вывода

Вы можете использовать оптимизированные клиенты вывода на выбранном языке, чтобы использовать прогнозы от моделей, работающих с API вывода модели ИИ Azure.

Установите пакет azure-ai-inference с помощью диспетчера пакетов, например pip:

pip install azure-ai-inference

Затем можно использовать пакет для использования модели. В следующем примере показано, как создать клиент для использования завершения чата:

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

model = ChatCompletionsClient(
    endpoint=os.environ["AZUREAI_ENDPOINT_URL"],
    credential=AzureKeyCredential(os.environ["AZUREAI_ENDPOINT_KEY"]),
)

Если вы используете конечную точку с поддержкой идентификатора Записи, вы можете создать клиент следующим образом:

import os
from azure.ai.inference import ChatCompletionsClient
from azure.identity import AzureDefaultCredential

model = ChatCompletionsClient(
    endpoint=os.environ["AZUREAI_ENDPOINT_URL"],
    credential=AzureDefaultCredential(),
)

Ознакомьтесь с нашими примерами и ознакомьтесь со справочной документацией по API, чтобы приступить к работе.

Расширяемость

API вывода модели ИИ Azure задает набор модальности и параметров, на которые модели могут подписаться. Однако некоторые модели могут иметь дополнительные возможности, которые указывает API. В этих случаях API позволяет разработчику передавать их в качестве дополнительных параметров в полезных данных.

Задав заголовок extra-parameters: pass-through, API попытается передать любой неизвестный параметр непосредственно базовой модели. Если модель может обработать этот параметр, запрос завершится.

В следующем примере показан запрос, который передает параметр safe_prompt , поддерживаемый Mistral-Large, который не указан в API вывода модели ИИ Azure.

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

response = model.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)

Совет

При использовании пакета SDK для вывода искусственного интеллекта Azure с помощью model_extras автоматической настройки запроса extra-parameters: pass-through .

Примечание.

Значение extra-parameters по умолчанию , error которое возвращает ошибку, если дополнительный параметр указан в полезных данных. Кроме того, можно задать extra-parameters: drop для удаления любого неизвестного параметра в запросе. Используйте эту возможность, если вы будете отправлять запросы с дополнительными параметрами, которые вы знаете, что модель не будет поддерживаться, но вы хотите, чтобы запрос завершился в любом случае. Типичным примером этого является указание seed параметра.

Модели с разнородным набором возможностей

API вывода модели ИИ Azure указывает общий набор возможностей, но каждая из моделей может решить реализовать их или нет. Определенная ошибка возвращается в тех случаях, когда модель не может поддерживать определенный параметр.

В следующем примере показан ответ на запрос завершения чата, указывающий параметр reponse_format и запрос ответа в JSON формате. В примере, так как модель не поддерживает такую возможность, пользователю возвращается ошибка 422.

import json
from azure.ai.inference.models import SystemMessage, UserMessage, ChatCompletionsResponseFormatJSON
from azure.core.exceptions import HttpResponseError

try:
    response = model.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

Совет

Вы можете проверить свойство details.loc , чтобы понять расположение оскорбляющего параметра и details.input просмотреть значение, переданное в запросе.

Безопасность содержимого

API вывода модели ИИ Azure поддерживает безопасность содержимого ИИ Azure. При использовании развертываний с безопасностью содержимого ИИ Azure входные и выходные данные проходят через ансамбль моделей классификации, направленных на обнаружение и предотвращение вывода вредного содержимого. Система фильтрации содержимого обнаруживает и принимает меры по определенным категориям потенциально вредного содержимого как в запросах ввода, так и в завершении выходных данных.

В следующем примере показан ответ на запрос завершения чата, который активировал безопасность содержимого.

from azure.ai.inference.models import AssistantMessage, UserMessage, SystemMessage
from azure.core.exceptions import HttpResponseError

try:
    response = model.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

Начало работы

API вывода модели ИИ Azure в настоящее время поддерживается в некоторых моделях, развернутых как конечные точки БЕССерверных API и Управляемые сетевые конечные точки. Разверните любую из поддерживаемых моделей и используйте тот же код для использования прогнозов.

Клиентская библиотека azure-ai-inference делает вывод, включая завершение чата, для моделей ИИ, развернутых Azure AI Studio и Машинное обучение Azure Studio. Она поддерживает бессерверные конечные точки API и конечные точки управляемых вычислений (ранее известные как управляемые сетевые конечные точки).

Ознакомьтесь с нашими примерами и ознакомьтесь со справочной документацией по API, чтобы приступить к работе.