1. 传统 Attention 存在哪些问题?
- 传统的 Attention 机制忽略了源端或目标端句子中词与词之间的依赖关系。
- 传统的 Attention 机制过度依赖 Encoder-Decoder 架构上。
- 传统的 Attention 机制依赖于Decoder的循环解码器,所以依赖于 RNN,LSTM 等循环结构。
- 传统的 Attention 依赖 RNN 结构,无法做到并行训练,训练速度受到影响。
2. Attention 有哪些优化方法?
- 稀疏 attention:比如窗口注意力,其实就是一个 token 只考虑周围一个窗口内的其他 token。
- 矩阵分解:我们通常认为注意力矩阵是低秩的,这意味着矩阵里的元素并不都是相互独立的。所以,我们可以将这个矩阵拆解并使用一个更小的矩阵来近似它,从而能更高效地计算 softmax 的结果。
- 局部敏感哈希:局部敏感哈希(LSH)是一种高效寻找近似最近邻的技巧。其核心思想是选择特定的哈希函数,使得在高维空间里,两个点 p 和 q 如若靠近,则它们的哈希值应相同。这样,所有的点就可以被分配到不同的哈希桶中,大大提高了寻找某个点的最近邻的效率,因为我们只需考虑同一个哈希桶内的点。在自注意力机制中,这种方法可以用于快速计算 P,方法是在 Q 和 K 上应用 LSH,仅对近似的元素进行计算,而非直接进行 Q 和 K 的全量计算。
- Kernel attention:Kernel attention 是一种近似的注意力机制,其主要思想是使用核技巧(kernel trick)来估计原始注意力的计算。这种方法尤其在长序列上很有效,因为它可以显著减少计算和存储的需求。
- KV-Cache:KV-Cache 的主要思路是:当我们一次生成一个 token 时,之前 token 的 key 和 value 不会改变。因此,我们可以缓存(或记住)这些值,并在下一个 token 的计算中重复使用它们。
- Multi-Query Attention:传统的多头注意力实质上是将输入分成多个头部,并为每个头部独立计算注意力。在 MHA 中,QQ、KK 和 VV 都根据每个 head 进行不同的转换。这在头部数量较多时可能会计算密集。多查询注意力简化了这个过程,尤其是在 KK 和 VV 的部分。与为每个 head 提供多个、单独的 KK 和 VV 映射不同,MQA 为所有 head 应用单一的 KK 和 VV 转换。只有 QQ 值才有多个 head。
- Grouped-Query Attention:Grouped-Query Attention 其实是一个折中方案,相比于 MQA 它的 KK 和 VV 的数量减少一些,但又不是只有一组这么少。
3. Multi-head Attention 存在什么问题?
- 计算复杂度高:Multi-head Attention 需要对查询、键和值进行线性变换,然后再进行点积操作和 Softmax 归一化。这些计算在长序列上会导致较高的计算复杂度和显存消耗。这可能限制了模型在大规模数据集和超长序列上的应用。
- 低秩瓶颈:在 Multi-head Attention 中,查询、键和值的维度通常被投影到较低的维度(头大小)。这可能导致表达能力受到限制,从而影响模型性能。为了缓解这个问题,可以增大头大小或者采用其他方法,如局部敏感哈希(Locality Sensitive Hashing,LSH)注意力机制。
4. Multi-Query Attention 是什么?
MQA 是 19 年提出的一种 Attention 机制,其能够在保证模型效果的同时加快 decoder 生成 token 的速度。MQA 是将 head 中的 key 和 value 矩阵抽出来单独存为一份共享参数,而 query 则是依旧保留在原来的 head 中,每个 head 有一份自己独有的 query 参数。
5. 对比一下 Multi-head Attention 和 Multi-Query Attention?
MHA 是利用多个查询,来平行地计算从输入信息中选取多个信息。每个注意力关注输入信息的不同部分,然后再进行拼接。多头注意力的机制进一步细化了注意力层,通过扩展模型专注于不同位置的能力以及提供了多个“表示子空间”来提高注意力层的性能。
MQA 让所有的头之间 共享 同一份 Key 和 Value 矩阵,每个头只单独保留了一份 Query 参数,从而大大减少 Key 和 Value 矩阵的参数量。在 MQA 中,除了 query 向量还保存着多个头,key 和 value 向量都只剩 1 个「公共头」了。
6. Multi-Query Attention 这样做的好处是什么?
MQA 和 MHA 主要是在计算 K 和 V 的过程中有计算量的差异,由于训练阶段由于数据是并行的,这种差异整体不明显,而在推理阶段,在memery cache的基础上,MQA 的推理速度有明显提升,同时也更省内存。
7. Grouped-query Attention 是什么?
Grouped-query Attention(分组查询注意力)是一种针对 Transformer 模型中 Multi-head Attention 的改进方法,旨在提高模型的运算速度,同时保持预测质量。在标准的Multi-head Attention中,每个注意力头都是独立计算的,这导致了计算和存储需求较高。分组查询注意力通过将查询头分组,让每组共享一个键头和值头,从而减少计算和存储需求。
8. FlashAttention 是什么?
flash attention通过减少访问HBM(high bandwidth memory)和on-chip SRAM内存读写时间,提高计算速度的方法。
- 通过分块计算:增大每次计算矩阵的最小单元,从而降低对HBM的读写次数,使得整体得到加速(HBM读写非常耗时)
- 通过重计算:降低内存,被丢弃的变量在反传的过程中会再次使用到,需要重新计算得到,类似于梯度检查。
大模型&AI产品经理如何学习
求大家的点赞和收藏,我花2万买的大模型学习资料免费共享给你们,来看看有哪些东西。
1.学习路线图
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
2.视频教程
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己整理的大模型视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。
(都打包成一块的了,不能一一展开,总共300多集)
因篇幅有限,仅展示部分资料,需要点击下方图片前往获取
3.技术文档和电子书
这里主要整理了大模型相关PDF书籍、行业报告、文档,有几百本,都是目前行业最新的。
4.LLM面试题和面经合集
这里主要整理了行业目前最新的大模型面试题和各种大厂offer面经合集。
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓