大模型缺陷

大模型缺陷: 文章:Berglund, Lukas, et al. “The Reversal Curse: LLMs trained on” A is B" fail to learn" B is A"." arXiv preprint arXiv:2309.12288(2023). 观察到的大模型缺陷如下:让模型在 A is B 数据上训练时,并不能使得模型泛化到 B is A。主要体现到的形式有两种:对于模型进行微调的时候,如果训练 A is B,那么再提问 B is ? 则成功率较低。对于已有模型进行测试时,发现其对于 (A, relation, B) 这样知识的掌握程度具有不对称性。 研究员一: 目前认为A is B不能让A的embedding靠近B的embedding,就像1 + 1 = 他会输出2,但 2 = 应该不会输出1 + 1。不过在大模型下怎么能让Q1和Q2学习语义等价,也就是embedding相似呢? 研究员二:entailment is not similarity,这也是 retrieval 的一个重要问题。 研究员三:模型有足够冗余就不需要embedding接近。embedding接近更适合retrieval和classification;当然我们也可以说generation其实就是multi-label classification over the vocab;reverse curse是正常的; 研究员四:semantics上reverse curse是正常呀,比如finetune“A是B的小孩”,然后你问”B的小孩是谁”,那可能是A也可能是C呀(因为可能不只一个孩子) ;因为人类也不是完全双向的。...

December 17, 2023 · 2 min · 298 words · Me

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

数字切开验证&&数字计算

数字切开验证&&数字计算 Q: 请问什么工作实验验证过,把数字按 digit 切开再做数学? A: https://arxiv.org/pdf/2310.02989.pdf, 这个工作有做过讨论, single-digit tokenization 对算数应当是有帮助的 A1: 还有这个工作 https://arxiv.org/pdf/2305.14201.pdf 比对了不同的 tokenizer 研究员1:MathGLM 的计算做得很好,做数学就应该这么做,一切的恐惧来源于压缩得不够; 研究员2:gpt4v把一张图上的table parse成markdown然后bold每个column最大的数;但是它甚至连bold max这个事都做不好, 最后还是会让他把table parse进py然后用py去做这事( 主要是取决于用户会不会信任model做加减法(im not) if not 感觉最后无论如何用户也会让model去调python, 对于llm里出来的任何number都不是非常正确( 毕竟复杂问题 人类也都是要用计算器了) 研究员3:合理的,只要让LLM deeply integrate w/ PL其实就行 类似于那种 scratch pad,可以在生成的过程中生成py call on the fly进行计算啥;目前认为没有必要真的教会模型复杂算数,模型只要会写code做这事就行。就像人类想做多位数计算可能是可以算对,但计算器按两下就行了没必要自己算。目前认为code表述的计算过程会比直接给一个计算结果的number更verify一些:只要code看起来没问题 用户就能更trust它的结果 研究员4:Gpt4v 目前认为是混了ocr table的数据,最近的测试发现4v 细粒度的table ocr 能力还是独一档,开源模型基本做不了。 研究员5:解析几何是 2024 年数学 reasoning 需要重点攻破的对象 Instruction following 能力 Q: instruction following 的能力,特别是 follow 比较复杂的 instruction,这种能力经验上更多是要求基础模型本身呢,还是 instruction 的数据更占大头? 研究员1:base 模型决定了能 follow 多么复杂的 instruction, 对于比较弱的 base 模型,反而需要简单指令...

December 3, 2023 · 3 min · 443 words · Me

对 AI Safety / AI open source 以及 large scale AI deployment 的看法

对 AI Safety / AI open source 以及 large scale AI deployment 的看法 Q: 大家觉得, 人类接下来五年能实现的 super intelligence 到底能有多强,以及它到底是有多大程度的 safety concern? 研究员1:保守估计从去年这个时候到现在一年时间已经intelligence提升是2倍,那么2的5次方就是32倍 研究员2:目前认为safety是一种幻觉,当AI智力突破临界值后,是不存在可靠的手段产生“safety”的 研究员3:AI 对于人类的影线也不一定是完全的,可能是局部的,比如说,如果模型在某些特定疾病上 halluscinate 但在其他疾病上极为精准,那么人类可能会因为模型在其他疾病上都很精准所以对模型有足够的信任,但是刚好就是有那一种病的人遭殃;然后,AI 对人类的影响也不一定是在时间维度是上局部的,它也可能是代际的。比如说,如果 2010 年生下来这一代人精神上只想跟 character 谈恋爱,肉体上过几年各种娃娃也造得很真;然后再来个 Sam 给你发 UBI,国内发低保,那可能他们这一代人就比我们这一代更不想繁衍了。刘慈欣在一次 talk 上也讲了这个观点;再然后,当 AI 的能力到了一定程度之后,它就有自我进化的可能,如果 AI 可以自我演化那就没人类什么事了。 研究员4:OAI 做过演化的研究 https://openai.com/research/evolution-through-large-models。 是否有一种轻量方法可以动态压缩序列,在不考虑工程的情况下,可以大幅降低计算复杂度 研究员1: https://arxiv.org/abs/2305.11170 之前做过一个压缩prompt的,不过不是压缩hidden state 研究员2: 如果指的是prompt compression, LLMLingua 做的是类似的事,如果考虑在hidden上做,确实somehow和稀疏attention,LongNet这种很像,不过如果考虑到 lost in the middle, 目前认为是觉得非常有必要做某种denoise,(如果把context windows 比如RAM,那一定有L1, L2) 研究员3: 目前认为把 retrieval 也直接接上,like 原先的 retrieval 都是用小模型产生 embedding,可以直接用大模型本身把 memory encode 成 embedding...

November 25, 2023 · 2 min · 420 words · Me