首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用ChatGPT读文档靠谱吗?

和生成式AI聊天,已经不再新鲜。人类很容易对一件新事产生疲劳,逐渐习惯,然后忽略。

我相信大部分还在用ChatGPT的人,找了将它嵌入到自己工作流的场景和方法。读文档是其中之一。

我不想把文学作品搞成“5分钟带你看懂百年孤独”的段子。读文档是为了应对每天层出不穷的新东西。如果想让自己的知识不落伍,必须时时做拓展。这也算践行曾国藩的“无日不忧,无日不乐”,以不会为忧,以学会为乐。

月初,ChatPDF项目惊艳全场,号称可以与PDF文档聊天,随时询问文档中的内容。我加入了项目的Discord社区,人不少,活跃度一般。

之后,又看到有华人博主做了pandagpt项目,模仿ChatPDF,但开启收费模式。用户可以上传文档,同样以聊天的方式检索文档。不花钱也行。最早一天能问10个问题,现在一天改为5个问题。

后来又在github上看到更多开源项目,都可以将文档丢给Openai,让AI来做阅读理解。

前前后后,我试了4种解决方案。别人的两种,使用开源项目自建的,两种。

这些项目的原理都一样。将上传的文档,分段处理,段落交给openai生成嵌入式向量。当用户提问时,问题也会被转化成嵌入式向量。两厢对比,找出最相似的内容,AI对这些内容做阅读理解,然后输出。

油管上有一个英文博主,将整个过程演示了一遍,非常好。视频标题是:5. OpenAI Embeddings API - Searching Financial Documents。感兴趣的话,可以自己去看。

一些流行项目,比如视频内容总结,甚至New bing的网页检索+生成式AI回答,都是这个原理。

所谓向量,在数学表现上,是一大串数字。如图所示:

不仅单词可以生成向量,句子,段落,都可以。现在说的语义检索,就是通过对向量进行比较运算,得出相似度,找出最恰当的关联。比如余弦相似度:

公式放在这里,是想表达,AI的核心是数学,不是玄学。AI目前能做的一切,都是人类用数学在表达现实世界,模拟人脑。尽管数学的天梯非常长,但我觉得它离完美复现现实还差很远。更不用说AI自身使用数学,甚至还没有证明的数学原理来完善自己。

相似度公式计算出来的结果,正常人都能看懂。比大小,大的相似度高,小的相似度低。生成式AI的创造力,也类似,都是通过数学找出有可能匹配上文的下文,然后输出。

这种方案的好处是不用实时更新模型,就能喂给AI最新的资料。所谓模型,是预训练的结果。因为一次训练耗时长久,费用高企,模型目前还不能做到像人类那样,基于时间不断积累新知识,实时汇总。

嵌入式向量,是业内当下最优解。未来一段时间,大家能看到的面向C端的AI产品,不管基于谁家的模型,大概率要采用这种方式。

用这种方式读文档,可行吗?

我试了港大医学院的报告以及Openai发布GPT-4之后的98页报告。ChatPDF的表现很一般,它与pandagpt,以及另一个简化的开源项目,阅读理解效果类似,速度很快,但会出现找不到答案的情况。ChatPDF社区里,甚至有用户提示,ChatPDF可能会提供虚假信息。

这就尴尬了。

文学作品用不着它读,需要精确检索,它又有可能会胡说。一个工具是不是好用,重点是出错率。一个砸一下就能把钉子钉到底的锤子,但会随机砸手,谁敢用?

涉及到精确程度的因素有几个,长文档的分段方法,生成向量的方式,向量相似度计算,以及AI生成答案时遵循的逻辑。

向量生成和计算相对成熟,差别不大。想要AI读文档读得好,提示词很关键,限定它不能胡诌,创造力不要拉满,一定要基于事实回答。不知道就是不知道,不能瞎说。

分段也很重要。每次查询,重新分段的方法最精确。一次按固定字数分好段,在向量库里做查询,速度最快。

Openai的接口有字数限制,4096个token,我们就当4000个单词。长文档必须分段喂给它。但分段的时候,可能正好将关键内容切开了,相似度计算就会差很多。

目前我用过效果相对比较好的项目,叫做paperqa,github上的开源项目。它的设计目的是读论文。AI创造力拉低到0.1,并且通过提示词规范它的回答,尽可能不胡诌。

即使如此,不用的提问,也有可能出现不同的结果。因为问题内容改变,向量值也会发生改变。

另一个问题是,当AI回答不知道时,你无法确定,到底是文档中没有相关内容,还是它没有检索到相关内容,或者只是自己的问题问得方式不对。

那么,结论是啥?

如果你粗读过论文,对内容有大致印象,或者确定某部分内容一定存在。AI可以成为提高检索效率的工具,帮你总结,帮你定位到相关内容页。

如果你完全没读过文章,一点也不知道里面的内容,被AI误导的概率就会变大。不是因为AI故意要骗你,而是提问本身就会有偏离,而AI并不是真的在做阅读理解。它只是用数学做相似度检查。

对我个人来说,paperqa是比较好的解决方案。它在每次查询时都会重新分段,相对收费项目,源码可修改,提示词可控。

缺点只有一个:非常浪费token,费钱。

题图:热带雨林中的蜻蜓。

出品:Midjourney v5

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230322A04Y2E00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券