Distill 方法目前的局限

Distill 方法目前的局限 对于 self-instruct 以及目前各式的 distill 方法,这些方法确实能做,但是上限受到质疑;似乎即便是 self-isntruct,也会引入人类的先验知识来进行 filter,所以总归是很难完成真正的模型 self-improve; distill 导致的 overfit 明显,但是尚且没有工作体现了 overfit 会 converge,猜测是有极限的; 传统的 soft-distill 做的人越来越少,一方面是 openai 等等公司没开放 hidden states 和 logits,很难去 distill;另一方面,在工程上直接去 imitate logits 的难度非常高,现在 deepspeed 等等框架都没有实现这件事情,这也导致了大家倾向于 distill data 而不是 logits。 关于 MOE 的讨论回放录像 https://drive.google.com/file/d/11CSgSzk4XCz4Mj7jh1wu0CPpzrDLASnI/view?usp=sharing

December 13, 2023 · 1 min · 40 words · Me

MOE Evaluation时的capacity

MOE Evaluation时的capacity Q: 是不是可以考虑moe eval的时候capacity设置得高一点? 研究员1: infer的时候capacity设置很高也会导致训练测试不一致,现在设置的是无限大,不丢token。 研究员2:同意1,但需要在更多的 benchmark 上一起看,因为需要判断token 都挤在一个 expert 是因为这个 expert 在数学相关的问题上 specialize 了,还是整个模型坍缩到这一个 expert 了。比如测十个不同的任务,每个任务都会挤在一个 expert, 但是每个任务的 expert都不一样,这种应该算 ok;但如果所有任务都挤在同一个 expert,这种应该算 collapse。 研究员1:目前观测到的是,部分(极少)任务会有非常拥挤。 研究员3:推荐领域是MMOE,或者不同的任务只在不同的头传递gradient,这样能避免拥挤,比较有名的是阿里提出的star模型。 研究员4:所以flan moe才work,MoE需要在alignment过程中调整的东西更多一些,比如需要flan类似的data去adapt load balancing shift。 模型外推 研究员1: 我们做了一个100k + 的长文本评测集 InfiniteBench(https://github.com/OpenBMB/InfiniteBench),评测下来KimiChat确实在长文本有不少性能甚至超GPT-4,不过在长代码等方面还是gpt-4更胜一筹。 研究员2:rwkv没训过100k+的,拿来比较不大公平。不能外推不单纯是位置编码的问题。任何非local方法(即理论总感受野大小超过训练长度)都不保证外推。 研究员3: 没见过的数据无限外推,这个的确是很难的。但ntk这种反而能生效,不是反而说明位置编码的确也是生效的一部分么? 研究员2: ntk就体现了外推是一个同分布问题,ntk修改了base,使得测试阶段的q、k夹角一定程度上与训练同分布。 研究员3:最近的一个结论,从语言模型的局域性来考察这些方法。局域性,是指语言模型在推断下一个token时,明显更依赖于邻近的token。直接外推保持了局域性(0附近位置编码不变),效果差是因为引入了超出训练长度的位置编码;位置内插虽然没有外推位置编码,但扰乱了局域性(0附近位置编码被压缩为1/�),所以不微调效果也不好;而NTK-aware Scaled RoPE通过“高频外推、低频内插”隐含了两者优点,保证了局域性,又没有明显外推位置编码,所以不微调也有不错的效果。跟YaRN的分析基本一致。 研究员4:是的,“高频外插,低频内插"是正确的解释,因为低频在extrapolation的时候最容易爆炸,我们positional interpolation里面简单的synthetic example做出来也是这样。https://twitter.com/tydsh/status/1674436093356421120。 LLM self-generating training data讨论 https://arxiv.org/abs/2306.15895 想就这这篇讨论下左脚踩右脚这种 self-instruct 方法。我目前小范围验证了一下类似的方法。这种 self-instruct 在具体的 benchmark 上的确可以涨点,特别是针对 open-domain generation task。反过来,对于 close-domain generation/classification,随机生成 examples -> finetune model itself 这种方式会出现很强的系统性 bias,比如 generate 出来的 examples 全都是同一个 label,finetune 后的模型就只能生成一个 label。现在思索一些可行的 mitigate 方法,比如做 label conditional example generation -> re-annotate labels -> finetune model itself,想请教有没有什么看法能够 mitigate self-instruct 方法在 classification 上的能力。...

December 8, 2023 · 2 min · 378 words · Me