基础模型 API 限制和配额

本页介绍 Databricks Foundation 模型 API 工作负载的限制和配额。

Databricks Foundation 模型 API 强制实施速率限制,以确保所有用户的可靠性能和公平的资源分配。 这些限制因 工作区平台层、基础模型类型和部署基础模型的方式而异。

按令牌付费终结点速率限制

按令牌付费终结点受基于令牌的速率限制和基于查询的速率限制的约束。 基于令牌的速率限制控制每分钟可处理的最大令牌数,并单独对输入和输出令牌强制实施。

  • 每分钟输入令牌(ITPM):可在 60 秒窗口中处理的最大输入令牌数(来自提示)。 ITPM 速率限制控制终结点的输入令牌吞吐量。
  • 每分钟输出令牌(OTPM) :可在 60 秒窗口中生成的输出令牌(来自模型响应)的最大数目。 OTPM 速率限制控制终结点的输出令牌吞吐量。
  • 每小时查询数:可在 60 分钟内处理的最大查询数或请求数。 对于持续使用模式的生产应用程序,Databricks 建议预配的吞吐量终结点,这些终结点提供有保证的容量。

如何跟踪和强制执行限制

限制最大的速率限制(ITPM、OTPM、QPH)适用于任何给定时间。 例如,即使尚未达到 ITPM 限制,如果超出 QPH 或 OTPM 限制,仍受速率限制。 达到 ITPM 或 OTPM 限制时,后续请求会收到 429 错误,指示收到的请求过多。 此消息将一直保留,直到速率限制窗口重置。

Databricks 使用以下功能跟踪并强制实施每分钟令牌(TPM)速率限制:

功能 / 特点 详细信息
令牌会计和预录取检查
  • 输入令牌计数:输入令牌在请求时从实际提示进行计数。
  • 输出令牌估计:如果在请求中提供 max_tokens ,Databricks 将使用此值来估算和保留输出令牌容量, 然后 才允许请求进行处理。
  • 预允许验证:Databricks 会在处理开始之前检查请求是否会超过 ITPM 或 OTPM 限制。 如果 max_tokens 会导致超过 OTPM 限制,Databricks 会立即拒绝请求,并出现 429 错误。
  • 实际输出与估计输出:生成响应后,将计算实际输出令牌。 重要的是,如果实际令牌使用量小于保留 max_tokens,Databricks 会将差异归功于速率限制限额,使这些令牌立即可用于其他请求。
  • 未指定max_tokens:如果未指定 max_tokens,Databricks 将使用默认预留,并且生成后会协调实际令牌计数。 注意: 未设置时,Claude Sonnet 4 专门默认为 1,000 个输出令牌 max_tokens ,在达到时返回完成原因“length”。 这不是模型的最大上下文长度。 Claude 3.7 Sonnet 没有此类默认值。
突发容量和平滑
  • 突发缓冲区:速率限制器包括一个小缓冲区,用于容纳超出名义速率的短流量突发。
  • 滑动窗口:使用滑动窗口算法跟踪令牌消耗,该算法提供比每分钟硬边界更流畅的速率限制。
  • 令牌存储桶算法:Databricks 使用令牌存储桶实现,该实现允许某些突发容量,同时保持一段时间内的平均速率限制。

下面是预录取检查和返点行为工作情况的示例。

# Request with max_tokens specified
request = {
    "prompt": "Write a story about...",  # 10 input tokens
    "max_tokens": 500  # System reserves 500 output tokens
}

# Pre-admission check:
# - Verifies 10 tokens against ITPM limit
# - Reserves 500 tokens against OTPM limit
# - If either would exceed limits, returns 429 immediately

# If admitted, actual response uses only 350 tokens
# The systen credits back 150 tokens (500 - 350) to your OTPM allowance
# These 150 tokens are immediately available for other requests

按模型排序的速率限制

下表汇总了 适用于企业层工作区的按令牌付费的基础模型 API 终结点的 ITPM、OTPM 和 QPH 费率限制:

大型语言模型 ITPM 限制 OTPM 限制 QPH 限制 注释
GPT-5 50,000 5,000 36,000 常规用途 LLM
GPT-5 微型 50,000 5,000 36,000 常规用途 LLM
GPT-5 nano 50,000 5,000 36,000 常规用途 LLM
GPT OSS 120B 200,000 10,000 常规用途 LLM
GPT OSS 20B 200,000 10,000 较小的 GPT 变体
Gemma 3 12B 200,000 10,000 7,200 谷歌的 Gemma 模型
Llama 4 小牛 200,000 10,000 2,400 最新 Llama 版本
Llama 3.3 70B 指示 200,000 10,000 2,400 中型 Llama 模型
Llama 3.1 8B 指示 200,000 10,000 7,200 轻型 Llama 模型
Llama 3.1 405B 指示 5,000 500 1,200
  • 最大的 Llama 模型 - 由于大小减少了限制
人类 Claude 模型 ITPM 限制 OTPM 限制 注释
克劳德 3.7 Sonnet 50,000 5,000 平衡 Claude 模型
克劳德十四行诗 4 50,000 5,000
Claude Opus 4.1 50,000 5,000 支持最多的 Claude 模型
克劳德十四行诗 4.5 50,000 5,000 最新 Sonnet 版本
嵌入模型 ITPM 限制 OTPM 限制 QPH 限制 注释
GTE 大型 (En) N/A N/A 540,000 文本嵌入模型 - 不生成规范化嵌入
BGE 大型 (En) N/A N/A 2,160,000 文本嵌入模型

管理 TPM 速率限制最佳做法

步骤 1. 监视令牌使用情况

在应用程序中单独跟踪输入和输出令牌计数:

# Example: Track token usage
response = model.generate(prompt)
input_tokens = response.usage.prompt_tokens
output_tokens = response.usage.completion_tokens
total_tokens = response.usage.total_tokens

# Check against limits
if input_tokens > ITPM_LIMIT or output_tokens > OTPM_LIMIT:
    # Implement backoff strategy
    pass

步骤 2. 实现重试逻辑

遇到速率限制错误时添加指数退避:

import time
import random

def retry_with_exponential_backoff(
    func,
    initial_delay: float = 1,
    exponential_base: float = 2,
    jitter: bool = True,
    max_retries: int = 10,
):
    """Retry a function with exponential backoff."""

    num_retries = 0
    delay = initial_delay

    while num_retries < max_retries:
        try:
            return func()
        except Exception as e:
            if "rate_limit" in str(e) or "429" in str(e):
                num_retries += 1

                if jitter:
                    delay *= exponential_base * (1 + random.random())
                else:
                    delay *= exponential_base

                time.sleep(delay)
            else:
                raise e

    raise Exception(f"Maximum retries {max_retries} exceeded")

步骤 3. 优化令牌使用情况

  • 最小化提示长度:使用简洁、结构良好的提示
  • 控制输出长度:使用 max_tokens 参数限制响应大小
  • 为 Claude Sonnet 4 显式设置max_tokens:使用 Claude Sonnet 4 时始终指定 max_tokens 以避免默认的 1,000 个令牌限制
  • 高效批处理:尽可能对相关请求进行分组,同时保持在限制范围内

步骤 4. 考虑模型选择

  • 用于大容量任务的较小模型:对需要更高吞吐量的任务使用 Llama 3.1 8B 等模型
  • 复杂任务的大型模型:对于需要最大功能的任务,保留 Llama 3.1 405B

监视和故障排除

监视令牌使用模式以优化性能:

# Example: Log token usage for monitoring
import logging

logger = logging.getLogger(__name__)

def log_token_usage(response):
    usage = response.usage
    logger.info(f"Input tokens: {usage.prompt_tokens}")
    logger.info(f"Output tokens: {usage.completion_tokens}")
    logger.info(f"Total tokens: {usage.total_tokens}")

    # Alert if approaching limits
    if usage.prompt_tokens > ITPM_LIMIT * 0.8:
        logger.warning("Approaching ITPM limit")
    if usage.completion_tokens > OTPM_LIMIT * 0.8:
        logger.warning("Approaching OTPM limit")

处理速率限制错误

超过速率限制时,API 将返回错误 429 Too Many Requests

{
  "error": {
    "message": "Rate limit exceeded: ITPM limit of 200,000 tokens reached",
    "type": "rate_limit_exceeded",
    "code": 429,
    "limit_type": "input_tokens_per_minute",
    "limit": 200000,
    "current": 200150,
    "retry_after": 15
  }
}

错误响应包括:

  • limit_type:超出特定限制(ITPM、OTPM、QPS 或 QPH)
  • limit:配置的限制值
  • current:当前使用情况
  • retry_after:建议的等待时间(以秒为单位)

常见问题和解决方案

問题 解决方案
频繁出现 429 错误 实现指数退避、降低请求速率和请求更高的速率限制
达到 ITPM 限制 优化提示长度
达到 OTPM 限制 用于 max_tokens 限制响应长度
达到 QPH 限制 随着时间的推移,更均匀地分配请求

预配的吞吐量限制

对于需要更高限制的生产工作负荷,预配的吞吐量终结点提供:

  • 无 TPM 限制:基于预配资源处理容量
  • 更高的速率限制:每个工作区每秒最多 200 个查询
  • 可预测的性能:专用资源可确保一致的延迟

输出令牌限制

下表汇总了每个受支持的模型的输出令牌限制:

型号 输出令牌限制
GPT OSS 120B 25,000
GPT OSS 20B 25,000
Gemma 3 12B 8,192
Llama 4 小牛 8,192
Llama 3.1 405B 4,096
Llama 3.1 70B 8,192
Llama 3.1 8B 8,192

其他限制

以下是预配的吞吐量工作负荷的限制:

  • 若要从 system.ai Unity 目录中部署 Meta Llama 模型,必须选择适用的 “指示 ”版本。 Unity 目录中的部署不支持 Meta Llama 模型的基本版本。 请参阅 部署预配的吞吐量终结点
  • 对于使用 Llama 4 Maverick 的预配吞吐量工作负荷:
    • 对预配的吞吐量工作负载支持此模型为 公共预览版
    • 不支持自动缩放。
    • 不支持指标面板。
    • 服务 Llama 4 小牛的终结点不支持流量拆分。 不能在为 Llama 4 小牛服务终结点上提供多个模型。

区域可用性和数据处理

有关 Databricks 托管的基础模型区域可用性,请参阅 基础模型概述

有关数据处理和驻留详细信息,请参阅 数据处理和驻留

其他资源