用这条Prompt构建CoT+PoT验证器评估LLM输出,显著提高LLM推理准确性和一致性

深度推理COT常用测评数据集 数学与推理:AIME、Math-500、LogiQA等。知识广度编程能力生成质量多语言与伦理部分数据集(如AIME 2024、MATH500)已被用于直接对比DeepSeek-R1和O1的性能。此外,李飞飞团队近期提出的s1K数据集(1000个数学问题)展示了通过小规模高质量数据微调实现高效推理的可能性。 阅读详情

即便是最先进的LLM,在复杂的多步推理问题上仍然面临挑战。如何提高LLM的推理准确性和一致性,成为了AI研究者们关注的焦点。

在这里插入图片描述

LLM推理能力的局限性

尽管LLM在各种自然语言任务中表现出色,但在数学和代码推理等复杂任务中仍然存在明显的短板。研究者们发现,即使是最先进的LLM,在生成单一解决方案时的准确率往往不尽如人意。然而,有趣的是,当允许模型生成多个解决方案时,正确答案通常能够在这些样本中被找到,召回率甚至超过85%。

在这里插入图片描述

这一发现为解决LLM推理挑战提供了新的思路:通过扩大推理计算规模,采样多个候选解决方案,可能是一种有效的改进方法。然而,如何从这些候选方案中筛选出正确答案,成为了关键问题。

构建全面的验证器训练数据集

为了解决这一问题,研究团队首先构建了一个全面的训练数据集。这个数据集包含了多个LLM推理器生成的正确和错误解决方案,涵盖了数学和代码推理任务。

对于数学推理,研究者使用了GSM8k和MATH数据集作为种子数据集,从多个backbone模型中采样解决方案。这些模型包括通用LLM(如Mistral和Phi3)以及专门用于数学的模型(如InternLM2-Math和MAmmoTH2-plus)。对于每个问题,他们采样了10个CoT解决方案并去除重复项。最终,他们得到了159,778个正确解决方案和100,794个错误解决方案,平均每个问题有10.67个正确解决方案和6.73个错误解决方案。

对于代码推理,研究者同样使用了通用LLM和专门用于代码的模型。他们选择了MBPP和MagiCoder-75k的Python子集作为种子数据集。通过生成过程,他们最终得到了132,089个正确解决方案和145,345个错误解决方案,平均每个问题有11.10个正确解决方案和12.21个错误解决方案。

这种多样化的数据集为验证器提供了丰富的学习资源,使其能够更有效地区分和排序不同LLM产生的解决方案。

验证器训练方法的深入比较

在构建了全面的训练数据集后,研究团队对不同的验证器训练方法进行了系统的比较。他们主要考察了两大类方法:结果奖励模型(Outcome Reward Models, ORMs)和偏好调优(Preference Tuning)。这两类方法在原理和实现上有显著差异,各有优缺点。

结果奖励模型(ORMs)

ORMs是一种直接的方法,其核心思想是在LLM的输出层上添加额外的计算结构,用于评估生成内容的质量。

具体实现:

\1. 额外计算头:在LLM的每个token输出上添加额外的计算头。

\2. 标量输出:这些额外的计算头输出标量值,代表对应token的"质量"或"正确性"。

\3. 二元分类训练:使用二元分类损失进行训练,通常采用正确解答作为正例,错误解答作为负例。

优点:

- 直观:方法简单直接,易于理解和实现。

- 灵活性:可以为每个token分配不同的权重,理论上能捕捉更细粒度的信息。

缺点:

- 额外参数:引入了额外的参数,增加了模型的复杂度。

- 训练不稳定:可能面临训练不稳定的问题,特别是在处理长序列时。

偏好调优(Preference Tuning)

偏好调优方法,如直接偏好优化(DPO),采用了一种不同的策略。这类方法不直接学习评分函数,而是通过比较学习来优化模型输出。

具体实现:

\1. 成对数据:训练数据由成对的解答组成,一个被标记为"优选",另一个为"非优选"。

\2. 概率调整:模型学习调整其输出概率分布,使"优选"解答的生成概率高于"非优选"解答。

\3. 损失函数:使用特殊设计的损失函数,如DPO中的Bradley-Terry模型推导的损失。

优点:

- 无额外参数:不需要引入额外的模型参数。

- 保持生成目标:与LLM原有的自回归文本生成任务保持一致。

- 相对评价:通过相对比较学习,可能更符合人类评判的直觉。

缺点:

- 数据要求:需要成对的比较数据,数据准备可能更复杂。

- 计算开销:在训练和推理时可能需要更多的计算资源。

无参考偏好调优方法(如SimPO)

研究团队发现,无参考的偏好调优方法(如SimPO)在训练验证器时表现最佳。这类方法是对标准偏好调优的进一步改进。SimPO 的有效性归因于一个关键设计:使用序列的平均对数概率作为隐含奖励,这种奖励公式更好地与模型生成保持一致,并且无需参考模型,从而提高了计算和内存效率。

特点:

\1. 移除参考模型:不使用参考模型来计算奖励函数,减少了内存和计算开销。

\2. 简化目标:直接优化生成模型和奖励函数之间的差异。

\3. 更好的泛化:理论上可以减少训练和推理之间的差异。

优势:

- 效率:减少了计算和内存需求。

- 一致性:训练目标与推理时的评分方式更加一致。

- 灵活性:更容易适应不同的任务和数据集。

实验结果和分析

研究团队通过严格的实验比较了这些方法:

在这里插入图片描述

\1. 性能比较:SimPO在多个数据集上均优于ORMs和标准DPO。

\2. 稳定性:无参考方法表现出更好的训练稳定性和泛化能力。

\3. 计算效率:SimPO在训练和推理时都显示出更高的计算效率。

研究者推测,SimPO的优越性能可能源于以下几个因素:

- 目标一致性:训练目标与实际使用场景(评分而非生成)更加匹配。

- 减少过拟合:移除参考模型可能减少了对特定训练数据的过拟合。

- 简化学习:直接学习相对偏好可能比学习绝对分数更容易。

CoTnPoT:结合语言和代码答案的创新验证方法

研究团队提出了一种名为CoTnPoT的创新方法,结合了CoT和PoT解决方案的优势。CoT解决方案更具描述性和可读性,而PoT解决方案高度抽象和结构化,可以直接执行以识别运行时错误。使用CoTnPoT和Math-Rev,在数学推理验证性能方面显著优于两个基线一Math-Shepard和Math-Minos。此外,如图所示,Math-Rev+Qwen2-72B-Instruct在LLMs中表现优于最先进的模型,包括LLaMA3.1-405B和GPT-4o。

在这里插入图片描述

CoTnPoT方法的工作流程如下:

在这里插入图片描述

\1. 使用coder LLM将CoT解决方案转换为PoT格式。

\2. 执行PoT解决方案,并将结果与CoT解决方案的最终答案进行比较。

\3. 过滤掉CoT答案与相应PoT结果不匹配的解决方案。

\4. 将剩余的CoT解决方案输入验证器进行评分。

\5. 选择得分最高的解决方案作为最终答案。

这种方法巧妙地结合了CoT的可读性和PoT的可执行性,有效提高了验证的准确性。

实验结果:显著提升的推理性能

研究团队在多个基准测试上评估了他们的方法,以下是实验结果。

图片

数学推理任务

在GSM8k数据集上,使用Qwen-72B-Instruct作为backbone推理器,结合Math-Rev验证器和CoTnPoT方法,达到了95.6%的准确率。这一结果大幅超越了现有的最佳表现。

在更具挑战性的MATH数据集上,同样的组合达到了76.9%的准确率,超过了包括GPT-4o在内的多个强大基线模型。

代码推理任务

在MBPP数据集上,CoTnPoT方法同样表现出色。例如,使用CodeQwen作为backbone推理器,结合Code-Rev验证器和CoTnPoT方法,在MBPP测试集上达到了80.3%的通过率,比不使用CoTnPoT的版本提高了2.8个百分点。

与现有验证器的比较

研究团队将他们的Math-Rev验证器与两个最近的基线(Math-Shepard和Math-Minos)进行了比较。在保持一致的LLM推理器(MetaMath-7B-Mistral)的情况下,Math-Rev在GSM8k和MATH500数据集上都取得了最佳表现,分别达到90.75%和46.40%的准确率。这一成功归功于更有效的验证器训练方法(SimPO)和从多个LLM推理器采样的成对训练数据。

方法的局限性与未来方向

尽管这项研究取得了显著成果,研究团队也坦诚地指出了当前方法的一些局限性:

1. 计算开销: 采样和重新排序策略相比贪婪解码引入了额外的计算开销,这可能在大规模数据集或实时应用中带来挑战。

2. 解决方案级别反馈: 当前的验证器基于结果奖励模型(ORM),提供解决方案级别的反馈,而非步骤级别的反馈。虽然这种粒度在整体验证中很有效,但缺乏过程奖励模型(PRM)那样的细粒度评估能力。

3. 验证器生成能力的退化: 通过偏好对训练的验证器虽然在评分方面表现出色,但其生成连贯句子的能力迅速退化。这可能限制了验证器在某些场景下的应用。

未来的研究方向可能包括:

\1. 优化计算效率:探索更高效的采样和验证策略,以减少计算开销。

\2. 细粒度反馈:开发能够提供步骤级别反馈的验证器,同时保持可扩展性。

\3. 保持生成能力:研究如何在提高验证性能的同时,保持模型的生成能力。

对Prompt工程师的启示

这项研究对正在开发AI产品的Prompt工程师们具有重要的实践意义:

1. 多样化采样: 在设计推理任务的prompt时,考虑生成多个候选解决方案,而不是仅依赖单一输出。

2. 结构化输出: 鼓励模型生成结构化的解决方案,以便于后续的验证和分析。

3. 交叉验证: 考虑将自然语言解释(CoT)和可执行代码(PoT)结合使用,互相验证以提高可靠性。

最 后

您也可以像我这样,把论文里的这个方法写成SYSTEM PROMPT用于解决多步骤问题的自我验证,可以显著提高您项目里输出的准确性和一致性。以下图为例:

图片

​

如何学习AI大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

四、AI大模型商业化落地方案

img

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

MATH-500数据集 MATH-500:包含500个测试样本的MATH评测集,全面考察数学解题能力。 立即下载

相关推荐

Java农产品质量溯源大数据管理系统源码

产品追溯基于“一物一码”从工厂生产环节至销售阶段,赋予产品唯一的数码,并关联产品名称、批号、生产时间等信息,建立包装关联关系,为后期产品的追溯、营销搭建信息基础。 农产品溯源,从原材料收购、生产、加工质检到包装运输、终端门店销售等环节追溯,可以保证产品质量,监管部门和消费者都可以查询产品信息。对生产进行层层把关、一旦发现问题、立即进行处理、提升产品质量。

xingchen优快云的博客 1805

自动评估基准 | 技巧与提示

此外你可能还注意到多数投票准确性比 \(N=1\) 和 \(N=2\) 的 0-样本 CoT 基线差,这是因为我们的采样温度为 \(T=0.8\),这使得我们不太可能在少量几个结果中得到正确候选答案。如下所示,结果相当惊人: 在 \(N=4\) 的推理时预算下,波束搜索的精度与拔萃法在 \(N=16\) 时的精度相同,即计算效率提高了 4 倍!其中 \(y^*(q)\) 是问题 \(q\) 的解,\(\theta_{q,a^*(q)}^*(N)\) 表示计算最优缩放策略。

weixin_55010563的博客 2762

Windows10内核逆向-2-KiSystemCall64的调用流程剖析

本文深入剖析了Windows 10 x64系统中KiSystemCall64函数的完整调用流程。从用户态触发syscall指令开始,详细讲解了如何通过swapgs切换内核栈、构建KTRAP_FRAME陷阱帧、进行SMAP/CFG等安全检查,到最终通过SSDT寻址并执行目标系统服务的全过程,揭示了系统调用从Ring 3到Ring 0切换的核心机制与安全设计。

weixin_29209805的博客 82

MATH-500:大模型数学推理能力评估基准

MATH-500是一个专门用于评估大型语言模型(LLM)数学推理能力的高难度基准测试数据集。它包含了500道高质量、富有挑战性的数学题目,覆盖了多个数学分支领域,旨在全面检验模型解决复杂数学问题的能力。该数据集作为对原有MATH数据集的补充和扩展,提供了更加全面和具有挑战性的评估环境。本文由「大千AI助手」原创发布,专注用真话讲AI,回归技术本质。拒绝神话或妖魔化。搜索「大千AI助手」关注我,一起撕掉过度包装,学习真实的AI技术!20.GSM8K:评估大模型数学推理能力的关键数据集。

拒绝AI玄学,只聊真技术▲ 1749

ROS环境下UR机械臂与Realsense相机手眼标定实战指南

本文提供了在ROS环境下,对UR机械臂与Realsense相机进行手眼标定的完整实战指南。详细介绍了从环境搭建、软件包安装、硬件配置到分步数据采集与计算的完整流程,并分享了常见的避坑技巧与精度优化方法,旨在帮助开发者高效、准确地完成标定,为后续的机器人视觉应用奠定坚实基础。

sunny的博客 647

Simpack实战:5分钟搞定轨道车辆车轮不圆的3种定义方法(附详细参数设置)

本文详细介绍了在Simpack中定义轨道车辆车轮不圆的3种高效方法:Radius deviations、Fourier coefficients和Harmonic function,并提供了详细的参数设置指南。通过实战案例和参数优化技巧,帮助工程师快速掌握车轮不圆度的定义与仿真,提升轨道车辆动力学分析的准确性和效率。

weixin_29292535的博客 202

国内“推理模型”卷疯了!类 o1 推理模型,谁更强?

9 月份,OpenAI 正式公开前所未有的复杂推理大模型 o1,这是一个重大突破,新模型既具有通用的能力,也可以解决比此前的科学、代码和数学模型能做到的更难问题。实验结果表明,在绝大多数推理任务中,o1 的表现明显优于 GPT-4o。图:o1 在具有挑战性的推理基准上比 GPT-4o 有了很大的改进OpenAI 为大模型的能力开启了新方向:「能不能像人一样思考与推理」已经成为了评判它们能力的重要指标。最近这段时间,国内AI领域中,“推理模型”非常卷!01。

m0_70486148的博客 3036

Qt入门教程【基础控件篇】QLineEdit输入框

QLineEdit输入框

小鱼酱的博客 3262

从老外视角来仰慕DeepSeek V3的强大

去年,DeepSeek LLM 以其令人印象深刻的670亿参数,在英文和中文理解方面,经过精心训练的2万亿个token的庞大数据集引起了轰动。DeepSeek 通过开源其7B/67B基础和聊天模型,为研究合作树立了新的基准,深入植根于AI社区。现在,如果我告诉你有一个拥有6850亿参数的AI,它在AI领域的几乎所有模型中表现优异,并且是开源的,听起来是不是很吸引人?DeepSeek 通过发布 DeepSeek V3 迈出了巨大的一步,由中国实验室开发的DeepSeek,将AI创新的界限推向了更远。

m0_56255097的博客 3473

Java与OSG的梦幻联动:深入编译OpenSceneGraph的Java JNI桥梁,开启3D视觉盛宴的奇幻之旅

🔥关注墨瑾轩,带你探索编程的奥秘!🚀🔥超萌技术攻略,轻松晋级编程高手🚀🔥技术宝库已备好,就等你来挖掘🚀🔥订阅墨瑾轩,智趣学习不孤单🚀🔥即刻启航,编程之旅更有趣🚀在编译OpenSceneGraph (OSG) 的Java版本时,首先需要了解OSG本身是一个主要用于3D图形和视觉仿真的开源库,它主要支持C++。然而,OSG 也支持通过JNI(Java Native Interface)与Java集成,这允许Java程序调用OSG的C++库。

java专栏 870

Apache Flink连载(一):Apache Flink是什么?

Apache Flink 是一个框架和分布式处理引擎,用于在。

qq_32020645的博客 1216

51c大模型~合集34

#英伟达~~剪枝、蒸馏把Llama 3.1 8B参数减半,性能同尺寸更强小模型崛起了。上个月,Meta 发布了 Llama 3.1 系列模型,其中包括 Meta 迄今为止最大的 405B 模型,以及两个较小的模型,参数量分别为 700 亿和 80 亿。Llama 3.1 被认为是引领了开源新时代。然而,新一代的模型虽然性能...

weixin_40932545的博客 247

基于YOLOv8的野生菌菇检测、识别与分类系统

YOLOv8是YOLO系列模型的最新版本,继承了YOLO系列高效、精确的特点。YOLOv8采用了新的网络架构,并优化了推理速度和检测精度。与传统的目标检测算法(如Faster R-CNN)不同,YOLO模型通过一次前向传播同时完成目标定位与分类,因而具有非常高的计算效率。

YOLO 1284

大模型论文解读 || 新型数据科学解决方案Data Interpreter助力实时数据调整与优化

新型数据科学解决方案Data Interpreter助力实时数据调整与优化

柏企阅文 2861

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Open R1数学能力:MATH-500数据集89.0分达成方案

Open R1是一个完全开源的DeepSeek-R1复现项目,旨在通过社区协作构建高性能的数学推理模型。项目采用三阶段开发策略:首先通过蒸馏高质量语料库复现R1-Distill模型,然后构建纯强化学习(RL) pipeline创建R1-Zero,最后实现从基础模型到RL调优的多阶段训练。 [![Open R1项目架构](https://raw.gitcode.com/gh_mirrors/ope...

gitblog_01089的博客 478

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

昇腾NPU上基于MindIE服务的AIME和MATH500测评方案

摘要 本文介绍了在Atlas 800I A2硬件上基于MindIE服务部署和评测DeepSeek-R1模型的完整流程。内容包括:模型权重下载方法、MindIE容器环境配置、服务化部署步骤(包括配置修改和权限设置)、lighteval评测框架的源码安装,以及自定义评测任务的编写方法。重点解决了带思维链模型的测评难题,提供了针对AIME、MATH-500等数据集的评测方案。整个流程已验证可在指定硬件和MindIE 2.0.RC1版本上成功运行。

wy746801669wy的博客 1715

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

基于开放模型的推理时计算缩放

此外你可能还注意到多数投票准确性比 \(N=1\) 和 \(N=2\) 的 0-样本 CoT 基线差,这是因为我们的采样温度为 \(T=0.8\),这使得我们不太可能在少量几个结果中得到正确候选答案。如下所示,结果相当惊人: 在 \(N=4\) 的推理时预算下,波束搜索的精度与拔萃法在 \(N=16\) 时的精度相同,即计算效率提高了 4 倍!其中 \(y^*(q)\) 是问题 \(q\) 的解,\(\theta_{q,a^*(q)}^*(N)\) 表示计算最优缩放策略。

weixin_55010563的博客 936

Agent Laboratory库 data preparation 阶段分析

data preparation 是 AgentLaboratory 实验流程中的关键阶段,主要负责数据集的加载、预处理和准备工作,为后续的模型训练和实验运行提供标准化的数据输入。该阶段位于计划制定(plan formulation)之后,实验运行(running experiments)之前,是连接研究计划与实际实验执行的重要桥梁。

qq_42540492的博客 1293

【大模型入门】第12章 微调生成模型

在本章中,我们将以一个预训练文本生成模型为例,详细讲解微调(fine-tuning)的完整流程。微调是生成高质量模型的关键步骤,也是我们工具包中用于将模型适配到特定预期行为的重要工具。通过微调,我们可以让模型适配特定的数据集或领域。 本章将引导您了解两种最常见的文本生成模型微调方法:监督式微调(supervised fine-tuning)和偏好微调(preference tuning)。我们将深入探索微调预训练文本生成模型的变革潜力,帮助您将其转化为更高效的应用工具。

面向AI从业者、技术爱好者的知识共享平台,聚焦技术解析、实战应用与前沿趋势,打造“专业性与可读性并存”的AI学习社区 16万+

解密Prompt系列11. 小模型也能COT-先天不足后天来补

前两章我们分别介绍了COT的多种使用方法以及COT的影响因素。这一章更多面向应用,既现实场景中考虑成本和推理延时,大家还是希望能用6B的模型就不用100B的大模型。但是在中反复提到不论是few-shot还是zero-shot的思维链能力似乎都是100B左右的大模型才有的涌现能力,而在小模型上使用COT甚至会带来准确率的下降。至于为啥小模型无法进行COT,论文[5]通过把小模型回答错误但大模型可以回答正确的问题进行归纳总结,认为小模型的COT能力受到有限的语义理解和数学计算能力的限制。

weixin_71774768的博客 350

SLM 如何在推理任务中击败大型模型

通过将。

star_nwe的博客 1595

LLM 算法工程师的速成指南:微调、强化学习微调与偏好微调

我们可以将现在使用的大语言模型想象成一座巨大的图书馆,蕴藏着海量知识。之前大家所熟知的是,提示词工程(Prompt Engineering):在提示词中加入指令,有时也会加入一些示例(few shots)。这种通过演示引导模型完成任务的方法,被称为“少样本学习”(few-shot learning)。微调,则是在“少样本学习”基础上的进一步提升。具体而言,我们会使用特定领域的数据来训练模型,从而使其在特定领域上表现得更加出色。换言之,微调是对模型进行针对性的“特训”,使其更好地适应特定场景。

2401_85375186的博客 2829

类o1系列模型大盘点:QwQ、Deepseek-R1、Marco-o1、Huatuo-o1、GLM-Zero...

OpenAI的o1模型代表了人工智能领域在推理能力方面的一个重要进步。本文将盘点几个具有代表性的类o1工作:包括OpenAI o1、来自阿里巴巴团队的QwQ、QVQ、Marco-o1、和Deepseek团队的R1、以及智谱团队的GLM-Zero、还有增强LLaVA性能的LLaVA-CoT,以及面向医学大模型的Huatuo-o1、来自微信团队的DRT-o1等。

sherlockMa的博客 7688
上一篇: [大语言模型:基础与前沿] 首位AI程序员上线,关于LLM的好机会都写在了这本书里!
下一篇: NLP面试官:“大模型常用的 Normalization 都有什么? ” 算法女生表示易如反掌
我爱学大模型
博客等级 码龄3年 7883粉丝 687原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值