我们许多人对人工智能的一个误解是,我们的期望是:
graph TD
Question -->|"昂贵的人工智能魔法"| Answer
Answer["完美的答案"]
花费大量金钱购买旗舰模型,结果却不尽如人意,这可能会让人感到非常沮丧。
在本主题中,我想花一些时间调整期望,并指出 Discourse AI 提供的各种功能,以帮助获得更好的答案。
Discourse AI 实际工作原理
现实情况更为微妙。当您提出问题时,会发生以下情况:
graph TD
Question --> Consolidation[问题整合]
Consolidation --> RAG[RAG 系统]
RAG --> ToolSelection[工具选择]
ToolSelection --> Search[搜索]
ToolSelection --> Categories[类别]
ToolSelection --> Tags[标签]
Search --> Context[收集上下文]
Categories --> Context
Tags --> Context
Context --> Answer[生成答案]
- 首先会整合并理解您的问题
- 我们的 RAG 系统会搜索可用的知识(可选)
- 根据搜索结果,它会决定使用哪些工具(可选)
- 工具会收集特定信息
- 所有信息会合并以生成答案
上下文至关重要
在使用人工智能系统回答问题时,上下文是关键。
像 GPT-4 或 Claude 3.5 Sonnet 这样的大型语言模型 (LLM) 都是在海量公共数据上进行训练的。然而,有两个限制因素使其在回答特定领域问题方面不够理想:
- LLM 是基于公共数据进行训练的
- LLM 有一个训练截止日期,这意味着几个月前的公共数据很可能在数据集中缺失
对于封闭论坛而言,数据集中没有任何内容,因此上下文变得更加关键。
上下文是指我们在 LLM 回答问题之前提供给它的信息,以帮助它正确回答。
如何获取上下文?
可以通过以下几种方式提供上下文:
- 通过 RAG(检索增强生成)自动获取 - 当我们将文档上传到某个角色时,我们可以在回复之前搜索文档中的答案。我们首先整合您的问题,然后使用语义搜索来搜索内容。这有助于指导使用哪些工具。
- 通过工具自动获取 - LLM 可以使用工具(例如搜索或阅读主题)来根据 RAG 指导查找其他信息。
- 手动获取 - 您可以粘贴大量文本,然后向 LLM 提出有关该文本的问题。
基于工具的上下文
Discourse Forum Helper 使用搜索、阅读主题和帖子、列出类别或标签等工具。
当您向 Forum Helper 提问时,模型首先使用 RAG 来理解可能相关的内容,然后决定哪些工具将有助于获得更好的答案。
在此示例中,您可以看到我询问了论坛助手我最近在做什么,它反过来决定搜索过去一周 Sam 发布的内容,并获得了 21 个结果。
要了解模型从这次搜索中获得了什么新上下文,您可以启用设置:AI bot debugging allowed groups
它会在每个帖子的底部添加一个调试按钮,点击后可以显示提供给 LLM 的确切上下文。
Discourse 搜索工具的选项非常丰富:
这既是好事也是坏事。如果选项太多,LLM 经常会做出次优的选择,我们试图将选项数量保持在……不太高的水平……但根据您的需求,您可能更倾向于使用自定义工具进行搜索。
如果我没有得到预期的结果该怎么办?
鉴于上下文至关重要,首先要确认的是:
- RAG 系统是否找到了相关的上下文来指导工具?
- LLM 是否根据该指导使用了正确的工具?
- 工具是否找到了预期的结果?
例如,看这个失败案例:
这是 RAG 指导和工具使用方面的典型失败。
LLM 搜索了:
bug critical urgent broken order:latest status:open status:public
此搜索的关键字部分相当糟糕,只产生了一个结果,语义搜索很难找到结果,因为任何时候有人大喊大叫,它都会将其视为紧急情况。
可能产生更好结果的是:
查找过去两周内报告的所有按 op_likes 排序的未关闭错误。但是,此特定子集的信息目前无法通过搜索功能获得,需要自定义工具。
鉴于这里存在巨大的差异和细微差别,首先要做的是监控用户与您的机器人现有的交互,并尽可能多地收集失败案例。
如何处理失败的案例?
当出现交互失败时,您有几种选择:
- 您可以改进系统提示,以更好地提示机器人。
- 您可以在论坛上记录信息,为机器人提供更好的搜索结果——您可以优先处理您的文档类别,使其更有可能被找到。
- 您可以上传包含更多上下文的文档,我们将把文档分成片段,并将最接近的片段提供给整合后的问题,以帮助机器人定位。
- 如果您的角色主要关注搜索,则强制使用搜索工具。
- 您可以开发自定义工具以更好地满足您的需求。
- 您可以增加提供给 LLM 的上下文量(更多搜索结果等)。
人工智能可能很模糊,解决一个问题可能会带来另一个问题
请注意,创建“完美”的人工智能问答机器人是一个旅程。创建受监控的反馈循环并定期评估其表现,将使您能够随着时间的推移不断改进它。
请注意技术的构建方式,如果您需要访问 10,000 篇帖子的上下文来回答一个问题,那么使用当前的上下文窗口将整个帖子列表输入到上下文中可能不可行。
关键在于理解,获得更好的结果是一个迭代的过程。


