大语言模型(Large Language Model, LLM)的性能近年来得到了显著提升,尤其是在处理复杂推理任务、回答问题和生成自然语言的场景中。
目前国内外的大模型也是越来越卷,大模型厂商纷纷把自己的模型,支持处理的最大 tokens 数量值,作为一个亮点来大肆宣传。
这些 tokens 数量的最大值,背后有一个关键的概念开始受到研究者和工程师的关注,这就是思维链长度(Chain of Thought Length, CoT Length)。
思维链长度是指模型在完成一项任务时,能够保持连贯的推理和逻辑链条的最大深度。它反映了模型在推理过程中能够追踪的逻辑步骤或思维层次的深浅程度。思维链长度通常决定了模型能否处理多步骤推理问题,尤其是在涉及数学计算、逻辑推理或复杂知识整合的任务中。
关键点:
例如:
假设一个模型需要回答问题 在一个盒子里有 5 个苹果,你拿走了 3 个苹果,现在盒子里还有几个苹果?
。如果模型能够逐步拆解问题:
5 - 3 = 2
。这个过程可以被描述为 3 步思维链。如果模型只能回答最后一步结果而没有推理过程,思维链长度会显得不足。
思维链长度直接反映了模型在处理复杂任务时的推理深度。短的思维链可能适用于简单问题,但对于需要多步骤推理的任务(例如解谜、程序生成、复杂问答),较长的思维链是不可或缺的。
对于许多应用场景,思维链长度是模型性能的上限。例如:
在这些情境下,短思维链的模型可能无法覆盖所有推理步骤,导致结论不准确或不完整。
用户通常期望语言模型能够解释其结论的来源。较长的思维链允许模型展示其推理过程,从而增加用户对模型输出的信任。例如,教育领域的学生希望看到模型如何解答数学问题,而不仅仅是结果。
思维链长度通常通过以下方法测量:
此时可以判断模型的思维链长度约为 3 至 5。
Prompt: 请逐步解释为什么以下结论是正确的:...
我们设计了一个简单的实验来说明思维链长度的作用。
如果一个农场有 20 只鸡和 15 头牛,每只鸡每天下 1 个蛋,每头牛每天产 2 升牛奶。那么,5 天内鸡蛋的总数量和牛奶的总数量是多少?
from transformers import pipeline
def chain_of_thought_reasoning():
reasoning_pipeline = pipeline("text-generation", model="gpt-3.5-turbo")
prompt = (
"请逐步推导以下问题:"
"如果一个农场有 20 只鸡和 15 头牛,"
"每只鸡每天下 1 个蛋,每头牛每天产 2 升牛奶。"
"那么,5 天内鸡蛋的总数量和牛奶的总数量是多少?"
)
result = reasoning_pipeline(prompt, max_length=200, temperature=0.5)
return result
output = chain_of_thought_reasoning()
print(output)
1. 每只鸡每天下 1 个蛋,20 只鸡每天下 20 个蛋。
2. 15 头牛每天产 15 x 2 = 30 升牛奶。
3. 5 天内,鸡蛋的总数是 20 x 5 = 100。
4. 5 天内,牛奶的总数是 30 x 5 = 150。
结论:鸡蛋的总数量是 100 个,牛奶的总数量是 150 升。
在这一例子中,模型完成了 4 步推理,展示了其思维链长度的表现。
通过设计更清晰、更详细的提示,可以有效地延长模型的思维链。例如,在提示中明确要求模型逐步推理,并提供示例:
示例问题:
"小明有 10 元钱,买了 3 个苹果,每个苹果 2 元。他还有多少钱?"
逐步推导:
1. 每个苹果 2 元,3 个苹果共花费 3 x 2 = 6 元。
2. 小明原有 10 元,减去 6 元后,还剩 10 - 6 = 4 元。
请按照类似的步骤解决以下问题:...
增加模型的上下文长度或对中间推理过程进行显式编码。例如,Transformer 架构的改进版本可以更有效地捕捉长序列依赖。
通过加入更多分步推理的数据来训练模型,使其更善于生成长思维链。同时,结合强化学习(如人类反馈强化学习,RLHF)来优化模型的逐步推理能力。
在医学诊断中,医生通常需要逐步推理病因。例如:
如果大语言模型可以模仿这种逐步推理过程,它就能够辅助医生进行更准确的诊断。
处理复杂法律案件时,模型需要结合不同条款并推导出合法性结论。例如,基于《合同法》第 A 条和《民法典》第 B 条,逐步推理得出案件的最终裁决。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。