社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  chatgpt

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

宝玉xp • 1 月前 • 69 次点击  

2024-11-10 15:26

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

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

那么怎么绕过限制呢?

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

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

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

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

当然 RAG 的难点在于怎么检索到最相关的内容,这部分是相当有挑战的。
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/175811
 
69 次点击