API вывода модели ИИ Azure | Azure AI Studio
Внимание
Элементы, обозначенные в этой статье как (предварительная версия), сейчас предлагаются в общедоступной предварительной версии. Эта предварительная версия предоставляется без соглашения об уровне обслуживания, и мы не рекомендуем ее для рабочих нагрузок. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены. Дополнительные сведения см. в статье Дополнительные условия использования Предварительных версий Microsoft Azure.
Вывод модели искусственного интеллекта Azure — это API, предоставляющий общий набор возможностей для базовых моделей и который может использоваться разработчиками для использования прогнозов из различных наборов моделей в едином и согласованном режиме. Разработчики могут взаимодействовать с различными моделями, развернутыми в Azure AI Studio, не изменяя базовый код, который они используют.
Льготы
Базовые модели, такие как языковые модели, действительно добились замечательных успехов в последние годы. Эти улучшения изменили различные области, включая обработку естественного языка и компьютерное зрение, и они включили такие приложения, как чат-боты, виртуальные помощники и службы перевода языка.
Хотя базовые модели excel в определенных доменах, они не имеют единого набора возможностей. Некоторые модели лучше подходят для конкретной задачи и даже в одной задаче, некоторые модели могут подходить к проблеме одним способом, а другие — в другой. Разработчики могут воспользоваться этим разнообразием , используя правильную модель для правильного задания , позволяя им:
- Повышение производительности в конкретной нижней задаче.
- Используйте более эффективные модели для более простых задач.
- Используйте небольшие модели, которые могут выполняться быстрее при определенных задачах.
- Создание нескольких моделей для разработки интеллектуальных интерфейсов.
Использование базовых моделей позволяет разработчикам реализовать все эти преимущества, не жертвуя переносимостью или изменением базового кода.
Availability
API вывода модели ИИ Azure доступен в следующих моделях:
Модели, развернутые в конечных точках API без сервера:
Модели, развернутые для управляемого вывода:
- Мета Лама 3 указывает семейство моделей
- Семейство моделей Phi-3
- Мистраль и семейство моделей Мистраль.
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, чтобы приступить к работе.