一、先验知识
1. 大模型微调技术
高效参数微调(parameter-efficient finetuning techniques, PEET):微调大模型时只训练一小部分参数,不是训练全量的模型参数。
优点:显存占用少;训练速度快;更低的存储成本(不同任务可共享大部分的权重参数);精度和全量微调出于同一个水平相。
现阶段主要的PEET方法:
- Lora(Low-Rank Adaptation)
- P-Tuning v2(Prompt Tuning V2)
1.Lora
在原来的参数旁边加一个低次旁支,对这个旁支更新
维度r远小于d
输入维度 | 输出维度 | |
A | d | r |
B | r | h |
输入x 经过W 得到H0;输入x 经过AB 得到H1。然后H0+H1传到下一层
2.P-Tuning v2
在原始的prompt前加上解释或者任务描述的prompt(token),只对这些prompt(token)进行更新
2. 联邦大模型现状
- 联邦大模型安全微调架构
1.backbone是一个黑盒模型 -> 更新:用两次前向代替一次反向(远端只需要给模型一个prompt,然后模型用前向推理的logis对本地参数进行更新)
2.本地对model进行压缩,将其发给数据方,数据方在emulator上训练一个adaptor,将adaptor返回给模型方
3.可信执行环境(TEE)
二、存在的问题
三、算法模型
方法一:小内存(消费级)TEE保护的LLM拆分
现在主流的TEE是CPU型
局限性:
方法二:大内存TEE保护的LLM拆分
借鉴拆分学习
客户端的A不变,需要更新的是服务端的B
其效果是要好于联邦学习框架的
四、实验结果
FL-LLM:正常的(标准的)联邦大模型
SWMT:把所有模型都放到TEE