热点新闻
提示语最佳实践-推理链结果的妙用
2024-11-12 18:37  浏览:90  搜索引擎搜索“手机低淘网”
温馨提示:信息一旦丢失不一定找得到,请务必收藏信息以备急用!本站所有信息均是注册会员发布如遇到侵权请联系文章中的联系方式或客服删除!
联系我时,请说明是在手机低淘网看到的信息,谢谢。
展会发布 展会网站大全 报名观展合作 软文发布

我们想要一个准确的答案,需要让模型“一步步思考”进行推理分析,得出答案。
但是“思考”后的内容很长,如果只需要一个准确的答案,而不要思考过程,怎么办呢?

过往做法

当我们向大型模型提问时,常常会发现它给出的答案并不总是准确,这是因为模型缺乏逐步推理的能力(即COT,Chain of Thought)。引入思维链后,虽然答案的准确性有所提升,但同时也带来了冗长的推理过程。很多时候,我们只想要一个简洁准确的答案,而不需要繁琐的推理步骤。
以往的做法是建立两个大型模型:第一个负责推理思考,第二个则用于总结答案。然而,这种方案不仅增加了成本,还延长了响应时间。
今天,我们将介绍一种最佳实践——将原本需要两个模型的任务整合到一个模型中。这种方法不仅能提高效率,还能在保证准确性的同时减少冗余信息,让你更快地获得所需答案。

原始问题

我们将从最基本的问题出发,直接让模型进行解答。每个模型都有其独特的回答方式,但其准确率波动较大,表现不够稳定。

我的测试问题是:

问题:1919年5月5日,天津《大公报》刊登“北京特约通讯”,标题为《北京学界之大举动﹣﹣昨日之游街大会/曹汝霖宅之焚烧/青岛问题之力争/章宗祥大受夷伤。从上述标题中能获得的信息是(  ) 选项:(A)京津两地工人罢工游行 (B)学生爱国浪潮遍及全国 (C)外争主权、内除国贼 (D)北洋政府逮捕大批学生 答案:从A到D, 我们应选择什么?

这道历史题的正确答案时C。
下边是使用deepseek做的测试。但是这个答案是错误的。




Pasted image 20241108175723.png

为了提升模型回答的稳定性和准确性,我们计划引入思维链机制。通过这种方式,模型将在推理过程中进行更深入的思考,从而为我们提供更加细致和可靠的答案。

增加推理

我们引入思维链,引导模型先深入思考,全面分析问题后,再给出精准回答。

我们增加的推理逻辑是:

你在做历史试题,综合从多个方面慢慢思考,一步步的推理,告诉我你的答案是什么。

完整的提示语是:

问题:1919年5月5日,天津《大公报》刊登“北京特约通讯”,标题为《北京学界之大举动﹣﹣昨日之游街大会/曹汝霖宅之焚烧/青岛问题之力争/章宗祥大受夷伤。从上述标题中能获得的信息是(  ) 选项:(A)京津两地工人罢工游行 (B)学生爱国浪潮遍及全国 (C)外争主权、内除国贼 (D)北洋政府逮捕大批学生 答案:从A到D, 我们应选择什么? 你在做历史试题,综合从多个方面慢慢思考,一步步的推理,告诉我你的答案是什么。

deepseek回答的效果是这样的:





Pasted image 20241108175848.png

经过深入推理,它的回答终于正确了。
我们引导它进行了全面思考,最终得到了答案。这种经过深思熟虑的答案,无疑更加准确和可靠。
然而,最大的问题是,我们渴望的是一个简洁明了的答案,而非冗长的推导过程。
因此,我们引入了一项重要的输出技巧:格式化输出。

格式化输出

在输出内容时,若要求大型语言模型(LLM)将问题的思考过程与最终答案分开呈现,我们可以巧妙地设计输出格式:思考内容单独成段,答案则置于另一段。这样一来,我们便能轻松提取出纯粹的答案部分,使得信息的获取更加高效且直观。

我们增加了提示语输出的格式要求:

推理和思考的过程写在<think></think>标签内,答案写在<answer></answer>内。 答案中只能包含选项字母(eg. <answer>A</answer>)

完整的提示语:

问题:1919年5月5日,天津《大公报》刊登“北京特约通讯”,标题为《北京学界之大举动﹣﹣昨日之游街大会/曹汝霖宅之焚烧/青岛问题之力争/章宗祥大受夷伤。从上述标题中能获得的信息是(  ) 选项:(A)京津两地工人罢工游行 (B)学生爱国浪潮遍及全国 (C)外争主权、内除国贼 (D)北洋政府逮捕大批学生 答案:从A到D, 我们应选择什么? 你在做历史试题,综合从多个方面慢慢思考,一步步的推理,告诉我你的答案是什么。 推理和思考的过程写在<think></think>标签内,答案写在<answer></answer>内。 答案中只能包含选项字母(eg. <answer>A</answer>)

这样,推理和思考的过程写在<think></think>标签内,答案写在<answer></answer>内。




Pasted image 20241108180116.png

接下来,我们该如何巧妙地提取出答案部分呢?

提取关键答案

只需要写一个程序,将xml中的answer部分提取出来就可以了。

运行的效果时这样的:




Pasted image 20241108180205.png

相关代码:

import re pattern = r'<answer>(.*?)</answer>' match = re.search(pattern, text) if match: answer = match.group(1) print(f"提取的答案是: {answer}") else: print("未找到答案")

这样,我们就即使用到了LLM的推理能力,而又只拿到了模型的结果部分。

延伸

为何选择XML?

XML以其简洁的格式和清晰的结构,成为内容隔离的最佳选择。相较于JSON,XML无需考虑复杂的数据类型,使其在处理上更为简便。其宽松的要求使得它特别适合大型语言模型(LLM)在输出时进行内容隔离,确保信息的清晰与独立。

隔离输出的优势何在?

  1. 无缝融入现有流程:通过将不同部分进行隔离,我们可以更轻松地将这些结构化的输出整合到现有的工作流程中。这不仅简化了操作,还极大地拓展了LLM在各种场景中的应用潜力。
  2. 提升输出的连贯性与完整性:采用隔离输出的方式,模型能够一次性生成多个相关内容,确保每个部分既考虑了原始输入,也兼顾了之前的输出。例如,在进行英语分级阅读时,你可以使用 <A1><B1><C1> 等标签来标记不同难度的内容。这样生成的三段内容不仅更加统一,而且比分别调用三次LLM生成的结果更具连贯性和完整性。
发布人:97e0****    IP:124.223.189***     举报/删稿
展会推荐
让朕来说2句
评论
收藏
点赞
转发