专栏名称: 宝玉xp
前微软Asp.Net最有价值专家 互联网科技博主 我是宝玉。
目录
相关文章推荐
宝玉xp  ·  //@刘群MT-to-Death:真好啊!日 ... ·  昨天  
黄建同学  ·  了解一下什么是Agentic ... ·  3 天前  
爱可可-爱生活  ·  【WassersteinFlowMatchi ... ·  4 天前  
黄建同学  ·  感谢主办方,感谢CCTV-202411082 ... ·  5 天前  
爱可可-爱生活  ·  [LG]《Discovering Data ... ·  1 周前  
51好读  ›  专栏  ›  宝玉xp

问:我跟chatgpt对话,要给他喂大量数据,难道这些数据就都靠-20241110152605

宝玉xp  · 微博  · AI  · 2024-11-10 15:26

正文

2024-11-10 15:26

问:我跟chatgpt对话,要给他喂大量数据,难道这些数据就都靠那个对话框输入输出吗?比如说我喂它一部三国演义txt文档。然后它就卡住不动了。

答:ChatGPT或者其他同类 LLM,你一次输入的内容是有限的,比如ChatGPT的GPT-4o,一次最多理论上输入输出加起来是32K的上下文窗口,英文也就是50页的样子,中文更少,所以你不可能把一本三国演义、红楼梦这样的全塞进去。

那么怎么绕过限制呢?

有几种办法:
1. 在大语言模型预训练阶段就把这些内容训练进去,比如红楼梦三国演义这种预训练中已经有了,那么就不需要再传入完整内容了。但由于预训练内容很多,所以在针对性提问时还是有可能出现幻觉或者不准确。比如你让它默写三国演义的一些特定章节不一定会很完整。

2. 将输入的内容进行微调,这样模型还是能学习一些新的知识和文本风格,但是微调时要先行对内容分块,也就是一本小说要拆成很多块,每一块可能就几页内容,并且要拆成问题和答案一对一对的,虽然是通过微调“学习”了新知识,但是并不代表它学到的知识是完整的,再加上原有知识库内容混在一起,所以针对微调的内容提问,未必会有好的效果,除非你的问题和微调时喂的问题一样的。另外微调对数据的准备要求很高,微调的成本也不低。

3. 做RAG(检索增强生成),这是目前主流的做法。简单来说就是不需要预训练你的长文本(比如三国演义),而是根据你提问的内容,去长文本里面检索出来最相关的若干段落,然后将问题和检索出来的段落,一起交给ChatGPT,让它根据问题和检索结果,回答你的问题。

比如说,你问ChatGPT:“三顾茅庐是哪三顾?”ChatGPT就根据你的问题,提炼出“三顾茅庐”关键字,找出三顾茅庐相关的几个章节,然后把这几个章节给ChatGPT:“用户问三顾茅庐是哪三顾,这里是我找出来的三顾茅庐之一顾茅庐、二顾茅庐、三顾茅庐内容如下,你来帮助回答用户的问题”,于是ChatGPT给你总结归纳了一下。这样就不需要把整一个本书都扔给它。

当然 RAG 的难点在于怎么检索到最相关的内容,这部分是相当有挑战的。