为什么大模型能记住 dataset 里几万亿字的内容,却记不住和用户聊天时两三万字的 context?

147 天前
 drymonfidelia
3607 次点击
所在节点    程序员
28 条回复
allenzhangSB
147 天前
淘宝数据库里有都已经有几亿个商品, 为什么一个订单不能添加上一个商品?
OMGJL
147 天前
简单且模糊的说,ai 模型就是一个 N 维空间,每一个词都有自己在这个空间里对应的位置,根据输入信息的词组合 找到距离最近的对应词。

换个说法,你学会查词典目录 不等于 你会这个词典里每一个字
stimw
147 天前
对于大模型来说,
- 几万亿字的内容:这是训练数据集,在训练过程中最终会固化为数十亿个参数,形象来说就是“长期记忆”。
- 聊天时两三万字:也就是你说的 context ,模型在推理时只能处理有限的输入空间,这跟模型的架构、推理能力、内存要求都有关系,形象来说就是“短期记忆”。

所以他不是真的记住了几万亿字的内容。对于单次推理来说,它也不是真的记住了两三万字的 context ,而是每次推理都要“查看”一遍 context 。
drymonfidelia
147 天前
@stimw 把 context 转换为只对这个 session 有效的参数有什么难度?
drymonfidelia
147 天前
@drymonfidelia 说错了,应该是难点在哪里
lt0136
147 天前
所以 fine-tune 就是把短期记忆变成长期记忆?
ShadowPower
147 天前
@drymonfidelia 样本太小,而且很难找出让模型记住这句话所需要调整的关键权重。

训练阶段会输入各种各样的数据,权重的调整方向是根据这些多样的数据算出的平均值。
如果只有小样本训练的话,会过拟合,而且会破坏原有知识的关键权重,导致灾难性遗忘。
Ericcccccccc
147 天前
这就好像, 搜索引擎搜全网的内容飞快, 你用邮箱的搜索功能慢的要死.
thinkershare
147 天前
并不是记不住,而是记得越多,下一次回答就要从头重新扫描一个当前的上下文,这会导致计算量极大,因此一个上下文越长,它的会速度就会越来越慢,越来越慢,至于为啥不能固化上一次的权重,当然是因为成本,如果算力足够,不计成本,当然可以记住你一个人的全部上下文。
thinkershare
147 天前
可以记住一个人的上下文,并不意味着可以记住全球几千万的,因为每个人的上下文是不能交叉的。
vToExer
147 天前
的确如果采用 decoder 结构的模型,那么只需要记住 context vector ,就算是保存了当前 session 的状态,下次请求时也不需要把之前的聊天记录全部传过来,只需要拿 user_id 查表得到 context vector 就能恢复状态。

这样做用户侧来看感觉是最合理的。至于 openAI 没这么做的原因,我能想到的是一方面节省查表的开销,另一方面调 api 时多收点 token 费用,不知是否还有其它技术原因
ShadowPower
147 天前
@vToExer 那玩意巨大,存储成本太高了
GeekGao
147 天前
我觉得本质是因为内存和推理时间都大大增加了。现有商业模式下,ROI 不成正比,因而没必要增加 context 长度到成本无法承受的临界点,除非技术上有突破。
vToExer
147 天前
@ShadowPower 有理。看了下单条 context 大小应该是 seq_len * embedding_size ?如果按一般的 1024*768 存放单精度浮点相当于 3M 长度字符了,也就是在 8k 上下文场景下的约 400 轮聊天记录,差距很明显
felixlong
147 天前
@drymonfidelia 训练和推理需要的计算量不是一个量级的。
stimw
147 天前
@drymonfidelia #4 这些参数的作用是为了让模型“理解”或者说“适应”你的 context 并且拟合出回答,不是为了记忆的。其次实时根据 context 去 fine-tune 不说效果咋样,这个行为在目前本身就不现实。
redocxz
147 天前
它能记住前者是因为它在大量的数据集上训练了

(这说明学习就需要重复重复再重复
june4
147 天前
数据集几万亿字又不是都清楚记住,相当于视频有损压缩得妈都不认识了
laqow
147 天前
模型没有记住任何东西,它只是学会了怎样的输入输出能让你产生它记住了什么的感觉而已
johnsona
147 天前
因为自回归的误差会累积 预测的下一个词本来可能就有误差 再用来预测误差会累积
预测一小时后的天气容易 预测 300 天后的天气不容易

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1000457

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX