Closed WuNein closed 1 year ago
预训练阶段仍然采用了 GLM 混合目标函数的设计;但主要出于效率考虑,对话阶段仅采用 CausalLM(PrefixLM 前缀为 0)的模式进行训练,此时二维位置编码退化到一维。
预训练阶段仍然采用了 GLM 混合目标函数的设计;但主要出于效率考虑,对话阶段仅采用 CausalLM(PrefixLM 前缀为 0)的模式进行训练,此时二维位置编码退化到一维。
@Sengxian “效率考虑”主要是指什么,GLM方式不适合对话方式训练吗?
预训练阶段仍然采用了 GLM 混合目标函数的设计;但主要出于效率考虑,对话阶段仅采用 CausalLM(PrefixLM 前缀为 0)的模式进行训练,此时二维位置编码退化到一维。
@Sengxian “效率考虑”主要是指什么,GLM方式不适合对话方式训练吗?
PrefixLM 对 Context 的双向注意力导致了其与对话的兼容性不佳:
综合考虑,我们在对话阶段使用了 CausalLM 模式训练。然而,预训练阶段混合多种目标函数对性能是有益的,这点与 PaLM 2 的做法一致。
@Sengxian 预训练阶段仍然采用了 GLM 混合目标函数的设计;这个指的是只采用GLM的三种预训练掩码方式吗,这部分的attention是单向还是双向,是不是和SFT的单向一样?
总结一下问题哈:预训练阶段输入的Attention是单向还是双向,位置编码是二维还是一维呢?如果不是单向一维,怎么在这个预训练模型的基础上SFT呢?
@Sengxian 预训练阶段仍然采用了 GLM 混合目标函数的设计;这个指的是只采用GLM的三种预训练掩码方式吗,这部分的attention是单向还是双向,是不是和SFT的单向一样?
总结一下问题哈:预训练阶段输入的Attention是单向还是双向,位置编码是二维还是一维呢?如果不是单向一维,怎么在这个预训练模型的基础上SFT呢?
2D RoPE 的实现是,将 hidden dim 分为两半,每一半分别应用对应维度的位置编码。由于单向模式中二维位置编码退化,可以直接简化为只对前一半应用一维位置编码。
那请问一下预训练输入的部分 Attention是单向还是双向的呢,如果是双向的话,跟SFT单向有区别会有问题吗?
@Sengxian @mougua “对于 n 轮对话 PrefixLM 需要构造 n 个(历史,prompt,response)三元组训练,而 CausalLM 仅需一条完整的对话历史即可进行 n 轮训练。”。请问这里只用一条完整的对话历史训练能加速训练吗?虽然节省了前向过程的次数,但增加了反向传播的token长度吧?而反向传播又更耗时?
预训练阶段仍然采用了 GLM 混合目标函数的设计;但主要出于效率考虑,对话阶段仅采用 CausalLM(PrefixLM 前缀为 0)的模式进行训练,此时二维位置编码退化到一维。
@Sengxian “效率考虑”主要是指什么,GLM方式不适合对话方式训练吗?
PrefixLM 对 Context 的双向注意力导致了其与对话的兼容性不佳:
- 训练:对于 n 轮对话 PrefixLM 需要构造 n 个(历史,prompt,response)三元组训练,而 CausalLM 仅需一条完整的对话历史即可进行 n 轮训练。
- 推理:CausalLM 可以复用之前对话轮次的 KV Cache,而 PrefixLM 必须重新计算,不仅增加了计算量,在超长轮次对话时重新编码 Context 会使得 FFN 等层中间计算结果显存占用很高而 OOM,无法充分利用 Multi-Query Attention 带来的省显存优势。
综合考虑,我们在对话阶段使用了 CausalLM 模式训练。然而,预训练阶段混合多种目标函数对性能是有益的,这点与 PaLM 2 的做法一致。
关于这部分提到的Prefix-LM针对对话生成任务,必须重复计算KV,不能复用KV Cache,这一点没太理解,我理解的Prefix-LM在prefix部分用的是双向注意力,生成部分用的掩码注意力,后续生成的内容不会影响到前面已经计算的KV呀,为什么使用Prefix-LM会影响KV Cache呢?
1轮:Q1->A1 2轮:Q1A1Q2->A2 3轮:Q1A1Q2A2Q3->A3
自问自答一下,哈哈哈,时隔几个月又看了一遍,原文里面讲的是可以提升训练阶段的效率,这一点上次没看仔细,对于对话场景的训练阶段,CasualLM(Decoder-Only)相比于PrefixLM确实可以提升训练效率,主要的效率提升在于,CasualLM采用掩码注意力,对于1轮对话数据计算的Q、K、V可以在2轮和3轮中复用,而PrefixLM采用双向注意力,在1轮对话数据计算的Q、K、V无法进行复用
Is there an existing issue for this?
Current Behavior
https://arxiv.org/pdf/2103.10360.pdf ACL2022 GLM的特殊预训练任务设计
Expected Behavior
No response
Steps To Reproduce
非常好的工作!问一下chatglm现在的训练工作还用到ACL2022那篇文章中GLM的特殊的self-attention mask预训练任务设计吗?
Environment
Anything else?
No response