跳至主要内容

部署配置

以下是部署配置的类定义。它继承自 UpdateDeploymentConfig

class DeploymentConfig(BaseModel):
base_model: str # required
accelerator: str | None = Field(default=None)
custom_args: list[str] | None = Field(default=None)
cooldown_time: PositiveInt | None = Field(default=None, )
hf_token: str | None = Field(default=None)
min_replicas: NonNegativeInt | None = Field(default=None)
max_replicas: PositiveInt | None = Field(default=None)
scale_up_threshold: PositiveInt | None = Field(default=None)
quantization: str | None = Field(default=None)
uses_guaranteed_capacity: bool | None = Field(default=None)
max_total_tokens: int | None = Field(default=None)
lorax_image_tag: str | None = Field(default=None)
request_logging_enabled: bool | None = Field(default=None)
direct_ingress: bool | None = Field(default=None)
preloaded_adapters: list[str] | None = Field(default=None)
speculator: str = Field(default=None)
prefix_caching: bool | None = Field(default=None)

默认情况下,Predibase设置以下默认值(可能会更改):

  • accelerator: None。如果未指定,Predibase会根据您的套餐等级、提供的基础模型和可用性选择最合适的选项。
  • cooldown_time: 3600 秒 (1小时)
  • min_replicas: 0
  • max_replicas: 1 (免费/开发版最多3个副本,企业版最多6个副本)
  • scale_up_threshold: 1
  • uses_guaranteed_capacity: False (该部署是否应从您为给定加速器购买的保证容量中获取资源)
  • max_total_tokens: None. 部署每个请求将处理的最大token数量(同时计算输入和输出token)。还会设置其他一些与token相关的参数,详情请参阅下面的注释。如果未指定,则会根据给定模型选择合理的默认值。
  • lorax_image_tag: None. Predibase 为 LoRAX 使用一个默认的提交标签,该标签会定期更新。高级客户可以使用此参数,但不建议一般用户使用。
  • request_logging_enabled: False. 仅适用于企业SaaS客户。如需修改您的计划,请联系销售部门。
  • direct_ingress: False. 仅适用于VPC客户。创建一个直接连接到LLM的端点,绕过Predibase控制平面。
  • preloaded_adapters: None. 一个适配器ID列表,用于在部署初始化时预加载。通过将适配器预加载到内存中来减少请求延迟。仅支持predibase托管的适配器。
  • speculator: None. 指定一个Turbo或Turbo LoRA适配器作为部署的推测器。使用/格式选择特定适配器,auto让Predibase选择合理的默认值(参见NOTES),disabled表示不使用推测器。如果未指定,默认值为auto
  • prefix_caching: None. 为部署启用前缀缓存。前缀缓存是一项实验性功能,可以通过缓存中间结果来加速推理。保持值为None将使用部署的Lorax镜像的默认值(Lorax 0.12.1版本默认为False)。

自动扩缩容通过min_replicasmax_replicasscale_up_threshold参数进行配置。如果min_replicas != max_replicas,那么Predibase将根据流量负载在这两个值之间自动上下扩缩。min_replicas表示在任何给定时间可以运行的最小副本数;如果设置为0,则当没有流量时,您的部署将缩减为零副本。scale_up_threshold表示单个LLM副本在扩展任何额外副本之前将处理的并发请求数。该值高度依赖于您的使用场景,我们建议通过实验找到一个最佳数字以满足您的吞吐量需求。

如果要部署一个"best effort"自定义基础模型

  • 您必须提供一个accelerator
  • 如果部署的是私有模型,必须提供hf_token(您的Huggingface令牌)。

量化是可选的,取决于模型,但可用的选择包括:none(相当于fp16量化)、fp8bitsandbytes-nf4

Notes
  • 对于base_model,您可以使用可用模型列表中提供的简称,也可以提供huggingface模型的路径(例如meta-llama/Meta-Llama-3-8B)。
  • 您可以选择性地为基础模型指定Hugging Face版本,方法是在base_model参数中使用model@revision格式。
  • 设置 max_total_tokens 同时也会设置另外两个 Lorax 参数:max_batch_prefill_tokens(预填充操作的最大 token 数)和 max_input_length(输入 token 的最大数量)。这两个参数都被设置为 max_total_tokens-1
  • speculator设置为auto时,部署将根据其基础模型使用预配置的speculator,如果没有可用的基础模型,则使用用户提供的预加载Turbo或Turbo LoRA适配器之一。相反,当speculator设置为disabled时,不允许预加载任何Turbo LoRA或Turbo适配器(即不能在preloadedAdapters中指定)。

自定义参数

Predibase部署由LoRAX提供支持,custom args参数可用于配置lorax CLI可用的大部分启动器参数。该参数接受一个字符串列表,这些字符串应等同于您传递给CLI的参数,其中每个参数名称和值都成为列表中的一个项。因此:

lorax-launcher --compile --eager-prefill true

将变为:

custom_args = ["--compile", "--eager-prefill", "true"]

以下是可用参数列表(其他lorax参数可以直接使用上述SDK参数设置):

  • adapter-id - 要加载的适配器名称。格式为repoName/repoVersion
  • source - 要加载的模型来源。
  • adapter-source - 要加载的适配器来源。
  • revision - 如果加载的是huggingface模型,此处指定模型的字面修订版本。可以是具体的提交ID或分支名称,例如refs/pr/2
  • validation-workers - 路由器内部用于负载验证和截断的分词器工作线程数量。
  • sharded - 是否在多个GPU之间分片模型
  • quantize- 如果您不想使用给定机器上的所有GPU,可以设置使用的分片数量。
  • compile - 是否希望将模型编译为CUDA图。
  • speculative-tokens - 模型每步生成的推测标记数量。
  • dtype - 强制应用于模型的类型
  • max-concurrent-requests - 此特定部署的最大并发请求数。
  • max-best-of - best-of的最大允许值(该参数会一次性生成N个结果并返回最佳的那个)
  • max-stop-sequences - stop-sequences允许的最大值
  • max-input-length - 允许的最大输入长度(以token数量表示)
  • max-total-tokens - 可以一次性处理和生成的最大token数量
  • waiting-served-ratio - 等待查询与运行查询的比率
  • max-batch-prefill-tokens - 限制预填充操作的token数量。
  • max-batch-total-tokens - 批次中潜在token的总数。
  • max-waiting-tokens - 在强制将等待查询放入批次之前可以通过的token数量(如果批次大小允许的话)。
  • eager-prefill - 是否优先在解码前运行预填充
  • max-active-adapters - 可以放置在GPU上并同时接受请求的适配器的最大数量。
  • adapter-cycle-time-s - 适配器交换之间的时间,单位为秒。
  • adapter-memory-fraction - 为将适配器加载到GPU而预留的内存比例。
  • watermark-gamma
  • watermark-delta
  • tokenizer-config-path - 分词器配置文件的路径。