泰安房产管理局官网,网站值不值得做seo,山西建网站,wordpress cx udy在文章开始前先澄清一个概念#xff0c;需要区分形近的单词LoRa#xff08;long range#xff09;#xff0c;这是一项通信技术。熟悉物联网行业的朋友相对会比较熟悉LoRa这项技术#xff0c;因为有些设备比如电梯的控制就使用了这个技术进行本地数据和命令的…在文章开始前先澄清一个概念需要区分形近的单词LoRalong range这是一项通信技术。熟悉物联网行业的朋友相对会比较熟悉LoRa这项技术因为有些设备比如电梯的控制就使用了这个技术进行本地数据和命令的传输。
本文介绍的LoRA最后两个字母大写是Low-Rank Adaptation的缩写Low-Rank来自于对权重矩阵的分解。LoRA技术通过将权重矩阵分解成低秩矩阵的乘积降低了参数数目进而达到减少硬件资源、加速微调进程的目的。
众所周知大模型所涉及的参数都是以10亿起的往往上百亿千亿级的参数。这些模型进行预训练后的基座模型(Base Model)在具体的应用场景下需要进一步微调。这时面临两种选择
全参数的微调毫无疑问这个需要加载所有的参数进行调整训练费时费力更费钱。部分参数的微调只针对某些层的权重和参数进行调整训练能够减少存储空间和加速部署但存在一些性能和模型质量的损耗。
LoRA在保留基座模型全部参数的同时拆分出权重矩阵的更新并进行矩阵分解通过调整训练这个由低秩矩阵乘积表示的更新矩阵来减少存储空间的同时保留了模型的质量和微调速度。
LoRA原理
LoRA的详细论文介绍可以阅读参考资料2LORA: LOW-RANK ADAPTATION OF LARGE LAN- GUAGE MODELS。其原理如下图所示对于一个预训练好的基座模型保留其原有的权重矩阵W不变仅微调训练更新部分且这个更新权重矩阵被分解成A和B两个低秩矩阵。下图中A矩阵初始化为高斯分布矩阵B矩阵初始化为0矩阵。 数学表达 其中的, 同时r d。
这里的好处显而易见假设d10000, r 8在使用LoRA前需要对10000 * 10000共计1亿个参数进行计算更新而LoRA仅需要10000*8 8*10000共计16万个参数的更新计算。论文中使用的模型是“GPT-3 175B”这个差距读者可以自行计算。
具体微调时会引入两个超参数和它俩的比对进行缩放类似学习率learning rate超参数来控制的更新步长。
这里有个疑问为什么将能进行分解呢这里就涉及到矩阵秩和列向量的线性相关性之类的数学概念以及参考资料3中的发现。有兴趣的读者可以自己再深究。
同时参考资料2作者还发现仅对进行分解更新的效果不够但对全部4个权重矩阵进行更新并没有大幅提升对和进行分解更新就能取得足够好的效果一般r取4或者8 参考资料
1. YouTube LoRA explained (and a bit about precision and quantization)
2. LORA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS
3. INTRINSIC DIMENSIONALITY EXPLAINS THE EFFEC- TIVENESS OF LANGUAGE MODEL FINE-TUNING