大模型(LLM)在处理自然语言时使用的基本单位是 token,可以将其视为“字”或“词”。具体而言,1个中文词语、1个英文单词、1个数字或1个符号通常计为1个token。这种转换的比例大约为:1个英文字符≈0.3个token,1个中文字符≈0.6个token。因此,可以近似地认为一个汉字相当于一个token。大模型接收输入时,会先将文本转换成token形式再进行处理。
以DeepSeek为例,其对话模型和推理模型的最大输出长度均为8K tokens,这意味着一次输出最多不超过8000个汉字。这一限制确保了模型能够高效处理请求,并提供有意义的回答。
上下文长度:Context Window详解
在技术领域,上下文长度有一个专门术语叫Context Window。对于DeepSeek而言,无论是对话模型还是推理模型,Context Window均为64K tokens。这意味着在一个单次推理过程中,所有输入和输出的token总和不能超过64K。例如,当你开始一个新的对话会话,输入内容加上模型输出内容的总和不得超过64K tokens。
如果我们将输入和输出分开考虑,输入内容的最大长度为64K减去最大输出长度8K,即56K tokens。这意味着在一次问答中,你可以输入最多5万多字,而模型会给出最多8千多字的回答。
多轮对话的工作机制
多轮对话中,服务端并不保存用户的对话历史,用户需要在每次请求时将之前的对话历史拼接到当前请求中。例如,在第一轮对话中,用户提问“世界上最高的山是什么?”模型回复“珠穆朗玛峰”。在第二轮对话中,用户再次提问“第二高的山呢?”此时,用户需要将之前的对话历史与新问题一起发送给模型,形成完整的对话链。
随着对话轮次增加,每轮对话的Context Window会逐渐减少。假设第一轮对话使用了32K tokens,那么第二轮对话只剩余32K tokens可用。为了应对这种情况,服务端采用了一种称为“上下文截断”的策略,即只保留最近的64K tokens,而丢弃较早的内容。这种做法保证了即使在多轮对话中,用户也能获得正常的响应,但同时也可能导致模型“忘记”早期的对话内容。
上下文截断策略的作用
“上下文截断”是一种工程上的解决方案,用于处理超长文本的问题。当用户的累计输入和输出达到64K tokens时,任何新的输入都将导致最早的输入被丢弃,以保持总的token数量不超过64K。这种机制使得用户可以在多轮对话中持续与模型交互,而不会因为token数量超标而导致对话中断。
各模型参数对比及应用场景
不同模型厂商对最大输出长度和上下文长度有不同的设定。例如,OpenAI和Anthropic等公司提供了不同的参数配置。在实际应用中,我们需要根据具体的场景选择合适的参数配置:
- 短输入+长输出场景:输入较少的token,期望生成较长的内容。配置max_tokens为63,000,确保总token数不超过64K。
- 长输入+短输出场景:输入大量文本,如文档摘要。配置max_tokens为4,000,确保总token数不超过64K。
结论
了解大模型的核心概念,如token、上下文长度和最大输出长度,有助于我们更好地利用这些工具。通过合理配置参数,我们可以优化对话体验,确保在各种场景下都能获得最佳的结果。同时,掌握上下文截断策略的应用,可以帮助我们在多轮对话中更有效地管理信息流,提升用户体验。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...