AI智能总结
增强AI能力的Agent实践RAG与Tool Use的协同效应 曾禹飞58同城AILab DataFunSummit # 2024 个人简介 58同城AILab大模型算法工程师,关注大语言模型预训练/微调技术 自前负责58同城灵犀智能体平台中RAG、ToolUse的研发。 构建模型领先、敏捷易用的A/平台,助力AI应用快速落地 58同城平台业务背景介绍 AIAgent的核心技术与挑战 RAG和Tool Use实践 总结与展望 58 58同城平台业务背景介绍 58同城生活服务平台介绍 第二曲线~产业化(交易业务) 产业化就是把整个链条所有的信息流程全部在线化、数字化,并且能够无缝地将上下游协同起来。需要提供客户需要的所有服务,让客户在房产招聘、汽车、黄页等业务领域都能有更高的效率。 构建模型领先、敏捷易用的AI平台,加速AI应用落地 大语言模型平台支持内部AI应用数70+ 大模型技术渗透至企业全流程,支持内部超过70个业务和场景接入 58 02 AI Agent的核心技术与挑战 AI Agent智能体概述 AIAgent是以大语言模型为大脑驱动,具有自主理解、感知、规划、记忆和使用工具的能力,能自动化执行复杂任务的系统。简而言之,AIAgent就是具有独立思考和行动能力的AI程序, 业界各大厂商推出的AIAgent是一个一站式AI开发平台,用户无需编程.只需要通过简单配置即可快捷创建AI机器人:代表性的平台有GPTs(OpenAI),扣子(字节)、文心智能体平台(百度)等。 Agent核心技术 RAG能力建设:Retrieval-AugmentedGeneration检索增强生成,可以给大模型挂载文档(如私有知识库),提升回答能力 U:明天我穿什么衣服?A:你在哪个城市?[需调用查询天气API,缺乏地点参数】U:北京A:明天北京晴天,气温6~19度,建议别穿太多。[调用API,查询北京天气,查询结果交给大模型组织答案 58 Agent核心技术-RAG RAG检索一FLARE Stif all tokensof$thaveprobs≥YtSt = LM([Dqt, , y<tl)otherwiseActiveRetrievalAugmentedGeneration,EMNLP.2023.CarnegieMellon&SeaAILab&Meta RAG检索DRAGIN The entire input for LLM: Below are the external knowledge refer-ences:[1] Dii[2] Di2[3] Di3Please answer the question based on theexternal knowledge:Question: xxxAnswer: T DRAGIN:DynamicRetrieval Augmented Generation based on the Information Needs of Large LanguageModelsACL,2024,Department ofComputer Science and Technology,TsinghuaUniversity Agent核心技术-Tool Use VToolUse能力建设:工具调用,基于大模型理解,Agent可以调用APl U:明天我穿什么衣服?A:你在哪个城市?[需调用查询天气API,缺乏地点参数]U:北京A:明天北京晴天,气温6~19度,建议别穿太多。「调用API,查询北京天气,查询结果交给大模型组织答案] 58 Agent核心技术-Tool Use Tool Use 调用方式 Tool Use 实现方式 Tool Use实现方式 (1d) ReAct (Reason + Act) (1) Hotspot QA Question: Aside from the Apple Remote, what other devicecan control the program Apple Remote was originallydesigned tointeract with? (1c) Act-Only Act 4: Finish[yes] Tool Use实现方式 Tool Use 案例 1import openai2import requests3openai.api key="sk-****"4openai.apibase="https://api.moonshot.cn/v1'5-def get_from_chatgpt(GPT_MODEL, messages):6completion = openai,ChatCompletion.create(7model= GPT_MODEL,8messages=messages,9max_tokens = 128,10tools=tools11text = completion.choices[o].message12return text1314 -ifname"main":15# GPTMoDEL="gpt-4-turbo"16GPTMoDEL="moonshot-v1-8k"17messages =[18("role""system","content":"不要假设函数中需要的值,如果用户请求不明确,应该要求澄清。")19("role":"user""content":"请概括https://zhuanlan.zhihu.com/p/4699001o和20https://blog.csdn.net/Anooyman/article/details/135729372"}2122res = get_from_chatgpt(GPT _MODEL=GPT_MODEL, messages=messages) 测试样本: 请概括https://zhuanlan.zhihu.com/p/46990010和https:/blog.csdn.net/Anooyman/article/details/135729372 结果要求: 1:不能提供幻觉数据。幻觉数据:不在客户提供的内容重,属于模型自己生成的数据。 Tool Use 案例 "roke": "system*Doubao-Pro-32K"cen":“不要慢设函效中需安的值,如果用户请求不明消,志该要求落"coa/ent": *t/.f/ihttps:/zhuanlan.zhihu.com/a/46990010 Iok""usarbttps:/slog.csih.nct/Anooymm/articloidetsils/135729372*"oen":“请告诉我将想要影括的具伴内容,例如网页的主题,主要观点或"rok": "sssistant",关键信息。这样我才留更好地帮助你模括网真。 GPT-4-Turbo Tool "role*: "system","camtent:"不要债设函数中需要的值,如票用产请求不明确,应该要求适,""role': 'user'"content'; "it:fhetps:/zhuanlen.chihu.com/p/4090010 和htps:/hlog.csdn.net/Anaoyman/article/details/135729372*"role': 'assistant","contan":°too]_calls'’: [*id*: *cal_ytZhFg/BjZsF4qOxOFGsJpS′,*type’: "fiunction",*function':Fname'": *link reader"argumenls"; "gy*, !"type': "function".function*:'name": link_reader","argamenty" "()"ChatLing-Tool'rule': "assistant".*tool_calls": |['name’"; "link_reader',"arg.mcnls*: "(*url": "hilpsf2buanlan.zhibu.cetr/p'46990010′, "seartch_type":"full", "prompt"; ").('name’"; "ink_reader',"argumxnt*: g*url': "hilps:/bleg.csdn.k/Arooyman/articlodktails/135729372′, *type*: "function*.:,uonamy."name': "ink_reader,"bescription":"极据user输入的link或者html网页末网获欧信息","type*: "objeet*."properties": {"url": 1"type*: "string",*description":"user艳入的同页url,link,htm能按"'search_type":"type": "string",'enum": ["fullr',omos,"sescription":"播件使用方式""prompl":"type: "suing"."description":"检索语-句j.当isearch_type为search时有效”J :.ponbai,*url moonshot-v1-8k"'role": "assistamnt","conlen"; ",1 :,8[800,"index": 0,"id*: "link_readsr.0""lype": "funetion"."fuctioe":pear u, -acer,'srguments*: "n "urt:": "hugs:/zhusnlan.zhihu.0om'p(46990010."n)""index": 1."id': "link teader:1"."type' "function",Tielioe":opeu. xuu,'arguments": "'n '"'url":"hllps:/blog esdn.net/Ano0oymn/srticle/ddails/135729372**n)* Tool Use数据构造 业务指令数据:难点:业务积累量少,人工标注成本高 合成工具:种子指令+模版Self-instruct:根据问题,让模型生成工具 合成微调数据 Self-instruct:·方式1:根据问题和工具,生成输出 ·方式2:根据问题,生成工具和输出Self-QA:直接根据工具,生成输入题,以及与问题和工具相符的输出。 过滤和后处理 生成类问题需要剔除;去除输入输出完全相同、或者输入相同输出不同的数据;参数和预定的工具不符、或者缺乏必填参数的需要去除幻觉类对话需要去除 Tool Use 评测 v1版本测试集来源与ToolLearning每轮对话会给到1到3个工具每个工具的参数在3个以内模型根据用户的问题选择其中1个进行调用。 每轮对话给到1到4个工具>工具的参数量分布在1到12个模型根据用户问题选择1或者2个并行调用(并行调用的数据量只有50条) Tool Use 评测 下面测试集中的工具没有在LLM训练集中出现过 single_tool_multi_call(工具多次调用) >每轮对话包含多个工具,需要多次并行调用单个工具才能完成任务。比如输入两个链接,总结两个链接的内容>工具参数分布在1到7之间 parallel multi tools call: multi tools call:>每轮对话包含多个工具, Agent方案设计 知识预处理 索引效果优化 58 03 RAG和Tool Use实践 58 RAG和Tool Use实践 Agent插件和工具便捷使用 支持用户白定义插件·提供内置插件