基于魔乐社区openMind实现大模型微调指南(一)大模型基础与微调入门

一、大模型基本概念

1.1什么是大模型

部分读者已经有了对大模型的大致理解,但是常看常新,不妨再让我们温习一下大模型的基础理念。大模型(Large Models),通俗地讲,就是具备超大规模参数、能处理和理解复杂数据的人工智能模型。为了深入理解大模型,我们首先需要从机器学习的基础入手。

机器学习(Machine Learning)简单来说,就是让计算机通过大量数据学习到一些模式或规律,以完成特定的任务。以人类学习语言为例,我们小时候听了很多话,通过模仿和重复练习,逐渐学会如何正确地表达想法。类似地,机器学习模型通过大量数据训练,不断调整自身的参数,使得模型可以精准地完成任务,比如识别图片中的猫狗、理解一段话的意思、甚至自动写出连贯的文章。

首先不必过于学术语言理解大模型算法思想,我们可以拿挑电影的想法去拟合模型算法思想:

最近上映一部影片你想要去看,你想要确定是否值得去观看。那么首先最直观的就是去看其电影的评分,首先可以考虑各个电影APP给出的评分,再者去看看豆瓣知乎其他人给出的评分,以及其他同事朋友给出的评分,最终你收集这些所有评分,根据不同的渠道给他们给予一定的权重(比如豆瓣评分占比高一些,但是电影APP评分少一些),计算出得到你觉得此片应有的评分,再去看此部电影。

以上案例就是基本的集成学习思想,把各种渠道当作是学习器,给出的评分就是这些学习器预测出的结果。当然你可以去收集足够多的渠道,让几百个人评价你的电影,这种情况的回答普遍会更加的多元化,事实证明,这是获得最佳评价的方法。

多个决策者比一个决策者可能会做出更好的决策,各种模型的整合也是如此,机器学习这种多样化就是通过集成学习的技术实现的。

大模型,就是把上述“学习”过程规模化到了一个前所未有的程度。它们通常包含数十亿甚至上千亿个参数,就像拥有数以亿计的“神经元”的大脑一样,可以学习并理解非常复杂的信息。

1.2大模型技术原理:Transformer 架构

大模型技术的兴起与Transformer这一神经网络架构密不可分。Transformer首次出现在谷歌于2017年发表的论文《Attention Is All You Need》中,这种结构极大提高了模型对语言信息的理解能力。Transformer最重要的创新点就是“注意力机制(Attention)”。你可以把注意力机制想象成你在课堂上听老师讲课的过程。当你专注地听课时,你的大脑会自动识别并“关注”老师讲的重点内容,而忽略背景噪音。类似地,Transformer架构中的注意力机制帮助模型在处理长文本时,有选择地关注那些对理解整体意义至关重要的信息。

假设你有一篇很长的新闻文章,希望从中找出核心观点。如果是传统的RNN(循环神经网络)或LSTM,它们通常从头读到尾,依赖于“记忆”机制来保留信息。然而,随着文本变长,模型容易“忘记”前面的内容。

而Transformer架构通过自注意力机制(Self-Attention),可以在处理每一个词的时候,同时参考整篇文章中所有其他词的信息。具体来说,模型会计算每个词与其他所有词之间的关联强度(即注意力得分),并用这个加权结果来重新编码当前词的含义。

比如文章中有一句话“该公司净利润同比增长了300%”,模型在读到“净利润”时,可以迅速识别“同比增长”“300%”这两个关键表达与之高度相关,因此赋予它们更高的注意力权重。这种机制使得模型在理解全文时,能够动态捕捉最重要的内容,避免像传统模型那样逐字处理而丢失上下文重点。

通俗理解:Transformer就像一个聪明的速读者,在读文章时不仅扫一眼,还能迅速跳转到关键段落、并把有用的信息“划重点”,帮助我们更快理解整体意思。

1.3常见大模型综述

本章将分为三个部分,分别介绍通用语言模型多模态模型专用领域模型中的代表性大模型。每个模型的介绍包含其发布机构与时间、参数规模与训练数据、核心技术创新、主要应用场景,并提供相应的示例代码片段以帮助理解。

(1).通用语言模型(General Language Models)

1.GPT 系列(OpenAI)

ChatGPT

发布机构与时间:GPT(Generative Pre-trained Transformer)系列由 OpenAI 开发。初代 GPT 于 2018 年发布,GPT-2 发布于 2019 年(15亿参数),GPT-3 于 2020年5月发布,其论文题为《Language Models are Few-Shot Learners》。GPT-4 则在2023年3月由 OpenAI 发布,是该系列的第四代模型。

参数规模与训练数据:GPT 系列规模不断增长:GPT-2 有15亿参数,而 *GPT-3* 的参数规模达到1750亿。GPT-3的训练使用了约3000亿个token(包含约45TB的文本数据)。GPT-3 相比前代在参数和数据规模上都有两个数量级的提升。GPT-4 的精确参数数量未公开(据推测可能在数千亿到万亿级别),但OpenAI在技术报告中指出GPT-4是一个“大规模、多模态模型”,能够接受图像和文本输入。GPT-4的训练数据同样来自海量互联网语料,经过筛选和优化,但具体细节未披露。

核心技术与创新:*GPT 系列基于*Transformer解码器架构,采用自回归语言模型训练方式,即预测下一个词。GPT-3 展示了惊人的Few-Shot Learning能力:无需专门微调,只通过提示中的几个示例就能执行翻译、问答等任务。这证明了随着模型规模增长,大模型可以在零样本/小样本情况下达到优异表现。GPT-3 在新闻生成、问答、算术推理等广泛任务上接近甚至达到当时的SOTA水平。GPT-4 在此基础上进一步提升了推理能力知识覆盖面,并支持多模态输入。GPT-4 可以将图像作为输入并生成文字说明或解答,这在 OpenAI 的技术报告中被强调为一大进步。。2025年,OpenAI 还推出了GPT-4o版本,在 GPT-4 中原生集成了图像生成能力,使模型能够根据文本生成高质量图像。。此外,GPT-4 在一系列专业考试中表现卓越,如通过了律师资格考试、研究生入学考试等,这体现了其高水平的语言理解和推理能力

2.BERT(Google)

GoogleBert_1920_3

发布机构与时间:BERT(Bidirectional Encoder Representations from Transformers)由 Google AI 的研究人员开发,于2018年10月31日发布。BERT 的提出在NLP领域引发了巨大反响,成为当时革新性的预训练语言模型。

参数规模与训练数据:BERT 提供了两种英文模型尺寸:BERT-Base(1.1亿参数)和BERT-Large(3.4亿参数)。BERT 模型训练所使用的语料包括Toronto BookCorpus(约8亿词)和英文维基百科(约25亿词),合计大约33亿词的规模。这两个数据集提供了丰富的通用语言知识。训练过程中,BERT采用无监督预训练,通过Mask语言模型下句预测任务来学习词语的双向上下文表示。

核心技术与创新:BERT 的核心技术是基于Transformer的双向编码器架构。与GPT单向预测下一个词不同,BERT在预训练时通过随机遮蔽(Masked LM)来学习上下文双向信息:模型需要根据句子中其余词汇预测被遮蔽的词。这一训练方式使BERT能够捕捉到词语在上下文中的深层语义表示。同时BERT还通过\Next Sentence Prediction (NSP)\任务学习句间关系。BERT 是 NLP 领域预训练-微调范式的开创者之一。其预训练得到的通用语言表示可微调到下游各种任务并取得巨大增益。论文发布时,BERT 在11项NLP任务上刷新了当时的最佳成绩。

主要应用场景:BERT 主要用于自然语言理解相关任务。由于其强大的文本表示能力,BERT 被广泛应用于搜索引擎(Google自2019年开始在搜索排名中使用BERT来更好理解用户查询意图)、问答系统(如阅读理解和FAQ自动回答)、文本分类(情感分析、话题分类)以及信息抽取(如命名实体识别)等场景。此外,BERT 作为预训练模型,也常被用作编码器为其他模型(例如机器翻译、对话系统)提供语义特征支持。它已成为NLP领域的强大基础模型和baseline。

3.DeepSeek

deepresize1-1024x684

DeepSeek自成立以来,推出了多款具有创新性的AI模型,涵盖了从代码生成到复杂推理等多个领域。DeepSeek的模型体系绝非简单的“大小套餐”,而是一套基于认知科学的分层智能框架。其核心逻辑在于:人类智能的本质是“通用基底+领域增强”

大型语言模型LLMs 一直在经历快速迭代和进化,在架构方面,DeepSeek-V3 仍然采用多头潜在注意力 (MLA)进行高效推理,并采用 DeepSeekMoE 进行经济高效的训练。这两种架构已在 DeepSeekV2 中得到验证,证明了它们在实现高效训练和推理的同时保持稳健模型性能的能力。除了基本架构之外,我们还实施了两种额外的策略来进一步增强模型能力。首先,DeepSeek-V3 开创了一种辅助无损失策略进行负载均衡,目的是最大限度地减少鼓励负载均衡对模型性能的不利影响。

其次,DeepSeek-V3 采用了多标记预测训练目标,该目标可以提高评估基准的整体性能。DeepSeek-V3支持 FP8 混合精度训练,并对训练框架进行全面优化。低精度训练已成为一种很有前途的高效训练解决方案,其演变与硬件能力的进步密切相关。通过支持 FP8 计算和存储,我们实现了加速训练和减少 GPU 内存使用。至于训练框架,DeepSeek团队设计了 DualPipe 算法以实现高效的管道并行性,该算法具有更少的管道气泡,并通过计算-通信重叠隐藏了训练期间的大部分通信。并且还开发了高效的跨节点全对全通信内核,以充分利用 InfiniBand (IB) 和 NVLink 带宽。精心优化了内存占用,从而可以在不使用昂贵的张量并行性的情况下训练 DeepSeek-V3。

简单来说:想象你要记住整本《百科全书》,传统方法是把每个字刻在钢板上(这就是GPT的KV缓存机制)。而DeepSeek-V3的多头潜在注意力(MLA),就像用思维导图提炼精华-把4096维的“文字钢板”压缩成400维的“关键点卡片”,处理万字文档的显存占用从48GB降到9GB,相当于用自行车运货代替卡车。而关于DeepSeek-V3的DeepSeekMoE架构则更聪明,传统大模型像“全能型学霸”,每个问题都要动用全部脑细胞,而DeepSeek遇到数学题自动呼叫数论专家,看到CT片转接影像科主任,就像金融博士、医学教授、代码大神随时待命,每个问题只需8位专家联合“会诊”,效率提升3倍:

可参阅:https://cloud.tencent.com/developer/article/2497388

(2).多模态模型(Multimodal Models)

1.GPT-4(OpenAI)

chagpt-gpt4-6410b6078d3af-sej

参数规模与训练数据:GPT-4 的具体参数规模 OpenAI 并未公开,仅在技术报告中描述为“大型”模型。业界推测GPT-4的参数数量可能达到数万亿级,但没有权威数据佐证。GPT-4 的训练使用了更大、更多样的语料,包括公开的互联网文本以及OpenAI采购的高质量数据。一个显著区别是:GPT-4是多模态模型**,这意味着其训练数据除了文本外,还包括了大量图像与之对应的描述,使模型能够理解视觉信息。GPT-4 经过对齐调优,结合人类反馈(RLHF)等技术,使其在多模态和对话任务上都表现出色。

核心技术与创新:GPT-4 的重大创新在于多模态能力。根据OpenAI报告,GPT-4可以接受图像和文本混合输入,并生成文本输出。这意味着用户可以给GPT-4提供一张图片,让模型描述图片内容或回答有关图片的问题。例如,用户上传一张冰箱内部的照片并问“我可以用这些食材做什么菜?”,GPT-4 能够理解照片中的食材并给出菜谱建议。这种视觉理解能力将自然语言 AI 的应用扩展到视觉领域。GPT-4 在架构上可能融合了Transformer与视觉编码网络,从而实现图像到文本的转换。此外,GPT-4 在推理和知识方面相较GPT-3.5有显著提升。OpenAI 测试显示GPT-4在许多专业考试中名列前10%。

主要应用场景:GPT-4 被广泛应用于需要高级语言理解和推理的场景,包括\高级聊天助手(如新版Bing聊天底层就是GPT-4)、内容创作(高质量文章、报告撰写)、教育(解答题目、提供学习辅导)等。同时,多模态能力使GPT-4可用于视觉问答图像辅助分析**(如诊断医学影像的文字报告)等。例如在医疗领域,医生可让GPT-4分析一张X光片并生成诊断建议(需在严格人类监管下使用)。

2.Gemini(Google DeepMind)

5bbeb59b-6362-4a56-b836-4c1a59f24b86

发布机构与时间:Gemini 是 Google DeepMind 在 2023年合并后重点研发的下一代多模态大模型。参数规模与训练数据:Gemini 系列的参数规模从小型到超大型不等。Gemini Ultra据称是Google迄今最大的模型,具体参数虽未披露,但有传言其规模超过了GPT-4。Google 在2024年6月开源了轻量版Gemma模型,提供了2亿参数7亿参数两个版本,表明Gemini家族覆盖从亿级到更大规模。

3.Grok(xAI)

0acd107929a8ea7489f6df760aa395919922c045-2048x1152

发布机构与时间:Grok 是由埃隆·马斯克于2023年创建的 AI 公司 xAI 所推出的大语言模型/chatbot。。其名称取自科幻小说《陌生的天地》中的词“Grok”(意味“深刻理解”)。参数规模与训练数据:Grok系列模型以庞大的参数规模和数据著称。根据xAI公布的信息:Grok-1基于开源模型开发,参数规模约3140亿,采用了Mixture-of-Experts(MoE)混合专家架构,将多个专长模型融合为一。Grok-3则达到了惊人的规模:据报道其总参数量高达2.7万亿(可能部分归功于MoE架构的并行专家总和)。

(3).专用领域模型(Domain-Specific Large Models)、

随着大模型在各行业落地需求增加,许多专用领域的大模型应运而生。它们通常在通用大模型基础上,进一步利用该领域的大规模专有数据进行预训练或微调,从而具备行业专业知识。以下分别介绍医疗、法律、金融三个领域的代表性大模型。

医疗大模型:Google Med-PaLM 2 与 华佗GPT。

发布机构与时间:*医疗领域的大模型旨在辅助医学问答和决策。Google Research 团队于2022年底公布了*Med-PaLM(医疗版PaLM),并在2023年4月发布了改进的Med-PaLM 2。Med-PaLM 2 是在通用大模型 PaLM 2 基础上微调得到的医疗专用模型。同一时期,中国的香港中文大学(深圳)和深圳大数据研究院王本友团队发布了开源的华佗GPT系列模型(HuatuoGPT),其中华佗GPT-1于2023年4月问世,华佗GPT-2在2023年7月发布了新版。这些模型均为医疗AI提供了里程碑式进展。

法律大模型:LaWGPT 与 法信基座模型

LaWGPT 是南京大学在2023年5月发布的中文法律大模型系列。2023年11月15日,中国最高人民法院发布了“法信法律基座大模型”,这是国家级的法律AI底座,由清华大学等单位研发。

金融大模型:BloombergGPT

金融领域对大模型的需求在近年迅速增长。BloombergGPT 是由全球金融数据公司彭博社(Bloomberg)研发的大型语言模型,专门面向金融领域。该模型于 2023年3月30日 公布,其技术细节发表在Arxiv论文《BloombergGPT: A Large Language Model for Finance》中。这是业界首个由金融机构自主训练的大语言模型,引起广泛关注。

1.4大模型的优势与挑战

大模型具备强大的学习能力和广泛的应用潜力,它们通过预训练阶段积累了丰富的知识,使得一个模型能够同时胜任多种任务,例如文本分类、情感分析、机器翻译和对话生成等。得益于迁移学习能力,大模型可以快速适应不同领域的具体任务,如医疗文献分析和法律文件解析,同时减少了对大量标注数据的依赖,在小数据集条件下也能表现出色。

然而,大模型也面临明显的挑战。其训练和部署需要巨大的计算和存储资源,成本非常高昂;数据质量和规模不足时,模型容易出现过拟合现象。此外,在计算资源受限的场景和要求高度可解释性的领域中,大模型的实际应用也受到明显限制,需要进行优化和压缩处理以满足特定的应用需求。

二、大模型微调概念

2.1微调的概念

你可以把“微调”想象成给一个已经很强大的工具做一些“精细调整”,让它更适合你手头的工作任务。简单来说,微调就是在一个已经经过大规模训练的模型(比如BERT、GPT等)基础上,使用相对少量的数据进行再训练,让这个模型能够在某个特定任务上表现得更好。

举个例子,假设你有一个超级聪明的助手(比如DeepSeek),它对很多话题都有一定了解,但它可能不太擅长你的行业知识。比如说,你需要它帮忙分析医疗文本。为了让它更好地理解医学领域的术语和知识,你给它提供一些医学文本进行微调,这样它就能在医疗场景中给出更精确的答案。

简单来说,微调就像是让大模型“专精”某个领域或任务,而不是“面面俱到”。它能帮助模型从通用的“百科全书”升级为某个具体任务的“专家”。

2.2为什么需要微调

假设你要从头开始训练一个大模型,那得用到海量的数据和计算资源,过程漫长而且非常昂贵。与其这样做,不如直接用一个已经训练好的模型,然后根据你的需要稍微“微调”一下就能达到很好的效果。这样,你不仅节省了大规模训练的时间和成本,还能在短时间内获得一个不错的性能。

虽然大模型在预训练阶段已经学习了很多“通用”知识,但每个任务都有它独特的需求。比如,情感分析、文本生成、问答系统等,虽然它们都是自然语言处理任务,但每个任务的重点和处理方式都不同。通过微调,我们可以让大模型在特定任务上表现得更精准,就像是定制化的工具,更好地满足实际需求。预训练的模型虽然在大部分任务中表现不错,但它不一定在所有场景下都能做到最好。通过微调,我们能针对特定的任务数据进行训练,进一步优化模型的表现,使其在某个特定领域或任务上达到更高的精度。

如果你直接从零开始训练一个模型,通常需要大量的标注数据。而微调的好处就是,它可以在很少的标注数据上就得到较好的效果。这是因为大模型在预训练时已经学到了大量的通用知识,因此,只需要少量的任务相关数据来进行微调,就能让它在特定任务中表现出色。 微调还能让模型具备“个性化”的特点。比如,一个商业领域的问答系统和一个医疗领域的问答系统,它们需要的知识背景完全不同。通过微调,我们可以让同一个大模型在两个领域中都有很好的表现,但却能根据不同的需求输出不同的答案,做到“量体裁衣”。

2.3大模型微调的发展历程

(1)初期阶段:传统的模型训练

想象一下,早期的机器学习模型就像是手工雕刻的艺术品——每一块都需要精细雕琢。从最初的线性回归决策树支持向量机(SVM)等,这些模型虽然效果不错,但大多数都需要我们为每一个任务准备大量的特定数据。这些模型通常训练得很慢,而且每次解决一个问题时,往往都得从头开始,不容易迁移到其他任务。在代码实现上,传统的训练方法看起来非常直白:你从头开始定义一个网络,收集数据,手动进行特征工程(即选择哪些特征用于训练),然后通过迭代优化,逐渐调整网络权重。以下是一个简单的传统神经网络训练代码:

在这个阶段,特征工程占据了核心地位。也就是说,模型的表现很大程度上取决于你如何挑选和设计特征。你得手动“告诉”机器你认为重要的特征是什么,就像给它装上一对“眼镜”,让它看得更清楚。这个过程非常繁琐,且常常容易因为人类知识的局限而错失一些重要信息。

(2)深度学习的崛起

然后,进入了一个深度学习的时代,模型开始变得更复杂、更智能。深度神经网络(DNN)和卷积神经网络(CNN)的出现,让机器学习突破了很多限制。尤其是在图像识别、语音识别等领域,深度学习大放异彩,准确度也大幅提升。虽然这些模型比传统方法表现更好,但它们的训练依旧需要从零开始,也就是每次训练都要完全依赖大量的训练数据。

但深度学习也有它的瓶颈——需要大量的数据和计算能力。尽管如此,这一阶段的突破还是为后来的大模型微调奠定了基础。神经网络的层数越来越多,模型越来越大,数据集也变得更加庞大,机器学习模型的“学习能力”得到了质的飞跃。例如,我们可以看到一个基于PyTorch的CNN模型训练代码,它比传统的神经网络代码更加复杂,但依旧是从零开始训练:

(3)预训练-微调范式的提出

然后,2018年,我们迎来了一个革命性的概念——预训练-微调(Pretrain-Finetune)范式的提出。以BERTGPT为代表的预训练模型,彻底改变了模型训练的方式。在这个阶段,开发者不再需要从零开始训练,而是基于一个已经在大规模数据上训练好的“通用模型”进行微调。

简单来说,预训练-微调模式打破了传统模型从零开始训练的限制。它的核心思想是:首先用大量的通用数据对模型进行“预训练”,让它学到一些通用的知识(比如语言模型的语法和语义);然后再根据具体任务进行“微调”。这种方式让我们不必每次都从零开始训练,而是利用已经学到的“通用知识”,只需要少量的标注数据就能完成特定任务。

举个例子,你可以让BERT先用海量的文本数据学习语言的基本规律,再让它根据少量的情感分析数据进行微调,立刻就能用来做情感分类任务。这种方式极大地提高了模型的训练效率,也让我们能够快速应用大规模预训练模型。这时的代码开始有了巨大的变化,预训练模型被下载下来,进行微调(Finetuning)以适应特定任务。例如,微调BERT进行文本分类的代码如下:

这种预训练+微调的方式极大地简化了开发流程。你不再需要自己从零开始训练一个庞大的模型,只需要在一个已经拥有丰富知识的“基础模型”上进行微调,调整它以适应你的任务。这种方法的出现标志着大模型微调的新时代,训练效率得到了前所未有的提升。

2.4 大模型微调场景算法与发展历程

大模型微调算法的发展历程可以看作是从通用的粗粒度微调逐渐向更精细化、更高效的微调方法演进的过程。以下将从场景应用和技术进步两个维度详细介绍。

(1)传统微调阶段(Full Fine-tuning)

早期微调方法通常采用全参数微调,即Full Fine-tuning。这种方法是最直观的:在预训练模型的基础上,使用任务特定的数据对所有参数进行重新训练。

这是一种最朴素也最暴力的方式——解冻预训练模型的所有参数,在下游数据上继续训练,使模型完整学习新任务。它的优点是在足够数据下能够获得最充分的适应效果,模型可以自由调整每一层参数来拟合新任务;但缺点也显而易见:资源消耗巨大(需要显存随模型大小线性增加,14B以上模型往往单卡无法全参数微调),过拟合风险更高(尤其当下游数据较少时,大量参数容易记忆训练集导致泛化变差)。另外,全量微调后的模型参数完全改变,如果要服务多个任务需要保存多份完整模型,部署成本高。一般来说,全参数微调适用于小模型或下游数据非常丰富有充足计算资源的情况。在大模型上,由于效率太低,我们更推荐LoRA/QLoRA这类参数高效微调手段。

例如,对于文本分类任务,早期的微调方法会直接调整BERT所有的参数。这种方法虽然简单直接,但面临几个问题:

(2)基于参数高效的微调方法(Efficient Fine-tuning)

为了应对全参数微调的缺陷,人们逐渐提出了参数高效微调方法(Parameter-efficient Fine-tuning, PEFT)。主要的思路是不再调整全部参数,而是选择性调整部分参数,减少计算和存储成本。

典型的参数高效微调方法包括:

Adapter方法通过在模型的每个Transformer层中插入额外的小型神经网络模块,这些模块通常只有几百万甚至更少的参数。训练时只更新适配器模块的参数,冻结原有模型参数。这种结构使得模型能够针对特定任务进行高效微调,同时显著减少了计算和存储资源需求。Adapter微调方法非常灵活,因为它可以为不同任务分别训练和激活多个适配器模块,实现多任务快速切换。

Adapter微调方法的优势在于能够显著减少微调所需的计算资源,同时保持很高的模型性能。

P-Tuning(Prompt Tuning,软提示微调):P-Tuning是一种Prompt学习方法,通过为模型的输入添加一些可训练的虚拟token来引导模型输出。与直接调整模型权重不同,P-Tuning让模型保持原有权重不变,只是在输入序列开头插入若干新参数(这些参数在微调时会被更新)。可以理解为我们为每个任务学到了一个“魔法开头咒语”,让预训练模型更好地完成特定任务。P-Tuning的参数规模非常小(只相当于几百个词的嵌入向量),因此训练开销极低。它的优点是实现简单、所需内存极小,非常适合极少样本(Few-Shot)或需要针对很多不同提示调优的场景。缺点是适用范围受限:由于只调整输入提示,模型本身的表示能力没有改变,因而对于复杂任务或需要模型深度调整的场景,效果不如LoRA或全量微调。此外,P-Tuning主要针对生成类任务(prefix-tuning用于NLG,P-Tuning最初用于NLU任务)。总的来说,P-Tuning适合小数据快速尝试,或者配合其他微调一起使用,以进一步提升性能。

Prompt Tuning极大地降低了微调成本,在小样本学习(Few-shot)场景中表现优秀。

LoRA(Low-Rank Adaptation,低秩适配):LoRA通过在模型的部分权重上添加可训练的低秩矩阵来实现微调。简单来说,就是冻结原模型的大部分参数,仅在每层中引入很小的瓶颈层进行训练。这样做大幅减少了需要更新的参数数量。LoRA的优点是内存开销小、训练高效,在下游任务上的效果通常接近全参数微调。并且多个LoRA适配器可以在一个基模型上切换,方便一个模型服务多种任务。LoRA不增加推理时延,因为微调完可以将低秩权重与原权重合并。实验表明,使用LoRA微调后的性能往往与全量微调相当,但显存占用和计算量却显著降低。缺点是LoRA仍需加载完整的预训练模型作为基础(但可以使用8-bit/4-bit量化减小内存,占用稍高于更轻量的P-Tuning)。LoRA适用于中大型模型中小规模数据上的高效微调,是目前社区中极为流行的方案。

image-20250603220043071

LoRA方法因其简单有效,已广泛应用于多种大模型微调任务。

QLoRA可以看作是在LoRA基础上的进一步优化。它的核心是在训练时将预训练模型权重以4比特精度加载,大幅降低显存占用,同时同样仅训练LoRA低秩适配器。创新之处在于4-bit量化采用了Norm浮点格式(NF4)等技术,尽可能减少量化带来的性能损研究表明,QLoRA在单张48GB GPU上就能微调65B参数的模型,而且性能与全16位精度微调几乎持平!这意味着,即使只有一块高端GPU,也能微调过去需要数十张GPU的大模型,这对普通开发者来说是革命性的。QLoRA的优点是极致地节省显存(比LoRA进一步减半左右),使单卡可微调更大的模型。缺点是实现稍复杂,需要依赖如bitsandbytes、可能还需要DeepSpeed等库支持4-bit训练,而且由于进行了强烈的量化,极少数情况下可能出现略微的性能下降或兼容性问题。QLoRA非常适合GPU内存非常有限但又想微调超大模型的情况。例如只有一块16GB卡却希望微调13B或33B参数模型时,QLoRA是不错的选择。

image-20250603220146017

综上,针对单卡GPU的环境且希望高效微调的情景,LoRA和QLoRA是最值得推荐的技术。其中LoRA实现简单、工具成熟,非常适合入门实践;而QLoRA在稍作配置后可以让你的单卡发挥更大威力。如果你的任务数据非常特殊且十分有限,P-Tuning也可以一试。

2.5思考:大模型微调与RAG检索增强有何区别?

image-20250603220320013

大模型微调(Fine-Tuning)和检索增强生成(RAG,Retrieval-Augmented Generation)是两种在模型应用中常见的技术。它们分别通过不同的方式提升模型在特定任务上的性能。大模型微调通过对已有的预训练模型进行再训练,使其更好地适应特定的应用场景;而RAG则通过引入外部的知识源,通过检索和生成相结合的方式,提高模型的回答质量和准确性。

什么情况下选择大模型微调最优,什么条件下选择检索增强生成最优秀?

三、微调平台快速上手

本微调实践环境基于魔乐社区,因此需要对魔乐社区有清晰的了解以及环境如何运用,魔乐社区提供了大量用于各种机器学习任务的模型库。社区已发布的模型支持使用魔乐社区的全量功能,让用户轻松学习、简单使用模型资源,如下载预训练模型、使用openMind Library工具链进行微调或者推理。

魔乐社区托管基于Git的仓库,包含以下内容:

首先用户登录官网:https://modelers.cn/,先进行注册,我们主要使用openMind Library来进行微调操作,其可以通过简单易用的API支持模型预训练、微调、推理等流程。该开发套件通过一套接口兼容PyTorch和MindSpore等主流框架,并且仅支持昇腾NPU处理器。如果没有微调环境可以使用魔乐社区体验空间,体验空间可以帮助用户快速构建应用程序。在这里,用户可以自行构建体验空间,展示研究成果,也可以使用其他用户贡献的应用程序,和更多用户一起体验、探索、学习和互动。

3.1体验空间功能介绍

创建空间:在魔乐社区主页,将鼠标移动至右上角的用户名,在下拉列表里选择“创建空间”,填写表单后单击“创建”提交,表单包含如下内容。

接入SDK:当前社区提供Gradio、Static和Application三种类型SDK(Software Development Kit 软件开发工具包)选项,请根据实际需求选择。其中,Gradio可以自定义创建空间或选择Chatbot、Text-To-Image、Text-To-Audio和Endpoint等模板创建空间,Application默认使用Notebook模板进行空间创建。

我们本次微调环境采用的是部署Application体验空间,Application是魔乐社区提供的一键式快速创建体验空间应用的SDK,用户可以选择各种应用模版,零门槛创建体验空间。创建空间时,接入SDK选择“Application”,并使用默认模板“Notebook”进行创建。

Notebook App支持所有算力资源以及基础环境,可以根据自己的需求,选择相应参数进行创建。

image-20250603223347084

 

配置完成之后,至少需要上传app.pyrequirements.txt两个文件。当文件内容符合gradio和python编程规范后,空间会自动触发镜像构建,并运行gradio服务。Application体验空间创建后,在“应用程序”页签下,Notebook启动后显示登录界面。需输入令牌进入,默认令牌为openMind。

image-20250603223405634

输入默认令牌后,会进入NoteBook主页:

image-20250603223507557

 

此刻我们的实践环境完成。我们也可以将做好的模型应用通过体验空间部署展示。

首先我们先克隆项目到我们本地之后,按照空间给出的Demo来操作:

git push并使用用户名和令牌完成推送:

推送完成之后空间开始构建。那么目前整个大模型和微调历程,以及魔乐社区微调环境以及部署完毕,消化知识之后我们开始进行大模型微调实操部分详细剖析。