AI Agent在问答与排障中的实践探索

举报
信也科技布道师 发表于 2024/11/11 14:28:35 2024/11/11
【摘要】 前言人工智能时代已然到来,它不仅深刻地改变了我们的日常生活,比如通过智能助手安排日程、利用推荐系统享受个性化服务,还极大地推动了各行各业的创新与发展。从医疗健康到环境保护,从智能制造到金融服务,AI的应用正在不断拓宽边界,提升效率与精准度。什么是 AI Agent?根据丹尼尔·卡尼曼的著作《思考,快与慢》,人类的思维可以分为两大系统:系统1和系统2。系统1负责直觉式的快速思考,这种思考往往是...

前言

人工智能时代已然到来,它不仅深刻地改变了我们的日常生活,比如通过智能助手安排日程、利用推荐系统享受个性化服务,还极大地推动了各行各业的创新与发展。从医疗健康到环境保护,从智能制造到金融服务,AI的应用正在不断拓宽边界,提升效率与精准度。

什么是 AI Agent?

根据丹尼尔·卡尼曼的著作《思考,快与慢》,人类的思维可以分为两大系统:系统1和系统2。系统1负责直觉式的快速思考,这种思考往往是无意识的;而系统2则擅长进行有意识的逻辑推理和主动控制。

在探讨大型模型的思维能力时,我们首先可以观察到,这些大模型可能具备了类似人类的分析问题能力,它们能够理解、分析和解决复杂问题。进一步地,人类与动物的一个重要区别在于人类擅长创造和使用工具。随着大模型认知能力的不断提升,当它们遇到自身不擅长的领域时,这些大模型可能会展现出一种类似于人脑使用工具的能力——即寻找并利用适当的工具来解决问题,而不是直接依靠自身能力去解决。

基于RAG的知识问答实践

RAG核心流程 & 实践挑战

问答助手:基于RAG技术实现问答助手,特别是针对测试环境场景的一些常见问题,回答失败原因以及解决思路

RAG(Retrieval-Augmented Generation)结合检索(Retrieval)和生成(Generation)的AI模型架构

初级RAG主要包含以下几个流程:

1. 建立索引:数据清洗并分块,将分块后的知识通过Embedding模型产出语义向量并建立索引;

2. 检索:通过用户query使用相同的Embedding模型,检索上下文;

3. 生成:将给定问题和相关文档合并为新的提示,由LLM基于提供的信息回答问题。

RAG通过检索现有大量知识结合强大的生成模型,为复杂的问答带来全新的解决方案,而在产品建设过程中遇到诸多挑战:

1. 数据质量差导致检索效果差:检索阶段的输出影响生成阶段的输入和最终的输出质量。RAG数据库中存在大量的错误信息并检索到,可能导致模型生成的错误,即使在检索阶段做大量工作,可能对结果的影响也微乎其微。

2. 数据向量化的信息缺失:数据向量化缺失可能会导致一定程度的信息损失,文本数据的复杂性和多样性很难用有限的向量来完全表达,导致向量化后可能会缺失一些文本数据的细节和特征,从而影响文档检索的准确率。

3. 大模型生成效果差:没有利用好提示词,导致大模型回答效果不尽人意。

构建高质量知识库

在构建知识库的时候,因为直接使用了未经过处理的记录表格作为知识库输入,发现RAG回答效果很差

结构化知识库:

1.调整知识库的结构:将知识库的内容简化为(Q问题,A解答),避免噪声干扰

2.文档分割策略:按行分割,保证每行的QA记录能够独立分割开来


增强检索能力

在召回测试当中,一些极低分数的分段文本知识也会被召回,就会导致回答的效果下降


优化迭代检索参数

1. 确定检索方式

  • 全文检索:工作原理是通过在文档中进行关键词匹配,缺乏对语义的理解
  • 向量检索:通过计算向量距离,实现语义匹配检索。当查询语义比较复杂或模糊时,向量检索无法准确理解用户的意图,会导致准确率降低
  • 混合检索:结合了全文搜索和向量搜索的优势

2. 确定Rerank(重排序)模型参数

  • TOPK:需要检索到检索分数排名多少的分段结果
  • 分数阈值:只召回多少检索分数以上的结果

多级检索,提升召回准确率

有时候因为提问的问题其实非常的简短,仅仅依靠问题的嵌入匹配,召回分数会比较低,最好的方式是能够先通过对问题做向量检索

一级检索:只针对问题进行检索;

二级检索:检索响应的QA知识文本分段;

利用好提示词

提示工程 (Promot Enoineeing)当我们能够检索到足够准确的文本分段之后,接下来的任务就是引导大模型生成符合预期的回答,在这一过程中,利用好提示词显得非常重要。如下所示,是一个提示词框架以及一个提示词示例(引导大模型帮助解析json字符串的字段),可以让大模型得到更加清晰的指令,按照我们的预期采取行动

基于Function call的排障助手实践

排障助手:RAG问答助手在测试过程中能够高效解决常见问题。为了进一步提升问题排查的效率,于是利用AI技术,特别是基于大模型的Function call能力,实现了一款能够协助自动排查测试问题的AI助手


大模型Agent:能够模拟独立思考过程,灵活调用各类工具,逐步达成预设目标的智能体

在实践的过程中,我们面临两个问题:

1. 当我们在实现基于大模型Function call能力调用的时候,很多情况下可能需要调用多次才能解决我们的问题, 如何实现多轮调用?

2. 单一智能体是否真的能满足我们面对的复杂的 测试场景的问题排障?


如何实现多轮调用?

利用React架构,可以帮助我们实现Function call的多轮调用。

Reason and Act(ReAct)是一种人工智能技术框架,ReAct结合了推理和行动,通过交替执行一系列步骤(重复N次)——思考、行动和观察,使LLM能够解决复杂的任务。

ReAct框架的核心组件:

Thought(思考):Agent在做决策的思考过程

Action(行动):Function call调用

Observation(观察):工具调用的反馈信息,帮助大模型进一步决策


单一智能体排障场景下的局限性

局限性:当采用基于React框架的Agent,让大模型多次调用接口去帮助我们排查放款失败问题的时候,一切看起来似乎符合我们的预期,但是当我们希望通过设计这个Agent再去排查预审失败等等其他问题的时候,出现了问题

1. 迭代能力受限:无法在处理一个任务的时候迭代足够多的工具调用

2. 工具数量有限:能够使用的工具有限,无法同时排查多个问题

3. 影响模型回复时效:每次请求携带大量工具信息,模型需要理解所有工具信息进行决策

4. 消耗tokens:当我只想要排查放款失败,同样也会把用于排查预审失败的工具信息带上,造成不必要的tokens消耗

多智能体架构(Multi-Agent Architecture)

突破单一智能体的局限,根据任务需求动态地调用不同的智能体

1.高效迭代:动态地组合不同的工具,更高效的迭代过程

2.突破工具限制:每个智能体包含特定的工具集,扩展了系统的工具数量

3.加速模型响应:减少了模型在每次请求中需要理解和处理的数量

4.减少token消耗:避免了携带不必要的工具信息


展望未来

AI  Agent 将不仅仅局限于解决问题的执行层面,而是将进一步深入到如何解决问题的规划层面。

在工作场景中,我们对 AI Agent 的期待包括:

1. 连续执行:Agent 能够对用户的任务指令进行拆解,分解为多个步骤,对这些步骤进行规划排序并连续执行。

2. 完成复杂任务:目前 Agent 只能解决单个或少数简单任务,未来期望能够处理多个复杂任务。

3. 多步骤规划:Agent 在执行后续步骤的同时,能够保持对任务目标和前序任务的记忆,具备强大的步骤规划执行能力。


作者简介

Alex,基础框架研发资深工程师


招聘信息


拍码场

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。