API обновления развертывания обученной модели
Обновляет определённые свойства развертывания обученной модели.
Запрос
POST _ml/trained_models/<deployment_id>/deployment/_update
Предварительные условия
Требуется привилегия кластера manage_ml. Эта привилегия включена в встроенную роль machine_learning_admin.
Описание
Вы можете обновить развертывание обученной модели, чей assignment_state равен started. Вы можете включить адаптивные распределения для автоматического масштабирования распределений моделей вверх и вниз в зависимости от фактических потребностей в ресурсах процессов. Либо вы можете вручную увеличить или уменьшить количество распределений развертывания модели.
Параметры пути
-
<deployment_id> - (Обязательно, строка) Уникальный идентификатор развертывания модели.
Тело запроса
-
adaptive_allocations -
(Необязательно, объект) Объект конфигурации адаптивных распределений. Если включено, количество распределений модели устанавливается на основе текущей нагрузки, полученной процессом. При высокой нагрузке автоматически создаётся новое распределение модели (учитывая значение
max_number_of_allocations, если оно задано). При низкой нагрузке автоматически удаляется распределение модели (учитывая значениеmin_number_of_allocations, если оно задано). Еслиadaptive_allocationsвключено, не устанавливайте количество распределений вручную.-
enabled - (Необязательно, булево) Если
true, тоadaptive_allocationsвключено. По умолчаниюfalse. -
max_number_of_allocations - (Необязательно, целое число) Указывает максимальное число распределений для масштабирования. Если задано, оно должно быть больше или равно
min_number_of_allocations. -
min_number_of_allocations - (Необязательно, целое число) Указывает минимальное число распределений для масштабирования. Если задано, оно должно быть больше или равно
0. Если не определено, развертывание масштабируется до0.
-
-
number_of_allocations - (Необязательно, целое число) Общее количество распределений, назначенных этой модели на узлах машинного обучения. Увеличение этого значения обычно увеличивает пропускную способность. Если
adaptive_allocationsвключено, не устанавливайте это значение, так как оно автоматически устанавливается.
Примеры
Следующий пример обновляет развертывание для elastic__distilbert-base-uncased-finetuned-conll03-english обученной модели, чтобы иметь 4 распределения:
resp = client.ml.update_trained_model_deployment(
model_id="elastic__distilbert-base-uncased-finetuned-conll03-english",
number_of_allocations=4,
)
print(resp) response = client.ml.update_trained_model_deployment(
model_id: 'elastic__distilbert-base-uncased-finetuned-conll03-english',
body: {
number_of_allocations: 4
}
)
puts response const response = await client.ml.updateTrainedModelDeployment({
model_id: "elastic__distilbert-base-uncased-finetuned-conll03-english",
number_of_allocations: 4,
});
console.log(response); POST _ml/trained_models/elastic__distilbert-base-uncased-finetuned-conll03-english/deployment/_update
{
"number_of_allocations": 4
} API возвращает следующие результаты:
{
"assignment": {
"task_parameters": {
"model_id": "elastic__distilbert-base-uncased-finetuned-conll03-english",
"model_bytes": 265632637,
"threads_per_allocation" : 1,
"number_of_allocations" : 4,
"queue_capacity" : 1024
},
"routing_table": {
"uckeG3R8TLe2MMNBQ6AGrw": {
"current_allocations": 1,
"target_allocations": 4,
"routing_state": "started",
"reason": ""
}
},
"assignment_state": "started",
"start_time": "2022-11-02T11:50:34.766591Z"
}
} Следующий пример обновляет развертывание для elastic__distilbert-base-uncased-finetuned-conll03-english обученной модели, чтобы включить адаптивные распределения с минимальным числом 3 распределения и максимальным числом 10:
resp = client.ml.update_trained_model_deployment(
model_id="elastic__distilbert-base-uncased-finetuned-conll03-english",
adaptive_allocations={
"enabled": True,
"min_number_of_allocations": 3,
"max_number_of_allocations": 10
},
)
print(resp) const response = await client.ml.updateTrainedModelDeployment({
model_id: "elastic__distilbert-base-uncased-finetuned-conll03-english",
adaptive_allocations: {
enabled: true,
min_number_of_allocations: 3,
max_number_of_allocations: 10,
},
});
console.log(response); POST _ml/trained_models/elastic__distilbert-base-uncased-finetuned-conll03-english/deployment/_update
{
"adaptive_allocations": {
"enabled": true,
"min_number_of_allocations": 3,
"max_number_of_allocations": 10
}
}
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/update-trained-model-deployment.html