我是Harish SG,一名安全研究人员,曾在德克萨斯大学达拉斯分校获得了网络安全硕士学位,并在思科担任负责AI安全的工程师,之前曾参与微软的漏洞悬赏计划和谷歌的VRP项目。
我只为了教育和提高意识而分享这篇文章,所有这些都是我的个人看法,并且与我在思科的工作无关。
免责声明:我不是AI研究人员或专家,我从事于LLM的安全方面的研究。我的这项研究完全基于我对LLM及其功能的理解。
这篇文章主要讨论我最近在人工智能领域的研究,旨在让开源模型超越闭源模型,并让当前最先进(SOT)的模型如Claude Sonnet 3.5等,在推理方面超越OpenAI的O1-preview和O1 mini(据OpenAI所述,这两个模型的智能相当于博士水平)。
LLM中的推理是什么?大型语言模型中的推理能力指的是这些模型的以下几点:
- 理性思考
- 推断
- 解决难题
- 根据手头的信息做出明智的决定
尽管LLM并没有被明确训练来进行推理,但它们展示了一些类似于推理能力的行为,除了O1和O1的迷你版本。
为什么在大型语言模型中进行推理很重要?LLM的推理能力有几个重要原因:
- 更深层次的理解:真正的推理能力表明了LLM能够超越模式匹配,对世界有更深层次的理解。
- 问题解决:增强的推理能力可能在复杂领域中更有效地解决问题。
- 决策制定:具有强大推理能力的LLM可以协助人类进行复杂的决策。
- 泛化能力:改进的推理能力可以帮助LLM在“分布外(OOD, out-of-distribution)”任务中表现更好,提高其泛化能力。
- 实际应用:推理能力可以加速科学研究,增强政策制定,并改进教育和医疗保健中的个性化服务,例如,想象一个自主的AI代理,它可以分析时间序列数据集,找出更难或耗时识别的模式,并使用它来更准确地预测未来。
当OAI发布了O1和O1-mini模型时,我意识到如果AI需要一段时间来思考以解决更复杂的问题,这将是迈向AGI的新创新。然后有一天,我在想,如果我们能让现有的SOTA模型,如Claude Sonnet 3.5,像O1模型那样进行推理会怎么样。
看完这些论文和评论后,我决定尝试创建一个新的提示模式,结合动态思维链、反思和言语强化。我还试着把这个想法作为一个实验,看看结合动态思维链、反思和言语强化能否创造一个有效的提示。阅读了一些相关论文,如东北大学的一篇关于反思的论文,以及来自/locallama子版块的评论后,我决定尝试创建一个新的提示模式,结合动态思维链、反思和言语强化。
这是一个关于编码和数学问题解决的提示示例。
先用<thinking>标签包裹所有想法,从多个角度和方法探索。
使用<step>标签将解决方案分解为清晰的步骤,从20步预算起步,如果问题复杂,可以适当增加预算。
在每个步骤后使用<count>标签显示剩余预算。达到0时停止。
根据中间结果和反思,不断调整你的思考路径,随着进度适时调整策略。
使用<reflection>标签定期评估进度。对自己的推理过程要保持批判性和诚实。
每次反思后,使用<reward>标签给出0.0到1.0之间的质量评分,用此来指导你的方法:
0.8+:继续当前方法
0.5-0.7:考虑进行轻微调整
低于0.5:认真考虑回退,尝试不同方法
如果不确定或奖励分数较低时,回退并尝试不同方法,在<thinking>标签中解释你的决定。
对于数学问题,使用LaTeX明确展示正式标记和详细证明。
尽可能单独探索多个解决方案,比较不同方法并在反思中总结。
将思考作为草稿纸,明确写出所有的计算和推理过程。
在<answer>标签中综合给出最终答案,提供清晰简洁的总结。
最后,对整体解决方案进行总结反思,讨论有效性、挑战及解决方案。给出最终奖励分数。
上述提示模式的详细说明:
动态科特、反思和语言强化学习相结合的框架创建了一个高度适应性和响应性强的问题解决AI系统。整个过程从动态科特生成初始推理路径开始,然后通过反思机制来评估和优化。每次反思阶段结束后,模型会收到得分奖励的形式进行语言强化,这将指引后续的推理步骤。
这个循环过程允许模型迭代地改进输出,适应不断变化的条件,并有效地应对复杂的结构挑战。例如,在一个涉及多阶段决策任务(比如自主导航)的情况下,模型可能首先使用动态思维链来探索路径。
当它遇到障碍或环境变化时,反馈机制将允许它重新评估其策略,而口头奖励分数则提供了如何调整其行动的指导。这使得AI系统不仅能从行动中学习,还能随着时间的推移主动增强其推理能力,在动态、现实世界的应用场景中展示了更强的问题解决能力。
这些截图显示了 LLM 推理链
评估一下上面提到的提示模式:
我想测试一下我的提示模式是否能回答这些问题,尽管我能够回答诸如“计算单词strawberry中的r的数量”,“比较0.9和0.11,告诉我哪个更大”等问题等等。
据我所知,只有O1和O1 mini能够做到全部正确,因为它们有内部的推理链条。
LLM正确回答的问题是,这类问题通常LLM难以回答的。
我创建了两对数据集来进行基准测试。
这个数据集包含了来自JEE高级部分和印度公务员考试预选考试的问题,我会把它评为中等难度的难度级别。
JEE Advanced被认为是全球最具挑战性的本科入学考试之一,旨在选拔希望加入顶尖的印度理工学院(IITs)的学生。
印度的联合公共服务中心考试(UPSC)是世界上最具竞争力的考试之一,吸引了希望在印度官僚体系中担任行政职务的候选人。通识科目涵盖了多个领域的知识,使其成为一个评估工具,具备严格且全面的特点,适用于评估大型语言模型(LLMs)。
这些问题极其严格,深入测试概念理解、解决问题的能力以及跨多个学科(如物理、数学、化学、社会科学等各个领域)的概念应用。
以下为评估所用的工具和脚本:- 该脚本使用Streamlit创建一个网络应用程序,生成使用Groq API的开源模型响应,以及使用其他API的闭源模型响应(例如gpt4o、o1和Claude)。
- 它包含一个详细的系统提示(以“您是一个逐步解释您推理过程的AI助手…”开头),指导AI的推理过程。
- 此提示指示AI使用动态思维链条(CoT)、反思和口头强化学习技术。
- AI将其推理分解成清晰的步骤,每个步骤都有标题、内容、置信度得分和思考时间。
- 每3步,AI进行一次自我反思,考虑潜在的偏见和不同的观点。
- 脚本强制执行最少15步才能给出最终答案,确保对给定查询进行深入分析。
我修改了 Benjamin Klieger 的这个脚本,原始版本可以在 https://github.com/bklieger-groq/g1 这里找到。
我修改了原版本以实现这个逻辑,用户会给AI系统提供一个问题,AI系统需要花足够的时间来从各个角度思考这个问题,最终解决这个问题。在这个逻辑中,我试图模仿人类解决复杂问题的方法,让AI系统也能做到。我从Aravind Srinivas在Lex Freidman的采访中得到的想法。
基准测试结果的分析:使用Chatgpt生成的这张图表
结果显示,应用动态链式思维(Dynamic CoT)、反思性学习(Reflection)和言语强化学习(Verbal Reinforcement Learning)技术显著提升了大多数模型的性能,特别是这两个模型Claude Sonnet和Llama 3.1 8比特。
A. 技术表现情况如下:克劳德·桑松取得了最高分(40/48),展现了在数学、物理和化学问题上的强大表现。Llama 3.1 8b(33/48)和GPT-4O(36/48)同样展示了在使用技术方面的显著进步。
B. 在没有技巧的情况下表现 除O1外,其他模型在没有技巧的情况下表现都下降了。特别的是,O1在未使用任何技巧的情况下得到39分,显示出它有很强的解决问题的能力。
我们可以看出Claude Sonnet 3.5的表现比O1好。
限制:在这次基准评估中稍微宽松一些,也就是说,即使答案不完全正确也给了分数。
注意:在进行这次基准测试时,当时meta还未发布llama 3.2版本。
锦上添花的测试(以2023年IMO试题作为基准,国际数学奥林匹克)OpenAI声称O1在IMO中获得了83%的分数。使用我们的提示技术,Claude Sonnet在第一次尝试中得到了50%的成绩。如果我们多次测试,Claude Sonnet 3.5可能会超越O1。
这里有Claude解答IMO 2023问题的截图
与Putnam数据集的基准对比普特南数学比赛是什么?
威廉·洛伊德·普特南数学竞赛,通常被称为普特南竞赛,是面向美国和加拿大大学生的一项极具挑战性的数学竞赛。以下是竞赛的关键方面:
比赛形式:
- 每年12月的第一个星期六举行。
- 由两个3小时的环节组成,每个环节包含6道题。
- 每道题10分,总分为120分。
难度:
普特南竞赛被誉为世界上最难的本科生数学竞赛之一。其难度可以从以下几个方面体现,比如说:
中位分数通常是0或1分(满分120分)。这意味着超过一半的参与者要么完全没有解答问题,要么最多只解答了一个问题。
在这场比赛85年的历史中,仅有五个满分。这凸显了完全解答所有问题难度之大。
基于这些因素,普特南竞赛在1到10的难度评分中,对于本科生数学竞赛来说,其难度应该在9到10之间。(来源:perplexity)
从2013年到2023年的普特南数学竞赛试卷中,我选出了大约28个问题。
分析基准结果:
在这一轮基准测试里,Claude Sonnet 和 O1 mini 版本解决了 14 道题,O1 模型则解决了 13 道题,gpt4o 解决了 9 道题。
从第一眼看上去,这个结果好像好得不像是真的。
我相信gpt4o没有解答这个问题,因为它生成了超过50个至60个推理链,导致循环,最终给出了些乱七八糟的答案。
从上述基准测试中我们可以看到,使用我们的提示技术,Claude Sonnet 3.5 在需要更好推理能力的问题上优于 O1 和 O1 mini 以及其他小型语言模型。
我建议把这个提示模板用作系统提示,以提升性能。
说实话,我没有足够的计算资源和预算来运行诸如MMLU、MMLU pro、GPQA等标准基准测试,如果有任何人想要通过运行这些基准测试来扩展这项工作,请随意进行,我也已经将我在本实验中使用的脚本和数据集开源在这个repo中,还有一些证明。
repo: https://github.com/harishsg993010/LLM-Research-Scripts 这次实验中我观察到的大型语言模型的有趣特点和能力:- LLM 可以创建自己的模拟。当我给 LLM 提供一个与矩阵相关的问题时,它探索了各种解决方法,在某一时刻,它开始根据各种场景创建自己的模拟来解决问题。
- 如 Claude Sonnet 3.5、gpt4o 等 LLM 在解决复杂数学问题时,内部推理步骤超过 50 步。
- 与非多项选择题相比,LLM 更擅长回答多项选择题。
- 在实验中,Claude Sonnet 3.5 仅回答 7 个问题就使用了大约有 100 万个 token,然后我使用了 openrouter。
总之,
我从根本上相信,大型语言模型就像是读过千万本书的人,但它不知道如何利用这些知识来解决问题。因此,作为研究和使用大型语言模型的人,我们需要教大型语言模型如何运用所学知识解决问题。
这种推理能力可以被人们利用来建立强大的工作流程自动化系统,以解决IT、网络安全、汽车行业等领域的问题。
组织可以利用较小的开源模型作为GPT-4O等大型语言模型的更便宜的替代方案,用于需要推理能力的任务。
我知道工作中的一些发现看起来好得不真实。如果有任何人想要评估,请使用github仓库中的脚本和数据集。
关注我推特上的动态:_https://twitter.com/CoderHarish 欢迎来关注哦!
关注我领英上的动态:https://www.linkedin.com/in/harish-santhanalakshmi-ganesan-31ba96171/
共同学习,写下你的评论
评论加载中...
作者其他优质文章