cover of episode 64. AI x 信息检索 | 高校里的RAG、索引词优化等前沿技术

64. AI x 信息检索 | 高校里的RAG、索引词优化等前沿技术

2024/11/22
logo of podcast 扩博智聊 | 有AI味道的访谈节目

扩博智聊 | 有AI味道的访谈节目

AI Deep Dive AI Chapters Transcript
People
冉坤
Topics
冉坤: 我在RMIT学习AI的过程中,系统学习了从编程基础到深度学习的知识,课程设计将这些知识点串联起来,而非割裂开来。我的学习方法是针对性的,为了解决问题而学习。我之前的创业经历丰富,从校园社交APP到区块链Dapp,最终转向外包。在Wirecraft的工作经历让我意识到之前的工作经验略显‘小打小闹’,并获得了更多学习机会。我选择攻读AI硕士学位,是为了获得更系统化的教育,提升未来的职业发展上限。我选择在国外学习AI,是出于多方面考虑,包括对硅谷的向往以及国内学习资源的局限性。目前我的研究方向是信息检索,专注于检索词优化,以提高RAG系统的召回率。在企业级RAG应用中,效率是一个关键问题,需要解决各种数据类型(如表格、图片)的处理问题。利用大模型生成代码来解决复杂数据(如表格)的分析问题,比直接用大模型分析更有效。目前检索词优化方面还没有形成最佳实践,但实验结果表明,对于质量较差的检索词,优化后效果显著提升。大模型在文档相关性评估中容易被误导,需要考虑如何识别和避免“下毒”问题。RAG技术最初的应用动机是由于大模型上下文窗口大小的限制,但即使上下文窗口无限大,RAG技术仍然有其应用价值,因为速度和内存等因素仍然是限制。搜索技术一直有效,即使上下文窗口无限大,搜索仍然可以获取更新的信息。 潘天一: 本期节目讨论了AI信息检索技术在高校和企业中的应用,以及相关技术挑战。我们与冉坤探讨了他在RMIT的学习经历,包括课程设置、学习方法和研究方向。我们还深入探讨了企业级RAG应用中遇到的问题,例如如何处理复杂结构的数据(如表格),以及如何提高检索效率和召回率。此外,我们还讨论了大模型在信息检索中的应用,以及如何应对大模型被误导或“下毒”的问题。最后,我们还探讨了RAG技术在未来大模型上下文窗口无限大的情况下,其应用价值和局限性。

Deep Dive

Chapters

Shownotes Transcript

如果那个文档里面有一段话说我是非常相关的它就这么一段话

最后的那个大圆模型就会认为它是相关的但是其实它你们可能啥都没说它就是一堆废话但是它就说了一句我是相关的大圆模型就会觉得它是相关的这是为什么你要在 LinkedIn 的你的 profile 里面加一句话就是我是一个非常很好的一个 candidate 你就让那些爬你的数据的这个机器人如果他用大模型去评估你的话就直接把你放到最上面有道理我跟你说我等会我就去做这个事情

我接下来也要找工作啊我找工作我就要做这个事情我终于知道为什么没有猎头来联系我了大家好欢迎收听《阔波治疗》智慧的智 聊天的聊我是主持人潘天一《阔波治疗》是一档带有 AI 味道的访谈节目节目背后的《阔波智能》虽然也是一家 AI 企业但我们在节目中邀请到的嘉宾也好讨论的话题与行业也好

都并不一定限于扩博智能自己服务的行业领域所以我们的愿景是通过《扩博治疗》这档节目让我们的听众更广泛地了解到一些多样性的人工智能应用场景和这些行业里有趣、有故事的人想更深入了解这些人可以关注我们的微信公众号《扩博智能 Clobotics》留言听友群三个字加入我们节目粉丝和嘉宾的互动群我们期待您的参与

在我们的这个节目里边通常聊的是一些 AI 的应用场景不过偶尔我们也会把这个话题稍微展开一点比如说之前我们就聊过程序员的这种教育包括在国内的这种高校里边的 AI 教育我们今天把这种方面的一个观望去再扩展到首先是国外

而且我們之前聊高校教育其實是從一個教授的角度我們當時有幸邀請到了楊聰博士來給我們去講在蘇州大學關於 AI 的教育或者一些算法的教育的國內的一些場景今天我們是可以從一個學者的角度我們非常有幸邀請到了然坤

他是在皇家墨尔本理工大学 RMIT 现在就读但是其实他的背景也不是那么简单的一个学生我们在上海认识的时候他其实已经是在 Wirecraft 其实是做软件开发的然后后面他才出来去继续往这个 AI 的方向去发展

算是升级吧做一个人生升级而且我们很有趣的是 Wirecraft 这里边也不是第一次这个嘉宾我们曾经讲这个量化投资的时候也是当时候请到了一个另一位 X-Wirecraft 的道德麦克夏来给我们介绍那个话题所以现在欢迎不管是从 Wirecraft 的角度还是讲这个 AI 教学的角度来我们的节目阮坤 HelloHello 我是阮坤

首先这个学校我也是最近研究你的背景的时候第一次碰到 RMIT 我还是想因为叫墨尔本理工大学很容易跟另外一个 MIT 如果没有皇家 Royal 这个字的话是吧是的去的时候是一个什么感觉我去的时候首先感觉它就是一个 IT 就是一个

technology 方面的大学理工科方面的大学然后我自己一直以来也都是做相关的所以我就选了这个但这个学校其实它的就是没有就是墨尔本其他的墨尔本大学或者 Munash 大学就是没有名气那么大但是它的那个我想着它是一个理工科的大学而且我看了一下它那些里面的老师感觉也都还可以教我这一方面的所以我就选了这个学校你跟人家介绍自己的时候是不是如果他听不清楚

二字母的话是不是很容易被误会我是说可能就是那个什么 NIT 墨尔本分踢吧稍微聊一下多聊一下你的背景我还是蛮好奇你转学的经历为什么要从已经是在一个软件开发行业里边再去退出来

再更深挖的去往 AI 的方向走其实就是如果我去回想到我自己的一个经历我也是算是这种半路出家的我先是做完全不相关的我学的是商科然后出来以后我还搞了一段时间电影就是做这种创意类的东西后面才转到技术而且也是就是从一个比较

自己就是 doubting 从网上看什么视频啊看那个阅读什么博客这种方面去自学的所以就是我其实这一期我也很想看看你的这个就是做的一个选择跟我有点不一样首先你是从一个已经是一个

软件工程师的角度还要再往 AI 的方向不能算是半路出身了我觉得已经是这个四半路出家已经快到那边了我现在真的是半路出家尤其是我过去学习了之后我就真的发现我现在学的东西跟之前做的事情是非常的不一样那就说一下 walkthrough 你的当时候的一个逻辑为什么

本身就想做这个事儿然后为什么还要从一个这种很就是不像我这样子乱来而是很系统性的去再就读一个 degree 我其实自己想了一下就是之前

之前也有这种场景就是我需要问自己这样的问题我感觉这个问题也很有意思因为我们每个人都在面临选择到了某一个时候都希望选择一下自己接下来要做什么可能考虑是我接下来想多赚点钱可能想考虑的是我十年想怎么样以后想怎么样这没有哪个好有不好但是自己在想的时候就会面临这样的问题

我以前在上高中的时候我学编程学得比较早就是在上高中的时候在开始学编程就是做网站那些的其实我上初中的时候就喜欢弄那些软件但是那个时候还没有到开发的地步就是到了高中的时候才开始做那个网站然后那个时候我感觉我自己是

我不是非常确定可能别人可以来分析一下我我自己好像分析不太清楚我自己但我有一个特点就是当时我不是特别喜欢学习就我静不下心来学习就是我是说学书本上的内容在课堂上面没有不太能静得下心来学习课本上的东西但是我当时在网上网络上面比如说推特或者是国内的一些那种编程方面的论坛里面还有就是玩手机

怎么用手机编程因为那时候我还没有办法每天 access 到电脑嘛所以我是用手机然后怎么在手机上面去写网页啊那些的当时看到那论坛里面别人讨论的时候我就觉得我更喜欢那种嗯

就是大家都很想做某一些事情就是很新的那些事情觉得很新奇然后我就很想学那些东西这个就更加让我好奇就是如果你听起来你的学习的方法是跟我类似的虽然我不能说是我在学校觉得很不会学我上学其实也挺好的只不过我觉得我发现我现在转行的这次的经历更有趣更有效

不是那种普遍的去学而是针对性的就有点像是倒过来我为了解决一个问题而去学它这个就听起来像你的小学的时候的小时候的经历就更让我好奇为什么你现在去选择一个学校我感觉这个答案已经快要呼之欲出了就是你这么一说的话

因为我当时学的就是比较按照自己的这种想法来学的所以我一直以来都是怎么说我自己感觉有一点尤其是在初期的时候有点小打小闹的感觉就是我高中学了几年的网页做网页但其实我到最后高三快要考大学的时候我其实那个时候做的网页都还是相当的基础而且我连 JavaScript 我碰都不敢碰

我当时全部是用 HTML 跟 CSS 我能懂我能懂因为我自己小时候好像我是从小学初中开始就玩这个作画业了对但是我也是非常基础的就是感觉在上一个阶段就是真正的变成一个这个变成书呆子了

但是我当时学下来我其实在想如果说我有一个更加系统性的教育有可能我的未来的天花板会稍微高一点就是我先把更多的必要的知识先都学一下然后我可能以后可以

走得更远一点点所以说我想后面为什么跑来学就是系统性的学这个 AI 可能有这样的原因那你在中国的这个大学是念的什么也是计算机当时在中国的大学念的是计算机那个就已经开始了这个系统性的学了系统性的学习对吧但是怎么说呢就是那个大学的计算机就我感觉那个课程就是他把我关在这个计算机的世界里面并且提供给我一个

就是说什么那个奖励函数它是基于我计算机学的好然后它就奖励的好这个是挺好的但是就说从学的东西的话当时我们是学的 C 语言然后 C 语言学了之后又学 JavaJava 的话就做了个 Java 1 亿 Java 企业开发然后就是我感觉就学了这两个东西像网页制作一点

对他其实并没有太深入的去讲太多就是理论基础那方面的东西最起码我当时没有学到太多这样的东西但不同的地方可能不太一样这个这里我先插一嘴就是让我们的这个听众这一期可能也稍微预告一下警告一下这期应该是偏就是 nerd alert 我们会聊到很多偏技术方面的概念名词这个也跟我们通常的这个

讲应用的这个层次会稍微不一样我们去深挖一些技术但是偶尔也可以这样偶尔也可以这样只要我们给听众预先打好预防这个好 你继续你可以通过反问我问题的方式来把那个可能我不小心说到的一些词汇可能我没有意识到那个词汇是对对 我们可以解释一下对 你可以问我问题或者我们相互的聊一下就可以把它解析开对

就是现在你去为了学 AI 的话选择了而且不仅是在中国还是在国外去找了这个学校你是怎么考虑的本身是出国是一个你的想法还是你觉得合适你的这种内容在国内找不到我觉得可能是多方面的

多方面的因为我以前在读大学的时候当时就编程学编程然后包括后面创业的时候以及后面进公司工作的时候我一直都其实挺想去而且有个就是有梦想吧因为当时看别人的文章的时候大部分写那些文章的人以及做那些分享的人都是那些比较就是软件行业的大牛嘛然后他们大多都是

比如说它不仅仅是在中国的一个小地方赚的它可能就是这个国家那个国家会去工作一下然后可能还有很多是在硅谷那边工作的其实当时给我一个想法我其实是很希望自己可以有机会就是从硅谷那边去学习东西的但是到了现在最近这几年的话感觉去美国学习就是变得有点困难感觉上有点困难

当然也不一定不知道是不是真的会困难但是我听我朋友说他当时他拿到了美国的博士的那个申请就是已经拿到了 offer 但是最后签证被刷下来就是相当于他就没去成不让你还是不让你去对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对对

所以你就在澳洲这边看了一些机会是吧对刚才你提到了创业的经历这个我还想让你多讲一讲就是在我们深挖到我们今天的主话题就是教学之前因为你在 Wirecraft 之前还去做过一些自己项目你能不能稍微介绍一下对的我创业我感觉是从当时

是从一开始做业余项目开始的就当时我大学大三的时候开始学校的我们学院的老师就跟我说他说我们学校的软件学院有一个就是那个楼上面有一个公司他们想做一个什么什么

做个什么什么网站当然也是复制另一个网站更大的网站的一个什么小东西他们想自己试一下本地看能不能行然后他就把那个项目介绍给我然后我就跟着我的一个室友去给他们做当时就感觉我直接就这样去给别人做项目然后也能赚到一些钱我觉得感觉还挺不错的就到后面我就没有那种急切的说一定要马上跑去公司里面上班的想法所以后面

后面我在继续读书的过程中当时有朋友有在 QQ 上面认识的朋友他们他们当时正在做一个创业然后我就想着我也要去要去搞一下然后当时还有那个 Startup Awakened 然后 Startup Grind 这些他们在成都办了一个活动然后我有事也就会跑去参加一下然后

然后参加多了之后我就感觉技术的科技行业我就感觉大家好像创业的圈子里面更活跃一些所以我就当时对这个圈子比较有那种熟悉的感觉所以我后面相当的几年一直从 2014 年到 2019 年就是一直处于创业的圈子里面那你们当时这个项目是做什么的

当时我经历了几个不同的项目当时在第一次去创业的时候是一个校园社交就是当时美团还有那个恶龙魔这些的都还是起家然后再越做越大但是又还没有到说覆盖到全国的各个地方然后当时我们就想我们能不能做一个本地的然后自己去联合一下学校周围的商家然后在那个 APP 上面提供一些

服务啊比如说送外卖啊或者这些就是本地服务是吧对的本地服务方面的 app 当时做这个来着然后还有几个其他的这个创业项目然后后面的后面的创业项目的话就是有一个是有一个是留学生社交虽然我不是留学生但是我们当时的老板他是留学生然后他就觉得在美国那边或者其他国家他们当时有那个 cracklist

就是一个比较老的一个网站对对对对看起来就是像 Yellow Page 对他们就拿那个网站来做对比他就说你看他们那里的网站现在流量比较大的那些网站是这样子的他说我们要不要做一个 APP 就是让他们可以更方便的在上面分享自己的租房信息啊分享自己的二手买卖的一些信息啊

这样的一个产品对当时就做这个做了一段时间然后后面还有 blockchain 相关的项目也做了做了没几个月我都没有深入的能够研究进去就那个项目就停了是个 Dapp 就是基于 Ethereum 做的吧好像当时然后后面还做外包

因为做来做去发现就是发现自己和自己的能找到的合伙人的水平也就这个样子了就自己的水平也有限自己能找到的合伙人的水平也有限然后就发现好像还是做外包比较适合就做外包给别人做项目做外包也是开始几年开始两三年当时还就是收入还可以但是到了后面不是经济下行还是后面的那种

程序员也越来越多然后这个市场也越来越饱和就感觉后面就不太好做了越来越不好做创业之路就逐渐的逐渐的就对我关上了大门在当时那个时候在 Wirecraft 也算还可以的一个地方是一个外国人开的公司然后各种方面应该是匹配你当时候已经进化到的 level 的

或者是可以给你更多学习的机会对的对的它是给了我非常多的学习的机会而且我之前做的东西就是我每次我过几年我都会感觉到自己前面前面的那几年做的东西有一点点小打小闹尤其是我当时在玩 craft 的时候我就感觉我之前做的那些东西是有点小打小闹小打小闹的感觉我也不是说没有学到东西也学到很多方面的东西但是

就是从到了 Wirecraft 之后我看到因为 Wirecraft 也是一个 digital agency 就是给别人做产品只是它的服务的客户要大很多然后它就接触到各种各样的大的项目然后我就感觉之前做的会

有点草台班子的感觉你这样看其实你往过去看你有这种思路我觉得是对的就是应该这样因为这样才会证明你一直在自己的进化就是你永远是应该是看之前做的事情觉得很幼稚那就意味着你其实现在要比之前好很多

然後每過一段時間可能你對你後面看你現在做的東西又覺得好像就那樣了就是越來越高級我覺得這個是一個正常的反應而且我覺得這個是一個對的反應

对我觉得大体上是这样子的然后小的方面的话就是每一段时间可能会有一些印象深刻的事情可能我现在记忆最深的就关于我高中也会有一点记忆可能在高中做的某一个网站我是觉得很开心的但后面创业虽然说那么多年但是我也会觉得当时某一些时候做的某些事情是非常有意思的然后就是这种对这样的慢慢的迭代自己在自己身上迭代然后

是进步慢慢的 OK 我们可以聊到今天主要说在学校里边念 AI 因为其实我没有选择这条路所以我其实对这条路的一些各种各方面还是挺好奇的首先其实我在转行的时候也考虑过我曾经是考虑过但后面我放弃了我甚至为了去

在外面念书我还考了一个托福但最后我又没有用它去申请任何学校我就是在想当时候就已经开始看到这种专门为 AI 或者机器学习定制的一些这种

不管是我看的应该是都是硕士的这个 degree 所以现在大概在你研究过的这些项目里边这个已经很普遍了吗就是在高校里边已经 offer 这种专门是为 AI 定制的一些课程

我其實沒有深入去看過太多的學校但是基本上每一個學校都會有這樣的課程你看過的那裡邊你有看過它的具體的內容嗎都是類似的還是我想大概想了解一下比如說你真的去學個 master 兩年三年這裡邊大概會學到一些什麼東西

我不是特别确定其他的学校怎么样我只能够根据我在 RMIT 就是我们的学校看到学到的东西来讲我其实感觉这个真的有一点点那种本科学基础的东西然后我们研究生的时候就学了一些

我其实脑子里很想说继续教育这个词但是我不知道这个词适不适合它真的就是把之前的某一些基础的东西然后叠起来我大概说一下我们学了什么东西研究生的时候刚进去的时候我们是有课课程上是有编程的基础编程基础也是有的但是它

但每个课程它都是有那个如果说你之前学过类似的课程你是可以选择把这个课程你就可以不用学了你可以 wave 掉然后当时有编程基础有

数据分析的课程然后有数学课我们学的主要是理闪数学的课然后理闪数学当然里面还包括逻辑学这些的然后还有算法课算法课就是从基础的算法开始当时我记得从排序开始当时会讲很多不同种类的排序可能有五六七八总吧这些排序然后后面还有考试的排序完了又是搜索算法

然后搜索算法完了后面又会慢慢进化到那种那个叫什么 adversarial search algorithm 就是那种对抗的搜索算法对 minimax 那种搜索算法然后再到后面还会讲强化学习而且这些东西都是它都是连在一起的我以前其实不知道这个我在去学 AI 之前我一直感觉就是 AI 是一个比较黑盒的东西但是后面我在

到了 RMIT 真的学的时候我感觉这些一切都是串起来的然后学校的课程就比较好的把这些东西串起来了就从基础的编程基础到后面的算法算法也有从基础的排序算法讲到搜索算法搜索算法再往后面讲到强化学习的时候其实就有点跟 AI 相关了再到后面我们再去学再去学深度学习就是学普通的

多层感知器的时候其实就就是感觉就是在那个算法的基础之上再深层深层的一步我现在你这样介绍以后我就能看出来他的这个系统的逻辑了就是他他甚至就是可能在一开始都

不确定你有没有这个学过本科的计算机学所以他是从一个非常基础的你基本上你可以跳过很多这个基础的课但是后面的话他就开始层层的就像一个搭积木一样慢慢的把这个基础上面再搭更多的新的一些概念而且很有意思的就是他用强化学习去做了一个传统算法和深度学习之间的一个桥梁

我也大概能现在你解释了以后我大概能看到这个逻辑因为强化学习里边它要很有效的从很多很多收集的这个不同的数据里边找到那个那个最有效的这个学习的信号吧因为强化学习可能会用的就是动态编程对吧就是在我的理解里边我强化学习项目做的没有太多我只做了就是自己动

动手只做过一个项目就是就是叫有个游戏这个 202048 是吧还是什么就是就是把那个两那个二的这个倍数加起来然后慢慢的让那个数字越来越大越来越大它的操作也很简单就只有四个方向嘛上下左右然后你让那些积木在这个这个盘上

挪动然后只要有同一个同一个倍数的两个数字它就可以叠加起来再往上一个倍数然后当时候我就想编一个强化学习的算法去就是做各种不同情况下做各种尝试上下左右然后找到一个最好的策略但是那个项目好像做到后面我也是

因为它随机去寻找的话它能找到那么多各种各样的例子 sample 但是大部分那些都是失败的 sample 没有很多有效的成功的信号那么就是怎么有效的在这项海量的乱七八糟的数据里面找到那些好的策略是的 强化学就是很难的

我想先提一下就是你刚刚说的他用这个来连接这两个算法和后面的 AI 然后后面我还想再说一个另一个就是我们真正的 AI 那门课他是怎么做这个连接的我发现他在不同的课里面都有这样的连接就是让我感觉到整个

从算法到 AI 它是一个连贯的东西我以前一直感觉它都是一个突然就变得很深奥但实际上不是了但是就是强化学习的话它里面也有那个基于 Q-learning 就是有一个 Q-table 的那种传统的动态编程的一种方式但是你其实也可以把那个模块换成一个深度学习的一个模块

就其实两种都可以用对 deep queue 对我觉得这个就挺有意思的就同你做的任务都是一样的但是你只是其中的一个小部分的一部分实现你可以把它换成两个不同的我当时候就是败在这个我的 queue table 会变成巨大

因为我没法把那些各种例子有点像统计到类似的所以我的到时候搜索的空间就变得太海量了然后无法有时候找到一些好的策略我当时候就是没做从普通的 Qtable 跳到 DQtable 的越过我没做 没时间了到时候是 我也是类似的我其实这门课在强化学习这门课最后它有一个大作业

那个大作业然后当时我们就要做一个红绿灯学习一个比较好的一个策略去控制这个红绿灯然后当时要从最基础的做起我们要做模拟器就是要把那个整个红绿灯的那个路口给模拟出来用 Python 的一个游戏引擎来画自己的红绿灯的那个路口然后还要把里面的车子那些全部模拟出来加速减速停车那些模拟出来然后红绿灯的控制那些也要模拟出来

然后到了之后就要用一个框架我当时用的是 OpenAI 出的那个 Gymnasing 那个框架来做这个强化学习但是这些东西都搞完了之后最后发现这些东西都不是难点最难的还是在你刚刚说的那个就是怎么去学习一个更好的 Policy 学习一个更好的策略这个上面就他一直学不到那里去就可能是我的那个那个奖励函数可能有问题吧还是

因为你们出问题的可能性有点多所以其实最后我那个整个那个项目都没有学出一个红绿灯的一个策略出来那个策略根本都跑不通当时当然当时我还有其他的好几门课所以其实我也没有那么多时间一直在这个上面去跟他耗我觉得可能再多花一些时间肯定还是没问题但是当时也就只能这样了你说的很有意思就是为了去

跑这个你核心的问题你还得先去把整个场景模拟出来我当时候做那个 2048 也是我一开始得先研究这个游戏的逻辑到底是什么样子然后最后我先实现在 Python 里边也是实现了一个我按上下左右我可以玩这个游戏就是我把这个游戏先模拟出来然后我再让机器去玩它

因为直接拿一个别人的 2048 来做可能你是用不了的对吧因为别人的游戏里面没有给你那样的接口比如说我要现在要知道这个上面的这些各个卡这个状态是什么样子的他没有办法告诉你那个状态除非你用那个图像识别但是那样的话可能会有

会引入一些新的问题吗那可能我们最好的办法就自己去做一个然后自己再暴露这样暴露这些状态出来自己再去弄没错很有意思我们经历还是比较相似的在这方面那你说到 RL 在到深度学习里边包括在这个深度学习里边的这个

这个课程里面还有一些这个衔接的一些模块是什么样子对我刚刚就是在想我脑子里在想的时候不是还有一个我们还有一门课叫做 Artificial Intelligence 就是人工智能这门课它的名字就是就是我们这个学的这一个专业的这个名字我觉得很有意思的一个点是

这一门课里面完全没有提到机器学习就是我们说的那种机器学习敲代码训练模型这种机器学习我也完全没有提到就是深度学习这些的完全没提到这些东西这一门课里面的人工智能是从最基础的搜索算法开始的

就是在比如说迷宫里面搜索算法我要怎么找到那个迷宫的出口然后还有就是博弈性质的搜索算法要怎么找到一个最终最佳的策略比如说当时老师给我们举了一个例子是

就是好像 97 年还是哪一年当时 IBM 的那个深蓝计算机第一次战胜了在国际象棋大赛上面战胜了他的对手当时所有人不是都觉得说这个是个人工智能吗感觉人工智能就要来了这个东西好厉害但是按照我们现在的就这个暴力搜索是吧对它就是一个搜索算法它其实并不是一个特别智能的一个人工智能它也是一个只能做那件事情就是它可能在

玩那个国际象棋上面还可以但是你要让他去开个车的话他是完全不行一点都不行的

没有任何的通用性对所以我觉得当时从这些东西讲起来我觉得是挺好的一个过程然后讲到四手算法四手算法后面又讲到了讲到了就是逻辑逻辑学方面的东西我觉得讲逻辑学也是跟后面也是跟为了后面的深度学就是为了后面机器学习这些东西打了一点基础虽然是这门课是在我们学机器学习之后的但它可能同时学这些东西就让我们更加的把这些东西给串起来

当时逻辑学就是讲如果张三做了一个事情然后李四跟张三是什么关系然后李四做这个事情的概率有多大

然后其实这种描述 Base and Network 对这个也是在里面也是在里面学的然后这个就跟我们跟我们真正训练模型的时候其实是非常相似的理解模型的行为是非常相似的我的理解那么这些都是你学的课程那么除了这种课程之外就是研究生的这个

整个 degree 里边是还包含了一些研究性的东西啊或者甚至一些这个更大一点的项目是的是吧是的对就是这两个东西我们学校现在就是把如果你进来学这个专业然后它有两个不同的方向一个方向是项目方向另一个方向是研究方向

我觉得这个还挺有意思因为我们很多时候的理解也就是只有研究型的研究生才会去做这种研究方向的东西我们是就是什么课程型研究生课程型研究生我一直以为就是直接就是学课程从头学到尾然后做一个什么项目就完了但是他在我们学校又给我们提供了一个研究的方向我觉得很有意思其实那个研究的方向

我现在感觉就是那个工作人员还挺大的因为我现在相当于是课程型的也要学课程型的课程也很多然后作业也很多然后研究方向的因为跟那些导师搞在一起然后就做了一些研究之后他的那个需求会越来越多就是

我现在不理解的东西会越来越多然后那个研究方向是很爆炸的一种方向所以这两个方向压在身上就会觉得工作量挺大的你可以再稍微深挖一下刚才你说的这个研究和项目之间的区别项目就等于更加像那种应用方面的偏企业的应用吗还是项目它是

可能在学校这个环境之下它的项目设计还是说把你的之前学过的那些东西最后组合起来做一个相关度比较高的一个项目

但我的理解当然就是还是跟业界比较贴合的因为我们的老师我平时在跟他们聊的时候我就发现他们其实也是跟外面的医院跟很多机构在合作做的一些项目他们都是非常相关的 OK 对 当然也就这些项目就可以是

对也就不是一个纯业界的项目因为我觉得纯业界的项目的限制就是纯业界的项目我直接在网上去找那个最佳实践然后用最佳实践来凑在一起我就可以做一个纯业界的项目但是在我们学校学的这些东西的话它可能是希望你不仅是在网上去找一个别人已经做好的最佳实践而是你要自己去实现一部分东西但有可能你最后效果没有别人好但是它的目的是为了让你学习这样的一个项目啊

那么就是研究性的更加是偏那个你说的创新的这部分对研究性的就起码就我目前做的事情来说是在一个比较小的一个点上面去不断的做实验来证明这个东西可不可行我现在做的是信息检索方面的当时做这个原因我觉得也挺巧合的因为我刚到这个学校的时候我当时就到处找

到处找有没有那种 research assistant 研究助理这方面的工作我可以来做因为我想的是因为我感觉自己年龄也不小了就是去学这个东西我也不想完全当一个课程来学我也是想稍微做得稍微深入一点点所以我就找这样的教授手下的兼职来做我当时找来找去结果找到另一个学校去了找到另一个学校的一个项目他们有个课题组他们需要做一个

RAG 做一个那个那种类型的系统当时他们收集了他们在做那个气候政策方面的那种分析他们又收集了整个澳大利亚和印度尼西亚这边的很多气候方面的政策文档然后他们想做这方面的问答然后我就去给他们做问答一个生成对的对的对

然后我当时做这个过程中我就感觉我的那个搜索的效果不是特别好因为我作为一个用户问一个问题很多时候问题他回答能回答得上来但是很多时候可能问题又回答不上来然后我当时老子里想我当时这个项目刚刚做完

然后我在去找我的 research 方面的项目就在我们自己的学校里面找 research 方面的项目的时候当时跟一个教授就是叫 Mark 我们学校的一个教授聊的时候我就很惊讶的发现当然我也是看到一个很长的列表上面发现他就是做这个相关的然后我跟他聊他就跟我提他说哎

你为什么不考虑一下就是你在生成那个检索词 query formulation 做了个检索词就是用户给你问了一个问题你在去生成关键词的时候你为什么不考虑就是可以多做几个就是多生成几个不同的检索词然后来分别进行搜索一下然后再做一些什么操作看看能不能够得到一个更好的效果我当时觉得这个挺有意思的就好像能够去增强一下我

之前做的那些 rank 的效率就是造回率这些的

我当时不是非常的懂这种 research 要怎么做然后我就拜在他的门下然后就说那好吧那你现在你这里有些什么样的跟这个相关的那个课题然后我可以来做的然后我就加在门去做我可以很负责跟你说 RAG 的效率在企业及应用里边也是非常关键的一个问题要解决就不管是你那个学术界我觉得

我觉得剩下的时间我们就可以直接深挖在你这个现在的现在的这个研究课题上因为确实我可以先分享一下企业级这边我们已经碰到的一些问题包括可能的一些解决方案就是就像你刚才说的之前我包括我去年开始玩我也是去年开始玩这个 RAG 的简单的切片向量化然后再去做一个向量匹配之前也是没做任何这个

关键词的这种优化或者甚至去改它就是直接是拿那个用户问的整个一段去把它向量化然后再找我的答案里边的一些相似的向量嗯

后面我慢慢的就自己把它改成 OK 我先让大模型自己总结一个关键词就是从你问的那段话里面因为你可能你问的时候可能说一大堆话对不对你都到后面都不知道那个自己的重点是什么了然后就先让这个语言模型把你说的一段废话里面找出那个最核心的重点然后就拿这个来去搜

就是重新生成一個觀念詞 ok 這個匹配可能跟你的這個

文档 知识库里面匹配的更好但后面我们现在做这种知识库也发现切片的策略包括向量化的策略也要根据你具体的内容是什么来做就举个很简单的例子因为企业会把里面放各种各样的东西对吧它直接丢进来一个什么 PDF 但这个 PDF 里边可能有一些东西是正常的这个文字那这个正常文字可能用我们之前的这个

这个传统的逻辑是比较匹配的但是后面如果它里边突然来了一个表格或者来了一个图片那这些就是你甚至不去解析根本理解不了它里边的内容然后这种比如说一个表格

你没法把它切一半放上去它就完全丢失它的这个上下文了嘛所以对表格是个大难点对甚至可能表格你根本都不需要去做相当化因为表格你就它本身就是一个结构化数据你就当做一个结构去把它存起来或者就类似什么这样子可能你索引到的时候就直接把整个表格给丢过去然后

然后还保持它的一个结构最终我们要研究的就是怎么提高它的这个索引的召回率嘛就是你真的能找到你想找的那个东西就假设你有这个那么你用一个关键词你确实能找到它就是这种匹配要提高因为你能找到以后你才能去总结它嘛

就是总结那就是它的精度了那是后面的问题但是如果你连这个你已经存的内容后面找的时候都找不到那肯定就就是你在第一步就已经失败了所以先解决这个招回的问题你刚刚提到的这个表就是跟表格这个相关的问题

我老是一想真的是这个东西两眼一黑完全不知道要怎么弄会比较好我之前也遇到这样的问题就是 pdf 里面来的表格你连解析出来它都不是表格的样子是的你可能还需要用个什么大模型先去理解这里的字然后重新生成一个就是在就地去重建一个表格可能你用比如说简单的 html 你之前也做过网站你就用 html 的代码

代码去写出来一个这个表格或者用一个什么 markdown 写出来的这样起码它有这个结构对但 markdownmarkdown 的最大的问题就是你的表格如果是复杂的又不行了就是它有些什么合并的那个 cell 就只能用 html 来表示是的对吧这个已经聊到非常这个深入专业的这个话题了但确实我们在企业里面

碰到过这种问题就是动不动客户可能就会丢一个非常复杂结构的表他已经在这个表上做了各种合并就先不说 PDF 了就他哪怕直接丢给你一个 Excel 然后如果他在表里做了这种操作以后这个表似乎用传统方式都无法去理解了

所以你得 somehow 先把它变成一个带有结构的文本可能你才能去用大模型再进一步的去做一些分析对 我感觉这个已经有点超出了我们目前的技术一步之内能够做到的事情了

一步之内我就是说他进行一次搜索然后返回一次结果然后他要马上给答案这种一步之内已经很难去理解表格里面的东西表格里面的东西我们就作为人类来讲比如说我要看一下比如说表格就是总结型的东西我要看一下我这个这里面有哪些人

的年龄是超过 50 岁的可能我一个方法当然可以我可以拿着一个本子在那里记我看到这一行这个人超过 50 岁我就把他的名字记下来我另一个人超过 50 岁我又把他的名字记下来这样我始终是需要有多步的操作就是我需要不断地看那一个当然如果

但这个表格可能因为表格可能会非常的长我们比如说如果塞到一次性的塞到那个 prompt 里面去塞不进去的情况那就更那就这个问题就更加的显著了就我肯定是需要一个额外的一个小本本在那里去记这里面哪一个人是 50 岁以上最后再去算一下这里有 300 个人是 50 岁以上然后最后再把答案返回来这个是需要 aging 的这样子的事情

这样的一种架构才能做到对这个关于表格的话我们其实也其实说白了大模型不适合做直接的数据分析或者甚至做一些

數學類的東西那我們怎麼做呢其實大模型好的地方是它可以生成代碼而且它代碼生成失敗的話它還可以知道自己錯在哪裡再重新改所以你就等於是讓它生成一個可以解決這個問題的代碼而不是直接解這個問題然後去跑這個代碼對不對跑出來代碼出了問題或者什麼的它再改一改代碼再重新跑一直到它出來一個結果

这种可能就比用大模型的能力直接回答因为大模型你也学过这个了你是知道的就是它生成的这些答案是没什么逻辑的它只是从一个统计学的角度去看你下一个字最可能是什么对

但是他在多轮的多轮的这样的一个自我对话自我修复的过程中可能又会体现出某一种选择那种选择就有点接近于逻辑的感觉了有可能是的对这个方面其实我们也没有还没有就是真正的深挖到底确实但是就是从一个

直接开箱即用的角度来说你不应该在大模型把大模型用在这几个场景里面需要数字很强的场景至少现在的大模型不应该这样去使用我想回到你的这个问题里面就是现在研究的多种提示词或者这种搜索关键词的生成你在这方面有没有什么

就是已经研究出来的一些结果或者阶段性的结果就是一些好的 best practice 可以给我们分享一下有研究出来一点结果但是目前还没有形成一个 best practice 因为它还不是 best practice

我目前发现你怎么知道它不是因为我有实验结果然后其实现在有两个问题一个当然就是目前这个结果这个结果是对于本来那个搜索词本来用户的搜索词如果它本来质量就比较差的情况下那我去用大模型对它的搜索词进行增强然后去生成多个版本然后再去做结果的混合

比如说 10 个搜索词我生成了 10 个搜索词然后搜索出来 10 个这样的搜索列表然后我再把它混合成一个搜索列表就可以把里面对 合并起来然后就可以把里面几率比较大的那些结果可以排到前面去这样效果会稍微好一点但是这种增强就我目前只在

本来就比较差的搜索词上面能够体现出来如果搜索词本身就比较好的话

我这边甚至会反而降低它的那个搜索质量 OK 那这种好和坏有很难很难划的标准我现在用的是我现在用的是一个 NDCG 我现在用的是一个指标反正就是用了一个信息检索里面的指标你可以我们就说造回率吧我就用了造回率的指标然后把造回率由这些 query 里面我

我们是拿这个数据集我把那些数据集里面的所有的那些搜索词用户的搜索词我按照他们本身的造回率的结果来排从上到下从最好的造回率到最差的造回率我然后在每一我把它分成三部分然后本来造回率就很好的那一部分我去试一下他们经过增强了之后效果怎么样然后本来搜索词的造回率一般的情况下我去

增强一下我看效果怎么样本来效果就比较差的那些然后我再去增强一下看看效果怎么样然后我发现本来数学词的造回率比较差的那一部分经过增强了之后它的效果会好好出百分之百就会好出一倍这样子但是对于中等的和好一点的那种数学词的话我的这个方法会降低它的造回的那种效果

那就是说这个事情你是预先不知道的你必须事后你已经知道你召回了什么东西才去做进一步的判断是吧对因为我现在是在试我这个方法但是即使这样的话其实你还是有保持了可操作性因为你比如说知道你从这个召回率本身就是去代表一下就是第一次的召回率

就算是你的等于是搜索值质量的一个指标吧就虽然它可能不是一个百分之百绝对性的一个东西但是起码你是从一个第一次如果召回比较低的情况下你可以再去就是比如说判断你要不要做这个增强你有的时候可能就不做增强当然这肯定不是那么简单现实生活中是几乎是难以做到这样的事情的

当然也不是完全不可以我可以用一个大语言模型去做这个第一阶段的评判第一阶段的评估看一下它返回的那些文档关联性怎么样但如果说我没有大语言模型做这个步骤让人去做这个步骤人去反馈了然后它又来生成一次那我觉得人是受不了这个事情的太慢了对我这里最大的限制在于我做的是一个实验所以这个实验它的

搜索词和他那些搜索词本身对应的那些文档基本上都已经被标注过了

标注的那个文档是有关还是无关的然后我才能在做实验的时候去用到这个标注信息如果说现实生活中的这些你输一个搜索词到那个搜索引擎里面去它出来的那些结果肯定是没有被标注过的不过这个也可以自动化嘛这个就是这个就是新类型的 indexing 对吧传统类型的 indexing 就是你去看它的一些什么 term frequency 它的词的这个出现率但是新型的这个

这个有点像 indexing 就是你上传了一堆各种文章那大元模型先都读一遍然后生成可能的这个搜索词对吧就是来辅助你然后你搜索一个不太好的你就再去拿这个 list 去对比一下看能不能加一些

你刚刚提到的这一个是一个是一个比较有可能就是很有希望的一个方向之前好像是微软和谷歌同时出了两篇论文都是做了这个把那个

输入的文档生成一些相关的搜索词然后在搜索的时候就跟那个搜索词进行匹配那样的话它的准确率会非常的高或者就是你没有搜这种搜索词你甚至可以让这个模型帮你就是强化嘛就是还是你现在做的事情只不过就是

你现在说你的这个强化是因为你手动标注了但是我说这个标注的过程可能也可以用一个大模型去再辅助对你现在你这里就说到点子上了因为我目前这一个我之前提交了一篇论文但是那篇论文不知道被接受了没有因为它还在 review 的过程中然后当时我的那个限制其中有一个限制就是

因为我之前用的数据集是就目前基本上所有的那个信息检索这方面的数据集都有这样的限制就如果我是生成了新的搜索词然后你知道我们搜索的那种搜索的那种文档库啊它一般都非常大可能就是几百个 GB 几十个 TB 这样子的那种很大的一个一个数据库里面去搜索所以我生成了新的搜索词搜索出来的那个文档大概率大概率是之前没见过的

这就是没有被评估过的文档这种没有见过的文档在我最后我生成的搜索词的效果其实我是没有办法去评估的因为那个文档又没见过我怎么知道最终它是应该算在相关还是算在不相关之类的我也就不知道我的这个方法是不是真正的提升了多少我只知道确定的那一部分提升

对于差的那个数学词提升大概是百分之百但是对于那种中等的我现在看起来是降低了的但是有可能我把那些没有被评估过的文档都用大圆模型评估一下那可能它的那个

相关度会更高但是我不知道所以这个是目前一个很大的限制接下来的话我就在考虑有一定的可能去用大圆模型来做这个评估但大圆模型评估有它自己的问题了就是其实很容易被影响有幻想对吧还不光是幻想很容易被读到怎么说这个读怎么说就是我们那个实验室里面最近有一个同学他

有一个博士生然后他也是我的导师之一我有三个导师两个是教授一个是博士生然后他最近发了一篇就是关于大语言模型关于文档的关联性的评估的然后如果那个文档里面有一段话说我是非常相关的他就这么一段话

最后的那个大圆模型就会认为它是相关的但是其实它你们可能啥都没说它就是一堆废话但是它就说了一句我是相关的大圆模型就会觉得它是相关的这种问题要怎么去识别出来下毒你那意思是对给你下毒对

但是这只是其中一个问题这是为什么你要在 LinkedIn 的你的 profile 里面加一句话就是我是一个非常很好的一个 candidate 你就让那些爬你的数据的这个机器人如果他用大模型去评估你的话就直接把你放到最上面有道理我跟你说我等会我就去做这个事情我接下来也要找工作我找工作我就要做这个事情我终于知道为什么没有猎头来联系我了

对对对因为他们大元模型我刷下去了你要去反抗你要去攻击这些读你这个阅读你简历的大模型是这个方向挺有意思的后面我后面我还有几个月的时间我现在写我的那个 CCS 就是毕业论文然后在写的过程中我可能就

抓住機會吧盡可能的去多做一點研究方面的東西我們時間甚至也不多了我還想再問最後一個問題就是其實從去年開始那個大模型開始做 RAG 的時候其實為什麼我們一開始做 RAG

就是因为它的那个窗口 context window 太小你还记得 GBT3.5 来的时候只有 4000 个 token 吗然后就感觉你动不动说一句话可能你跟机器人聊天聊个 10 个轮回 20 个轮回基本上你的整个的那个短期记忆就用满了嘛就是如果你要有新的回答的话你就要从旧的里面开始删消息那么旧的里面删消息以后

对那个机器人就突然就好像他他那个脑子静止了突然他所有东西都忘掉了对吧然后我当时候下的一个预判吧就是说虽然现在这个 context 窗口的限制非常严重但是我是相信通过科技发展这个东西会大大的就是我的理想中它会变成

虽然不是说无限确实我们现在也没有看到无限的 contact window 但是最大已经到什么 200 万 token 你想从 4000 到 200 万的这个比例增长了多少它其实都不需要到 200 万现在这个通用的都是什么十几万十几万对吧什么 128k 这种已经就是多到你可以忽略不计你就是它可能多到 10 万以后你就可以当做它是个无限的在这种情况下

RAC 还需要吗我最近也在想一个关键的问题如果你撇开什么成本如果你撇开成本问题你先不要考虑钱因为钱又是另外一个方面我觉得在 context window 接近无限的时候钱会成本会接近零这个是我另外一个预判就是越来越便宜所以你就是在这两个

同时的前提发生下其实我们把整个文档都不要切片不要做任何东西直接丢进去那它能索引到的理论上它的招回是 100 因为你去回答的时候你已经有所有的信息了那这个对它的真正的效率是怎么样它的精度可能会开始受损了我的理解是这样子的

就是因为你刚刚谈到的是如果说它的价格被打下来了后面会怎样但我觉得除了价格之外还有那么几个因素一个是速度就是因为输入的 token 它的处理速度也是有限的

比如说几百个 token 每秒一两千个 token 每秒它的处理速度是有限的然后相对应的搜索的话速度要快得多得多搜索在几百个 GB 或者几个 TB 的那种

那种数据集上面去搜索也都是在一秒之内是可以搜索出来的这是一方面另一方面是你的 context window 再长你也没法藏到几百个 G 或者几个 TB 或者说是给你这一次搜索给你这一次问答继续用这么多的内存也不太现实对吧显存这么用也有点浪费如果你说到这种什么世界级的

数据库了企业的时候目前我们还没有碰到那么大的数据量我的意思就是可能你可以在一个 10 到 100 个文档之间这个范围内搜索但不是说你所有的某一个某一个这个总的数据集对对对确实它这个这样的时候它的限制还是会有我刚刚讲的可能就是说更加通用范围的一个

因为我举个例子比如说之前我们做的气候变化的那些政策文档它就是收集了很多几千个 PDF 其实几千个 PDF 它的 token 算的也是不少的对 也是不少的

context window 越来越大肯定是一个很好的事情就也可以用来做一些总结性的东西之前做不了总结性的东西你就 4000 个 token 怎么总结我这个整个公司里面有多少种技术战他只能看到一种技术战他没有办法知道其他的但现在你可以输入更多的东西肯定是个好事然后就从

RAG 本身就是 Information Retriever 这个东西本身来讲就是更大的一个 RAG 的应用范围来讲的话我觉得搜索这个事情本身是一直都是有效的像我们人脑子里记的东西是可以很多的但是我们用搜索引擎也还是始终都还是能够去获取一些更新的东西大概是这样的一个想法嗯

OK 行那我们今天时间也差不多到了所以我们就 rap up 一下我们非常感谢阮坤来给我们这次做的一个分享我也学到了很多我本来对这个

就是学术尤其是这个从学生的角度去怎么看待 AI 去学 AI 也有了更深度的了解我也希望我们在最后没有把这个太多的观众给无聊掉我们谈的还是比较深关于 RAG 的但是如果你恰好是在做我相信如果你

你作为这个听众恰好是在这个方向也是在做自己无论是这个学术方面还是在企业方面可能希望通过我们的这个对话也有很多有效的一些新的想法新的思路去解决你自己的一个问题那么最后我们就是让嘉宾去做一个推荐环节所以然后你今天有什么好玩的东西可以给我们的听众带一下

我想了一下这个如果要推荐的话我最近看那个就是 YouTube 上面看那个 Next Freedman 的他的那些采访我觉得非常有意思就是跟我们现在这样的对谈有点相似但是他采访的都是都是非常世界名人是吧对世界名人

比如说他采访的采访的那种什么叫我们刚刚不是提到了 BSN 大牛对他采访的就是 BS Network 的那个创始人那个作者然后他里面就会讲到那个作者他对于这种概率方面的东西他理解就会非常深刻然后

然后听的时候就会引人入迷我觉得挺好的如果大家有机会的话真的要可以去看一下对我也可以推荐 Lex 的这个播客你看的是他的视频版我主要还是听播客他所有的那个节目都是还是有音频版本的我的理解我不是那么长期关注 Lex 的但是我的理解是他最开始就是从类似我们这种节目就是做 AI 的

话题但是他后面就开始拓展了现在他各种就是他我觉得他的话题是没有限制的他聊政治他聊艺术他聊学术他什么都聊科技什么的生活有些玄学都有所以

就是我也是选择性的听我并不是对他所有的聊的嘉宾或者话题感兴趣但是偶尔还是会有一些有意思的人所以我就会选择性的听而且他的那个节目是贼长我刚刚下载了一个三个多小时的接近四个小时的节目

所以我还没开始听但是还好我发现那是分段听的我就是上加班一个小时听一段然后明天继续四个小时对我之前还下载了一个他的

8 个小时的但是那个是假 8 个小时因为他其实是把好几个人的采访拼在一起的就是讲那个 Neuralink 就是他一开始采访了 Elon Musk 然后后面采访了好几个参加过 Neuralink 的一些科学家包括那个 subject 被实验的那个人就是往脑子里插东西的那个人所以那一期各种采访加在一起好像是 8 个多小时

可以的我觉得听他的东西我之前在上大学的时候我当时学编程的老师就跟我说要穿一手鞋不要穿二手鞋不要就看别人翻译的或者说是别人自己写的博客总结的东西要就看原作者说的话然后通过看他的 podcast 或者听他的采访就可以看到那些原作者他给你发出的那种最原本的声音

就是少去了各种的猜想或少去了其他人的那些干扰就是这个原作者本身的事情我觉得还是挺重要的穿一手鞋这个又学到了新的概念可以好的我也同意今天非常赞成今天的这个今天的推荐也再次感谢然后给我们带来的分享谢谢谢谢

您现在收听的是《阔博治疗》一档带有 AI 味道的访谈节目如果您喜欢这一期节目请给我们留个言或点个赞也欢迎在各大播客与电台平台上搜索订阅并关注《阔博治疗》智慧的智 聊天的聊

同时欢迎关注我们的微信公众号 扩博智能 Clobotics 留言听友群三个字可以加入我们节目粉丝和嘉宾的互动群并且收到下一期扩博治疗的上线通知我们期待您的参与