用大模型优化大模型预训练数据,节省20倍计算量,实现显著性能提升!

解锁数据炼金术:使用 ProX 提升预训练数据质量 ProX 的核心思想是将数据精炼视为一个“编程任务”。模型会根据每个数据生成并执行精细的操作,就像专家亲自上阵一样。数据适应:首先,我们让一个小型基础模型(参数少于 1B)通过微调学习如何处理数据精炼任务。这些精炼任务可能包括字符串规范化、噪声行删除等。生成操作:接下来,精炼模型会为每个数据生成一个操作程序,如下图所示:fill:#333;color:#333;color:#333;fill:none;数据输入精炼模型生成操作操作分类字符串规范化删除噪声行数据过滤生成精炼数据。 阅读详情

生成式人工智能研究实验室(GAIR,主页:https://plms.ai/)是国内首个聚焦于生成式人工智能的高校研究组。汇聚了来自于 CMU、复旦、交大(ACM 班、IEEE 试点班等)等顶尖高校的年轻本硕博人才。实验室专注于三大核心领域:大模型基础研究、对齐系统和社会影响,致力于培养顶尖人工智能人才(具有原创、批判精神等)、开发尖端的生成式人工智能技术,赋能人类解决复杂问题,提升人类生活质量。

Program-Every-Example (ProX) 是上海交通大学生成式人工智能实验室 (GAIR Lab) 、上海人工智能实验室、新加坡 Sea AI Lab 联合研究的一个用于提升大规模预训练语料质量的数据优化框架。

1. 背景介绍

在大模型研发过程中,数据质量是决定模型成功与否的关键因素之一,而大规模预训练数据则是构建强大语言模型的基础。业界的实践通常是抓取互联网上的海量的网页数据,然后由人类专家设计专门的规则来进行数据清洗,这些规则虽然能够在处理数千亿甚至上万亿 token 级别的语料时保持较高的效率,但其局限性也逐渐显现。数据的清洗效果往往决于规则是否全面,然而这些规则并不能理解文档中的上下文语境,同时也很难为每一个文档去定制规则,故此面对多样化的样本需求,这些静态规则难以灵活应对,导致语料质量提升空间有限,制约了模型的进一步突破。

为此,上海交通大学生成式人工智能实验室 (GAIR Lab)、上海人工智能实验室以及新加坡 Sea AI Lab 联合提出了 Program-Every-Example (ProX) 框架。ProX 通过采用语言模型而非人类规则进行自动化的数据优化,灵活应对多样化的样本特征,显著提升了预训练语料的质量,为大规模预训练模型的性能突破提供了一种可能的数据优化思路

img

  • 论文: https://huggingface.co/papers/2409.17115

团队还以开源的方式为社区提供了:

  • 代码框架: https://github.com/GAIR-NLP/ProX
  • 预训练实验的全实验细节和模型: https://huggingface.co/gair-prox
  • 超过 100B 的高质量通用语料和 5B 的高质量数学语料: https://hf.co/collections/gair-prox/prox-dataset-66e81c9d560911b836bb3704

2. 用语言模型提升语言模型 「自己」 的数据质量

传统的预训练数据清洗和优化方法主要依赖人工设计的规则,虽然这些规则能够有效过滤低质量数据,但无法针对每个样本进行更细粒度的处理。这种方式难以处理复杂的多样化数据,最终可能导致模型性能的瓶颈。Program-Every-Example (ProX) 的出现旨在改变这一局面,它通过利用语言模型自动生成优化程序,能够对每个数据样本进行个性化处理,提升数据的整体质量。ProX 不仅可以识别低质量的文本,还能进行更精准的优化和清理,如字符串标准化、噪声行删除等操作,确保每个样本都能以最佳状态进入预训练过程。

img

图:ProX 总体框架,利用语言模型生成程序 + 执行,提升数据质量。

3. 如何兼顾效率和质量?Program-Every-Example!

在利用语言模型提升数据质量的同时,如何提高数据处理的成本和效率也是研究中的一大挑战,特别是考虑到预训练所需要的语料往往突破了数万亿级别 (TB) token。

近期,业界和各个研究团队(如 meta 的 llama 团队,阿里千问团队)也在积极研究直接利用大语言模型来选择和过滤语料,这些方法主要应用于文档级别的数据过滤和选择,能够有效识别低质量的文档并加以排除,提升整体数据集的质量。然而,这类方法潜在的局限性在于其精细化处理能力不足,通常只停留在文档的选择层面,可能没有进一步对文档内的细节进行更深入的优化和清理,例如字符级别的规范化处理、噪声行的删除等操作,从而限制了数据优化的效果。

同时,直接的数据合成方法正在成为另一个研究热点。该方法通过大语言模型(LLM)基于种子数据或特定话题,主动生成新的高质量数据。这种合成技术尽管展示了生成多样化、丰富语料的潜力,但其挑战在于需要极大的计算资源支持,特别是在大规模生成时,计算代价非常高。此外,LLM 生成的数据还面临幻觉问题,即生成内容与事实不符,无法保证训练数据的真实性和一致性。这些问题给直接数据合成方法的实际应用带来了很大挑战,特别是在需要高精度和高可信度的领域。

于是在 ProX 中,研究者们提出了 Program-Every-Example 的设计。 他们通过使用较小的语言模型(如 0.3B 的超小规模模型)来执行数据优化任务,并且将数据优化的过程转变为调用特定的 python 函数**,对每个文档都生成特定的函数调用**。ProX 框架会再通过执行这些程序,来对语料进行文档级别的过滤和噪声行、字符级别的处理。

这样简单的 Program 设计,大大节省了输出端的 token 数量,相比较于依赖于大语言模型数据合成方法(通常依赖于 7B 甚至 70B 规模的模型)显著减少了计算成本,同时又做到了简单过滤方法无法实现的精细化操作。

img

图:ProX 设计的函数接口,覆盖了文档级别过滤、噪声行去除、字符串清洗等操作。

4. 如何构造数据优化模型?

如何构造这样的数据优化模型呢?是否要对不同 domain 都有不同的构造方法呢?在这里,ProX 采用了一种统一的构造思路,无需对特定领域进行额外设计就可以广泛适用。首先,针对数据优化的粒度,ProX 将优化分为两个阶段:文档级别和子文档 / 块级别 (将文档切分成更小的窗口),分别对应文档级别的过滤和更细粒度的块内优化如行级别和字符级别的优化。

由于直接让模型,尤其是较小的模型生成这样上述设计的函数调用是较为困难的,因此 ProX 合成了对应的微调数据,以便对基座模型进行微调以处理和优化真实的语料。在文档级别操作中,ProX 借鉴了近期纽约大学的 Self-Rewarding 以及 Hugginface 的 FineWeb-Edu 中所采用的评分机制,对数万个随机采样的种子文档进行了教育价值评分、文档格式评分,并构建出保留高分文档、去除低分文档的优化程序。在子文档 / 块级别级别的操作中,ProX 利用了 Llama-3 和少样本提示的方法,构造了对于多种噪声的函数调用,并对这些离散的函数调用进行语法检查和正确性分析,筛选然后合并为一个较为复杂的程序。

最终,ProX 对两个优化阶段,分别构建了适用于通用领域的约 50K 函数调用数据集,并以相同的方法针对数学领域生成了同等规模的数据集。ProX 随后通过 SFT(监督微调) 在一个小模型上进行训练,模型快速收敛,且成功应用于真实的大规模语料处理任务中,在后续的大量实验中展示了其高效的优化能力与广泛的适用性。

img

图:ProX 构造 SFT 数据和数据优化模型的流程示意图。

5. 在广泛数据集上得以验证

那么 ProX 得到的数据效果到底如何?

超越人工规则,超越此前的基于语言模型的数据选择方法

初步实验发现,ProX 在小于 1B 规模的模型训练中超越了此前多个人工设计的规则过滤方法,并且在多数的标准化测试数据集中稳定达到更高的表现。

img

img

表:ProX 和人工规则的对比,表现出稳定且大幅度的增长。

ProX 还和此前利用语言模型选择预训练数据的方法进行了比较。团队仅采用了文档级别的优化,以保持和数据选择方法较为公平的优化粒度,仍然在 8 个下游数据集上,大幅度提升了之前的利用语言模型进行数据选择方法 ( > 2.0%)。

img

表:Prox 和现有的利用语言模型进行数据选择方法对比,超越了所有基准方法。

更大规模的实验:50B 语料训练媲美 3T 性能?

团队在 1.7B 模型上训练了 50B ProX 优化后的数据,发现其表现已经接近于甚至超越一些用超过数百 B 甚至 TB 级别语料训练的语言模型,例如 OLMo、Pythia、TinyLlama 等等。且训练后的模型和现有的利用超大模型直接数据合成语料上训练更充足的模型,表现也非常接近。这充分说明了 ProX 优化数据质量的有效性。

img

图:ProX 和原始数据、Tinyllama (3T token)、OLMo (2T token)、Pythia (300B token) 的训练代价及性能表现对比。

在这些对比的模型中,Inst-LM 实际采用了更大规模的经过重构的下游数据集 + 微调的 Mistral-7B 模型,合成了更多的 100B tokens;Cosmo 则采用了更大规模的 Mistral-8x7B 模型合成了 25B tokens,并重复训练了 180B 总 tokens;Sheared-Llama 则是通过模型剪枝算法,从 Llama-2-7B 中剪枝并且继续训练 50B tokens 得到。相比于 ProX 仅用了 0.3B 的优化模型和 50B tokens 的训练代价,这些模型的数据开发和训练成本都要大得多。而 ProX 取得了和他们十分接近的数据集表现,也进一步反应了 ProX 的高效和节省计算量。

img

图:ProX 和 LLama-2 模型剪枝方法、其他合成语料训练的模型之间的性能比较。

通过对 FLOPs 的定量分析,团队发现随着训练模型参数量的扩大,ProX 的数据优化的推理成本占训练成本的比例在不断下降,达到相同下游表现的总训练成本也在大幅下降。并且相比于利用大模型,直接进行大规模数据合成高质量语料所需要的代价要小得多。

img

图:达到相同性能,使用 / 不使用 ProX 所需的总计算量成本。

特定领域预训练 :无需额外设计,大幅提升数学性能

ProX 在数学语料上也有相似的提升。ProX 对现有最好的开源数学文本语料 Open-Web-Math 进行优化,得到了约 5B 高质量的数据。在对 7B 模型 (如,CodeLlama,Llama,Mistral)经过了 10B~15B 的预训练后,模型在 9 个数学相关榜单上最高提升 20% 的性能。注意到 ProX 仅用了约 1/20 的训练代价,就得到了效果堪比现有的使用开源数据训练 50B 甚至 200B 的专用数学大模型,再次证明了数据质量对于模型的重要性。

值得注意的是,ProX 并未对数学领域的数据优化模型、优化函数、数据收集进行额外的设计;他们直接使用了和通用领域相同的提示词、函数实现、构建策略,就得到了出色的效果;这也极大降低了定制化垂类大模型的开发成本。

img

图:ProX 在数学语料上的续训练以及在 9 个数学任务上的平均性能表现。

6. 未来展望

ProX 可以怎么样帮助社区做下一步的研究?他们在论文的最后还构想中了如下几点:

  • 设计出更灵活的接口,以覆盖多样化的数据优化需求,进一步提升数据质量。
  • 将 ProX 发展到更多专用 domain:例如代码领域、多语言语料上,促进领域大模型的发展。
  • 通过进一步减小模型尺寸、和其他加速手段,减小推理代价,使清洗 TB 级别文档不再遥远。

最后,随着近期 openai o1 模型的发布,test time scaling 成为研究者们和业界关心的话题。对此,ProX 团队也怀有相同的期待:在数据优化阶段投入更多的计算量来优化数据,或许同样能够成为模型突破瓶颈、迈向通用人工智能(AGI)的重要技术手段之一。
​

如何学习大模型

现在社会上大模型越来越普及了,已经有很多人都想往这里面扎,但是却找不到适合的方法去学习。

作为一名资深码农,初入大模型时也吃了很多亏,踩了无数坑。现在我想把我的经验和知识分享给你们,帮助你们学习AI大模型,能够解决你们学习中的困难。

我已将重要的AI大模型资料包括市面上AI大模型各大白皮书、AGI大模型系统学习路线、AI大模型视频教程、实战学习,等录播视频免费分享出来,需要的小伙伴可以扫取。

一、AGI大模型系统学习路线

很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,我下面分享的这个学习路线希望能够帮助到你们学习AI大模型。

在这里插入图片描述

二、AI大模型视频教程

在这里插入图片描述

三、AI大模型各大学习书籍

在这里插入图片描述

四、AI大模型各大场景实战案例

在这里插入图片描述

五、结束语

学习AI大模型是当前科技发展的趋势,它不仅能够为我们提供更多的机会和挑战,还能够让我们更好地理解和应用人工智能技术。通过学习AI大模型,我们可以深入了解深度学习、神经网络等核心概念,并将其应用于自然语言处理、计算机视觉、语音识别等领域。同时,掌握AI大模型还能够为我们的职业发展增添竞争力,成为未来技术领域的领导者。

再者,学习AI大模型也能为我们自己创造更多的价值,提供更多的岗位以及副业创收,让自己的生活更上一层楼。

因此,学习AI大模型是一项有前景且值得投入的时间和精力的重要选择。

用面包板实测MOSFET:手把手教你测量跨导和开关时间 本文详细介绍了如何使用面包板、Arduino和示波器搭建测试平台,实测MOSFET的跨导和开关时间。通过分步测量流程和示波器技巧,帮助电子设计初学者深入理解MOSFET的动态特性,包括跨导计算、开关时间参数解析以及米勒平台现象分析。 阅读详情

相关推荐

【项目管理】第8章 项目整合管理 --知识点整理

制定项目章程: 第一步,旨在明确项目的目标、范围、关键里程碑等关键信息,为项目的后续工作奠定基础。制订项目管理计划: 在项目章程的基础上,进一步详细规划项目的执行过程,包括时间、成本、质量、风险等方面的管理计划。指导与管理项目执行: 按照项目管理计划执行项目,同时监控项目的进展,确保项目按照计划进行。监控项目工作: 对项目的执行情况进行持续监控,及时发现并解决问题,确保项目目标的实现。

weixin_42081167的博客 1594

上海交大:精炼预训练语料库提升LLM性能

如何提高预训练数据的质量,以提升语言模型的性能和训练效率?论文提出了一个名为PROX的模型驱动框架,通过程序生成来精细化预训练数据,显著提升了模型性能并减少了训练成本。

大模型任我行的博客 1286

100G SR4 光模块设计

目前100G SR4 光模块主要采用COB 封装技术,在光电芯片键合(bonding)阶段,首先使用银胶将光芯片、电芯片精准固定在电路板规定位置上,该工序即为元件键合(die bonding);然后采用打线机进行金线键合(wire bonding),完成光模块内部的电气连接。在光路耦合阶段,采用8路阵列透镜组完成光路90°弯折及聚焦,并采用有源耦合的工艺进行光路的最终确认,该设计方案工艺简单、高效,借助全自动贴片机、打线机和耦合台就可实现100G SR4 光模块的大批量生产。

Flyin_Group的博客 1373

Big Model weekly | 第40期

点击蓝字关注我们AI TIME欢迎每一位AI爱好者的加入!01Reward-Robust RLHF in LLMs随着大型语言模型(LLMs)不断向更高级的智能形式发展,基于人类反馈的强化学习(RLHF)越来越被视为实现人工通用智能(AGI)的关键途径。然而,对基于奖励模型(RM-based)的对齐方法的依赖带来了显著挑战,因为奖励模型的不稳定性和不完美性可能导致关键问题,如奖励黑客攻击和与人类意...

AITIME_HY的博客 971

从标准到实战:详解IEC 61000-4-2下的ESD电路防护设计

本文深入解析IEC 61000-4-2标准下的ESD电路防护设计,从静电防护的基础原理到实战应用。详细介绍了接触放电与空气放电的区别、防护器件选型要点(如TVS管和压敏电阻)以及PCB布局的黄金法则,帮助工程师有效提升电子产品的抗静电能力,确保设备在严苛环境下的稳定运行。

weixin_33704234的博客 512

LSM6DSOW陀螺仪轮询驱动:从I2C/SPI配置到数据读取全解析

惯性测量单元(IMU)是现代嵌入式系统中实现姿态感知与运动跟踪的核心传感器,其通过加速度计和陀螺仪测量线性加速度与角速度。在嵌入式开发中,轮询(Polling)作为一种基础且可靠的通信方式,通过主循环主动查询传感器状态,简化了初始调试与验证流程。对于I2C/SPI接口的数字传感器,掌握寄存器配置、数据就绪标志检查及原始数据转换是通用的驱动方法,能够快速验证传感器工作状态并理解数据流。LSM6DSOW作为一款高性能6轴IMU,支持可配置的量程与输出数据速率,适用于无人机飞控、手持云台等高动态场景。本文以LSM

weixin_28728265的博客 557

目标检测YoloV5模型优化:数据集处理(标注原则)

数据数量还是数据质量vs.如果要追求数据的质量,我们就必须有严格而统一的标注规则,反之就是指标下降。

Java开发,人工智能,边缘计算,致力于掌握前沿技术 6302

AUTOSAR RTE配置实战:从ECU分区到Task映射的完整指南

本文提供了一份AUTOSAR RTE配置的完整实战指南。从创建ECU分区、定义OS任务,到实现Runnable Entity与Task的精确映射,详细解析了每一步的操作要点与常见陷阱。文章结合配置工具界面,旨在帮助开发者高效完成RTE配置,确保系统实时性与数据一致性,是掌握AUTOSAR核心开发流程的实用参考。

weixin_29228203的博客 485

大模型日报|7 篇必读的大模型论文

大模型日报|7 篇必读的大模型论文

AMiner2006的博客 926

在MacBook上直接跑Windows Server 2022:一个开发者的真实踩坑与配置全记录

本文详细记录了在MacBook上原生运行Windows Server 2022的完整流程与优化技巧。通过Boot Camp实现非虚拟机安装,开发者可以充分利用Mac硬件性能,搭建高效的本地开发环境,特别适合需要测试跨平台应用和服务器功能的场景。文章涵盖驱动处理、分区策略、Docker配置等关键步骤,为技术极客提供实用指南。

weixin_42620913的博客 247

Open3D——点云构建Delaunay三角网【2026最新版】

点云构建Delaunay三角网

点云侠的博客 8367

节省20倍计算量!上交大等发布ProX框架,用大模型优化大模型预训练数据

传统的预训练数据清洗和优化方法主要依赖人工设计的规则,虽然这些规则能够有效过滤低质量数据,但无法针对每个样本进行更细粒度的处理。这种方式难以处理复杂的多样化数据,最终可能导致模型性能的瓶颈。Program-Every-Example (ProX) 的出现旨在改变这一局面,它通过。

python12222_的博客 1263

有限元之有限元空间的构造

主要介绍有限元的空间构造方法。

欢迎各位大佬光临“寒舍”!请多多指点,共同进步! 762

DeepSeek官宣,猛降75%!英伟达下场,性能狂飙25倍

AI大模型领域掀起新一轮降价潮

cstech_deep的博客 813

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

4种模型优化技巧,节省80%算力,性能翻倍

梦想照进现实,却被业务效果狠狠打脸。今天给大家深入讲解下模型蒸馏、量化、微调、RAG四种技术,学习如何结合实际业务选择合适的方法,告别人工智障。

大模型研究中心 1105

深度学习工具包 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")

预训练模型缩放定律:参数、数据与计算量的平衡策略

在深度学习领域,预训练模型的性能提升遵循特定的缩放定律(Scaling Laws),这是模型参数(N)、训练数据(D)和计算量(C)三者之间的数学平衡关系。理解这一原理对高效训练大规模模型至关重要,尤其在资源有限的情况下。缩放定律揭示了单纯增加参数或数据量都会遇到性能瓶颈,必须通过最优资源分配来实现模型性能的最大化。实践中,工程师们常采用动态采样、课程学习等技术优化数据使用,同时结合混合精度训练和梯度检查点等方法来提升计算效率。这些技术在训练亿级参数的BERT、GPT-3等模型时得到验证,为自然语言处理、计

weixin_34128839的博客 575

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

CV大模型预训练MAE:Masked Autoencoders Are Scalable Vision Learners论文理解和翻译

1、提出一种用于CV的可扩展自监督学习方案Masked AutoEncoders(MAE) 2、这种可扩展的方法允许学习具有高容量的模型,这些模型具有良好的泛化能力 3、ViT-Huge模型在仅使用ImageNet-1K数据的方法中实现了最高的准确率(87.8%),在下游任务中的迁移性能超过了监督预训练

lovep1的博客 3403

终极指南:GroundingDINO模型蒸馏技术,用小模型实现大模型90%性能

想要在资源受限的环境中运行强大的目标检测模型吗?GroundingDINO模型蒸馏技术正是你需要的解决方案!通过知识蒸馏方法,可以将庞大的GroundingDINO模型压缩到更小的尺寸,同时保持接近原始模型的性能表现。🚀 ## 什么是GroundingDINO模型蒸馏? **模型蒸馏**是一种将大模型(教师模型)的知识传递给小模型(学生模型)的技术。对于GroundingDINO这种强大的开

gitblog_00866的博客 998

AI大模型微调训练营,全面解析微调技术理论,掌握大模型微调核心技能

随着人工智能技术的飞速发展,大型预训练模型(如GPT、BERT、Transformer等)已成为自然语言处理、图像识别等领域的核心工具。

pythonhy的博客 1271
上一篇: 超全攻略|手把手带你0经验转行产品经理
下一篇: 深度学习 Transformer 的自注意力机制掩码
爱喝白开水a
博客等级 码龄3年 6793粉丝 763原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值