将 LLM 用作评委的挑战 - Sourabh Agrawal | Vector Space Talks
Demetrios Brinkmann
·2024 年 3 月 19 日

“你不想使用像 GPT 4 这样昂贵的模型进行评估,因为这样成本会累积起来,不划算。如果你花在评估响应上的费用更多,那还不如做些别的事情,比如让人类来生成响应。”
– Sourabh Agrawal
Sourabh Agrawal,UpTrain AI 的 CEO 兼联合创始人,是一位经验丰富的企业家和 AI/ML 专家,拥有多元化的背景。他职业生涯始于高盛,在那里开发金融市场的机器学习模型。后来,他在博世/梅赛德斯-奔驰的自动驾驶团队工作,专注于场景理解的计算机视觉模块。2020 年,Sourabh 涉足创业,创办了一家由 AI 驱动的健身初创公司,吸引了超过 15 万用户。在他的整个职业生涯中,他遇到了评估 AI 模型,特别是生成式 AI 模型的挑战。为了解决这个问题,Sourabh 正在开发 UpTrain,一个开源的 LLMOps 工具,旨在评估、测试和监控 LLM 应用。UpTrain 通过执行根本原因分析、识别故障中的常见模式以及提供自动化的解决方案建议,提供分数和洞见以增强 LLM 应用。
您可以在 Spotify、Apple Podcast、Podcast Addicts、Castbox 上收听本期节目。您也可以在 YouTube 上观看本期节目。
主要收获
为什么实时评估对于维护聊天机器人交互的完整性、防止推销竞争对手或做出虚假承诺等问题至关重要?开发者采用哪些策略来最大限度地降低成本,同时最大限度地提高模型评估(特别是在处理 LLM 时)的有效性?这些可能只是业内人士自问的众多问题中的一部分。别担心!Sourabh 将为您详细讲解。
查看完整的对话,他们深入探讨了 AI 聊天机器人评估的复杂世界。了解如何确保您的聊天机器人质量并在各种指标上持续改进的细微之处。
以下是本期节目的主要议题
- 评估聊天机器人效率:探索评估聊天机器人在各个阶段质量的系统方法,包括检索准确性、响应生成和用户满意度。
- 实时评估的重要性:深入了解为何对聊天机器人进行持续和实时评估对于维护完整性和确保它们按设计运行而不推广不良行为至关重要。
- 系统受损的迹象:了解识别可能表明系统易受“越狱”(jailbreaking)攻击的行为的重要性,以及通过 API 集成对抗这些行为的可用方法。
- 成本效益高的评估模型:讨论使用更小的模型进行评估以降低成本,同时不影响分析深度,重点关注失败案例和根本原因评估。
- 定制化评估指标:强调根据特定用例需求定制评估标准的重要性,包括探索适用于不同场景的各种指标。
趣闻:Sourabh 讨论了 UpTrain 的使用,这是一个创新的 API,为各种数据检查提供分数和解释,有助于在评估 AI 模型时做出逻辑和明智的决策。
节目笔记
00:00 原型评估主观;可扩展性挑战出现。
05:52 使用更廉价、更小的模型进行有效评估。
07:45 客观使用 LLM,避免主观偏见。
10:31 评估对话质量和 AI 的定制。
15:43 上下文对 AI 模型性能很重要。
19:35 聊天机器人给汽车公司带来问题。
20:45 实时用户查询评估、防护措施和越狱。
27:27 检查相关性、监控数据、过滤模型失败。
28:09 识别常见主题、洞见、实验设置。
32:27 为特定应用目的定制越狱检查。
37:42 使用评估数据技术缓解幻觉。
38:59 讨论幻觉缓解技术的商业化。
42:22 实验是系统改进的关键。
Sourabh 的更多引言
“有些情况,比如与安全相关的情况,对吧?比如你想检查用户是否正在试图越狱你的 LLM。在这种情况下,你可以在生成响应的同时进行评估,因为仅凭用户查询,你就可以检查其意图是越狱,还是真正使用你的产品以实现特定模型目的。”
– Sourabh Agrawal
“你必须将响应分解成单个事实,然后查看每个事实是否与问题相关。然后取某种比例来获得最终分数。这样一来,所有出现的偏见,比如自利性偏见(即 LLM 更喜欢自己的输出),都可以在很大程度上得到缓解。”
– Sourabh Agrawal
“总的来说,我们一直看到的是,你检索到的上下文越好,你的模型就越好。”
– Sourabh Agrawal
文字记录
Demetrios:Sourabh,很高兴你来到 Uptrain。我想你有一些想展示的笔记,但我也想问你几个问题,因为我们将深入探讨一个我非常关心的话题,而且最近这个话题经常出现,那就是将 LLM 用作评委。这几天它真的很火。甚至有人说它是 2024 年的话题。我很想听你深入讲解。我们直接进入正题吧,伙计。当你谈论使用 LLM 进行评估时,有哪些关键议题?你使用哪些关键指标?这如何运作?你能分解一下吗?
Sourabh Agrawal:好的。首先,非常感谢邀请我,技术问题没关系。我想我从来没见过没有技术问题演示或演讲。这注定会发生。真的很高兴来到这里。很高兴谈论 LLM 评估。正如你正确指出的那样,它确实是一个热门话题,而且确实如此。
Sourabh Agrawal:LLM、ChatGPT、GPT-4 等技术的发展趋势是,人们开始构建所有这些原型,对吧?而评估它们的方式就像是凭肉眼观察,相信你的直觉,感受那种氛围。我想他们真正采用了创业公司的方法论,将东西推向生产并“搞砸”一些。但人们已经意识到这是不可扩展的,对吧?我的意思是,确实如此。这是高度主观的。是一个开发者,一个人类在查看所有响应,某天他可能喜欢这个,某天可能喜欢别的东西。他们不可能去查看、仅仅阅读超过十个响应。现在,生产用例的独特之处在于它们需要持续的改进。你需要不断地改进它们,你需要不断地改进你的 prompt 或你的检索、你的嵌入模型、你的检索机制等等。
Sourabh Agrawal:所以这就提出了一个问题,你需要使用更具扩展性的技术,你需要使用 LLM 作为评委,因为这是可扩展的。你可以进行 API 调用,如果该 API 调用提供高质量的结果,那么这是一种可以模仿人类行为的方式,或者在某种程度上增强人类能力,真正成为他们的副驾驶(copilot)。
Demetrios:是的。当我思考使用 LLM 作为评委并深入了解时,一个一直在脑中出现的问题是,我们何时使用这些 API 调用。它不是在我们寻找输出的当下使用。它只是为了看看这个输出是否真实吗?然后在将其展示给用户之前,它是在我们收到用户的一些反馈后分批进行的。所以这意味着某些用例会自动排除在外,对吧?比如如果我们想,好吧,我们要使用 LLM 作为评委来确保我们正在缓解幻觉或者我们正在更好地进行评估,如果我理解正确的话,这不一定是我们可以在当下做的事情。那么你能再详细解释一下吗?在实践中它实际上是什么样子的?
Sourabh Agrawal:是的,当然。这是一个很好的观点。在我看来,有三种情况。第一种情况是你在向用户展示响应之前进行的即时评估。你想检查响应是否好。在大多数情况下,你无法做到这一点,因为显然检查需要额外的时间,你不想增加延迟。但有些情况,比如说与安全相关的情况,对吧?比如你想检查用户是否正在试图越狱你的 LLM。在这种情况下,你可以在生成响应的同时进行评估,因为仅凭用户查询,你就可以检查其意图是越狱,还是真正使用你的产品以实现特定模型目的。
Sourabh Agrawal:但大多数其他评估,比如相关性、幻觉、质量等等,都必须在向用户展示响应之后进行。然后你可以通过两种方式进行:你可以用它们来实验不同的东西,或者你可以在生产环境中运行监控并找出失败案例。通常我们看到开发者采用这两种方法的结合来发现问题,然后进行实验并改进他们的系统。
Demetrios:好的,那么当你并行处理时,感觉就像是要求你精心设计一个 prompt,然后很快。所以你基本上发出了两个 prompt。我一直在想的另一件事是,这难道不会给你的系统增加大量成本吗?因为这样实际上是使你的成本翻倍。但之后我想你可以设计几种不同的方式来改进评估并更好地将响应发送到 LLM,我想。你可以找出如何削减一些 token,或者你可以尝试连接一些响应并在那里玩一些技巧。我相信你肯定知道很多我不知道的技巧,我很乐意听你告诉我这些技巧,但可以肯定的是,我们面临什么样的成本?我们可以预期会增加多少?
Sourabh Agrawal:是的,我认为这是评估的一个非常有效的限制。所以这就是为什么,比如说在 UpTrain,我们真正相信的是,你不想使用像 GPT-4 这样昂贵的模型进行评估,因为那样成本会累积起来,不划算。对。如果你花在评估响应上的费用更多,那还不如做些别的事情,比如让人类来生成响应。我们为此依赖于更小的模型,更便宜的模型。其次,我们采用的方法论是,你不想在所有数据点上评估所有内容。比如你可能有一个更高级别的检查,比如说针对越狱,或者说针对最终响应质量。当你发现质量低的案例时,你就可以对这些失败案例进行一系列检查,以找出流水线的哪一部分具体出现了问题。
Sourabh Agrawal:这就是我们所说的根本原因分析,你找出所有这些失败案例,它们可能占你在生产中看到的所有案例的 10% 或 20%。找出这 20% 的案例,对它们进行一系列检查。这些检查可能很全面。你可能会对它们运行五到十个检查。然后根据这些检查,你就可以找出错误模式是什么?是检索问题吗?是引用问题吗?是利用问题吗?是幻觉吗?用户提出的问题(查询)是否不够清晰?你的嵌入模型是否不合适?所以这就是你可以两全其美的方式。比如,你也可以同时提高性能,并确保你不会破产。
Demetrios:我以前也听过这个,这几乎就像你正在使用 LLM 作为测试,并且它们正在帮助你编写(测试)。不是说它们正在帮助你编写测试,而是它们在那里,它们是你正在编写的测试的一部分。
Sourabh Agrawal:是的,我认为这里的关键是你必须客观地使用它们。我看到很多尝试进行 LLM 评估的人,他们所做的是问 LLM,“好吧,这是我的响应。你能告诉我它是否相关吗?”或者甚至,比如说,他们更进一步,进行像打分这样的事情,比如它是高度相关、有点相关还是高度不相关。但这样就变得非常主观了,对吧?它取决于 LLM 来决定是否相关。与其那样,你必须将其转化为客观的设置。你必须将响应分解成单个事实,然后查看每个事实是否与问题相关。然后取某种比例来获得最终分数。这样一来,所有出现的偏见,比如自利性偏见(即 LLM 更喜欢自己的输出),都可以在很大程度上得到缓解。
Sourabh Agrawal:我相信这就是让 LLM 评估奏效的关键,因为与 LLM 应用类似,即使是 LLM 评估,你也必须投入大量精力才能让它们真正工作,并最终获得与人类期望高度一致的分数。
Demetrios:这些 LLM 模仿人类如此之多,这很有趣。它们甚至喜欢自己说话的声音。太搞笑了。是啊,老兄。好吧,再跟我详细谈谈这在实践中是什么样子,因为有很多不同的技术可以做。另外,我也意识到在用例方面,情况非常不同,对吧。所以如果是代码生成用例,你评估它,会非常清楚,代码是运行了还是没运行?然后你可以深入了解这代码是否真的更有价值?这是否是一种“hack”的方式来完成?等等等等。但是有些用例我会认为更敏感,有些则不那么敏感。
Demetrios:那么你如何看待这类事情?
Sourabh Agrawal:是的,我想是这样。即使是我们看待评估的方式也是如此,对于不同的用例没有一刀切的解决方案。你需要关注不同的事情。即使你关注幻觉,不同的用例或不同的企业也会从不同的角度来看待评估。对。对于某人来说,无论如何,如果他们非常关注某些正确性方面,其他人可能就不会那么关注这些方面,而更多地关注其他方面。我们对此的看法是,我们为不同的用例定义不同的标准。所以如果你有一个问答机器人(Q&A bot),对吧?那么你会关注响应的质量,上下文的质量。
Sourabh Agrawal:如果你有一个对话代理,那么你会关注整个对话的质量。你会看看用户是否对该对话感到满意。如果你正在撰写长篇内容。比如,你会关注内容之间的连贯性,关注内容的创造性或趣味性。如果你有一个 AI 代理,你会关注它们计划得如何,执行特定任务得如何,等等。它们需要多少步骤才能实现其目标?因此,存在各种各样的评估指标,每种指标都更适合不同的用例。即使如此,我相信一个好的工具需要为其开发者提供一定的定制能力,以便他们能够以最符合其业务需求的方式进行转换和修改。
Demetrios:是的。有没有你觉得更普遍的一些(指标)?如果我只是思考这个问题,我正在做业余开发,现在正在思考这个问题,我想,好吧,我怎么开始呢?你有什么推荐?
Sourabh Agrawal:是的,当然。当今 LLM 最大的用例之一是 RAG。RAG 应用。我认为检索是关键。所以我觉得评估的最佳起点是关注响应质量,看看响应的相关性,看看响应的完整性,看看上下文质量。就像上下文相关性,它判断检索质量。幻觉,判断响应是否基于上下文。如果语气对你的用例很重要,看看语气,最后看看对话满意度,因为最终,无论你给出什么输出,你还需要判断最终用户是否对这些输出满意。
Sourabh Agrawal:所以我会说这四五个指标是任何正在基于这些 LLM 进行构建的开发者开始的最佳方式。从那里你可以了解行为如何发展,然后你可以更深入地研究更细微的指标,这些指标可以帮助你更好地理解你的系统。
Demetrios:是的,我喜欢这样。现在,我脑中也经常出现的另一件事是定制指标和定制评估,以及专有数据集,比如评估数据集,因为我们都知道,基准测试会被“玩坏”(gamed)。你在 Twitter 上看到,“哇,这个新模型刚出来,太好了。”然后你试了试,你会想,“你在说什么?这东西只是在基准上训练的。”所以看起来很好,但实际上不是。你能跟我们谈谈如何创建这些评估数据集吗?就最佳方法而言,你看到了什么?什么样的规模?我们需要多少才能真正使其有价值?那是什么?请在那里给我们一个详细说明。
Sourabh Agrawal:是的,当然。所以,我的意思是,令人惊讶的是,答案是你不需要那么多就能开始。我们见过这样的案例,即使有人构建了只有 50 到 100 个样本的测试数据集,这实际上也是一个非常好的起点,比他们手动标注和创建这个数据集要好得多。我相信最好的数据集是你的用户实际在问的问题。你可以查看公开基准,你可以生成一些合成数据,但这些都比不上你的最终用户实际寻找的质量,因为这些(用户查询)会给你带来你永远无法预料的问题。对。即使你生成合成数据,你也必须预测可能出现的问题并生成数据。除此之外,如果你查看公开数据集,它们都是经过高度整理的。总是存在它们渗入训练数据等问题。
Sourabh Agrawal:所以那些基准测试变得高度可靠。所以看看你的流量,从中抽取 50 个样本。如果你正在收集用户反馈。那么用户给出差评或不接受响应的情况,我的意思是,它们是非常好的案例来研究。或者如果你正在运行一些评估,对失败的案例进行质量检查,我认为它们是为你获得高质量测试数据集的最佳起点,并将其用作试验你的 prompts、系统、检索的方式,并迭代改进它们。
Demetrios:你会更看重某些指标吗?因为我听说过一些故事,有时你会看到一个新模型发布,或者你正在测试一个新模型,在某些指标上它似乎下降了。但你设定的“黄金指标”却实际上上升了。那么你有没有看到哪些指标更适合不同的用例?
Sourabh Agrawal:我认为在这里,没有一个单一的答案。我认为那个指标取决于业务。总的来说,我们一直看到的是,你检索到的上下文越好,你的模型就越好。特别是如果你使用任何大型模型,比如任何 GPT 或 Claude 模型,或者在某种程度上甚至是 Mistral,它们的性能都非常高。所以如果你使用这些高性能模型中的任何一个,如果你给它们正确的上下文,响应多多少少都会很好。所以我觉得我们看到很多人非常关注的一点是,尝试不同的检索机制、嵌入模型等等。但话又说回来,最终的“黄金关键”,我认为我们见过很多人,他们会标注一些数据集,所以他们会有一个基准响应或“黄金响应”,他们完全依赖于他们的回答与那个“黄金响应”的匹配程度,我认为这是一个非常好的起点,因为现在你知道,好吧,如果这是对的,而且你的回答与它高度匹配,那么显然你的响应也是对的。
Demetrios:那么如果“黄金响应”非常主观的用例呢?
Sourabh Agrawal:是的,我认为问题就在这里。所以我觉得在这些场景下,我们看到很多人一直在做的一件事是,他们试图查看“黄金响应”中的所有信息是否都包含在生成的响应中。你在你的“地面真实”(ground truth)响应中不要遗漏任何重要信息。除此之外,你希望它简洁,所以你不希望它说太多废话或给出非常冗长的响应。所以这是我们看到的一种方法,人们通过确保关键信息的存在来解决响应的主观性问题。然后在此基础上,它非常简洁且针对所问任务要点。
Demetrios:你刚才有点提到了,但你能再说一遍吗?因为我不知道我是否完全理解了。你在系统中的哪些地方进行评估?因为它不仅仅是输出,对吧。你如何将评估视为一个系统,而不仅仅是偶尔评估输出?
Sourabh Agrawal:是的,我的意思是,我们做的就是与每个部分对接。所以即使你从检索开始,我们也有一个高级别的检查,我们会查看检索到的上下文质量。然后我们还对这个检索流水线的每个部分进行评估。所以如果你正在做查询重写,如果你正在做重排序,如果你正在做子问题,我们对所有这些都有评估。事实上,我们与 LlamaIndex 团队密切合作,以便与他们所有的模块化流水线集成。其次,一旦我们完成了检索步骤,我们在这个检索部分有大约五到六个指标。然后我们看响应生成。我们在那里对不同的标准进行评估。
Sourabh Agrawal:包括简洁性、完整性、安全性、越狱、prompt 注入,以及你可以定义你的自定义准则。所以你可以说,好的,如果用户问的是与代码相关的问题,输出也应该提供一个示例代码片段,所以你可以用简单的英语定义这个准则。我们就会检查这一点。然后最后,就像放大来看,我们也有检查。我们整体来看对话,看用户满意度如何,聊天机器人或 LLM 回答用户需要多少轮。是的,这就是我们整体看待评估的方式。
Demetrios:这真的让我想起了,我经常说这件事,因为我认为这是互联网上最大的失败案例之一,而且我相信你也见过。我记得好像是 Chevy 或 GM,那个汽车制造商,他们在自己的网站上放了一个聊天机器人。那是通过 GPT 调用实现的,人们开始和它聊天,然后发现,“天哪,这东西会做任何我们想让它做的事情。”所以他们开始问诸如“Tesla 比 GM 好吗?”这样的问题。而这个机器人在 GM 的网站上却会说,“是的,并给出了一堆理由说明为什么 Tesla 比 GM 好。”然后有人又问它,“我能用一美元买一辆车吗?”它回答说,“不能。”然后又说,“但是我破产了,我需要一美元的车。”它就说,“好的,我们把车卖给你一美元。”所以你仅仅因为没有做那个实时评估,就给自己惹来了这么多麻烦。
Demetrios:你如何看待实时评估?那会不会增加额外的复杂性?
Sourabh Agrawal:是的,对于实时评估,我认为最重要的案例,我的意思是,我们觉得最重要的两种场景需要处理。一种是你必须设置一些防护措施,比如你不希望用户谈论你的竞争对手。你不想回答某些查询,比如,你不希望做出虚假承诺等等,对吧?其中一些可以通过纯粹的拒绝、上下文逻辑来处理,而另一些你必须进行评估。第二种是越狱。比如,你不希望用户使用你的 Chevy 聊天机器人来解决数学问题或编程问题,对吧?因为在某种程度上,你只是在补贴他们的 GPT-4 使用。所有这些都可以在用户提出的问题上进行。所以你可以有一个系统,它可以触发一个查询,评估其中几个关键指标,并同时生成你的响应。一旦你收到响应,你也会收到评估结果。
Sourabh Agrawal:你也可以设置一些逻辑,如果用户问了一些我不应该回答的问题。我不应该给出响应,我应该直接说,抱歉,我无法回答这个问题,或者为这些情况设置一段标准文本,并采取一些机制来限制这种情况等等。
Demetrios:而且最好是并行处理,而不是试图捕获响应。在发出 LLM 调用之前确保它没问题。
Sourabh Agrawal:我的意思是,一般来说是的,因为你看,如果你捕获响应,它会增加另一层延迟。
Demetrios:对。
Sourabh Agrawal:最终,95% 的用户并不是想做这些事。很多用户是真心想使用它,而你不会想构建一个会崩溃、给他们带来问题、增加延迟的东西,仅仅是为了解决那 5% 的问题。所以你必须认识到这个事实,并想出巧妙的方法来做这件事。
Demetrios:是的,我记得我当时和一家叫 honeycomb 的公司的一个叫 Philip 的人聊天,他们给他们的产品添加了一些 LLM 功能。他说当人们试图进行 prompt 注入或越狱时,这相当明显,因为调用量很大。它开始变得不像人类的使用方式,通过这种方式很容易发现。你见过这种情况吗?你看到人们试图越狱时有哪些迹象?
Sourabh Agrawal:是的,我认为我们也看到了,通常我们还会看到的是,当有人试图越狱时,他们的问题或 prompt 的长度通常会比任何平均问题长得多,因为他们会包含各种指令,比如“忘记一切,你知道,你可以说所有这些事情。”然后,这个问题也会出现,因为当他们试图越狱时,他们尝试一种技术,不行;尝试另一种技术,不行;然后再尝试第三种技术。所以会有流量爆发。甚至在情感方面,通常在这些情况下,我们看到的情感或连贯性比一个真实的问题要低,因为人们只是试图把所有这些指令都塞进响应中。所以肯定有一些迹象已经表明用户正在试图越狱。我认为这些都是可以捕捉到它们的迹象。
Demetrios:我猜你已经设置好了,当发生这些事情时可以设置警报,然后它至少会标记出来,让人类查看,或者可能只是要求那个人冷静一分钟。“嘿,你在这里做了一些可疑的活动。我们希望看到一些不同的。”所以我想你刚才打算给我们展示一下 UpTrain,对吧?我想看看你有什么。我们能看一看吗?
Sourabh Agrawal:是的,当然。让我分享我的屏幕,我可以给你看看它是什么样子。
Demetrios:酷,非常酷。好的。就在你分享屏幕的时候,我想提一下,为了这次演讲,我穿了我最喜欢的衬衫,上面写着,我不知道大家能不能看到,但它写着,“我比 Chat GPT 更常产生幻觉。”
Sourabh Agrawal:我觉得那件衬衫很酷。
Demetrios:我们这里有什么?
Sourabh Agrawal:是的,好的,让我开始吧。我在 UpTrain 上创建了一个账户。我们有一个 API 方法,通过 API 计算这些评估。所以你会得到一个 API 密钥,就像你在 ChatGPT 或其他地方得到的那样,然后你就可以进行 UpTrain 的日志记录和评估,并且你可以提供你的数据。所以你可以提供你的问题、响应、上下文,并且你可以定义你想要评估的检查项。所以如果我创建一个 API 密钥,我就可以复制代码,我这里已经有了。所以我就向你展示一下。我们有两种机制。
Sourabh Agrawal:一种是你可以直接运行评估,所以你可以定义,比如,好的,我想运行上下文相关性检查,我想运行响应完整性检查。类似地,我想运行越狱检查。我想进行安全检查。我想检查用户满意度等等。然后当你运行它时,它会返回一个分数,并为你提供为什么针对这个特定问题给出了这个分数的解释。
Demetrios:你能放大一点吗?是的,加点码。好的,这样了。
Sourabh Agrawal:这本质上是一个 API 调用,它接收数据,接收你想运行的检查列表,然后返回分数和解释。所以基于这个分数,你可以设置逻辑,对吧?如果越狱分数大于 0.5,那么你就不想展示它。比如你想切换回默认响应等等。然后你还可以配置我们记录所有这些得分,我们有仪表板供你访问它们。
Demetrios:我刚才正想问你有没有仪表板。每个人都喜欢一个好的仪表板。让我们看看。太棒了。
Sourabh Agrawal:所以让我们看看。好的,让我们看这个。所以在这个例子中,我刚刚针对一些查询运行了上下文相关性检查。所以你可以看到它在你的数据集上是如何变化的。如果你运行相同的检查。我们也在监控设置中运行这个,所以你可以看到它随时间如何变化。然后最后你有所有的数据。所以我们提供所有的数据,你可以下载它,运行任何你想运行的分析,然后你还可以,我们最近构建的一个功能,并且在我们的用户中非常受欢迎,就是你可以过滤掉模型失败的案例。
Sourabh Agrawal:所以假设我找出所有响应得分为零的案例,然后我就可以找到共同的主题。所以我可以查看所有这些案例,然后找出,好的,它们之间有什么共同的主题?也许,正如你所见,它们都在谈论法国、罗密欧与朱丽叶等等。所以它可以找出这些案例中的一个共同主题。这样就能让你了解问题出在哪里,以及需要改进什么。拼图的第二块是实验。所以,你不仅可以评估它们,还可以用它来实验不同的设置。所以比如说。让我找出最近我运行的一个实验。
Demetrios:好的。
Sourabh Agrawal:所以假设我想比较两个不同的模型,对吧?比如 GPT 3.5 和 Claude 2。所以我现在可以看到,好的,Claude 2 提供了更简洁的响应,但在事实准确性方面,比如 GPT 3.5 更准确。所以我现在可以根据我的应用,根据我的用户需求,决定这些标准中哪个对我更有意义,对我的用户、我的数据更有意义,并决定我要使用哪个 prompt 或哪个模型。
Demetrios:这完全就是我刚才说的,当你拿到一个新模型时,在某些指标上你看到它表现更差。但你关注的核心指标上,它却表现得更好。所以你得自己解释一下,为什么它在那些其他指标上做得更好?我不知道我理解得是否正确。我们可以设置我们关注的指标。
Sourabh Agrawal:是的,实际上,我来给你看看指标的种类。另外,我刚才忘了提,UpTrain 是开源的。
Demetrios:不错。
Sourabh Agrawal:是的。所以我们有这些预配置的检查项,你无需做任何事情。你只需说 UpTrain 响应完整性检查或 UpTrain prompt 注入检查。所以这些都是预配置好的。我们已经完成了获取所有这些分数等等的艰苦工作。除此之外,我们还为你提供了自定义这些指标的方式,这样你可以定义一个自定义准则。你可以更改你想要的 prompt。你甚至可以定义一个你想要作为评估器的自定义 python 函数。
Sourabh Agrawal:所以我们提供了所有这些功能,这样他们既可以利用已有的东西,也可以创建对他们有意义的自定义东西,并且能够真正理解他们的系统运行状况。
Demetrios:哦,这真的很酷。我真的很喜欢定制这个想法,能够设置自定义的(指标),同时也有一些可以直接使用的,让我们的生活更轻松。
Sourabh Agrawal:是的。而且我认为两者都需要,因为你需要一个起点,随着你前进,你也会想要,就像,你无法用预配置的覆盖所有东西。所以你需要有一种方式来定制事物。
Demetrios:是的。特别是当数据开始流动时,你就会开始看到究竟还需要评估哪些其他方面。
Sourabh Agrawal:是的,非常正确。
Demetrios:随便问一个。我不是在告诉你怎么构建你的产品或什么,但你有没有想过建立一个社区贡献的指标?比如,所有这些人们正在创建的自定义指标,也许有一个中心,我们可以添加我们的自定义(指标)?
Sourabh Agrawal:是的,我认为这真的很有趣。这也是我们一直在认真思考的事情。它还没有构建出来,但我们计划很快朝那个方向发展。我们想创建一种类似商店的东西,人们可以在那里添加他们的自定义指标。所以。是的,你说对了。我想我也相信这是发展方向,我们很快就会在这方面发布一些东西。
Demetrios:不错。所以 Drew 问,如何处理不同类型应用的越狱?医疗应用的越狱会和金融应用的越狱不同,对吧?是的。
Sourabh Agrawal:我们的越狱检查是这样配置的。所以它会考虑你所谓的“模型目的”。所以你定义你的模型的目的是什么?对于金融应用,你需要说,“好的,这个 LLM 应用旨在回答金融查询等等。”对于医疗应用,你会有不同的目的,所以你可以配置你的应用的目的是什么。然后当我们收到用户查询时,我们检查用户查询是否在(范围内)。首先,我们还会检查非法活动等等。然后我们还会检查它是否在该目的的范围之内(预览之内)。
Sourabh Agrawal:如果不是,那么我们就将其标记为越狱场景,因为用户正在试图做一些超出其目的的事情,所以这就是我们解决它的方法。
Demetrios:不错,老兄。好吧,这太棒了。在我们结束之前你还有什么想说的吗?
Sourabh Agrawal:没有,我的意思是,这是一次很棒的对话。很高兴来到这里,也很高兴与你交谈。
Demetrios:是的,我很高兴我们解决了这个问题,并且你能够向我们展示一下 UpTrain。开源这一点太酷了。所以我建议大家去看看,让你的 LLM 更自信地工作,并确保没有人把你的聊天机器人当作他们的 GPT 补贴,就像 GM 的那个用例一样。是的,太棒了,老兄。我很感激。
Sourabh Agrawal:是的,请访问 GitHub.com/uptrainai/uptrain 查看我们。
Demetrios:就这样。如果还有其他人想来 Vector Space Talks 和我们聊聊你们正在做的所有很酷的事情,请联系我们,我们稍后会再见到各位宇航员。不要在向量空间里迷路了。
Sourabh Agrawal:好的,谢谢。非常感谢。很高兴交谈。再见。拜拜。
Demetrios:好的,老兄。就这样。我们没问题了。我真不知道该怎么结束这个,因为我没法通过手机操作,也没法通过电脑操作。太奇怪了。所以从技术上讲,现在没人控制。所以我觉得如果我们俩都退出去,它应该会停止。好的。
Demetrios:是的,但这太棒了,老兄。这太酷了。我真的很喜欢你正在做的事情,而且这很有趣。我不知道我们在 LinkedIn 上是不是还没连接?我今天刚刚发布了一个视频,内容是我介绍几种不同的幻觉缓解技术。所以你谈论这个真是太及时了。我想很多人都在思考这个问题。
Sourabh Agrawal:对于企业来说,这绝对是一个大问题。对吧?我的意思是,你如何让它安全?你如何让它准备好投入生产?所以我肯定会看看你的视频。那也会非常有趣。
Demetrios:你现在就去我的 LinkedIn。就像 LinkedIn.com/in/dpbrinkm 或者直接搜索我。我想我们已经连接了。我们连接了。好的,酷。是啊,所以,是的,看看我刚才发的最后一个视频,因为那完全是关于这个的。有一篇很酷的论文刚出来,你可能看到了。它全是关于缓解 AI 幻觉的,它分解了所有 32 种技术。
Demetrios:我在我做的另一个播客上和 Weights & Biases 的人聊了聊,我昨天刚刚和他们聊完,我当时就说,老兄,这种“评估数据集即服务”的东西感觉没人做。我想大概是因为,而且你是专家,所以我很想听听你怎么说,但我想可能是因为你并不那么需要它。用相对少量的数据,你就可以开始进行一些非常好的评估。所以这比付钱给别人好多了。
Sourabh Agrawal:而且我认为作为一项服务也没有意义,因为外部人员并不最适合为你的用例制作数据集。
Demetrios:对。
Sourabh Agrawal:是你。你必须根据用户实际在问的问题来创建一个好的数据集。你可以有一个方法,这也是 UpTrain 所做的。我们基本上根据用户的反馈以及正在生成的分数,帮助你从这个数据集中抽样和挑选出正确的案例。但对于外部人员来说,很难为你精心制作出真正好的问题、好的查询或对你的业务有意义的好案例。
Demetrios:因为另一个从这个延伸出来的点是技术。让我看看我能否把所有这些词组成一个连贯的句子给你。基本上就是,好吧,评估数据集作为一项服务没多大意义,因为你是最了解情况的人。用相对少量的数据,你就能很快启动。我想到的是,关于这些幻觉缓解技术怎么样,这样你几乎可以选择。所以在这篇论文中,对吧,他们使用了大约 32 种不同的技术,其中一些对 RAG 应用非常相关。他们有大约五种或四种不同类型的技术。当你处理 RAG 应用以缓解幻觉时,他们有一些,比如,好的,如果你正在蒸馏一个模型,这里是如何确保新的蒸馏模型不会产生那么多幻觉。
Demetrios:抱歉,是输出。它会试图识别是否有任何可以进行事实核查的内容。所以如果它说人类在 1969 年登陆了月球,它就会识别出这一点。然后通过它的知识图谱,或者通过形成一个搜索查询并去互联网上搜索,它会在输出中验证那个事实是否真实。所以那就像是一种技术,对吧?所以我在想的是,哦,天哪,如果你能非常容易地使用所有这些不同的技术,而不是说,“太棒了,我在论文里读到了。”现在,如果我自己不去训练一个带有知识图谱的 LLM,我他妈怎么才能得到一个呢?
Demetrios:诸如此类。但我当时在想的是,你如何获得一个产品?或者你能否将这些技术产品化?所以,好吧,太好了。它们都在这篇论文里,但在 UpTrain 里,我们能否直接说,哦,你想试试这种新的缓解技术?我们为你提供便利。你只需将其选为一种幻觉缓解技术即可。然后我们来做那些繁重的工作,就像,有一个。你听说过 Fleek 吗?那是我在视频中提到的一个。Fleek 就像是一个知识图谱 LLM,它是专门为对抗幻觉而创建的。他们的方式是,他们说那个 LLM 会试图在 prompt 或输出中的任何地方识别出来。
Sourabh Agrawal:操,是的,我觉得这是一个很棒的建议。我肯定会去看看。我们还想做的另一件事是与所有这些技术集成,因为这些技术真的很好,它们有助于解决很多问题,但使用它们并不简单。最近我们集成了 Spade。它基本上是一种技术,我在……
Demetrios:我实际上又做了一个关于 Spade 的视频。
Sourabh Agrawal:是的,基本上。我想我也会看看这些幻觉(缓解技术)。所以现在我们做的是基于这篇叫做 FactScore 的论文,它不像在互联网上检查,它只在上下文中检查来验证这个事实是否可以从上下文中得到证实。但我认为如果人们可以随意尝试这些技术,看看它们是否真的在他们的数据上有效,那就太酷了。
Demetrios:这正是我当时想的,就是,哦,你能看到吗?它能给你更好的结果吗?然后另一部分是,哦,等等,这实际上,我能在我的系统里同时放两三个这样的东西吗?对。也许这是过度工程,也许不是。我不知道。所以那里有很多有趣的事情可以发生,思考起来很迷人。
Sourabh Agrawal:是的,当然。我认为实验是这里的关键,对吧?我的意思是,除非你试过了,否则你不知道什么有用。如果有些东西奏效并改进了你的系统,那么它绝对是值得的。
Demetrios:谢谢你的解答。
Sourabh Agrawal:我们会研究的。
Demetrios:老兄,太棒了。很高兴和你聊天,兄弟。我们回头再聊,兄弟。
Sourabh Agrawal:好的,非常感谢。很高兴交谈。再见。拜拜。