- 文献阅读:Mistral 7B
- 1. 文章简介
- 2. 模型结构说明
- 1. SWA (Sliding Window Attention)
- 2. Rolling Buffer Cache
- 3. Pre-fill and Chunking
- 3. 实验考察 & 结论
- 1. 基础实验
- 2. Instruction Tuning
- 3. 安全性分析
- 4. 总结 & 思考
- 文献链接:https://arxiv.org/abs/2310.06825
- GitHub链接:https://github.com/mistralai/mistral-src
- 官网链接:https://mistral.ai/news/announcing-mistral-7b/
1. 文章简介
这篇文章是上年10月Mistral提出的一个小的LLM模型。
作为微软最主要的OpenAI的备胎公司之一,他们的模型自然也是有着不错的效果,文中宣称他们通过对模型本身的调优,使得他们在7B的模型上就获得了超越Llama2 13B模型的效果。尤其后续他们使用Mistral 7B模型进行ensemble获得的SMoE模型更是宣称可以比肩GPT4。
当然,这种夸口自然是多少有一定的水分,不过无碍于我们去了解一下这个模型,看看他们的工作能否在我们自己的工作当中得到一定的借鉴。
不过,考虑到现在的工作越来越像是一个prompt后端工程师,我又双叒叕emo了……
2. 模型结构说明
首先,Mistral 7B模型还是一个基于Llama的Transformer架构下的优化模型,其基础的参数设计如下:
而在此基础上,文中主要做出了以下三部分的内容的修改:
- SWA (Sliding Window Attention)
- Rolling Buffer Cache
- Pre-fill and Chunking
下面,我们来注意考察一下这三部分的内容。
1. SWA (Sliding Window Attention)
首先,文中在Llama的基础上上做出的第一个调整是将attention结构调整为了Sliding Window Attention,其具体结构可以参考下述示意图:
整体来看,SWA就是在attention的context长度窗口上进行了一下截断,和Linear Attention原理上相差不多,不过Linear Attention只保留了临近几个token的attention,而文中的window长度如上述参数表所示,还是保留了比较长的(4096/8192)。
2. Rolling Buffer Cache
文中做出的第二个改进点在于加入了Rolling Buffer Cache,其具体结构如下:
整体来说,他就是使用一个有限的cache来存储key-value,从而节省内存空间,使得GPU使用上更有效率,对于模型效果倒是没有影响。
3. Pre-fill and Chunking
文中做出的最后一个调整是关于infer阶段的,具体来说,考虑到prompt往往是固定的,因此文中使用他们称之为Pre-fill and Chunking的方法提前处理掉固定的prompt,将其提前放知道2中提到的cache当中。
其demo示意图如下:
3. 实验考察 & 结论
给出了Mistral 7B模型的整体模型设计之后,我们来看一下文中针对Mistral 7B模型的效果考察。
1. 基础实验
首先,关于Mistral 7B模型的常规实验考察,文中主要是在以下几个任务上进行的考察:
- Commonsense Reasoning (0-shot)
- World Knowledge (5-shot)
- Reading Comprehension (0-shot)
- Math
- Code
- Popular aggregated results
得到实验结果如下:
可以看到,在各类任务当中,Mistral 7B模型基本上是碾压了Llama2 7B甚至13B模型的。
更进一步地,文中绘制了不同size的Llama2模型的效果与Mistral 7B模型进行了比较,并对比了两者的执行效率,得到结果如下:
可以看到,Mistral 7B模型基本就是纯碾压。
2. Instruction Tuning
除了在预训练模型上的基础考察之外,文中还考察了一下经过了Instruction Tuning之后的Mistral 7B模型的效果,得到结果如下:
可以看到,在排行榜上,Mistral 7B模型也是干掉了Llama2 13B模型,有一个很好的排名。
3. 安全性分析
最后,文中还考察了一下Mistral 7B模型的安全性,具体包括两方面:
- 能否避免对有害问题给出回复
- 能否正确区分有害问题
文中首先在175个有害prompt下考察了一下Mistral 7B与其他一些模型的效果,得到结果如下:
可以看到Mistral 7B效果不输于Llama 13B模型。
另一方面,文中给出了一个kill linux进程的case来说明了一下Mistral 7B可以更准确地识别出问题的有害性,较不容易带来误伤。
4. 总结 & 思考
综上,这篇短论文提出了Mistral 7B的模型,它是在Llama2基础上的另一个LLM,且宣称获得了更好的效果。
这个模型已经开源了,有空的话后面可以试一下,作为微软重点押注的AGI公司,可以期待一下后续的发展。