pb.deployments.update
pb.deployments.update 更新现有的无服务器部署
参数:
deployment_ref: str
私有无服务器部署的名称或UUID
配置: 更新部署配置
返回:
部署
使用方法:
要更新部署,请调用pb.deployments.update,并为config参数提供一个UpdateDeploymentConfig实例,仅设置您想要更改的字段。任何未设置的字段将保持不变。
示例:
假设我们有一个名为 my-mistral-7b 的现有部署。
pb.deployments.get("my-mistral-7b")
hf_token字段不会显示在pb.deployments.get的输出中,即使已设置,但它会在后端持久保存。
这可能会返回以下配置。该配置指定了一些默认适配器,并将自动扩缩容设置为1到2个副本之间。自动扩缩容规则配置为:如果流量持续低至少600秒,则缩减至1个副本;如果当前扩容的单个副本有至少一个待处理请求,则扩容至两个副本。
Deployment(
name="my-mistral-7b",
# <...>
config=UpdateDeploymentConfig(
custom_args=["--preloaded-adapter-ids", "my_adapter/1"], cooldown_time=600, hf_token=None, min_replicas=1, max_replicas=2, scale_up_threshold=1
),
)
通过向pb.deployments.update提供类似以下内容来更新部署配置。该配置指定了一个额外的预加载适配器(请注意,我们必须在新的列表中包含现有适配器)。它还更改了自动缩放行为:当没有流量时,部署现在可以缩减到零副本,并且我们在低流量持续1200秒后缩减副本数量(之前是600秒)。
pb.deployments.update(
deployment_ref="my-mistral-7b",
config=UpdateDeploymentConfig(
cooldown_time=1200, # Changed from 600
custom_args=["--preloaded-adapter-ids", "my_adapter/1", "--preloaded-adapter-ids", "my_other_adapter/1"], # Added a second adapter
min_replicas=0, # Changed from 1
)
)
现在 pb.deployments.get("my-mistral-7b") 将返回:
Deployment(
name="my-mistral-7b",
# <...>
config=UpdateDeploymentConfig(
custom_args=[], cooldown_time=1200, hf_token=None, min_replicas=0, max_replicas=2, scale_up_threshold=1
),
)
请注意,max_replicase 仍保持非默认值2,即使在调用 pb.deployments.update 时未明确设置该值。
在底层机制中,当更新部署时,系统会在创建新部署版本的任何副本之前,先关闭一个旧部署的副本。
如果您的部署只有1个副本,或者当前仅运行1个副本,这将导致该副本下线从而造成服务中断。
为了防止停机,您可以先将部署更新为min_replicas=2,以确保在更新期间至少有一个副本可以处理流量。更新部署的副本数量不会导致停机。
- 大量(高级)配置参数通过
custom_args字段进行设置。更多信息请参阅DeploymentConfig的custom_args部分。 - 要将Lorax更新至最新支持的版本,请在
config参数中指定lorax_image_tag="。" - 并非所有lorax CLI参数都受支持。传递不受支持的参数将导致错误。
- SDK和后端不会验证custom_args的值是否为有效的lorax参数。传递无效值将导致Lorax无法启动部署。(但现有部署将继续提供服务。)
custom_args是作为高级用户的应急功能设计的,这些用户需要向Lorax传递额外参数。 - 如果在
config参数中提供了custom_args,它将替换现有的custom_args列表。如果您想添加到现有列表中,则必须在新列表中包含所有现有值。