微信扫码
与创始人交个朋友
我要投稿
最近,有不少朋友问我如何实现精准限制输出?比如DoT《真的别再吹o1模型是新的范式,看看清华的思维图(DoT)框架,LLM推理集大成者》或者别的类似带有Thought这种的prompt推理方法经常性输出冗长内容(LLM给出很多废话),而这些prompt方法又不得不用,这在项目成本和内容要求上都遇到了巨大瓶颈。
图片由修猫创作
一项由意大利比萨的著名高等教育和研究机构圣安娜高等学校Sania Nayab等人进行的研究为这个问题提供了一个创新的解决方案- Constrained Chain-of-Thought (CCoT)提示技术。这项研究不仅提出了控制LLM输出长度的新方法,还开发了一套评估LLM输出简洁性和正确性的新指标。这项研究很值得受困于此的朋友借鉴。
01 输出长度与推理效率的矛盾 #
大型语言模型在复杂问题解答方面表现出色,但同时也存在一个明显的问题:模型往往会生成冗长的输出,这不仅增加了推理时间,也可能引入不必要的错误。特别是在使用Chain-of-Thought (CoT)提示技术时,模型倾向于生成详细的推理步骤,虽然这提高了答案的解释性和正确性,但也显著增加了输出长度和生成时间。
图(a)是一个散点图,展示了输出长度与生成时间之间的关系。蓝色点代表普通提示,红色点代表CoT提示。我们可以看到:
输出长度和生成时间呈正相关。
使用CoT提示时,输出长度和生成时间普遍更长。
图(b)是一个柱状图,展示了50个样本的输出长度对比。蓝色代表普通提示,粉色代表CoT提示。我们可以看到:
CoT提示通常会产生更长的输出。
输出长度的变化在不同样本间存在较大差异。
研究者发现,输出长度与生成时间之间存在明显的正相关关系。例如,在测试Falcon-40b模型时,使用CoT提示后,输出长度和生成时间都显著增加。这种现象在各种规模的模型中普遍存在,突显了控制输出长度的重要性。
02 CCoT创新的提示工程策略 #
为了解决这个问题,研究者提出了Constrained Chain-of-Thought (CCoT)提示技术。CCoT的核心理念是在提示中明确要求模型限制输出长度,同时保持推理的完整性。CCoT提示包含三个部分:
- 用户输入(x_us)
- 标准CoT提示(x_p)
- 长度限制提示(x_l)
通过在提示中加入长度限制,CCoT鼓励模型生成更简洁的输出,同时保持推理的质量。
03 实验设置多模型的综合评估 #
研究者使用了多个预训练的大型语言模型进行实验,包括:
- Vicuna-13b-v1.5
- Falcon-40b-instruct
- Falcon-7b-instruct
- Llama2-7b-chat-hf
- Llama2-70b-chat-hf
实验主要在GSM8K数据集上进行,这是一个包含约8000个数学问题的测试集。研究者比较了普通提示(base)、CoT提示和不同长度限制的CCoT提示(15、30、45、60、100个词)的效果。
这张图清晰地展示了大型模型如何从CCoT中获益最多,而小型模型在面对严格的长度限制时可能难以保持性能。
04 CCoT的效果与模型规模 #
实验结果显示,CCoT的效果与模型规模密切相关:
4.1 大型模型的显著提升
对于Llama2-70b等大型模型,CCoT不仅能有效控制输出长度,还能提高模型的准确性。例如:
- 使用传统CoT时,Llama2-70b在GSM8K数据集上的准确率为36.01%
- 使用限制100词的CCoT (CCoT-100)时,准确率提高到41.07%
- 同时,平均输出长度从99词减少到71词
这一结果令人振奋,因为它表明CCoT不仅能提高效率,还能改善模型的推理质量。
4.2 中小型模型的混合效果
对于Falcon-40b等中型模型,CCoT能在保持准确率的同时显著减少输出长度。虽然准确率可能略有下降,但仍高于基础提示的效果,为效率和准确性之间提供了一个很好的平衡点。
然而,对于Falcon-7b、Llama2-7b等小型模型,CCoT的效果不太理想。这些模型在面对严格的长度限制时,往往难以生成正确且完整的推理过程。
05 简洁性和正确性的评估指标 #
为了全面评估LLM的输出质量,研究者提出了三个新的评估指标:
5.1 Hard-k Concise Accuracy (HCA)
HCA衡量正确答案中不超过指定长度k的比例。这个指标对严格控制输出长度的场景特别有用,如实时系统或计算资源有限的环境。
5.2 Soft-k Concise Accuracy (SCA)
SCA是HCA的一个更灵活的版本。它允许答案略微超过指定长度k,但会根据超出的程度进行惩罚。这个指标引入了一个容忍度参数α,允许对长度限制进行更细致的调整。上图我们可以看出,对于Llama2-70b,CCoT在大多数情况下都能提高SCA得分,表明它能有效平衡输出的简洁性和准确性。对于Falcon-40b,CCoT在较低k值时表现更好,说明它在严格限制输出长度的情况下仍能保持良好的性能。增加α值(从1.0到10.0)导致所有策略的SCA得分都有所提高,这说明允许一定程度的长度超出可以提高模型的整体表现。α值的增加对CCoT策略的影响尤为明显,这表明CCoT在更宽松的长度限制下能发挥更大的优势。
5.3 Consistent Concise Accuracy (CCA)
CCA在SCA的基础上,还考虑了输出长度的一致性。它引入了第三个参数β,用于控制对输出长度变异性的容忍度。这个指标特别适合评估模型在不同问题上保持一致输出长度的能力。
在实际使用中,您可以根据具体的场景要求在代码或提示词中加入这些Metric,可以有效的改善输出长度限制。我已经将Metric作了分类,您需要根据场景动态调整:
- 对于简单问题,优先考虑HCA,严格控制长度。
- 对于复杂问题,可以倾向于SCA,允许更多的长度灵活性。
- 在需要保持一致性的场景中,更多地考虑CCA。
06 CCoT如何影响模型输出 #
6.1 输出长度分布的变化
研究者分析了不同提示策略下模型输出长度的分布。结果显示:
- 使用CoT时,输出长度分布较为分散,且平均长度较长
- 使用CCoT后,输出长度分布更加集中,且平均长度显著减少
- 对于大型模型(如Llama2-70b),CCoT能有效将输出长度控制在指定范围内
这一发现意味着CCoT不仅能减少平均输出长度,还能提高模型输出的一致性,这对于实际应用中的性能预测和资源管理极为重要。
6.2 准确性与简洁性的权衡
通过使用新提出的评估指标,研究者发现:
- 对于Llama2-70b,使用CCoT不仅没有降低准确性,反而在多数长度限制下提高了HCA和SCA指标的得分
- 对于Falcon-40b,虽然CCoT可能略微降低绝对准确率,但在考虑输出简洁性后,其综合表现优于CoT和基础提示
这表明CCoT能在保持或提高准确性的同时,显著改善输出的简洁性。
6.3 模型对长度限制的响应能力
研究还发现,不同规模的模型对CCoT中的长度限制有不同的响应能力:
- 大型模型(如Llama2-70b)能较好地遵循长度限制,即使在严格的限制下(如15或30词)也能保持较高的准确性
- 中型模型(如Falcon-40b)在适度的长度限制下表现良好,但在极短的限制下可能难以保持准确性
- 小型模型在面对严格的长度限制时,往往难以生成完整且正确的推理过程
这一发现为不同规模模型的应用提供了重要指导,帮助开发者选择合适的长度限制策略。
07 CCoT的实际应用案例 #
研究者提供了几个具体的例子,展示了CCoT如何改善模型输出。以下是一个从GSM8K数据集中选取的问题示例:
问题:Richard住在一栋有15层的公寓楼里。每层有8个单元,整栋楼3/4是有人居住的。整栋楼里空置的单元总数是多少?
使用基础提示时,Llama2-70b的回答:
"让我们先计算整栋楼的总单元数:15层 × 8单元/层 = 120单元
现在,我们知道3/4的单元是有人居住的,所以空置的单元数是:
120单元 × (1 - 3/4) = 120单元 × 1/4 = 30单元
因此,整栋楼里有30个空置单元。"
使用CoT提示时,Llama2-70b的回答:
"首先,我们需要计算整栋楼的总单元数。我们可以将楼层数乘以每层的单元数:
15层 × 8单元/层 = 120单元。
接下来,我们需要计算已占用的单元数。我们可以将总单元数乘以已占用的比例:
120单元 × 3/4 = 90个已占用单元。
最后,我们可以通过从总单元数中减去已占用的单元数来计算空置单元数:
120单元 - 90个已占用单元 = 30个空置单元。
因此,整栋楼里有30个空置单元。"
使用CCoT-45(限制45词)提示时,Llama2-70b的回答:
"1. 总单元数= 15层 × 8单元/层 = 120单元。
2. 已占用单元 = 3/4 × 120单元 = 90单元。
3. 空置单元 = 120 - 90 = 30单元。
所以,整栋楼里有30个空置单元。"
这个例子清晰地展示了CCoT如何在保持答案正确性的同时,显著减少输出长度,使推理过程更加简洁明了。
文章中还用了一个简单示例,我也做了交叉验证,结论是:CCOT更简洁,准确。
08 CCoT的潜在应用 #
8.1 实时交互系统的优化
CCoT技术在实时交互系统中有巨大的应用潜力。通过控制输出长度,可以显著减少模型的响应时间,提高用户体验。例如,在智能客服系统中,CCoT可以帮助模型生成简洁而准确的回答,避免冗长的解释影响交互效率。
8.2 资源受限环境的应用
对于计算资源有限的设备(如移动设备或嵌入式系统),CCoT提供了一种有效的方法来平衡模型性能和资源消耗。通过限制输出长度,可以减少内存使用和计算时间,使大型语言模型在这些设备上的应用成为可能。
8.3 提高模型可解释性
虽然CCoT旨在减少输出长度,但研究发现它在某些情况下反而提高了模型的准确性。这一现象值得进一步研究,可能揭示出简洁推理对模型决策过程的积极影响。理解这一机制可能有助于开发更可解释、更可靠的AI系统。
8.4 个性化长度控制
未来的研究可以探索如何根据不同的任务类型、用户偏好或上下文自动调整CCoT的长度限制。这种动态调整的方法可以进一步优化模型的性能,为不同场景提供最佳的输出。
8.5 与其他提示技术的结合
CCoT可以与其他先进的提示技术结合,比如DoT、POMDP、之前的变分推理等复杂的提示技术,探索更复杂、更高效的提示策略。这种结合可能产生新的突破,进一步提升大型语言模型的能力。
CCoT技术为我们在写Prompt时提供了宝贵的启发:首先,输出长度不必过长,适度限制能提高效率和准确性;其次,不同规模模型对提示策略反应不同,应匹配模型特性;再者,保持输出一致性有助于提升可预测性和稳定性;同时,应采用多维度评估方法,关注准确率、简洁性和一致性;最后,建议根据任务复杂度动态调整提示策略,以优化整体性能。
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-11-21
致继刚,感谢你继承乔哈里视窗和提示词心法
2024-11-20
郭美青 | 从Demo到商用—构建企业级提示词工程,加速AI应用商用落地
2024-11-20
云中江树 | 重塑自然语言编程,Agent 训练的核心探索
2024-11-20
一个让AI智商暴涨300%的Prompt Engineer 万能方法论
2024-11-19
从乡下放牛娃到大厂AI顾问:我用本硕七年,重写自己的人生
2024-11-18
智能对决:提示词攻防中的AI安全博弈
2024-11-15
AI对话的日常思考:当我们在讨论提示词时,到底在纠结什么?
2024-11-14
你不需要招一个天才Prompt少年,也不需要玄幻的prompt来做开发
2024-06-29
2023-06-08
2024-08-20
2024-06-27
2024-06-14
2024-07-09
2024-07-12
2024-09-17
2024-06-26
2024-06-29