Создание конечных точек обслуживания модели создания модели искусственного интеллекта
Из этой статьи вы узнаете, как создавать конечные точки обслуживания моделей, которые развертывают и обслуживают созданные модели искусственного интеллекта.
Мозаичная служба моделей ИИ поддерживает следующие модели:
Внешние модели. Это генеривные модели, размещенные за пределами Databricks. Конечные точки, обслуживающие внешние модели, могут централизованно управляться, и клиенты могут устанавливать ограничения скорости и управление доступом для них. К примерам относятся модели создания ИИ, такие как, GPT-4 OpenAI, Anthropic в Клоде и другие.
Современные модели открытого фонда, предоставляемые API-интерфейсами модели Foundation. Эти модели являются курируемыми архитектурами базовых моделей, поддерживающими оптимизированное вывод. Базовые модели, такие как Meta-Llama-3.1-70B-Instruct, GTE-Large и Mistral-7B, доступны для немедленного использования с оплатой за токен . Рабочие нагрузки, использующие базовые или точно настроенные модели, можно развернуть с гарантиями производительности с помощью подготовленной пропускной способности.
Служба моделей предоставляет следующие параметры для создания конечной точки обслуживания модели:
- Пользовательский интерфейс обслуживания
- REST API
- Пакет SDK для развертываний MLflow
Сведения о создании конечных точек, обслуживающих традиционные модели машинного обучения или Python, см. в разделе "Создание конечных точек службы пользовательских моделей".
Требования
- Рабочая область Databricks в поддерживаемом регионе.
- Для создания конечных точек с помощью пакета SDK для развертываний MLflow необходимо установить клиент развертывания MLflow. Чтобы установить его, выполните следующую команду:
import mlflow.deployments
client = mlflow.deployments.get_deploy_client("databricks")
Создание конечной точки обслуживания базовой модели
Вы можете создать конечную точку, которая обслуживает точно настроенные варианты базовых моделей, доступных с помощью API-интерфейсов модели Foundation, подготовленных пропускной способностью. См. статью "Создание подготовленной конечной точки пропускной способности с помощью REST API".
Для базовых моделей, доступных с помощью API-интерфейсов модели Foundation за токен, Databricks автоматически предоставляет определенные конечные точки для доступа к поддерживаемым моделям в рабочей области Databricks. Чтобы получить к ним доступ, выберите вкладку "Обслуживание " в левой боковой панели рабочей области. API-интерфейсы модели foundation находятся в верхней части представления списка конечных точек.
Сведения о запросах этих конечных точек см. в разделе "Модели создания запросов и искусственного интеллекта".
Создание конечной точки обслуживания внешней модели
Ниже описано, как создать конечную точку, которая служит модели создания искусственного интеллекта, доступной с помощью внешних моделей Databricks.
Обслуживающий пользовательский интерфейс
- В поле "Имя" укажите имя конечной точки.
- В разделе "Обслуживаемые сущности "
- Щелкните поле "Сущность", чтобы открыть форму "Выбор обслуживаемой сущности".
- Выберите внешнюю модель.
- Выберите поставщик модели, который вы хотите использовать.
- Щелкните Confirm (Подтвердить).
- Укажите имя внешней модели, которую вы хотите использовать. Форма динамически обновляется на основе выбранного фрагмента. См. доступные внешние модели.
- Выберите тип задачи. Доступные задачи : чат, завершение и внедрение.
- Укажите сведения о конфигурации для доступа к выбранному поставщику моделей. Обычно это секрет, ссылающийся на личный маркер доступа, который требуется использовать конечной точке для доступа к этой модели.
- Нажмите кнопку Создать. Откроется страница "Обслуживание конечных точек" с состоянием конечной точки обслуживания, отображаемой как "Не готово".
REST API
Внимание
Параметры REST API для создания конечных точек обслуживания, обслуживающих внешние модели, находятся в общедоступной предварительной версии.
В следующем примере создается конечная точка, которая служит первой версией модели, предоставленной text-embedding-ada-002
OpenAI.
Дополнительные сведения о параметрах конфигурации конечной точки см. в разделе POST /api/2.0/service-endpoints .
{
"name": "openai_endpoint",
"config":
{
"served_entities":
[
{
"name": "openai_embeddings",
"external_model":{
"name": "text-embedding-ada-002",
"provider": "openai",
"task": "llm/v1/embeddings",
"openai_config":{
"openai_api_key": "{{secrets/my_scope/my_openai_api_key}}"
}
}
}
]
},
"rate_limits": [
{
"calls": 100,
"key": "user",
"renewal_period": "minute"
}
],
"tags": [
{
"key": "team",
"value": "gen-ai"
}
]
}
Далее представлен пример ответа.
{
"name": "openai_endpoint",
"creator": "[email protected]",
"creation_timestamp": 1699617587000,
"last_updated_timestamp": 1699617587000,
"state": {
"ready": "READY"
},
"config": {
"served_entities": [
{
"name": "openai_embeddings",
"external_model": {
"provider": "openai",
"name": "text-embedding-ada-002",
"task": "llm/v1/embeddings",
"openai_config": {
"openai_api_key": "{{secrets/my_scope/my_openai_api_key}}"
}
},
"state": {
"deployment": "DEPLOYMENT_READY",
"deployment_state_message": ""
},
"creator": "[email protected]",
"creation_timestamp": 1699617587000
}
],
"traffic_config": {
"routes": [
{
"served_model_name": "openai_embeddings",
"traffic_percentage": 100
}
]
},
"config_version": 1
},
"tags": [
{
"key": "team",
"value": "gen-ai"
}
],
"id": "69962db6b9db47c4a8a222d2ac79d7f8",
"permission_level": "CAN_MANAGE",
"route_optimized": false
}
Пакет SDK для развертываний MLflow
В следующем примере создается конечная точка для внедрения с помощью OpenAI text-embedding-ada-002
.
Для внешних конечных точек модели необходимо указать ключи API для поставщика моделей, который вы хотите использовать. Дополнительные сведения о схеме запроса и ответа см. в разделе POST /api/2.0/services-endpoints в REST API. Пошаговое руководство см . в руководстве по созданию конечных точек внешней модели для запроса моделей OpenAI.
Вы также можете создавать конечные точки для завершения и задач чата, как указано task
в поле в external_model
разделе конфигурации. Дополнительные сведения о поддерживаемых моделях и поставщиках для каждой задачи см . в разделе "Внешние модели и модели ИИ Для мозаики".
from mlflow.deployments import get_deploy_client
client = get_deploy_client("databricks")
endpoint = client.create_endpoint(
name="chat",
config={
"served_entities": [
{
"name": "completions",
"external_model": {
"name": "gpt-4",
"provider": "openai",
"task": "llm/v1/chat",
"openai_config": {
"openai_api_key": "{{secrets/scope/key}}",
},
},
}
],
},
)
assert endpoint == {
"name": "chat",
"creator": "[email protected]",
"creation_timestamp": 0,
"last_updated_timestamp": 0,
"state": {...},
"config": {...},
"tags": [...],
"id": "88fd3f75a0d24b0380ddc40484d7a31b",
}
Обновление конечных точек обслуживания модели
После включения конечной точки модели можно настроить конфигурацию вычислений в нужном виде. Эта конфигурация особенно полезна, если требуются дополнительные ресурсы для модели. Размер рабочей нагрузки и конфигурация вычислений играют ключевую роль в выборе ресурсов, выделяемых для обслуживания модели.
Пока новая конфигурация не будет готова, старая конфигурация будет обслуживать трафик прогнозирования. Пока выполняется обновление, еще одно обновление невозможно сделать. В пользовательском интерфейсе обслуживания можно отменить обновление конфигурации во время выполнения, нажав кнопку "Отменить обновление " в правом верхнем углу страницы сведений о конечной точке. Эта функция доступна только в пользовательском интерфейсе обслуживания.
external_model
При наличии в конфигурации конечной точки список обслуживающих сущностей может иметь только один объект served_entity. Существующие конечные точки с external_model
не может быть обновлены, чтобы больше не было external_model
. Если конечная точка создана без нее external_model
, ее нельзя обновить, чтобы добавить external_model
.
REST API
Чтобы обновить конечную точку, ознакомьтесь с документацией по конфигурации обновления REST API для сведений о схеме запроса и ответа.
{
"name": "openai_endpoint",
"served_entities":
[
{
"name": "openai_chat",
"external_model":{
"name": "gpt-4",
"provider": "openai",
"task": "llm/v1/chat",
"openai_config":{
"openai_api_key": "{{secrets/my_scope/my_openai_api_key}}"
}
}
}
]
}
Пакет SDK для развертываний MLflow
Чтобы обновить конечную точку, ознакомьтесь с документацией по конфигурации обновления REST API для сведений о схеме запроса и ответа.
from mlflow.deployments import get_deploy_client
client = get_deploy_client("databricks")
endpoint = client.update_endpoint(
endpoint="chat",
config={
"served_entities": [
{
"name": "chats",
"external_model": {
"name": "gpt-4",
"provider": "openai",
"task": "llm/v1/chat",
"openai_config": {
"openai_api_key": "{{secrets/scope/key}}",
},
},
}
],
},
)
assert endpoint == {
"name": "chats",
"creator": "[email protected]",
"creation_timestamp": 0,
"last_updated_timestamp": 0,
"state": {...},
"config": {...},
"tags": [...],
"id": "88fd3f75a0d24b0380ddc40484d7a31b",
}
rate_limits = client.update_endpoint(
endpoint="chat",
config={
"rate_limits": [
{
"key": "user",
"renewal_period": "minute",
"calls": 10,
}
],
},
)
assert rate_limits == {
"rate_limits": [
{
"key": "user",
"renewal_period": "minute",
"calls": 10,
}
],
}
Дополнительные ресурсы
- Таблицы вывода для моделей мониторинга и отладки.
- Модели создания запросов и искусственного интеллекта.
- Внешние модели в мозаичной модели ИИ, обслуживающие модели.