训练模型自动伸缩
编辑训练模型自动伸缩
编辑您可以为每个训练模型部署启用自动伸缩。自动伸缩允许 Elasticsearch 根据工作负载需求自动调整模型部署可以使用的资源。
有两种方法可以启用自动伸缩
- 通过 API 启用自适应分配
- 在 Kibana 中启用自适应资源
为了充分利用模型自动伸缩,强烈建议启用 Elasticsearch 部署自动伸缩。
通过 API 启用自动伸缩 - 自适应分配
编辑模型分配是 NLP 任务的独立工作单元。如果您手动设置模型的线程数和分配数,即使并非所有可用资源都得到充分利用,或者模型的负载需要更多资源,它们也会保持不变。您可以启用自适应分配,而不是手动设置分配数量,而是根据进程的负载设置分配数量。这可以帮助您更轻松地管理性能和成本。(请参阅 定价计算器,了解有关可能成本的更多信息。)
启用自适应分配后,模型的分配数量会根据当前负载自动设置。当负载较高时,会自动创建一个新的模型分配。当负载较低时,会自动删除一个模型分配。您可以明确设置最小和最大分配数量;自动伸缩将在这些限制范围内进行。
您可以使用以下方式启用自适应分配
- 用于 ELSER、E5 和通过 Eland 上传的模型的推理端点 API,这些模型用作推理服务。
- 在机器学习节点上部署的训练模型的 启动训练模型部署或更新训练模型部署 API。
如果新分配适合当前的机器学习节点,它们将立即启动。如果创建新的模型分配需要更多资源容量,那么如果启用了机器学习自动伸缩,您的机器学习节点将被扩大,以便为新分配提供足够的资源。模型分配的数量可以缩减到 0。除非您明确将最大分配数量设置为更多,否则它们不能扩展到超过 32 个分配。必须为每个部署和 推理端点独立设置自适应分配。
针对典型用例进行优化
编辑您可以针对典型用例(例如搜索和摄取)优化模型部署。当您针对摄取进行优化时,吞吐量会更高,这会增加可以并行执行的推理请求的数量。当您针对搜索进行优化时,搜索过程中的延迟会更低。
- 如果要针对摄取进行优化,请将线程数设置为
1
("threads_per_allocation": 1
)。 - 如果要针对搜索进行优化,请将线程数设置为大于
1
。增加线程数将使搜索过程的性能更高。
在 Kibana 中启用自动伸缩 - 自适应资源
编辑您可以在启动或更新模型部署时为模型启用自适应资源。自适应资源使 Elasticsearch 可以根据进程的负载来扩大或缩小可用资源。这可以帮助您更轻松地管理性能和成本。启用自适应资源后,模型部署使用的 vCPU 数量会根据当前负载自动设置。当负载较高时,进程可以使用的 vCPU 数量会自动增加。当负载较低时,进程可以使用的 vCPU 数量会自动减少。
您可以为训练模型部署选择三个级别的资源使用;自动伸缩将在所选级别的范围内进行。
请参阅模型部署资源矩阵部分中的表格,以了解您所选级别的设置。
模型部署资源矩阵
编辑训练模型部署使用的资源取决于三个因素
- 您的集群环境(无服务器、云或本地)
- 您为之优化模型部署的用例(摄取或搜索)
- 是否启用具有自适应分配/资源的模型自动伸缩以具有动态资源,或者禁用静态资源
如果您在本地使用 Elasticsearch,则 vCPU 级别范围派生自 total_ml_processors
和 max_single_ml_node_processors
值。使用 获取机器学习信息 API 检查这些值。下表显示了在启用或禁用自适应资源时云中可用的分配、线程和 vCPU 数量。
在无服务器上,所有项目类型都会自动启用自适应分配。但是,“自适应资源”控件不会在 Kibana 中为可观察性和安全性项目显示。
云中针对摄取优化的部署
编辑在针对摄取优化的部署中,我们最大限度地增加了模型分配的数量。
已启用自适应资源
编辑级别 | 分配 | 线程 | vCPU |
---|---|---|---|
低 |
如果有,则动态为 0 到 2 |
1 |
如果有,则动态为 0 到 2 |
中 |
动态为 1 到 32 |
1 |
动态为 1 到 32 或云控制台中设置的限制中的较小值 |
高 |
动态为 1 到云控制台中设置的限制* |
1 |
动态为 1 到云控制台中设置的限制 |
* 云控制台不直接设置分配限制;它只设置 vCPU 限制。此 vCPU 限制间接决定了分配的数量,计算方式为 vCPU 限制除以线程数。
已禁用自适应资源
编辑级别 | 分配 | 线程 | vCPU |
---|---|---|---|
低 |
如果有,则静态为 2,否则为 1 |
1 |
如果有,则为 2 |
中 |
静态为 32 或云控制台中设置的限制中的较小值 |
1 |
如果有,则为 32 |
高 |
静态为云控制台中设置的最大可用* |
1 |
静态为云控制台中设置的最大可用 |
* 云控制台不直接设置分配限制;它只设置 vCPU 限制。此 vCPU 限制间接决定了分配的数量,计算方式为 vCPU 限制除以线程数。
云中针对搜索优化的部署
编辑在针对搜索优化的部署中,我们最大限度地增加了线程数。可以声明的最大线程数取决于您的架构所拥有的硬件。
已启用自适应资源
编辑级别 | 分配 | 线程 | vCPU |
---|---|---|---|
低 |
1 |
2 |
2 |
中 |
动态为 1 到 2(如果 threads=16) |
硬件允许的最大值(例如,16) |
动态为 1 到 32 |
高 |
动态为 1 到云控制台中设置的限制* |
硬件允许的最大值(例如,16) |
动态为 1 到云控制台中设置的限制 |
* 云控制台不直接设置分配限制;它只设置 vCPU 限制。此 vCPU 限制间接决定了分配的数量,计算方式为 vCPU 限制除以线程数。
已禁用自适应资源
编辑级别 | 分配 | 线程 | vCPU |
---|---|---|---|
低 |
如果可用,则静态为 1 |
2 |
如果有,则为 2 |
中 |
静态为 2(如果 threads=16) |
硬件允许的最大值(例如,16) |
如果有,则为 32 |
高 |
静态为云控制台中设置的最大可用* |
硬件允许的最大值(例如,16) |
静态为云控制台中设置的最大可用 |
* 云控制台不直接设置分配限制;它只设置 vCPU 限制。此 vCPU 限制间接决定了分配的数量,计算方式为 vCPU 限制除以线程数。