LLM微调完全指南:16种方法详解与实战选择,值得收藏学习

【实战】基于 Hugging Face 的 LLM 高效微调全解析 Hugging Face 提供了一系列用于自然语言处理的库和工具,包括 Transformers、Datasets、Tokenizers 等。其中,Transformers 库包含了大量预训练的语言模型,如 BERT、GPT、T5 等,这些模型可以方便地用于各种 NLP 任务。Datasets 库提供了许多常用的数据集,方便开发者快速获取和处理数据。Tokenizers 库则用于文本的分词处理,支持多种分词方法。 阅读详情

本文系统介绍16种大语言模型微调方法,分为参数高效微调(如LoRA、QLoRA)、行为塑造(如指令微调、RLHF、DPO)和能力扩展三大类。提供基于不同资源条件的实战决策框架,分享微调黄金法则和常见误区,强调数据质量优于数量,建议从小规模验证开始逐步优化,帮助读者根据实际需求选择合适技术方案。

img

一、参数高效微调(Parameter-Efficient Fine-Tuning, PEFT)

这类方法的核心思想是:只更新模型的一小部分参数,大幅降低计算和存储成本。

1. LoRA(Low-Rank Adaptation)

原理:在预训练模型的权重矩阵旁边添加低秩分解矩阵,只训练这些新增的小矩阵。

优势:

  • 训练参数量减少至原模型的0.1%-1%
  • 可以为不同任务训练多个LoRA模块,灵活切换
  • 显存占用大幅降低

适用场景:资源受限但需要定制化的场景,如企业级应用、个人GPU微调

实战建议:从rank=8或16开始实验,根据任务复杂度调整

2. QLoRA(Quantized LoRA)

原理:在LoRA基础上,将基础模型量化为4-bit,进一步压缩显存需求。

优势:

  • 可在消费级GPU上微调65B模型
  • 几乎不损失精度

适用场景:显存极度受限的环境,如单张24GB GPU微调大模型

3. Adapter Tuning

原理:在Transformer层之间插入小型"适配器"模块,冻结原始权重。

优势:

  • 模块化设计,易于管理多任务
  • 训练效率高

适用场景:需要维护多个领域专家模型的场景

4. Prefix Tuning

原理:在输入序列前添加可学习的"虚拟token"(prefix),引导模型行为。

优势:

  • 参数量极小(通常<1%)
  • 不修改模型本身

适用场景:需要快速适配多个下游任务

5. P-Tuning v2

原理:Prefix Tuning的改进版,在每一层都添加可学习的提示。

优势:

  • 在小模型上表现优于Prefix Tuning
  • 适用范围更广

6. BitFit

原理:只微调模型中的偏置项(bias),冻结其他所有参数。

优势:

  • 参数量最少(通常<0.1%)
  • 训练极快

适用场景:任务与预训练目标接近的情况

7. Soft Prompts

原理:学习连续的嵌入向量作为提示,而非离散的文本。

优势:

  • 超轻量级适配
  • 适合快速原型验证

适用场景:领域迁移较小的任务,如风格转换

二、行为塑造方法(Behavior Shaping)

这类方法专注于调整模型的输出风格、价值观和偏好。

8. Instruction Tuning(指令微调)

原理:使用"指令-回答"格式的数据集训练,让模型学会理解和遵循人类指令。

典型数据集:Alpaca、Dolly、FLAN等

适用场景:

  • 将基础模型转化为对话助手
  • 提升零样本任务能力

关键要点:数据质量比数量更重要,5万高质量样本胜过50万噪声数据

9. RLHF(Reinforcement Learning from Human Feedback)

原理:

  1. 收集人类偏好数据(A vs B)
  2. 训练奖励模型
  3. 用PPO算法优化策略模型

优势:

  • 可以对齐复杂的人类价值观
  • ChatGPT的核心技术

挑战:

  • 需要大量人工标注
  • 训练不稳定

适用场景:需要高度对齐人类偏好的应用,如客服机器人

10. DPO(Direct Preference Optimization)

原理:直接从偏好数据优化模型,跳过奖励模型训练步骤。

优势:

  • 比RLHF更稳定
  • 无需训练单独的奖励模型
  • 训练速度快2-3倍

适用场景:资源有限但需要偏好对齐的场景

实战技巧:2024年后DPO已成为偏好优化的首选方案

11. RLAIF(Reinforcement Learning from AI Feedback)

原理:用强大的AI模型(如GPT-4)替代人类提供反馈。

优势:

  • 数据获取成本低
  • 可扩展性强

挑战:可能继承AI教师的偏见

适用场景:预算有限或需要快速迭代的项目

三、能力扩展方法(Capability Expansion)

这类方法旨在提升模型的整体能力或适应特殊部署需求。

12. Multi-Task Fine-Tuning(多任务微调)

原理:同时在多个任务上训练,让模型学习任务间的共性。

优势:

  • 提升泛化能力
  • 防止灾难性遗忘

适用场景:需要处理多种相关任务的系统

数据配比技巧:使用温度采样(temperature sampling)平衡不同任务

13. Full Fine-Tuning(全参数微调)

原理:更新模型的所有参数。

何时使用:

  • 拥有充足计算资源
  • 需要最佳性能
  • 拥有大规模高质量领域数据(>10万样本)

注意事项:

  • 容易过拟合
  • 需要仔细调整学习率
  • 考虑使用梯度检查点节省显存

14. Mixture-of-Experts Fine-Tuning(专家混合微调)

原理:为不同任务训练专门的"专家"子网络,推理时动态选择。

优势:

  • 在不增加推理成本的情况下扩展模型容量
  • 不同专家可以独立更新

适用场景:多领域、多语言应用

代表模型:Mixtral、Switch Transformer

15. Federated Fine-Tuning(联邦微调)

原理:在多个数据源上分布式训练,数据不离开本地。

优势:

  • 保护数据隐私
  • 利用分散的数据资源

适用场景:

  • 医疗、金融等隐私敏感领域
  • 跨机构合作

技术挑战:通信成本、非独立同分布数据

16. On-Device Adaptation(端侧适配)

原理:在用户设备上进行个性化微调。

技术要点:

  • 必须使用PEFT方法(通常是LoRA)
  • 需要模型量化(4-bit或8-bit)
  • 使用增量更新

适用场景:

  • 个性化键盘输入预测
  • 私密性要求极高的应用

代表方案:Apple的设备端模型更新

四、实战决策框架

情况1:资源有限(单张消费级GPU)

推荐路径:QLoRA → DPO(如需偏好对齐)

情况2:需要快速原型验证

推荐路径:Instruction Tuning + Soft Prompts

情况3:生产环境部署

推荐路径:LoRA(易于版本管理)+ DPO(行为优化)

情况4:拥有充足资源和大规模数据

推荐路径:Full Fine-Tuning + Multi-Task Learning

情况5:隐私敏感场景

推荐路径:Federated Fine-Tuning 或 On-Device Adaptation

五、微调的黄金法则

  1. 从小开始:先用小模型和小数据集验证流程
  2. 评估先行:建立自动化评估体系再开始训练
  3. 数据质量>数量:1000条高质量样本胜过10000条噪声数据
  4. 迭代优化:Full FT → LoRA → QLoRA,逐步优化资源效率
  5. 监控遗忘:定期在通用基准上测试,防止灾难性遗忘

六、常见误区

误区1:认为Full Fine-Tuning总是最好的

  • 现实:在资源受限或数据有限时,PEFT方法往往更优

误区2:忽视基础模型的选择

  • 现实:选对基础模型比微调方法更重要误区3:过度关注技术,忽视数据
  • 现实:50%的性能提升来自数据清洗和标注质量

误区4:一次性解决所有问题

  • 现实:分阶段微调(先Instruction Tuning,再DPO)效果更好

七、工具生态

  • Hugging Face PEFT:LoRA、Prefix Tuning等的统一接口
  • Axolotl:微调配置管理工具
  • LLaMA-Factory:中文友好的一站式微调框架
  • DeepSpeed/FSDP:大规模分布式训练
  • vLLM:高效推理部署

结语

LLM微调不是"一招鲜",而是根据具体场景选择合适工具的艺术。

普通人如何抓住AI大模型的风口?

为什么要学习大模型?

在DeepSeek大模型热潮带动下,“人工智能+”赋能各产业升级提速。随着人工智能技术加速渗透产业,AI人才争夺战正进入白热化阶段。如今近**60%的高科技企业已将AI人才纳入核心招聘目标,**其创新驱动发展的特性决定了对AI人才的刚性需求,远超金融(40.1%)和专业服务业(26.7%)。餐饮/酒店/旅游业核心岗位以人工服务为主,多数企业更倾向于维持现有服务模式,对AI人才吸纳能力相对有限。

在这里插入图片描述

这些数字背后,是产业对AI能力的迫切渴求:互联网企业用大模型优化推荐算法,制造业靠AI提升生产效率,医疗行业借助大模型辅助诊断……而餐饮、酒店等以人工服务为核心的领域,因业务特性更依赖线下体验,对AI人才的吸纳能力相对有限。显然,AI技能已成为职场“加分项”乃至“必需品”,越早掌握,越能占据职业竞争的主动权

随着AI大模型技术的迅速发展,相关岗位的需求也日益增加。大模型产业链催生了一批高薪新职业:

img

人工智能大潮已来,不加入就可能被淘汰。如果你是技术人,尤其是互联网从业者,现在就开始学习AI大模型技术,真的是给你的人生一个重要建议!

如果你真的想学习大模型,请不要去网上找那些零零碎碎的教程,真的很难学懂!你可以根据我这个学习路线和系统资料,制定一套学习计划,只要你肯花时间沉下心去学习,它们一定能帮到你!

大模型全套学习资料领取

这里我整理了一份AI大模型入门到进阶全套学习包,包含学习路线+实战案例+视频+书籍PDF+面试题+DeepSeek部署包和技巧,需要的小伙伴文在下方免费领取哦,真诚无偿分享!!!

vx扫描下方二维码即可

在这里插入图片描述

部分资料展示

一、 AI大模型学习路线图

这份路线图以“阶段性目标+重点突破方向”为核心,从基础认知(AI大模型核心概念)到技能进阶(模型应用开发),再到实战落地(行业解决方案),每一步都标注了学习周期和核心资源,帮你清晰规划成长路径。

img

二、 全套AI大模型应用开发视频教程

从入门到进阶这里都有,跟着老师学习事半功倍。

在这里插入图片描述

三、 大模型学习书籍&文档

收录《从零做大模型》《动手做AI Agent》等经典著作,搭配阿里云、腾讯云官方技术白皮书,帮你夯实理论基础。

在这里插入图片描述

四、大模型大厂面试真题

整理了百度、阿里、字节等企业近三年的AI大模型岗位面试题,涵盖基础理论、技术实操、项目经验等维度,每道题都配有详细解析和答题思路,帮你针对性提升面试竞争力。

在这里插入图片描述

适用人群

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范
  • …
第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署
  • …
第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建
  • …
第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案
  • …

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

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

在这里插入图片描述

LLM 微调原理详解:从全量微调到高效参数微调 摘要:本文系统介绍了大语言模型(LLM)的微调技术,包括全量微调、LoRA、QLoRA等方法。微调通过调整预训练模型参数,使其适配特定领域和任务,相比预训练和RAG具有计算成本适中、更新灵活的优势。重点分析了LoRA等高效参数微调技术的原理与实现,通过低秩矩阵分解大幅降低计算资源需求(7B模型微调仅需12-24GB显存)。文章还比较了不同微调范式的适用场景,并提供了实战代码示例,为LLM的定制化应用提供技术指导。 关键词:大语言模型、微调技术、LoRA、QLoRA、参数高效微调 阅读详情

相关推荐

【LLM大模型】指令微调、peft高效参数微调

LLaMA 是 Meta AI 发布的包含 7B、13B、33B 和 65B 四种参数规模的基础语言模型集合,LLaMA-13B 仅以 1/10 规模的参数在多数的 benchmarks 上性能优于 GPT-3(175B),LLaMA-65B 与业内最好的模型 Chinchilla-70B 和 PaLM-540B 比较也具有竞争力。通过使用与 ChatGLM(chatglm.cn)相同的技术,ChatGLM-6B 初具中文问答和对话功能,并支持在单张 2080Ti 上进行推理使用。

发现问题,并解决问题,批判性思维 1万+

LLM模型微调方法及经验总结

在现在这大规模语言模型(LLM)盛行的时代,由于模型参数和显卡配置的因素,预训练基本是大公司或者高校可以完成的事情,而对于小公司或个人,则只能对LLM进行微调,也就是说微调少量或额外的模型参数,固定大部分预训练模型(LLM)参数,从而大大降低了计算和存储成本,同时,也尽可能实现与全量参数微调相当的性能。本文总结几种主流的微调方法,主要包括Freeze方法、P-tuning方法、Lora方法和Qlora方法。

dzysunshine的博客 9881

【LLM】Prompt tuning大模型微调实战

- 给出好的prompt可以让LLM生成更好的答案,反过来想通过LLM帮我们找到好的prompt就是prompt tuning的思路,训练让模型看到新的例子生成prompt,并把该段prompt作为前缀拼接到我们自己的prompt上,送入LLM得到结果 - prompt tuning训练的前缀是向量,所以解释性略差 - 和few show比较:LLM的上下文context长度是有限的(prompt中给出有限的例子,业务复杂时难让模型学习足够多知识),prompt tuning就没有这个限制,只需在训练

发现问题,并解决问题,批判性思维 1万+

2024年大语言模型(LLM)微调方法最全总结!

众所周知,大语言模型(LLM)正在飞速发展,各行业都有了自己的大模型。其中,大模型微调技术在此过程中起到了非常关键的作用,它提升了模型的生成效率和适应性,使其能够在多样化的应用场景中发挥更大的价值。那么,今天这篇文章就带大家深入了解大模型微调,主要包括什么是大模型微调、什么时候需要大模型微调、大模型微调方法总结、大模型微调最佳实践等。

机器学习社区 9423

开关电源EMI滤波设计:如何通过Cx和Cy电容精准抑制共模与差模干扰?

本文深入解析了开关电源EMI滤波设计中Cx和Cy电容的核心作用。Cx电容并联于火线与零线之间,专用于抑制差模干扰;Cy电容连接于火线/零线与地之间,则负责泄放共模干扰。文章详细阐述了二者选型、安规要求及PCB布局要点,并提供了基于测试频谱的实战调优策略,是解决电源传导噪声问题的实用指南。

7z8x2c4v6b9的博客 468

别再到处找离线包了!Visual Studio 2022 企业版/社区版离线安装保姆级教程(含工作负载选择指南)

本文提供Visual Studio 2022企业版/社区版离线安装的详细教程,包括工作负载选择指南和批量安装优化策略。针对网络隔离或带宽受限环境,介绍如何制作离线安装包、选择合适的工作负载组合,并分享高级技巧如增量更新和自动化部署,帮助团队高效统一开发环境配置。

weixin_28745821的博客 731

【NLP】一文搞懂!如何高效微调你的 LLM

作者|guolipa整理|NewBeeNLP公众号https://zhuanlan.zhihu.com/p/621700272当前以 ChatGPT 为代表的预训练语言模型(PLM)规模变得越来越大,在消费级硬件上进行全量微调(Full Fine-Tuning)变得不可行。此外,为每个下游任务单独存储和部署微调模型变得非常昂贵,因为微调模型与原始预训练模型的大小相同。 参数高效微调方法...

fengdu78的博客 2168

OLED 驱动模块程序代码

作为嵌入式软件开发,可能经常会使用单片机连接驱动显示屏,实现人机交互的功能,通常可选择的有 OLED 和 LCD 等,其中相关驱动代码例程网上更是数不胜数。 本文介绍的是 OLED, 常见代表有 0.96 寸的OLED,网上也有很多相关的驱动代码,但是大部分代码都是能用即可,不是特别关注驱动代码的整体架构,以下是个人整理的 OLED 驱动代码,支持配置 SPI 和 IIC 两种接口方式(目前只是测试了 SPI,IIC 有待验证)。

大橙子的博客 4290

收藏必备!大模型微调完全指南:16种主流方法详解,从入门到精通,小白也能轻松掌握LLM微调技术

文章系统介绍大语言模型(LLM)微调的16种主流方法,分为参数高效微调(如LoRA、QLoRA)、行为塑造方法(如指令微调、RLHF)和能力扩展方法(如多任务微调、联邦微调)。详细解析各方法原理、优势、适用场景和实战建议,针对不同资源情况提供决策框架,强调微调应根据具体场景选择合适工具,数据质量比数量更重要。

2401_85390073的博客 1208

操作系统原理:【优麒麟】linux内核添加系统调用

在底端添加如下代码。

Joyce_zz的博客 2709

【Python机器学习】零基础掌握TweedieRegressor广义线性回归模型

本次文章主要介绍了如何使用Tweedie回归模型预测电动汽车的实际续航里程。基于车速、气温和驾驶习惯等多种因素,模型能够准确地预测出电动汽车的续航里程,从而为生产商和消费者提供有用的信息。优点总结,Tweedie回归模型在处理具有多元性和高度散布的数据方面表现出色,特别适用于需要考虑多种影响因素的预测任务。优点名称对应描述说明多元性强可以同时处理多种类型和维度的数据高度可定制允许用户自定义损失函数和正则项对异常值鲁棒能够较好地处理数据中的异常值易于解释参数和预测结果都相对容易解释。

Mr数据杨 1006

开源LLM微调训练指南:如何打造属于自己的LLM模型

今天我们来聊一聊关于LLM的微调训练,LLM应该算是目前当之无愧的最有影响力的AI技术。尽管它只是一个语言模型,但它具备理解和生成人类语言的能力,非常厉害!它可以革新各个行业,包括自然语言处理、机器翻译、内容创作和客户服务等,成为未来商业环境的重要组成部分。

FrenzyTechAI的博客 7894

calibre:将calibre 的layer number 转换为实际的laymer 名称(7)

可以使用与版图数据库配套的(Standard Verification Rule Format,标准验证规则格式),在 Calibre DESIGNrev 中加载图层名称。

u013620135的博客 984

LLM微调评估先行:全面掌握 lm-eval 工具的实战与原理

LLM 微调流程常见如下:但真正高效的实践顺序应当是:原因是:选择容易评估的任务,如:选择评估成本可控、有现成数据或可收集的数据集,如:🔑 核心判断标准:任务是否可评估/易评估!评估流程包括:明确任务目标(分类 / 生成)选择合适指标:例如在 GSM8k 上: 5. 有没有工具能帮我们评估? ✅ 有!推荐使用:lm-evaluation-harness(简称 lm-eval) GitHub 地址:https://github.com/EleutherAI/lm-evaluation-harness特点:

2048

构建一个基于Simulink的LC滤波器仿真模型

需求分析LC滤波器(Inductor-Capacitor Filter)是一种常见的无源滤波器,广泛应用于电力电子、通信、音频处理等领域。其主要作用是平滑输入信号中的高频谐波成分,保留低频或直流成分,从而提高输出信号的质量。在电力电子系统中,LC滤波器常用于逆变器、整流器等设备的输出端,以减少开关噪声和电磁干扰(EMI),确保输出电压和电流的稳定性。本项目将基于Simulink平台,开发一个完整的LC滤波器仿真模型,涵盖从电源输入到滤波输出的整个过程,并通过PI控制器实现对滤波效果的闭环控制。

MHD0815的博客 740

PLC凸轮开关指令编程应用——控制算法

凸轮开关指令的作用是在PLC程序中根据凸轮开关(Cam Switch)的状态执行不同的操作。凸轮开关通常是机械式的开关装置,它的位置会随着机械运动的变化而改变。凸轮开关的状态可以用来检测机器的位置、角度或其他相关信息,从而触发相应的控制动作。总结起来,凸轮开关指令是PLC编程中常用的一种控制算法,通过检测凸轮开关的状态来触发相应的操作。本文将介绍凸轮开关指令的应用和相应的控制算法,并提供相关的源代码示例。在这个示例中,凸轮开关状态的值代表不同的位置,根据凸轮开关状态的不同,执行相应的动作。

LiJavascript的博客 1034

LLM微调完全指南:16种技术方案助你快速上手(建议收藏)

本文系统介绍大语言模型(LLM)的16种微调方法,分为参数高效微调(如LoRA)、行为塑造(如RLHF)和能力扩展(如全参数微调)三大类。提供实战决策框架,根据资源、数据量和隐私需求推荐不同路径,并分享微调黄金法则和常见误区,帮助开发者选择最适合的技术方案。

2401_85373691的博客 1140

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

【强烈收藏】LLM完整学习路径:架构、训练、对齐与量化详解

本文全面介绍大语言模型(LLM)开发全流程,涵盖架构设计、预训练技术、数据集构建、监督微调、偏好对齐方法、评估策略及量化优化。从Transformer基础到高级训练技术,帮助开发者系统掌握LLM从零构建到部署的完整知识体系,适合小白入门和程序员进阶学习。

m0_48891301的博客 1253

STM32F407中文手册

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

Devexpress16.2.6破解工具

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

开源 LLM 微调训练指南:如何打造属于自己的 LLM 模型

今天我们来聊一聊关于LLM的微调训练,LLM应该算是目前当之无愧的最有影响力的AI技术。尽管它只是一个语言模型,但它具备理解和生成人类语言的能力,非常厉害!它可以革新各个行业,包括自然语言处理、机器翻译、内容创作和客户服务等,成为未来商业环境的重要组成部分。

机器学习社区 2243

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

微调DeepSeek LLM:使用监督微调(SFT)与Hugging Face数据集的详细指南

DeepSeek LLM是一个强大的开源语言模型,但为了在特定应用中充分发挥其潜力,微调至关重要。

2301_81940605的博客 868

LLM PEFT微调方法最全理论篇

在调研过程中,感觉现在用的多的都是LoRA派系的微调方法,比如LLaMA-Factory就拿它LoRA去对比ChatGLM的P-Tuning,结果显示3.7倍的加速比,更高的Rouge分数,使用QLoRA还进一步减低GPU显存消耗。图:LLaMA-Factory的性能对比。

qkh1234567的博客 1340

大模型微调显存估算完全指南:从参数量到显卡选择的收藏宝典

文章介绍了大模型微调的显存估算方法:参数量×2字节(FP16)×1.1=所需显存。针对显存不足情况,可采用8Bit或4Bit量化技术,分别减少至原需求的一半和1/4。文章详细列出了不同参数量模型微调所需的显存和适合显卡,并提供了在有限显存条件下可进行的微调方案,帮助读者量体裁衣选择硬件。

lvaolan的博客 1238

20K star!手把手教会你搞定 LLM 微调,超详细收藏我这篇就够了

在人工智能领域,大型语言模型(LLM)微调(Fine-Tuning)是当下最热门的话题之一。总体来说LLaMA Factory 是一个非常优质的工具,在LLM微调中帮助用户节省了大量的精力。这些模型拥有惊人的语言理解和生成能力,但要微调和部署它们以适应特定任务,往往需要大量计算资源和专业知识,代码调试还得有深厚的技术功底。

m0_65555479的博客 2300

LLM超长文本微调训练:技术原理与实战实现

文章摘要(150字): 本文探讨大语言模型(LLM)的超长文本微调技术,解决模型上下文窗口限制问题。核心方案包括:1)上下文扩展微调(如修改RoPE位置编码);2)分块-关联微调。详细演示了文本预处理(分块截断、噪声清洗)和基于Llama 2的RoPE扩展实战,提供完整Python代码支持macOS环境。该技术可应用于法律文档、论文综述等长文本场景,通过调整位置编码和微调训练使模型支持16k+ tokens的上下文理解,为LLM长文本处理提供实用解决方案。

没事学AI的博客 1199
上一篇: 【收藏】2026裁员潮下程序员自救指南:掌握大模型技术,守住AI时代高薪饭碗
下一篇: 【收藏】Java程序员转型大模型指南:从CRUD到AI架构师,解锁高薪新赛道
冻感糕人~
博客等级 码龄3年 8926粉丝 2384原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值