百万高低文RAG Agent还能这么玩
Qwen-Agent的设计思绪只管与LangChain相似,但其颁布几个的Agent示例却很无心思。当天本文将深化讨论如何经常使用Qwen-Agent将高低文记忆裁减到百万量级,让Agent的自动失掉更宽泛的运行。
暴力关键字检索优于向量打算
在处置大规模文本数据时,一个关键的应战是如何极速准确地定位到最关系的消息块。Qwen-Agent经过一种看似“暴力”的方法——,基于LLM判别关系性AND基于关键字检索,处置了这一难题。这种方法只管便捷,但在实践操作中却显示出了意想不到的成果。
关键字检索的基本原理
关键字检索是一种间接且高效的方法,尤其是在面对大规模文本数据时。经过预先定义的关键字,咱们可以极速定位到蕴含这些关键字的文本块。这种方法的长处在于其速度和便捷性,尤其是在处置大规模数据时。
成功关键字检索的步骤
示例代码
from qwen_agent.agents import Assistantfrom qwen_agent.gui import WebUIdef 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 agentbot = Assistant(llm={'model': 'qwen-plus'},name='Assistant',descriptinotallow='经常使用RAG检索并回答,允许文件类型:PDF/Word/PPT/TXT/HTML。')chatbot_config = {'prompt.suggestions': [{'text': '引见图一'},{'text': '第二章第一句话是什么?'},]}WebUI(bot, chatbot_cnotallow=chatbot_config).run()if __name__ == '__main__':# test()app_gui()
通常案例
假定咱们有一个蕴含100万字的维基百科语料库,其中蕴含了少量对于历史、迷信、文明等方面的常识。如今,用户想要查问爱因斯坦在1905年宣布了什么关键的通常?用英语回答
传统的向量检索方法:
因为维基百科语料库蕴含了少量对于爱因斯坦的消息,传统的向量检索方法很或者会前往很多与用户查问不间接关系的文本块,例如爱因斯坦的生平引见、其余迷信家的通常等等,造成检索精度降低。
Qwen-Agent的关键字检索方法:
{"消息": ["爱因斯坦在1905年宣布了什么关键的通常"],"指令": ["用英文回复"]}
经过这种模式,Qwen-Agent可以更精准地定位到与用户查问关系的文本块,防止了有关消息的搅扰,提高了检索效率和答案的准确性。
检索之前先做推理,多跳疑问又快又准
在基于文档的疑问回答中,一个典型的应战是多跳推理。多跳推理是指须要结合多个文档的消息才干回答用户疑问的状况。例如,用户或者会问“《红楼梦》的作者是谁的粉丝?”,要回答这个疑问,就须要先找到《红楼梦》的作者是曹雪芹,而后找到曹雪芹是哪个朝代的人,最后才干找到答案。
什么是多跳推理
多跳推理是指在回答一个疑问时,须要超过多个不同的文本块或消息源,逐渐推理失掉最终答案。这种方法能够提供更准确和片面的回答,但也参与了计算复杂度。
多跳推理的成功步骤
通常案例
例如,思考回答疑问:“与第五交响曲创作于同一世纪的交通工具是什么?
以用促训,Agent自动反哺模型
官网试验结果标明,4k-自动体在处置长高低文方面的体现优于32k-模型。这种分块阅读一切高低文的模式,使得Agent能够克制原生模型在长高低文训练上的无余。而Agent自动在经常使用环节中消费的数据,则能迭代用于后续长文本高低文的进一步微调。
自动反哺模型的成功步骤
总结
经过本文的讨论,咱们了解到Qwen-Agent如何经过自动体裁减模型的高低文记忆,以及如何应用这些自动体来优化模型的功能。这不只为AI技术的开展提供了新的思绪,也为咱们在处置大规模文本数据时提供了有效的工具。宿愿这篇文章能为大家在实践运行中提供一些启示和协助。