延迟是指模型处理提示并生成输出所需的时间。延迟可能受到各种因素的影响,例如模型的大小、提示的复杂性以及支持模型和交互点的底层基础设施。
最好先设计一个在没有模型或提示约束的情况下运行良好的提示,然后再尝试延迟减少策略。过早尝试减少延迟可能会阻止您发现最佳性能的样子。

如何测量延迟

在讨论延迟时,您可能会遇到几个术语和测量方法:
  • 基线延迟:这是模型处理提示并生成响应所需的时间,不考虑每秒输入和输出令牌。它提供了模型速度的总体概念。
  • 首个令牌时间 (TTFT):此指标测量模型从发送提示时开始生成响应的第一个令牌所需的时间。当您使用流式传输(稍后会详细介绍)并希望为用户提供响应式体验时,这特别相关。
要更深入地了解这些术语,请查看我们的词汇表

如何减少延迟

1. 选择正确的模型

减少延迟最直接的方法之一是为您的用例选择合适的模型。Anthropic提供了一系列具有不同能力和性能特征的模型。考虑您的具体要求,选择在速度和输出质量方面最适合您需求的模型。 对于速度关键的应用程序,Claude Haiku 4.5在保持高智能的同时提供最快的响应时间:
import anthropic

client = anthropic.Anthropic()

# 对于时间敏感的应用程序,使用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. 优化提示和输出长度

在保持高性能的同时,最小化输入提示和预期输出中的令牌数量。模型需要处理和生成的令牌越少,响应就越快。 以下是一些帮助您优化提示和输出的技巧:
  • 清晰但简洁:在提示中清晰简洁地传达您的意图。避免不必要的细节或冗余信息,同时记住Claude缺乏上下文关于您的用例,如果指令不清楚,可能不会做出预期的逻辑跳跃。
  • 要求更短的响应:直接要求Claude简洁。Claude 3系列模型相比之前的版本具有改进的可操控性。如果Claude输出不需要的长度,请要求Claude抑制其健谈性
    由于LLM计算令牌而不是单词,要求确切的单词计数或单词计数限制不如要求段落或句子计数限制那样有效的策略。
  • 设置适当的输出限制:使用max_tokens参数设置生成响应的最大长度的硬限制。这可以防止Claude生成过长的输出。
    注意:当响应达到max_tokens令牌时,响应将被截断,可能在句子中间或单词中间,因此这是一种可能需要后处理的粗暴技术,通常最适合多项选择或简短答案响应,其中答案就在开头。
  • 实验温度temperature参数控制输出的随机性。较低的值(例如0.2)有时可以导致更集中和更短的响应,而较高的值(例如0.8)可能导致更多样化但可能更长的输出。
在提示清晰度、输出质量和令牌计数之间找到正确的平衡可能需要一些实验。

3. 利用流式传输

流式传输是一个功能,允许模型在完整输出完成之前开始发送回其响应。这可以显著改善应用程序的感知响应性,因为用户可以实时看到模型的输出。 启用流式传输后,您可以在模型输出到达时处理它,更新用户界面或并行执行其他任务。这可以大大增强用户体验,使您的应用程序感觉更具交互性和响应性。 访问流式传输Messages了解如何为您的用例实现流式传输。