为你,千千万万遍
中文llama-alpaca论文阅读记录

EFFICIENT AND EFFECTIVE TEXT ENCODING FOR CHINESE LLAMA AND ALPACA

image-20240325231943333

image-20240325220529738

一、低秩适应(LORA)

​ 使用LORA方法主要是为了进行高效的参数微调。原理是冻结预训练的模型权重,并且将可训练的低秩矩阵注入每一层。

image-20240325224517407

​ 具体方式如上,W0是原有模型的权重,不会梯度更新。矩阵B和矩阵A是可训练矩阵,d为输出维数,k为输入维数。之后主要将这种LORA适配器合并到**attention mode(这篇文章真的很好懂)和MLP层**。

image-20240325225609663

​ 之后论文对任务的主要处理是最小化tocken的负似然对数。个人理解是在计算最可能出现在当前句子后的下一个tocken,然后输出。但这里论文也指出了有一个问题,通过这种方式,模型输出的是后续最可能出现的文本,但是并不一定符合用户的需求。大概就像是去饭店点餐,用户说要吃东西,餐厅就给了以前最多客户点的菜单,但是忽略了用户本身的诉求。

​ 论文中同样也提出了解决方式:用指令提示模型。对模型的输入=指令提示+输入(中间用\n连接)。这样每次都在提醒模型需要完成用户的需求(个人理解是这样),模型会避免自顾自生成最可能序列。

二、扩展词汇表

​ 使用sentencepece在中文语料库上训练中文标记器的词汇量(2w),之后合并到原始的llama分词器中。

image-20240325221057736

​ 效果如上:可以看出来加入新的分词器后,对中文语句的分词更加简洁高效、合理。论文指出,token长度大概是原本的一半,且生成速度也是原始生成速度的两倍。

三、解码

  • 1.上下文
  • 2.限制最大生成序列长度
  • 温度(低温度输出更加集中确定,高温度多样化)
  • top-k采样
  • top-抽样
  • 重复惩罚

这里其实对温度和top-p抽样不太了解,Mark一下,后续查一下是什么。

四、量化性能

image-20240325231417085

部署的时候查看量化教程有使用8bit 也有5bit的,但大多数都是4bit,看论文才知道大概原因。论文也指出规模越大的模型,在越低bit量化时的表现越好。

五、总结

忽略了中间对性能比较的一些介绍的总结:不同数据集表现,不同规模模型同一任务表现等等。

还有很多提及的概念不知道,后续找到比较好的介绍教程,会以链接的方式加在文字上,以上。

NLP llama alpaca LORA
本地llama.cpp搭建中文llama-alpaca-13B模型记录
Hello World
© 2020 Gina
Powered by hexo | Theme is blank
Title - Artist
0:00