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

最好先设计一个在没有模型或提示限制的情况下效果良好的提示,然后再尝试延迟减少策略。过早地尝试减少延迟可能会阻止你发现最佳性能是什么样的。


如何测量延迟

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

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

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


如何降低延迟

1. 选择合适的模型

降低延迟最直接的方法之一是为你的用例选择适当的模型。Anthropic提供了一系列具有不同能力和性能特征的模型。考虑你的具体需求,并选择在速度和输出质量方面最适合你需求的模型。有关模型指标的更多详细信息,请参阅我们的模型概述页面。

2. 优化提示和输出长度

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

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

  • 清晰但简洁:在提示中清晰简洁地表达你的意图。避免不必要的细节或冗余信息,同时要记住Claude缺乏上下文,可能无法按预期进行逻辑推理,如果指令不清晰的话。
  • 要求更短的回答:直接要求Claude简洁。Claude 3系列模型比之前的版本有了更好的可控性。如果Claude输出不必要的长度,要求Claude控制其啰嗦程度
    由于LLM计算的是令牌而不是单词,要求精确的字数或字数限制并不如要求段落或句子数量限制那样有效。
  • 设置适当的输出限制:使用max_tokens参数为生成的响应设置一个硬性的最大长度限制。这可以防止Claude生成过长的输出。

    注意:当响应达到max_tokens令牌时,响应将被截断,可能会在句子中间或单词中间被切断,所以这是一种生硬的技术,可能需要后处理,通常最适合用于多项选择或简短回答,其中答案就在开头。

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

找到提示清晰度、输出质量和令牌数量之间的正确平衡可能需要一些实验。

3. 利用流式传输

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

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

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