百万上下文RAG新玩法:Agent智能应用探索

百万上下文RAG新玩法:Agent智能应用探索
在AI技术飞速发展的今天,我们见证了许多令人惊叹的突破。最近,Qwen2模型的开源引起了广泛的关注,它不仅展示了超越闭源模型的能力,还带来了一个全新的框架——Qwen-Agent
www.zeeklog.com  - 百万上下文RAG新玩法:Agent智能应用探索

Qwen-Agent的设计思路虽然与LangChain相似,但其发布几个的Agent示例却很有意思。今天本文将深入探讨如何使用Qwen-Agent将上下文记忆扩展到百万量级,让Agent的智能得到更广泛的应用。

暴力关键字检索优于向量方案

在处理大规模文本数据时,一个关键的挑战是如何快速准确地定位到最相关的信息块。Qwen-Agent通过一种看似“暴力”的方法——,基于LLM判断相关性 AND 基于关键字检索,解决了这一难题。这种方法虽然简单,但在实际操作中却显示出了意想不到的效果。

关键字检索的基本原理

关键字检索是一种直接且高效的方法,尤其是在面对大规模文本数据时。通过预先定义的关键字,我们可以快速定位到包含这些关键字的文本块。这种方法的优势在于其速度和简单性,尤其是在处理大规模数据时。

实现关键字检索的步骤
  1. 预处理文本数据:将大规模文本数据分块。
  2. 基于LLM判断相关性:并行处理每个分块,让聊天模型评估其与用户查询的相关性, 如果相关则输出相关句子用于后续检索。
www.zeeklog.com  - 百万上下文RAG新玩法:Agent智能应用探索
  1. 分析用户指令,提取关键字:通过LLM对用户指令进行两个方面的预处理。1.区分指令信息与非指令信息。2.从查询的信息部分推导出多语言关键词
www.zeeklog.com  - 百万上下文RAG新玩法:Agent智能应用探索
  1. 最终检索:运用BM25这一传统的基于关键词的检索方法,找出与提取关键词最相关的块并生成最终答案,这一步骤的实现方式与通常的RAG相同。。
示例代码
from qwen_agent.agents import Assistant
from qwen_agent.gui import WebUI

def test():
    bot = Assistant(llm={'model': 'qwen-plus'})
    messages = [{'role': 'user', 'content': [{'text': '介绍图一'}, {'file': 'https://arxiv.org/pdf/1706.03762.pdf'}]}]
    for rsp in bot.run(messages):
        print(rsp)

def app_gui():
    # Define the agent
    bot = Assistant(llm={'model': 'qwen-plus'},
                    name='Assistant',
                    description='使用RAG检索并回答,支持文件类型:PDF/Word/PPT/TXT/HTML。')
    chatbot_config = {
        'prompt.suggestions': [
            {
                'text': '介绍图一'
            },
            {
                'text': '第二章第一句话是什么?'
            },
        ]
    }
    WebUI(bot, chatbot_config=chatbot_config).run()

if __name__ == '__main__':
    # test()
    app_gui()

实践案例

假设我们有一个包含100万字的维基百科语料库,其中包含了大量关于历史、科学、文化等方面的知识。现在,用户想要查询 爱因斯坦在1905年发表了什么重要的理论?用英语回答

传统的向量检索方法:

  1. 将整个维基百科语料库转换为向量表示,并存储在向量数据库中。
  2. 将用户查询转换为向量,并在向量数据库中进行相似度检索。
  3. 返回与用户查询向量最相似的文本块。

由于维基百科语料库包含了大量关于爱因斯坦的信息,传统的向量检索方法很可能会返回很多与用户查询不直接相关的文本块,例如爱因斯坦的生平介绍、其他科学家的理论等等,导致检索精度下降。

Qwen-Agent的关键字检索方法:

  1. 将维基百科语料库切分为多个小的文本块,每个文本块包含512字。
  2. 将用户问题通过LLM转换为检索关键字,例如“爱因斯坦”、“1905年”、“理论”。并区分检索信息与指令
{
"信息": ["爱因斯坦在1905年发表了什么重要的理论"], 
"指令": ["用英文回复"]
} 

3. 基于检索信息(爱因斯坦在1905年发表了什么重要的理论),并行过滤所有分块,查询相关性,并抽取相关语句。 4. 基于检索关键字(“爱因斯坦”、“1905年”、“理论”)检索分块。 5. 将匹配到的文本块输入到Qwen模型中,模型会根据这些文本块的内容推理出答案:“爱因斯坦在1905年发表了狭义相对论。”

通过这种方式,Qwen-Agent可以更精准地定位到与用户查询相关的文本块,避免了无关信息的干扰,提高了检索效率和答案的准确性。

检索之前先做推理,多跳问题又快又准

在基于文档的问题回答中,一个典型的挑战是多跳推理。多跳推理是指需要结合多个文档的信息才能回答用户问题的情况。例如,用户可能会问“《红楼梦》的作者是谁的粉丝?”,要回答这个问题,就需要先找到《红楼梦》的作者是曹雪芹,然后找到曹雪芹是哪个朝代的人,最后才能找到答案。

什么是多跳推理

多跳推理是指在回答一个问题时,需要跨越多个不同的文本块或信息源,逐步推理得到最终答案。这种方法能够提供更准确和全面的回答,但也增加了计算复杂度。

多跳推理的实现步骤
  1. 初步推理:首先将用户问题转化分解为逐级递进的子问题。
  2. 子问题检索:调用上述RAG的能力,进行问题检索与回答。
  3. 多跳推理:逐步在推理链上进行推理,得到最终答案。
www.zeeklog.com  - 百万上下文RAG新玩法:Agent智能应用探索
实践案例

例如,考虑回答问题:“与第五交响曲创作于同一世纪的交通工具是什么?

  1. 首先将问题转化为子问题“贝多芬的第五交响曲是在哪个世纪创作的?“
  2. 通过RAG获取答案为:19世纪
  3. 提出新的子问题:“19世纪期间发明了什么交通工具?“
  4. 通过RAG获取答案为:自行车
  5. 最后推理出与第五交响曲创作于同一世纪的交通工具是自行车。

以用促训,Agent智能反哺模型

官方实验结果表明,4k-智能体在处理长上下文方面的表现优于32k-模型。这种分块阅读所有上下文的方式,使得Agent能够克服原生模型在长上下文训练上的不足。而Agent智能在使用过程中生产的数据,则能迭代用于后续长文本上下文的进一步微调。

www.zeeklog.com  - 百万上下文RAG新玩法:Agent智能应用探索
智能反哺模型的实现步骤
  1. 智能体训练:通过与用户交互,训练智能体,使其能够处理复杂的上下文推理任务。
  2. 数据合成:利用智能体生成的数据,构建新的训练数据集。
  3. 模型微调:使用新生成的数据集对模型进行微调,提高模型在长上下文任务中的表现。

总结

通过本文的探讨,我们了解到Qwen-Agent如何通过智能体扩展模型的上下文记忆,以及如何利用这些智能体来提升模型的性能。这不仅为AI技术的发展提供了新的思路,也为我们在处理大规模文本数据时提供了有效的工具。希望这篇文章能为大家在实际应用中提供一些启发和帮助。


以上就是本文的全部内容,希望能够帮助新手程序员更好地理解Qwen-Agent的工作原理,并激发大家对AI技术更深层次的探索和思考。如果你对本文有任何疑问或建议,欢迎在评论区留言,我们一起讨论。

www.zeeklog.com  - 百万上下文RAG新玩法:Agent智能应用探索

AI大模型学习路线

如果你对AI大模型入门感兴趣,那么你需要的话可以点击这里大模型重磅福利:入门进阶全套104G学习资源包免费分享!

扫描下方csdn官方合作二维码获取哦!

www.zeeklog.com  - 百万上下文RAG新玩法:Agent智能应用探索

这是一份网络安全从零基础到进阶的学习路线大纲全览,小伙伴们记得点个收藏!

www.zeeklog.com  - 百万上下文RAG新玩法:Agent智能应用探索


第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

100套AI大模型商业化落地方案

www.zeeklog.com  - 百万上下文RAG新玩法:Agent智能应用探索

大模型全套视频教程

www.zeeklog.com  - 百万上下文RAG新玩法:Agent智能应用探索

200本大模型PDF书籍

www.zeeklog.com  - 百万上下文RAG新玩法:Agent智能应用探索

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

LLM面试题合集

www.zeeklog.com  - 百万上下文RAG新玩法:Agent智能应用探索

大模型产品经理资源合集

www.zeeklog.com  - 百万上下文RAG新玩法:Agent智能应用探索

大模型项目实战合集

www.zeeklog.com  - 百万上下文RAG新玩法:Agent智能应用探索

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

www.zeeklog.com  - 百万上下文RAG新玩法:Agent智能应用探索

Read more

印度统治阶级锁死底层人的5大阳谋

印度统治阶级锁死底层人的5大阳谋

基于社会学和心理学视角: 1. 情感道德: 统治阶级通过塑造道德规范和情感价值观,引导底层人群的行为。例如,宣扬“勤劳致富”“忍耐美德”等观念,让底层人接受现状并自我约束。这种道德框架往往掩盖结构性不平等,使人们将个人困境归咎于自身而非系统。 2. 欲望控制: 通过消费主义和媒体宣传,统治阶级刺激底层人的物质与社会欲望(如名牌、地位),但同时设置经济壁垒,使这些欲望难以实现。底层人被困在追求“更好生活”的循环中,精力被分散,无法聚焦于挑战权力结构。 3. 情绪煽动: 利用恐惧、愤怒或民族主义等情绪,统治阶级可以通过媒体或公共事件转移底层人对社会问题的注意力。例如,制造外部敌人或内部对立(如阶层、种族矛盾),让底层人内耗而非联合反抗。 4. 暴利诱惑: 通过展示少数“成功案例”或快速致富的机会(如赌博、投机),诱导底层人追逐短期暴利。这种机制不仅让底层人陷入经济风险,还强化了对现有经济体系的依赖,削弱长期变革的可能性。 5. 权力震撼: 通过展示统治阶级的权力(

By Ne0inhk