降低延迟


延迟是指模型处理提示词并生成输出所需的时间。延迟可能受到多种因素的影响,如模型大小、提示词的复杂性以及支撑模型和交互点的底层基础设施。

Note

最好先设计一个在没有模型或提示词约束的情况下表现良好的提示词,然后再尝试延迟降低策略。过早尝试降低延迟可能会阻碍你发现最佳性能是什么样的。


如何衡量延迟

在讨论延迟时,你可能会遇到几个术语和度量:

  • 基线延迟:这是模型处理提示词并生成响应所花费的时间,不考虑每秒的输入和输出 token 数。它提供了模型速度的总体概念。
  • 首个 token 时间(TTFT):此指标衡量从发送提示词到模型生成响应的第一个 token 所需的时间。当你使用流式传输(稍后详述)并希望为用户提供响应式体验时,这一点尤其重要。

要更深入地了解这些术语,请查看我们的术语表


如何降低延迟

1. 选择合适的模型

降低延迟最直接的方法之一是为你的用例选择合适的 Anthropic 模型。Anthropic 提供了一系列模型,具有不同的功能和性能特征。考虑你的具体需求,选择在速度和输出质量方面最适合你需求的模型。

对于速度关键型应用,Claude Haiku 4.5 提供最快的响应时间,同时保持高智能:

import anthropic

client = anthropic.Anthropic()

# For time-sensitive applications, use Claude Haiku 4.5
message = client.messages.create(
    model="claude-haiku-4-5",
    max_tokens=100,
    messages=[
        {
            "role": "user",
            "content": "Summarize this customer feedback in 2 sentences: [feedback text]",
        }
    ],
)

有关模型指标的更多详情,请参阅我们的模型概览页面。

2. 优化提示词和输出长度

在保持高性能的同时,尽量减少输入提示词和预期输出中的 token 数量。模型需要处理和生成的 token 越少,响应速度就越快。

以下是一些帮助你优化提示词和输出的技巧:

  • 清晰但简洁:旨在清晰简洁地在提示词中传达你的意图。避免不必要的细节或冗余信息,同时记住 Claude 缺乏关于你用例的上下文,如果指令不明确,可能不会做出预期的逻辑跳跃。
  • 要求更短的回复: 直接要求 Claude 简洁。Claude 3 系列模型比前几代具有更好的可控性。如果 Claude 输出的长度不符合要求,请要求 Claude 控制其冗长度
    Tip
    由于 LLM 按 token 而非单词计数,要求精确的单词数或单词数限制不如要求段落数或句子数限制有效。
  • 设置适当的输出限制:使用 max_tokens 参数对生成响应的最大长度设置硬性限制。这可以防止 Claude 生成过长的输出。

    注意:当响应达到 max_tokens 个 token 时,响应将被截断,可能在句子中间或单词中间,因此这是一种粗糙的技术,可能需要后处理,通常最适合答案在开头的多项选择或简短回答。

  • 尝试不同的 temperaturetemperature 参数控制输出的随机性。较低的值(例如 0.2)有时可以产生更集中和更短的响应,而较高的值(例如 0.8)可能导致更多样化但可能更长的输出。

在提示词清晰度、输出质量和 token 数量之间找到合适的平衡可能需要一些实验。

3. 利用流式传输

流式传输是一项允许模型在完整输出完成之前就开始发送回响应的功能。这可以显著提高应用程序的感知响应能力,因为用户可以实时看到模型的输出。

启用流式传输后,你可以在模型输出到达时进行处理,更新用户界面或并行执行其他任务。这可以大大增强用户体验,使你的应用程序感觉更具交互性和响应性。

访问流式传输 Messages 了解如何为你的用例实现流式传输。