1
一、引言
1.1 什么是微调大模型?
微调(Fine-tuning)大模型,就像是给一个已经学富五车的大脑(预训练的基础大模型),进行一次针对性的“专业强化训练”。基础大模型通过海量数据学习了通用的语言规律和世界知识,但对于特定领域、特定任务,它可能还不够“精通”。微调就是利用少量、高质量的领域数据,在基础模型之上继续训练,让模型更好地适应新的任务或领域。也就是让大模型从一个广度很强的通才,在某个领域树上的技能加强变成一位专才。
尤其常用的LoRA(Low-Rank Adaptation)等高效微调方法,通过只调整模型中很少一部分参数或添加少量额外层,就能达到很好的效果,大大降低了所需的计算资源和时间,让模型“学得又快又专”。
Lora微调原理,在大模型权重文件的输出时,再添加一个可训练的低秩矩阵
1.2 为什么需要微调大语言模型
预训练的大语言模型虽然强大,能理解和生成各种文本,但它们是“通才”,缺乏对特定领域细致入微的理解或完成特定复杂任务的能力。比如,在一个高度专业的行业(如医疗、法律、金融或企业内部知识库)中,模型可能不理解行业黑话、处理不了特有的文档格式或无法给出基于内部规章的准确回答。
通过微调,我们可以用该领域的特有数据对其进行“定制化”训练,让模型掌握领域内的专业知识、术语和逻辑,从而使其成为该领域的“专家”,能够更准确、高效地处理垂直领域的复杂问题,提供更具价值的服务。
2
二、数据集准备
2.1 领域大模型微调
想象一下,在您熟悉的某个行业或公司内部,随着时间的推移,沉淀了无数宝贵的知识和经验。这些信息通常零散地存储在各种PDF、Word文档甚至扫描件中,它们是领域的精华,却也形成了难以逾越的“知识孤岛”。想要从中快速准确地找到所需的信息,或是理解某个复杂概念,往往需要耗费大量时间和精力,对于新手来说更是门槛很高。
试想,如果能有一个AI助手,它不仅能理解通用语言,更能像一位资深的领域专家一样,透彻地掌握并运用这些独有的垂直领域知识,随时为您答疑解惑,那该多好?这正是领域大模型微调的核心价值所在——通过将通用大模型的能力与特定领域的宝贵数据结合,我们可以打造出真正理解并能应用这些知识的垂直领域智能体。
这个时候,用领域内知识微调后大语言模型便能派上用场了。下面我将会从整体流程的角度,梳理一遍大语言模型微调全流程的方法论,以及开源工具的使用,从而实现更加高效、安全的模型训练与部署。
本文的思路展示,收集领域知识文档→统一转换为Markdown格式→构造微调数据集→微调大语言模型
关于一些更加具体的操作后续会逐渐填坑~
2.2 文档格式的统一转换
通常,由于行业内多年的知识沉淀,往往会留存大量的文件扫描件,一些遗失多年的word,为了能让后续对这些文档能进行统一的处理,我们需要将他们的格式统一为Markdown格式。
Markdown是一种轻量级标记语言,排版语法简洁,让人们更多地关注内容本身而非排版。它使用易读易写的纯文本格式编写文档,可与HTML混编,可导出 HTML、PDF 以及本身的.md 格式的文件。更多的相关的介绍可以参考这边的链接
Markdown 基本语法 | Markdown 教程markdown.com.cn/basic-syntax/
这边我以一个国产的工具 MinerU为例,这个工具支持本地离线部署,也可以在线使用,笔者体验下来这个工具对于pdf的识别相当的好,但是对于doc识别还是不是很好。如果有需要的话可以将doc转换为pdf再使用MinerU进行识别。
MinerUmineru.net/
这边我以一篇pdf格式的论文为例,右侧是识别出来的Markdown预览文件,可以看出来对于文字和公式的识别还是相当准确的。
windows客户端可以在线识别,但是目前只支持导出Latex,docx,HTML格式的文件
如果想要导出Markdown文件到本地,可以在本地本地部署下MinerU,或者直接在魔搭社区的创空间进行体验
MinerU (PDF转Markdown/JSON) · 创空间www.modelscope.cn/studios/OpenDataLab/MinerU
2.3 构建微调数据集
现在我们得到了markdown格式的数据文件,但是这些数据仍然不能直接用来微调大模型。**因为大模型所完成的任务,是通过问答的形式实现的。**也就是说,我们需要将文档的知识点全都变成一问一答的形式才能进行微调。早期的数据集构造是一个非常耗时,重复性的工作,需要人类去进行一步步地构造问题,并且根据文档的内容进行解答,但也正是这些前人的不断努力,堆出了现在大语言模型的繁荣。
在当前的AI水平下,让大语言模型辅助实现问答对的构造已经是一个很常见的策略了。这边我们可以使用一个国产开源工具Easy-dataset进行处理。
easy-dataset/README.zh-CN.md at main · ConardLi/easy-datasetgithub.com/ConardLi/easy-dataset/blob/main/README.zh-CN.md
Easy-dataset工具流程示意
在处理文档之前,首先我们需要本地部署一个基础的大语言模型,这里我们使用ollama部署qwen2.5-7b模型,具体的操作可以参考下面的链接~
Ollama使用指南【超全版】 - 知乎zhuanlan.zhihu.com/p/704951717
总的来说,Easy-dataset通过我们上传的Markdown文件,将文本内容进行分割,之后让大语言模型对每个分割的片段进行提问,在生成所有的问题之后,再利用相关的片段与生成的问题对大语言模型进行提问,从而实现了将文档知识变成问答对的形式。
上传Markdown之后对文档进行了切分,总共被分成了33个切片
总共生成了173个问答对
点开其中一个问答对,效果如图
上面问答对的原文内容如上,可以看出模型对于知识点的提取还是相当准确且有价值的
下一步,我们直接导出微调数据集便可以开始微调。
3
三、 微调大语言模型
3**.**1 成本估算
在本次的演示中,我使用的是Qwen2.5-7B-Instruct模型,模型的大小为70亿参数,权重文件约15GB。在默认参数下,在NVIDIA A100-PCIE-40GB显卡上进行微调,占用19.79GB显存。一般来说,只要显卡显存大于19.79GB便可以完全复现本次实验,例如4090 24GB也是可以运行的。
3.2 微调工具的部署
为了微调大语言模型,这边我们可以使用llamafactory进行微调,Swanlab进行模型训练的监测,由于llamafactory是自带Swanlab适配的,所以仅需要在llamafactory中配置Swanlab秘钥即可。
关于llamafactory的部署,可以参考其中官方文档
安装 - LLaMA Factoryllamafactory.readthedocs.io/zh-cn/latest/getting_started/installation.html
安装完成后,按照文档中的要求,导入我们刚才生成的数据集到data
文件夹下,之后记得在data_info.json
进行注册,启动llamafactory之后我们便可以预览数据集了
预览数据集,确保选中正确的文件
3.3 启用训练参数的监测工具
为了实时监测训练的状态,可以使用Swanlab作为一个跟踪、记录、比较、和协作实验的平台,这个工具支持实时云端同步训练的参数变化。可以在官网注册一个API,添加到llamafactory中即可
SwanLab官方文档 | 先进的AI团队协作与模型创新引擎docs.swanlab.cn/
llamafactory中启用swanlab
配置好参数后便可以愉快地开启训练啦~
在Chat处我们首先测试下没有经过领域数据集微调的模型回答的效果,大模型由于在早期的预训练阶段已经学习大量的公开知识,所以具备一定的知识储备,但是这边和我们期望的垂直应用的回答还是有一定的区别。
原始模型的回答
这边我们选择好刚才训练的检查点路径,就可以体验学习了新知识后的模型了
可以看出大模型已经把这些知识学进去了
在Swanlab中,我们也可以查看刚才训练的各项参数曲线,下面的是我训练过程的参数曲线(这边我简略地设置了下训练参数,效果可能不佳,具体的需要考虑数据集的数量,基模型大小等因素)
SwanLab基线社区搜索作者ID cathelloya
4
四、 小结
本文绍了如何将领域内零散的知识文档用于微调大语言模型。首先,通过MinerU等工具将PDF、DOCX等文件统一转换为Markdown格式。接着,利用Easy-dataset并结合基础大模型(如通过Ollama部署),将Markdown文档内容自动化地构建成问答数据集。最后,使用LLaMA Factory框架加载此数据集对大模型进行微调,并借助SwanLab等工具实时监控训练过程,从而训练出一个能理解特定领域知识的垂直领域大模型。
如何学习AI大模型 ?
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。【保证100%免费】🆓
CSDN粉丝独家福利
这份完整版的 AI 大模型学习资料已经上传CSDN,朋友们如果需要可以扫描下方二维码&点击下方CSDN官方认证链接免费领取 【保证100%免费】
读者福利: 👉👉CSDN大礼包:《最新AI大模型学习资源包》免费分享 👈👈
对于0基础小白入门:
如果你是零基础小白,想快速入门大模型是可以考虑的。
一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。
👉1.大模型入门学习思维导图👈
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
对于从来没有接触过AI大模型的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。(全套教程文末领取哈)
👉2.AGI大模型配套视频👈
很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,每个章节都是当前板块的精华浓缩。
👉3.大模型实际应用报告合集👈
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(全套教程文末领取哈)
👉4.大模型落地应用案例PPT👈
光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(全套教程文末领取哈)
👉5.大模型经典学习电子书👈
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。(全套教程文末领取哈)
👉6.大模型面试题&答案👈
截至目前大模型已经超过200个,在大模型纵横的时代,不仅大模型技术越来越卷,就连大模型相关的岗位和面试也开始越来越卷了。为了让大家更容易上车大模型算法赛道,我总结了大模型常考的面试题。(全套教程文末领取哈)
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习
CSDN粉丝独家福利
这份完整版的 AI 大模型学习资料已经上传CSDN,朋友们如果需要可以扫描下方二维码&点击下方CSDN官方认证链接免费领取 【保证100%免费】
读者福利: 👉👉CSDN大礼包:《最新AI大模型学习资源包》免费分享 👈👈