引言:为什么需要模型定制与微调 ├── 2. 微调技术体系:从全参数到参数高效 ├── 3. 全参数微调:深度定制的经典路径 ├── 4. 参数高效微调:资源受限下的优化选择 ├── 5. 2. 微调技术体系:从全参数到参数高效 2025年的LLM微调技术已经形成了完整的体系,从资源密集型的全参数微调到轻量级的参数高效微调,为不同场景提供了多样化的选择。 ,资源需求降至原来的5%以下 自动化:微调流程自动化工具成熟,如LLaMA-Factory、XTuner等开源框架 混合化:多种微调技术组合使用,如LoRA+RLHF的混合策略 领域化:针对特定领域的专业化微调方法不断涌现 3.1 技术原理 全参数微调的核心思想是在保持模型架构不变的情况下,使用领域特定数据对所有模型参数进行更新: 全参数微调流程: 预训练模型 → 领域数据输入 → 前向传播 → 损失计算 → 反向传播 → 行业应用与最佳实践 9.1 金融领域微调案例 某大型金融机构在2025年实施的领域微调项目: 需求:构建专业的金融分析助手,能够准确理解金融术语,分析市场趋势,生成合规报告。
领域微调的理论基础与挑战 1.1 领域微调的基本原理 领域微调是指在预训练大模型的基础上,使用特定领域的专业语料进行二次训练或微调,以使模型更好地适应特定领域的语言习惯、专业知识和任务需求。 在进行跨领域微调时,可以采用以下领域知识融合技巧: 分阶段微调策略: 先在通用数据上预训练 然后在大规模领域数据上进行领域适应 最后在特定任务数据上进行微调 领域术语增强: 医疗领域:增强对医学术语 主要内容包括: 领域微调基础:详细介绍了领域微调的基本概念、原理和流程 医疗领域微调:实现了医疗数据集构建和医疗领域微调器 法律领域微调:实现了法律数据集构建和法律领域微调器 词汇优化技术:探讨了词汇表优化的重要性和实施方法 领域对比分析:对比了医疗与法律领域微调的异同点 未来,领域微调技术有望在以下方向继续发展: 多模态领域微调:结合文本、图像等多种模态信息进行领域微调 持续学习与知识更新:实现模型在领域知识更新时的高效适应 跨领域知识融合:开发更有效的跨领域知识迁移方法 隐私保护领域微调:在保护敏感数据的前提下进行高效微调 通过不断优化和创新领域微调技术,我们可以更好地发挥大语言模型在特定领域的潜力,为医疗、法律等专业领域提供更智能
上篇文章我们介绍了Llama 2的量化和部署,本篇文章将介绍使用PEFT库和QLoRa方法对Llama 27b预训练模型进行微调。我们将使用自定义数据集来构建情感分析模型。 因为在训练脚本时将使用它下载预训练的Llama 2模型和数据集。 最后就是请求访问Llama 2模型。等待Meta AI和HF的邮件。这可能要1-2天。 准备数据集 指令微调是一种常用技术,用于为特定的下游用例微调基本LLM。 TRL也提供的监督微调(SFT)训练器API可以让我们快速的微调模型。 !pip install -q huggingface_hub ! 本文作者:UD 原文地址: https://ukey.co/blog/finetune-llama-2-peft-qlora-huggingface/
监督式微调在计算机视觉、自然语言处理等领域中得到了广泛应用。然而监督也存在一些缺点。首先,需要大量的标注数据用于目标任务的微调,如果标注数据不足,可能会导致微调后的模型表现不佳。 P-tuning v2 微调方法 3.1 P-tuning v2 微调方法的相关技术 传统的微调方法需要微调整个预训练语言模型,对于大语言模型的微调需要大量的资源和时间,急需更加高效的微调方法。 监督微调常见任务:1.用中文预训练BERT模型完成中文实体识别任务 2.训练语言模型GPT3 3.UIE模型在垂直领域的数据集上微调 常见误区:在ImageNet上的预训练的模型再来训练目标检测任务 微调方法在效果上可以媲美全参数微调的方式 3.P-tuning v2微调方法在自然语言理解任务上表现不佳 P-tuning v2微调方法原理方面:1.P-tuning v2微调方法在transformer 的每一层都加入了prefix、2.P-tuning v2微调方法采用了多任务学习、3.P-tuning v2微调方法prefix部分的参数不是由上一层的prefix输出来输入 常见误区:P-tuning
ggplot2包中的annotate()函数帮助用户给图形的指定位置添加注释,一般注释可以从点、线和面的角度进行修饰,对应的geom参数是text、segment、pointrange、rect。 基本图形示例: library(ggplot2) x<-c(2015,2016,2017,2018,2019,2020) y<-c(12,13,14,25,36,57) test<-data.frame )*e^-log(2,x)', parse = TRUE, size = 3, colour = 'red') p2 ? <- p1 + xlim(min(test 坐标轴刻度、标签 # X 轴每隔 2 个单位显示一个刻度 ; 改变刻度文字,label要与刻度一样多 p2 + scale_x_continuous(breaks =seq(2015, 2020, 2) , labels = c("A","B","C")) 横坐标轴相关设置 ##只去掉 X 轴的刻度标签 p4 <- p2 + theme(axis.ticks.x
监督式微调在计算机视觉、自然语言处理等领域中得到了广泛应用。然而监督也存在一些缺点。首先,需要大量的标注数据用于目标任务的微调,如果标注数据不足,可能会导致微调后的模型表现不佳。 P-tuning v2 微调方法 3.1 P-tuning v2 微调方法的相关技术 传统的微调方法需要微调整个预训练语言模型,对于大语言模型的微调需要大量的资源和时间,急需更加高效的微调方法。 监督微调常见任务:1.用中文预训练BERT模型完成中文实体识别任务 2.训练语言模型GPT3 3.UIE模型在垂直领域的数据集上微调 常见误区:在ImageNet上的预训练的模型再来训练目标检测任务 3.P-tuning v2微调方法在自然语言理解任务上表现不佳 P-tuning v2微调方法原理方面:1.P-tuning v2微调方法在transformer的每一层都加入了prefix、2.P-tuning v2微调方法采用了多任务学习、3.P-tuning v2微调方法prefix部分的参数不是由上一层的prefix输出来输入 常见误区:P-tuning v2微调方法微调的参数对象是每一层离散表示的prefix
领域专用AI模型训练指南:医疗、法律、金融三大垂直领域微调效果对比 Hello,我是摘星! 在彩虹般绚烂的技术栈中,我是那个永不停歇的色彩收集者。 这些差异化需求决定了我们不能简单地使用一套通用的微调策略,而需要针对每个领域的特点制定专门的训练方案。通过对比实验,我发现领域专用模型在专业任务上的表现显著优于通用模型。 1.2 三大垂直领域特点分析图1:三大垂直领域AI应用场景流程图2. 医疗领域AI模型训练实践2.1 医疗数据预处理医疗领域的数据具有高度专业性和敏感性,需要特殊的预处理策略。 3.2 法律推理模型设计图2:法律AI推理系统时序图4. 参考链接Transformers模型微调最佳实践医疗AI应用伦理指南法律科技发展报告金融AI风险管理框架领域适应学习综述关键词标签#领域专用AI #模型微调 #医疗AI #法律科技 #金融风控
本节我们简要介绍如何基于 transformers、peft 等框架,对 Gemma2b 模型进行 Lora 微调。Lora 是一种高效微调方法,深入了解其原理可参见博客:知乎|深入浅出 Lora。 在本节教程里,我们将微调数据集放置在根目录 /dataset。 ', cache_dir='/root/autodl-tmp', revision='master') 指令集构建 LLM 的微调一般指指令微调过程。 所谓指令微调,是说我们使用的微调数据形如: { "instruction": "回答以下用户问题,仅输出答案。", "input": "1+1等于几?" ] response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0] print(response) 完整微调脚本参考
2 VersaTune: Detecting Knowledge Distribution 在本节中,作者提出了一种领域混合策略,用于微调具有全面多任务能力的预训练语言模型(第2.1节)。 基于第一条陈述,作者提出以下针对域扩展的陈述: 第2个声明: 当微调一个LLM以实现特定能力时,从特定领域增加数据量,同时调整其他领域,根据基础模型的知识分布进行调整,有助于实现域扩展的灵活策略。 (第8-9行);否则,作者保持当前领域分布,并只进行如算法2中所述的轻微调整和归一化(第10-11行)。 在"灵活领域扩展"的场景中: (1) 100%特定领域策略在微调阶段使用单一领域数据集的常见做法。 (2) 剩余领域均匀分布提高特定领域的比例,而其余领域以均匀分布获得剩余的分布。 其他领域的性能相较于100%特定领域微调提高了38.77%,如图2所示。详细的结果和分析请参见附录D。 知识一致性训练可提升性能。 在表1中,作者呈现了将域数据按检测到的知识分布反比例分配的实验结果。
MiniCPM-2B-chat 介绍 MiniCPM 是面壁智能与清华大学自然语言处理实验室共同开源的系列端侧大模型,主体语言模型 MiniCPM-2B 仅有 24亿(2.4B)的非词嵌入参数量。 以 MiniCPM-2B 为基础构建端侧多模态大模型 MiniCPM-V,整体性能在同规模模型中实现最佳,超越基于 Phi-2 构建的现有多模态大模型,在部分评测集上达到与 9.6B Qwen-VL-Chat 一张1080/2080可高效参数微调,一张3090/4090可全参数微调,一台机器可持续训练 MiniCPM,二次开发成本较低。 ', cache_dir='/root/autodl-tmp', revision='master') 数据集构建 LLM 的微调一般指指令微调过程。 所谓指令微调,是说我们使用的微调数据形如: { "instrution":"回答以下用户问题,仅输出答案。", "input":"1+1等于几?"
为了有效地让模型掌握这些新知识,本文作者提出了一种名为「检索增强微调(RAFT)」 的方法。这是一种简单而强大的微调方法,只需简单的微调,就可大幅提升模型在“开卷”特定领域下的问答性能。 「RAFT方法关注的是更加细分的特定领域,并在此领域上进行开卷考试」。LLM可以使用所有在这个特定领域内经过微调的信息来回应用户的提问。 本篇文章主要研究的就是这样的特定领域开卷设置,以及如何让预训练的LLM适应这个特定领域,包括如何让它对检索到的文档数量的变化和干扰项更加稳健。 RAFT方法介绍 RAFT(检索增强微调)是一种新方法,用于准备数据微调,以便对模型定制化以适应特定领域的”开卷考试“,也就是领域内的RAG。 如下图所示,RAFT 提高了所有专业领域的 RAG 性能,在下面测试集上可以看到特定领域的微调显着提高了基础模型的性能,但 RAFT 始终优于现有的特定领域微调方法。
没关系,我们提供一个仅使用一条样本构成的数据集来微调ChatGLM2,并演示讲解数据的整个处理过程。 step1,SFT(指令微调)。Supervised FineTune. 人工标注数十至数百万对话数据进行初步的人类偏好对齐。 step2,RM(奖励建模)。Reward Model. 二,定义模型 下面我们将使用QLoRA算法来微调ChatGLM2模型,以便给模型注入和梦中情炉 torchkeras相关的知识。 1,LoRA LoRA是一种能够相比全参微调可以大幅节约训练时间和显存,同时微调效果基本可以相当于全参微调的算法。 2,QLoRA QLoRA是Quantized LoRA的简称,相比LoRA能够进一步节约显存占用,并提升微调效果。 QLoRA在LoRA的基础上主要有3处创新。
Baichuan2-7B-chat lora 微调 概述: 本节我们简要介绍如何基于 transformers、peft 等框架,对 Baichuan2-7B-chat模型进行 Lora 微调。 Lora 是一种高效微调方法,深入了解其原理可参见博客:知乎|深入浅出Lora。 这个教程会在同目录下给大家提供一个 nodebook 文件,来让大家更好的学习。 7B-Chat',cache_dir='/root/autodl-tmp', revision='v1.0.4') 指令集构建: LLM 的微调一般指指令微调过程。 所谓指令微调,是说我们使用的微调数据形如: { "instrution":"回答以下用户问题,仅输出答案。", "input":"1+1等于几?" /output/Baichuan2", per_device_train_batch_size=8, gradient_accumulation_steps=2, logging_steps
ChatGLM3/ChatGLM2的源码中,比如finetune、trainer等代码,其实是copy自HuggingFace,而且其使用流程与调用机制,与HuggingFace的开发流程是一致的。 微调 在github上托管的ChatGLM源码包中,详细的介绍了基于p-tuning的微调策略。 其源码模块中已经准备好了脚本文件 train.sh ,该文件包含所有相关的配置参数,根据微调后的配置调整脚本文件,一键运行即可。 微调并执行后,会保存并生成checkpoint-xxx文件。 模型部署 有两种方式用来运行微调后的模型: 基于Huggingface的开发规范,将原模型超参数文件与微调后的超参数文件一起加载,并调用。 调整 web_demo.sh 文件中的路径配置,运行即可。 参考 ChatGLM2-6B微调视频讲解 基于第二代 ChatGLM2-6B P-Tuning v2 微调训练医疗问答任务 官方p-tuning微调文档
step,train_loss,train_accuracy,valid_loss,valid_mean_token_accuracy1,1.52347,0.0,,2,0.57719,0.0,,3,3.63525,0.0 迭代超参数我们允许您指定以下超参数:纪元数学习率倍增器批处理大小我们建议最初在不指定任何超参数的情况下进行训练,让我们根据数据集大小为您选择默认值,然后根据观察到的情况进行调整:如果模型不如预期地跟随训练数据增加1或2个纪元数这在一些任务中更为常见 如果模型比预期的不够多样化减少1或2个纪元数这在存在广泛可能的良好完成情况的任务中更为常见。 client.fine_tuning.jobs.create( training_file="file-abc123", model="gpt-3.5-turbo", hyperparameters={ "n_epochs":2 微调可以用于创建一个专注于特定领域的模型,并表现出特定的内在行为模式。检索策略可以通过在生成响应之前为模型提供相关背景来使新信息对模型可用。
作者 | Ragntune 译者 | 明知山 策划 | 褚杏娟 在本文中,我将分享我通过 SQL 和函数表示任务对 Llama 2 和 GPT 3.5 进行微调的比较实验。 对 GPT 3.5 进行微调的成本是很高的。我想通过这个实验看看手动微调模型是否可以在成本很低的情况下让性能接近 GPT 3.5。有趣的是,它们确实可以! 评估工具会构建一个虚拟数据库,并将实际的输出与 GPT3.5 和 Llama 2 的查询输出进行比较。 结 论 总的来说,通过这个经验,我觉得对 GPT 3.5 进行微调是为了初始验证或构建 MVP,而除此之外,像 Llama 2 这样的模型可能是你最好的选择。 为什么要对 GPT 3.5 进行微调? 你想要证实微调是解决给定任务 / 数据集的正确方法; 你想要全托管的体验。 为什么要对像 Llama 2 进行微调? 你想省钱!
大语言模型微调是指对已经预训练的大型语言模型(例如Llama-2,Falcon等)进行额外的训练,以使其适应特定任务或领域的需求。 微调通常需要大量的计算资源,但是通过量化和Lora等方法,我们也可以在消费级的GPU上来微调测试,但是消费级GPU也无法承载比较大的模型,经过我的测试,7B的模型可以在3080(8G)上跑起来,这对于我们进行简单的研究是非常有帮助的 这里做的测试是使用一个小的(65MB文本)自定义数据集上微调lama-2 - 7b (~7GB)。 可以看到3080非常耗电,训练时最大耗电364瓦(PC总耗电超过500瓦)。 最后我们再整理个列表,大概看看各个模型都需要什么样的内存,以下只是推理,不包括微调,如果使用微调,大概需要再加20%(LORA)。 LLaMA-7B 建议使用至少6GB VRAM的GPU。 适合此型号的gpu示例包括A100 40GB, 2x3090, 2x4090, A40, RTX A6000或8000。
在收到消息的第一时间,我就冲进了官方仓库:llama2-recipes 打算体验一下 llama-2 的训练流程。 在解决这个小问题之后,Llama-2 就能正常训练了,再次给 Meta AI 的开源精神点赞(有图有真相)! 经历了这个小插曲后,我也差不多摸清楚了 Llama-2 的训练流程,正如论文里所说,它是用 FSDP 进行训练的,诶? FSDP,MMEngine v0.8.0 不也支持了 FSDP 训练么,于是乎,我就基于 MMEngine 的新特性实现了 Llama-2 的训练流程。 要是大家 star 给力,我们也会尽快提供使用 DeepSpeed 和 ColossalAI 微调的示例,以及中文数据集训练的示例~ https://github.com/open-mmlab/mmengine
前方干货预警:这可能也是一篇会改变你对LLM微调范式,以及对LLM原理理解的文章。 同时这也是一篇非常有趣好玩,具有强大实操性的ChatGLM2微调喂饭级教程。 我们演示了使用AdaLoRA算法,使用1条样本对ChatGLM2-6b实施微调。 (2) LLM是一种类似Key-Value形式的知识数据库,支持增删改查。通过微调可以增删修改知识,通过条件生成可以查询提取知识。 (3) LoRA微调是一种高效的融入学习算法。 ,history = []) print(response) 七,总结延伸 我们演示了使用AdaLoRA算法,使用1条样本对ChatGLM2实施微调。 summary: (1) 只需要1条样本,很少的训练时间,就可以通过微调给LLM注入知识。 (2) LLM是一种知识数据库,支持增删改查。通过微调可以增删修改知识,通过条件生成可以查询提取知识。
InternLM2-7B-chat Xtuner Qlora 微调 Xtuner介绍 XTuner是上海人工智能实验室开发的低成本大模型训练工具箱,XTuner 是一个高效、灵活、全能的轻量化大模型微调工具库 最低只需 8GB 显存,就可以微调InternLM2-7B模型,打造专属于你的 AI 助手。 灵活 支持多种大语言模型,包括但不限于 InternLM、Mixtral-8x7B、Llama2、ChatGLM、Qwen、Baichuan。 支持多模态图文模型 LLaVA 的预训练与微调。 可以通过Xtuner查看可配置文件 xtuner list-cfg 由于我们本次的基座微调模型为internLM2-chat-7b,所以我们可以查看Xtuner现在在InternLM2下已经支持了哪些配置文件 微调启动 xtuner train /root/autodl-tmp/ft-learn/config/internlm2_chat_7b_qlora_oasst1_e3_career_coach.py