中文llama-alpaca论文阅读记录
EFFICIENT AND EFFECTIVE TEXT ENCODING FOR CHINESE LLAMA AND ALPACA


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

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

之后论文对任务的主要处理是最小化tocken的负似然对数。个人理解是在计算最可能出现在当前句子后的下一个tocken,然后输出。但这里论文也指出了有一个问题,通过这种方式,模型输出的是后续最可能出现的文本,但是并不一定符合用户的需求。大概就像是去饭店点餐,用户说要吃东西,餐厅就给了以前最多客户点的菜单,但是忽略了用户本身的诉求。
论文中同样也提出了解决方式:用指令提示模型。对模型的输入=指令提示+输入(中间用\n连接)。这样每次都在提醒模型需要完成用户的需求(个人理解是这样),模型会避免自顾自生成最可能序列。
二、扩展词汇表
使用sentencepece在中文语料库上训练中文标记器的词汇量(2w),之后合并到原始的llama分词器中。

效果如上:可以看出来加入新的分词器后,对中文语句的分词更加简洁高效、合理。论文指出,token长度大概是原本的一半,且生成速度也是原始生成速度的两倍。
三、解码
- 1.上下文
- 2.限制最大生成序列长度
- 温度(低温度输出更加集中确定,高温度多样化)
- top-k采样
- top-抽样
- 重复惩罚
这里其实对温度和top-p抽样不太了解,Mark一下,后续查一下是什么。
四、量化性能

部署的时候查看量化教程有使用8bit 也有5bit的,但大多数都是4bit,看论文才知道大概原因。论文也指出规模越大的模型,在越低bit量化时的表现越好。
五、总结
忽略了中间对性能比较的一些介绍的总结:不同数据集表现,不同规模模型同一任务表现等等。
还有很多提及的概念不知道,后续找到比较好的介绍教程,会以链接的方式加在文字上,以上。