摘要
-
现有问题
-
指令微调(instruction tuning)的 LLMs(如 ChatGPT、GPT-4)需要大量高质量、多样化的指令数据。
-
人工编写的高质量指令获取困难,成本高、可获得性差。
-
隐私问题进一步限制了数据的收集和使用。
-
因此,模型的泛化能力受到限制,效果在某些场景下可能不足。
-
-
提出的方法:FedIT(Federated Instruction Tuning)
-
作者首次将**联邦学习(Federated Learning, FL)**用于 LLM 的指令微调。
-
动机是:用户本地设备上天然存在大量多样化、异质性的文本数据(如日常对话),可以帮助模型学到更自然、真实的语言能力。
-
通过 FL,可以在不泄露用户隐私数据的前提下,利用这些分散在不同客户端的指令数据来训练模型。
-
-
实验与结果
- 作者使用 GPT-4 自动评估方法,验证了 FedIT 可以利用用户端多样化的指令,提高 LLM 的性能,相比于仅依赖有限的集中数据训练效果更好。
-
实践贡献
-
作者开发了一个开源仓库 Shepherd:
-
为研究者提供了一个便捷的框架,用于在多样化的指令数据下进行联邦微调。
-
支持易用性、可扩展性和对新算法/配置的灵活集成。
-
-
引言
1. 研究背景与问题
-
LLMs 的现状:一个模型就能完成多种 NLP 任务(如文本生成、翻译、问答等)。
-
Instruction tuning 的重要性:通过在指令数据上微调,使模型更好地对齐人类意图,提升零样本和少样本能力。
-
问题与挑战:
-
获取高质量、多样化的指令数据成本高(时间、人力、资金)。
-
隐私问题:
-
日常对话虽有价值,但用户不愿共享。
-
公司将指令视为核心资产(例如制药公司),不愿公开。
-
-
传统的集中式训练方式因此难以大规模利用这些敏感数据。
-
2. 解决方案:FedIT(Federated Instruction Tuning)
-
使用 联邦学习 (FL):
-
客户端先下载全局 LLM,本地利用自己的指令数据更新模型参数,再上传更新结果,由中心服务器聚合。
-
避免了直接共享原始数据,从而保护隐私。
-
-
结合 参数高效微调 (PE-Tuning):
-
减少训练参数量,降低计算和通信开销。
-
让资源有限的边缘设备也能参与训练,而不依赖大型云服务器。
-
3. 主要贡献
-
首次提出:将联邦学习应用于 LLM 的指令微调(FedIT),解决高质量指令数据难以集中收集的问题。
-
实证研究:
-
分析了联邦学习场景下指令数据的异质性。
-
使用 GPT-4 自动评估验证 FedIT 的有效性,结果显示能提升模型生成质量。
-
-
工具支持 :开源了 Shepherd 仓库,便于研究者定制、扩展和复现相关实验。
相关工作
大模型指令微调
-
Instruction Tuning 的发展与现状
-
Instruction tuning 是一种提升大语言模型(LLM)泛化能力的重要方法,尤其在复杂任务的零样本学习中效果显著。
-
提到了一些代表性工作:
-
FLAN:展示了显著的零样本性能。
-
Instruct-GPT:通过人工标注数据和 RLHF(强化学习+人类反馈)对 GPT-3 进行调优,直接推动了 ChatGPT 和 GPT-4 的成功。
-
-
Instruction tuning 的数据来源可以分为两类:
-
人工标注的任务提示与反馈。
-
机器生成的指令跟随数据(如 Self-Instruct 方法,教师模型生成指令数据供学生模型学习)。
-
-
开源模型 LLaMA 的出现,使得社区可以探索更多开源的 instruction-following LLMs。
-
文章提出了一个趋势:由于指令数据的敏感性和广泛需求,未来数据共享将趋向 去中心化(decentralization) ,因此作者尝试在 联邦学习(FL) 框架下解决这一问题。
-
-
参数高效微调(PEFT, Parameter-Efficient Fine-Tuning)
-
微调 LLM 的目标是提升模型能力,同时减少计算和存储开销。
-
常见的 PEFT 方法包括 LoRA、P-Tuning、Prefix Tuning、Prompt Tuning 等。
-
作者在其 FL 框架中选择 LoRA,因为它在近期 instruction tuning 的研究中(如 Alpaca-LoRA、Baize)表现较好。
-
其他方法(如 P-Tuning 等)会留到未来研究。
-
联邦学习在自然语言处理
-
联邦学习的基础与研究方向
-
FL 是一种去中心化的协作式机器学习方法,数据保留在用户设备上。
-
研究主要集中在解决 隐私 和 数据异质性 问题,并发展了许多高级方法,包括:
-
优化与聚合改进(提高模型聚合性能)。
-
鲁棒性增强(防御对抗攻击)。
-
客户端选择机制(选择合适的用户参与训练)。
-
个性化能力提升(适应不同用户的数据分布)。
-
系统效率提升(加速训练与通信)。
-
-
-
FL 在 NLP 任务中的应用
-
已经应用于多种 NLP 任务,如:
-
语言建模(Language Modeling)
-
文本分类(Text Classification)
-
序列标注(Sequence Tagging)
-
对话生成(Dialogue Generation)
-
-
也出现了支持研究的 开源基准与框架:Leaf、FedNLP、FedML、FedScale、FATE。
-
-
预训练模型在 FL 中的重要性与本文贡献
-
最近研究表明,预训练模型在 FL 中作为初始化 比从零训练效果更好,能够提高 收敛性与鲁棒性,特别是在面对数据异质性时。
-
作者的研究是 首次将 FL 用于 LLM 的 Instruction Tuning ,希望推动 联邦学习和 LLM instruction tuning 两个领域的交叉探索。
-
联邦指令微调
概览
-
框架目标与优势
-
结合 联邦学习 (FL) 和 参数高效微调 (PEFT, LoRA),实现安全、低成本的大语言模型 (LLM) 指令微调。
-
保证数据隐私:指令数据始终保留在本地设备上,保护敏感信息,鼓励更多用户参与。
-
数据多样性:来自不同领域和地区的用户能贡献多样化、专业化的指令数据,使模型更鲁棒、更具泛化能力。
-
提升可扩展性:利用大量分布式的本地设备计算资源,而不是依赖集中式算力。
-
-
框架的运行机制
-
客户端 (local side):
-
每个客户端分配一个预训练的 LLM。
-
客户端在本地指令数据集上进行微调,更新的是 LoRA 适配器参数(而不是全部模型权重),从而降低计算和通信开销。
-
本地训练完成后,把更新的适配器参数发送给服务器。
-
-
服务器 (server side):
-
聚合所有客户端上传的适配器参数。
-
执行 客户端选择 (client selection),决定下一轮哪些客户端参与训练。
-
重复这一过程,直到训练收敛。
-
-
-
客户端选择的重要性
-
在真实场景中,并非所有客户端都能随时参与(可能被其他任务占用)。
-
客户端选择机制可以基于 数据分布 和 计算资源 来决定参与者,从而提升整体效率和训练效果。
-
补充
1. 什么是指令微调(Instruction Tuning)?
-
定义 :指令微调是一种让大语言模型(LLM)学会 理解并遵循人类指令 的训练方法。
-
做法 :收集大量 任务指令 + 示例回答(例如"总结这段文字""把句子翻译成英文"),然后在预训练模型的基础上进行监督微调。
-
目标:让模型更好地遵循用户的自然语言指令,而不仅仅是完成语言建模(预测下一个词)。
通俗说:预训练的 LLM 会"懂语言",但不一定会"听话";指令微调就是教它"听懂并执行人类指令"。
2. 会有参数更新吗?
-
在指令微调过程中,模型会根据 指令数据集 调整参数,从而学习到如何遵循不同的任务指令。
-
但参数更新的范围可以不同:
-
全参数微调(Full fine-tuning):更新模型的所有参数(成本高,资源消耗大)。
-
参数高效微调(PEFT, e.g., LoRA, Prefix Tuning, Adapter Tuning):只更新一小部分参数(例如新增的低秩矩阵 LoRA 层、前缀向量等),而保持原模型权重冻结不变。这样大大降低计算与存储开销。
-
-
普通微调 (fine-tuning):
- 在特定任务的数据集上(例如情感分类、机器翻译),更新模型参数,使模型适应该任务。
-
指令微调 (instruction tuning):
-
把 训练数据集换成了「指令 + 响应」形式的数据。
-
例如:
-
指令:"请把下面的句子翻译成英文"
-
输入:"我喜欢机器学习"
-
输出:"I like machine learning."
-
-
通过这种训练,模型不仅学会做翻译,还学会"看到指令 → 知道要做什么"。
-
也就是说,指令微调 ≈ 一种 特殊形式的监督微调,只是数据集换成了 "任务指令" 的形式。
指令数据的异质性
1. 异质性作为优势
-
在传统联邦学习中,数据的统计异质性(不同客户端数据分布差异)往往是个难题。
-
本研究指出,在 指令微调场景 下,这种异质性(不同任务、不同语言、不同领域的指令数据)反而可能成为 积极因素:
-
客户端拥有不同的任务(如 QA vs. 写作),能增加数据的多样性;
-
多样性有助于模型获得更广泛的能力,提升泛化性。
-
2. 数据集与实验设计
-
作者使用了 Databricks-dolly-15k 数据集,该数据集包含多种指令类别(如 brainstorming、classification、QA、generation 等)。
-
将其划分为 10 个 shard,分别分配给 10 个客户端,模拟联邦学习场景。
-
分析结果:
-
每个客户端的数据类别分布 不均衡,甚至缺失某些类别 → 符合真实世界的情况(不同用户专长不同)。
-
如果只在本地数据训练,模型的能力会受到限制;而通过 FedIT,可以聚合所有客户端的指令数据,得到更丰富、更全面的训练集。
-

3. 异质性的不同维度
-
任务类别的差异:不同指令任务对应不同格式、内容(QA 要求事实,写作要求连贯性)。
-
语言多样性:真实应用中,LLM 面向多语言用户,训练需要关注:
-
模型能否理解多语言指令;
-
公平性:低资源语言可能被低估,需要特别关注。
-
-
领域差异:如法律、医学领域有特定术语和表达方式,和其他领域差异很大。
-
其他异质性来源:任务复杂度、歧义性、情绪色彩、文化因素等。
参数高效微调
1. 为什么需要参数高效微调
-
本地设备(客户端)计算能力有限,无法承担全参数微调 LLM。
-
因此需要采用 参数高效方法 (PEFT),在有限算力下完成本地训练。
2. LoRA 的方法原理
-
对预训练权重矩阵
-
冻结 W0,只训练低秩增量部分 ΔW。
-
ΔW=BA,其中
-
-
前向传播修改为:
-
好处:相比全参数微调,可训练参数量大幅减少。
3. 通信效率
-
客户端训练完成后,只需上传 A 和 B 矩阵,而不是整个 LLM 的权重更新。
-
这样显著减少了通信开销。
-
服务器端通过 FedAvg 聚合 各客户端的 LoRA 参数,形成新的全局模型。
4. 推理效率
-
部署时可以直接合并参数:W0+BA。
-
推理速度与全参数微调相同,没有额外延迟。
5. 适应系统异质性
-
LoRA 的配置可根据客户端的资源情况灵活调整:
-
低资源客户端可以减少参与分解的矩阵元素数量。
-
或者降低低秩分解的秩 r,进一步减少参数量。
-
-
如何在 不同客户端 LoRA 配置不一致 时优化聚合过程,是未来值得研究的方向。
shepherd框架
1. Shepherd 框架的定位与特点
-
一个 轻量级、可扩展 的研究平台,专门为 联邦指令微调 和其他 NLP 任务设计。
-
支持多种主流开源 LLM(Alpaca、Vicuna、Pythia、Dolly、Baize、Koala 等)。
-
研究者可以在其上快速集成新算法和配置,处理大规模数据集。
2. 框架的四个主要组件
-
Client Data Allocation(客户端数据分配)
-
模拟真实世界中不同客户端拥有各自数据的情况。
-
提供两种划分方式:
-
类别数量不同但数据量相近;
-
数据量差异显著。
-
-
实现模块:
client_data_allocation.py
。
-
-
Client Participation Scheduling(客户端参与调度)
-
决定哪些客户端参与训练。
-
默认是随机选择,未来会扩展为更高效的选择方法(考虑数据和系统异质性)。
-
模块:
fed_util/sclient_participation_scheduling.py
。
-
-
Simulated Local Training(本地训练模拟)
-
模拟每个客户端的本地训练,出于效率考虑,顺序执行 而不是并行执行。
-
使用 Hugging Face
Trainer
进行训练。 -
集成 LoRA (PEFT) 来实现参数高效微调。
-
提供一个
GeneralClient
类,封装了客户端的训练流程:-
数据准备 (
prepare_local_dataset
) -
构建训练器 (
build_local_trainer
) -
启动训练 (
initiate_local_training
) -
执行训练 (
train
) -
结束训练并保存模型 (
terminate_local_training
)
-
-
-
Model Aggregation(模型聚合)
-
只聚合 LoRA 的可训练参数,减少计算和通信开销。
-
使用 FedAvg 等聚合方法。
-
模块:
fed_util/model_aggregation.py
。
-
3. 当前状态与未来计划
-
目前 Shepherd 提供的是一个 基础、易理解、易修改的 vanilla 版本。
-
未来计划:
-
引入更复杂的 客户端选择策略 和 优化算法。
-
扩展支持更多 指令数据集和 NLP 任务。
-
增加更真实的 系统模拟功能(计算延迟、通信延迟、带宽限制等),提升实用性。
-
实验
设置
1. 实验环境与设置
-
客户端数量:100 个。
-
数据划分 :使用 Shepherd 的 第二种数据划分方法,将 Databricks-dolly-15k 剩余数据划分为 100 份,每份对应一个客户端的数据。
-
通信轮次:20 轮。
-
客户端选择:每轮随机选取 5 个客户端(占 5%)参与训练。
-
本地训练:每个客户端训练 1 个 epoch,在单卡 Nvidia Titan RTX(24GB)上进行。
2. 模型与微调方式
-
初始化模型:LLaMA-7B。
-
训练策略:
-
冻结预训练模型参数,仅训练 LoRA 参数(降低显存占用、提升速度)。
-
LoRA 设置:
-
应用于所有线性层。
-
秩 r=8r = 8r=8。
-
初始化方式:
-
A 使用随机高斯分布。
-
B 初始化为 0(保证 BA 初始为 0)。
-
-
-
-
优化器:Adam。
-
训练超参:
-
batch size = 32
-
学习率 = 1.5e-4
-
最大输入序列长度 = 512
-
-
prompt 模板:采用 Alpaca-LoRA 的提示模板(见 Table 1)。

3. 实现与命名
-
实现工具:使用 Shepherd 框架实现 FedIT。
-
结果模型命名:Shepherd-7B。
-
实验指标:模型参数量、训练时间、显存占用(见 Table 2)。

评估
1. 评估方法
-
借鉴 Vicuna 和 GPT-4-LLM 的做法,用 GPT-4 自动评估 Shepherd-7B 与对照模型的回答质量。
-
评估数据:从 Vicuna 的评测集里随机抽取 20 个未见过的问题(如反事实问题、女性问题、数学问题等)。
-
评估流程:
-
每个模型对同一问题生成一个回答。
-
GPT-4 逐对比较两个模型的回答,打分范围 1--10。
-
为降低随机性,每对回答重复打分 3 次,取平均分。
-
2. 对照模型设置
-
LLaMA-7B(未微调):作为零微调基线。
-
Local 模型(3 个):
-
Local-1:仅在 "brainstorming" 本地数据集上微调。
-
Local-2:仅在 "closed QA" 数据上微调。
-
Local-3:在 "classification + brainstorming" 数据上微调。
→ 这些模型代表只依赖单个客户端数据的情况。
-
-
Centralized Model :在 完整 Databricks-dolly-15k 数据集上集中微调 1 epoch,被视为理想上界。
3. 结果与分析

-
Shepherd-7B 明显优于 LLaMA(未微调) → 证明 FedIT 有效。
-
Shepherd-7B 优于 Local 模型 → 说明 联邦环境下利用多客户端多样化数据 的优势。
-
Shepherd-7B 略逊于 Centralized Model → 主要原因是:
-
不同客户端的数据分布差异大。
-
各地模型学到的指令表示不一致,聚合时存在偏差。
→ 需要更高效的联邦优化和客户端调度方法(如 FA-LD, FedCBS, 贝叶斯采样方法)。
-
4. 与工业产品对比
-
Shepherd-7B 及基线模型与 ChatGPT(GPT-3.5-turbo) 比较,采用 GPT-4 自动评估。
-
结果(见 Figure 3):
-
Shepherd-7B 表现优于所有基线模型,仅次于 Centralized Model。
-
说明该方法在 隐私敏感、难以集中收集指令数据的场景下具有实际应用价值。
-
案例
1. 案例来源
-
第一个例子:来自 Vicuna 的 20 个未见问题集。
-
第二个例子:来自 Databricks-dolly-15k 数据集。
2. 对比分析(例子一:牛顿如果研究生物学会怎样)
-
Shepherd-7B:回答更准确、更相关,覆盖多个潜在方向(进化论、遗传学、细胞生物学、免疫学、传染病、疫苗)。
-
Local-3:包含一些无关信息,相关性较差。
-
Local-2:主要集中在疫苗和疾病治疗,缺少对具体生物学研究领域的展开。
-
Local-1:因主要训练于"头脑风暴"数据,回答过于浅显,没有涉及到反事实推理所需的历史因果理解。
-
LLaMA :未微调,回答更弱。
→ 说明:多样化的指令调优让 Shepherd-7B 更具深度和广度。
3. 对比分析(例子二:分类任务)
-
Shepherd-7B:回答准确,直接解决问题。
-
ChatGPT(GPT-3.5-turbo):回答错误,还虚假声称进行了网络搜索,影响可靠性。
-
Local-3 :因训练过类似分类指令,也表现良好。
→ 说明:即使对比工业模型,Shepherd-7B 在某些任务上也能更可靠。
4. 关键结论
-
多样化的 指令异质性 对提升模型能力至关重要。
-
Shepherd-7B 在许多情况下优于本地模型,也能在部分任务上挑战甚至超越 ChatGPT。
-
FedIT 能在 数据敏感、不易集中收集 的现实场景中展现价值,拓展了 LLM 的应用前景。
讨论
1. Computation and Communication Overhead(计算与通信开销)
-
问题:
-
LLM 参数量巨大,导致在 FL 场景下需要 超大规模的通信(GB 级参数传输),远超可接受范围。
-
客户端往往 算力不足,无法完整微调 LLM,也难以存储多个任务实例。
-
-
解决思路:
-
引入 参数高效调优(PEFT)方法(如 Prefix-tuning、LoRA、BitFit),降低计算和通信开销。
-
未来研究可专门为 FL 设计更适合的 PEFT 方法。
-
2. Privacy(隐私问题)
-
优势:FL 天然能在隐私敏感的 NLP 应用中保护数据(如医疗文本、金融分类),结合 LLM 更具潜力。
-
挑战:
- 恶意客户端可能注入"有害指令",污染模型,引发偏见或降低性能。
-
未来方向:
- 开发 鲁棒聚合方法 与 异常检测机制,以识别并剔除异常或恶意客户端。
3. Personalization(个性化需求)
-
问题:
-
客户端间指令数据差异大(语言多样性、领域专属、任务复杂度、情感语气、文化差异),单纯参数平均难以满足个性化需求。
-
例如多语言应用中,低资源语言难以得到公平表现。
-
-
潜在方案:
- 元学习 、小样本学习 、个性化嵌入(personal embeddings / preference embeddings),在共享上下文的基础上兼顾个体需求,避免大量反向传播开销。
4. Defense Against Attacks(对抗攻击)
-
问题:
-
研究表明可以从语言模型的梯度中恢复文本,或因模型"记忆"而泄露训练数据。
-
在 FL 中,这一风险更严重,恶意用户可能利用该漏洞提取本地敏感文本。
-
-
现有方法:
-
梯度裁剪 / 修剪、差分隐私 SGD(DPSGD)。
-
但这些方法通常导致模型效用大幅下降。
-
-
未来方向:
- 针对文本特性设计更高效的防御机制,兼顾隐私与性能。