Skip to content

ChatGPT为什么拥有记忆力?

一位博学多识且智力超群的智者,他可以:

  • 上知天文下知地理
  • 琴棋书画样样精通
  • 学富五车饱读诗书
  • 熟读兵法百战百胜

面对这样一位无所不能的人,如果萍水相逢,生平第一见面,你问他:我叫啥?那么他可以答出来吗?我相信不管他多么彬彬有礼,内心也会产生问候你的冲动,然后让你滚犊子。但是你这时你先自报家门,来一个简短的自我介绍,我相信这位智者立马就对你审视一番,然后对你作出基本的判断。随着交流不断的深入,智者对你了解的越来越多,对你的问题也就会越来越有针对性。

那么问题来了,如果这位智者每天要接触成千上万的人,那么他真的可以记住每一个人的情况,随时都可以接着之前的话题继续聊?我想这样也太为难这位智者了。那究竟应该怎么做呢?答案就是重复。每次与智者开始畅聊之前,都重新自我介绍一番,把之前聊的问题回忆一下,然后再接着聊下面的问题。如此,智者便可以与众多人高谈阔论了。

我们想象一下,ChatGPT就是用大模型训练出来的一位智者,然后全球有超过上亿的用户在与它交流。我们在与它开始交流前都先自报家门,介绍一下交流的主题以及你的诉求,ChatGPT就可以有针对性的为你回答。此时的自报家门就是Prompt,每次交流前都把之前的交流内容再重复给ChatGPT,这就是ChatGPT具有上下文记忆的机制。

理解了这点,我们再看下一个问题,ChatGPT为什么要限制token数?我们想象一下,通常我们会有这样的感受,再与聊得来的朋友聊到有趣的话题时,我们可能没有什么感觉就好几个小时过去了,这期间就会涉及到大量的聊天内容。上面已经说过了,ChatGPT的机制就是重复,如果不限制一次聊天的长度,那么后面每聊一句话,都需要把前面所有的内容都重复一遍,这对于ChatGPT来说就要消耗更多的时间来重新理解之前的内容,就会导致后面的交流越来越迟缓,交流体验就会大大降低。能支持多少内容,就看训练的数据是支持多长的内容以及算力够不够。

通过简单的类比介绍了ChatGPT的机制,如果有理解不正确的地方,欢迎大家指正。

本文写于2023年5月18日。

遇码MeetCoding 开源技术社区