负载均衡

负载均衡功能有效地将网络流量分配到多个 LLM 上。这确保了生成 AI 应用程序的高可用性和最佳性能,防止任何单个 LLM 成为性能瓶颈。

启用负载均衡

要启用负载均衡,您可以修改 config 对象以包含一个 strategy,并设置为 loadbalance 模式。

这是一个 75-25 负载均衡 OpenAI 和 Azure OpenAI 账户的快速示例

{
  "strategy": {
      "mode": "loadbalance",
  },
  "targets": [
    {
      "virtual_key": "openai-virtual-key",
      "weight": 0.75
    },
    {
      "virtual_key": "azure-virtual-key",
      "weight": 0.25
    }
  ]
}

您可以 创建 然后 使用 配置在您的请求中。

负载均衡的工作原理

  1. 定义负载均衡目标及其权重:您提供一个 virtual keys(或 provider + api_key 对)列表,并为每个目标分配一个 weight 值。权重表示应路由到每个目标的请求相对份额。

  2. 权重标准化:Portkey 首先将您为目标提供的所有权重相加。然后,它将每个目标的权重除以总和,以计算该目标的标准化权重。这确保权重加起来为 1(或 100%),使 Portkey 能够按比例分配负载。

    例如,假设您有三个目标,权重分别为 5、3 和 1。权重的总和为 9(5 + 3 + 1)。Portkey 将按如下方式标准化权重:

    • 目标 1:5 / 9 = 0.55(占流量的 55%)

    • 目标 2:3 / 9 = 0.33(占流量的 33%)

    • 目标 3:1 / 9 = 0.011(占流量的 11%)

  3. 请求分配:当请求到达时,Portkey 根据标准化权重概率将其路由到目标 LLM。这确保流量根据指定的权重在 LLM 之间分配。

  • 默认 weight 值为 1

  • 最小 weight 值为 0

  • 如果未为某个目标设置 weight,则应用默认 weight 值(即 1)。

  • 您可以为特定目标设置 "weight":0,以停止向其路由流量,而无需将其从配置中删除。

注意事项和考虑因素

虽然负载均衡功能提供了许多好处,但有几点需要考虑:

  1. 确保您列表中的 LLM 与您的用例兼容。并非所有 LLM 都提供相同的功能或以相同的格式响应。

  2. 注意您与每个 LLM 的使用情况。根据您的权重分配,您与每个 LLM 的使用情况可能会有显著差异。

  3. 请记住,每个 LLM 都有其自身的延迟和定价。多样化您的流量可能会对成本和响应时间产生影响。

Last updated