【Qwen模型】QWEN TECHNICAL REPORT
- 论文信息
- 阅读评价
- Abstract
- Introduction
- PreTraining
- ALIGNMENT(对齐)
- CODE-QWEN: SPECIALIZED MODEL FOR CODING
- MATH-QWEN: SPECIALIZED MODEL FOR MATHEMATICS REASONING
- RELATED WORK
- CONCLUSION
论文信息
名称 | 内容 |
---|---|
论文标题 | QWEN TECHNICAL REPORT |
论文地址 | https://arxiv.org/abs/2309.16609 |
发表时间 | 2023-9-28 |
研究领域 | NLP, LLM, RoPE, RMSNorm |
提出模型 | Qwen |
阅读评价
千问是阿里用业界最新Tricks开发的大模型。
在阅读了本篇论文和transformers
库里面的Qwen2Model
源码之后,我观察到模型用的组件tricks有RoPE(苏剑林提出)、RMSNorm、SwiGLU、SdpaAttention等等;
个人感受: 现在模型的训练过程都是大同小异。
从模型效率、性能角度入手,大家倾向于不断优化模型的每个组件,如归一化用RMSNorm、位置编码用RoPE。
从模型长文本理解能力角度入手,千问采用了几种注意力机制,如LogN-Scaling和window attention。
从模型的外推能力角度入手,大家对NTK技术、位置编码技术等等也有探索。
最后,对开源的工作献上致敬!respect!
以下是对论文每个部分的简单介绍。
Abstract
文章提出了QWEN系列大语言模型,包括预训练模型Qwen、聊天模型Qwen-Chat、代码生成模型Code-Qwen-Chat、数学专业模型Math-Qwen-Chat等等。
Introduction
LLM不仅仅局限于语言任务,它也可以作为代理(Agent)存在,从而支持自动驾驶、多模态、执行代码、使用工具等等功能。论文基于最新的trick,并结合了监督微调(SFT)和人类反馈强化学习(RLHF)训练了千问模型。
PreTraining
在训练数据方面,包括公共网络文档、百科全书、书籍、代码等。并且数据集是多语言的,其中很大部分数据是英语和中文。为了保证数据集的质量,论文用了一系列方法清洗数据。
在词汇方面,千问用BPE编码来生成token,并得到152K的词汇。
在模型结构方面,千问是从Llama模型上修改的。具体修改的细节有:
【注】我看Qwen2的源码的注释里面,有一部分是直接复制了Mistral模型的代码。
1、位置嵌入:使用了旋转位置编码RoPE;
2、偏置:计算QKV向量的线性层全部添加了偏置;
3、预先归一化和RMSNorm:归一化放在了最开始,并且采用RMSNorm;
【注】RMSNorm比较简单好懂,建议阅读:【RMSNorm】Root Mean Square Layer Normalization
4、激活:使用SwiGLU。
【注】SwiGLU相关的激活函数同样好懂,建议阅读:【T5中的激活函数】GLU Variants Improve Transformer
在外推方面,使用了动态NTK感知插值,还使用了两种注意力机制:LogN-Scaling(Chiang 和窗口注意力。 LogN-Scaling 通过一个取决于上下文长度与训练长度之比的因子重新调整查询和值的点积,确保注意力值的熵随着上下文长度的增长保持稳定。 窗口注意力将注意力限制在有限的上下文窗口中,防止模型关注太远的标记。
【注】动态NTK感知插值我还没看原论文,先不介绍。
并且千问还为每一层分配不同的窗口大小,对较低层使用较短的窗口,对较高层使用较长的窗口。
ALIGNMENT(对齐)
Aligment这个词早在InstructGPT论文中就已经出现了,不过把它翻译成“对齐”我对它完全没有啥好印象。
【注】我们在LLM领域的对齐指的是,LLM性能还欠缺,不拟人,需要把它的性能提升(对齐)到人的水平。
对齐的方法有两种:使用监督微调(SFT)和人类反馈强化学习(RLHF)等对齐技术可以显着提高语言模型进行自然对话的能力。
监督微调(SFT) 就是拿着多轮对话数据去微调对话模型。其中,Qwen模型采用多种风格注释对话、排除提示模板中格式化的数据、通过注释与暴力、偏见和色情等安全问题相关的数据来优先考虑语言模型的安全性、利用ChatML风格的格式使模型能够有效地区分各种类型的信息等方法来进一步提升性能。
人类反馈强化学习(RLHF) 比较复杂。建议大家看B站上李沐老师的InstructGPT论文讲解。实现RLHF需要再设计并微调一个奖励模型,并且需要大量高质量的排序数据。包括如何在产品发布后收集用户的反馈信息,如何处理并强化学习,这个是需要学院派和工程派合作解决的问题。
CODE-QWEN: SPECIALIZED MODEL FOR CODING
介绍了代码生成模型的训练。
MATH-QWEN: SPECIALIZED MODEL FOR MATHEMATICS REASONING
介绍了数学专业模型的训练。
RELATED WORK
【注】相关工作写最后的论文头一次见。
LLM
提了一下GPT、T5、ChatGPT、LLaMA、ChatGLM2。
对齐
提了一下SFT和RLHF两种主要的对齐方法。并且说SFT的缺点是全量调参成本高,虽然有PEFT方法(LoRA等),但是PEFT顶多算是平替,无法提高模型性能。
工具使用和代理
主要是在说Agent、RAG、LangChain这些概念。
CONCLUSION
报告介绍了 QWEN 系列大型语言模型,这些模型具有 14B、7B 和 1.8B 参数,并使用 SFT 和 RLHF 等尖端技术进行微调。 此外,QWEN 系列还包括用于编码和数学的专用模型,例如 CODE-QWEN、CODE-QWEN-CHAT 和 MATH-QWENCHAT。 开源了Qwen模型,并且期待大家使用。