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

2023-12-14 19:25:05 +08:00
 drymonfidelia
3932 次点击
所在节点    程序员
28 条回复
czfy
2023-12-14 22:02:58 +08:00
机器学习模型训练的过程又不是记忆过程...是学习规律的过程啊
就像求回归方程只是通过既有数据点找出与现有数据误差最小的那条线,和记住数据无关啊
danhahaha
2023-12-14 22:17:32 +08:00
爱因斯坦牛顿那么吊也不去记几百位的圆周率,是因为他们记不住吗?是因为记了没什么卵用,大模型训练几万亿内容是有目的的学习,和用户聊天两三万字它记了没啥用,记住反而会污染它的样本
Taikyo
2023-12-14 22:20:11 +08:00
训练数据训练的过程其实不是记忆全部数据的过程,而是学习语言规律,用法,结构的过程,训练过程中会调整参数,在训练结束后,这些参数就是大语言模型的 “长期记忆”,而聊天的上下文,会传给大语言模型进行推理,找到权重相关的内容,然后组织出答案。上下文越多,关联的东西就越多,大语言模型需要进行更多的文本分析和激活更多的参数权重,所以就约束了参数的上下文长度。
上面那个是我跟 chagpt-4 一起交流出来的,然后梳理出来的我的理解,有错的欢迎交流指正
leoleoasd
2023-12-14 22:23:52 +08:00
<amp-youtube data-videoid="dO4TPJkeaaU" layout="responsive" width="480" height="270"></amp-youtube>每次有类似问题我都会推荐看这个视频
ShadowPower
2023-12-14 22:28:00 +08:00
@vToExer 不止这么点,还有位置编码和自注意力矩阵。
很长的上下文占用的内存(显存)会非常夸张,有个开源模型 Yi-34B-200K ,在满 200K 上下文的情况下显存使用量达到了 400GB 。
Taikyo
2023-12-14 22:29:30 +08:00
对了,针对 4 楼的问题,我讲下我的理解,因为大语言模型回答的时候,是通过激活跟上下文相关的权重网络进行理解和回应的,并不是检索数据的过程,假设把 context 只针对本次 session 的参数,可能会有另一个问题,就是 context 如果是错误的,根据错误的权重网络,那么就会推导出错误的结果。
xuanbg
2023-12-14 23:13:54 +08:00
因为 context 对电脑毫无意义。没有意义,为什么要记?
Liftman
2023-12-15 00:28:09 +08:00
字 就。。那么多。没有几万亿。。。英语 26 个字母。中文也不过就。过万而已。。。他只是存在 N 维的概率关系。。。通过推理概率得到下一个字。有点像一直在查字典。。。。但是你如果给他几万字,首先他要理解这个几万字就非常困难,他要重新构造这些内容的概率关系。。。进一步的压缩内容,得到核心的关键信息 ,所以会导致细节的丢失。进一步就是他可能会误伤上一层的关键信息。导致答案并没有那么完美。所以我个人觉得目前并不适合提问的时候塞入太多关键信息。除非你提前做好了知识库。。。。这两者是不一样的。 尤其是你看 claude 虽然支持 20 万 token 。但是并不是很理想。。。。。

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

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

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

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

© 2021 V2EX