微软开源基于ChatGPT的,超级文本代码智能体
添加书签专注AIGC领域的专业社区,关注微软OpenAI、百度文心一言、讯飞星火等大语言模型(LLM)的发展和应用落地,聚焦LLM的市场研究和AIGC开发者生态,欢迎关注!
随着ChatGPT等生成式AI产品的出现,大语言模型在应用、商业化落地等方面获得了巨大进展。但在处理数据分析时表现不佳,例如,像DataFrame这类复杂的数据格式很难直接用文本的方式表示出来,无法灵活地满足不同用户需求。
为了解决这些难题,微软的研究人员提出了“Code-First”的技术概念,并基于ChatGPT(GPT-3.5以上版本,作者推荐使用GPT-4)开发了超级代码智能体——TaskWeaver。
TaskWeaver可以将用户的自然语言文本请求转化为Python代码在后台运行,并且这些代码可以任意调用功能插件,完成数据读取、分析、模型训练等专业任务。
开源地址:https://github.com/microsoft/TaskWeaver
论文地址:https://arxiv.org/abs/2311.17541
简单来说,通过TaskWeaver一些没有编程能力的人员,也能执行专业的代码任务。例如,我们想做一个数据分析的项目,数据库里存放了一大堆时间序列数据,需要写程序从数据库里把数据取出来,并检查里面有没有异常值。
但是根本不会编程,借助TaskWeaver框架只需要向其用文本说明你的意图,智能体就能帮你完成那些繁琐的代码,并生成可视化图表。
规划器
首先,用户提出数据分析等需求,会被送到TaskWeaver的规划器模块进行拆解。规划器就像一位总指挥,主要为整个任务制定执行计划。
会考量需求的复杂程度,把任务分解为简单直接的子步骤。比如从数据库取数据、画出结果图表等,还会分析步骤间的逻辑关联,标注出执行顺序。主要流程如下:
1)接收用户的文本查询,使用自身知识或增强示例生成初始执行计划,标明必要的子任务步骤。
2)优化初始计划,合并彼此依赖的子任务,减少调用次数,提高效率。最终形成执行计划。
3)遍历计划中的各个子任务,向代码生成器发送询问,获取执行代码。
4)观察代码执行结果,如有需要修改原计划,要求用户提供更多信息等。
5)重复第三和第四步,直到完成全部子任务。最后用自然语言响应用户的查询。
代码生成器
当规划完成后,计划中每个子步骤就会逐一送到代码生成器这里,由其汇报对应执行代码。代码生成器就像一位万能的“程序员”。
根据规划器下达的指令,自动设计出整个代码的执行逻辑并进行编写代码。为了减少重复轮子,还内置了插件、示例、代码校验、自动错误纠正等模块。
同时封装了数据读取、模型训练等常见功能,生成代码时就可以直接调用。
代码执行器
代码编写完成后,会将信息传输到代码执行器模块中。代码执行器主要负责加载代码并执行。插件在这一步也会发挥作用,使外部功能得以连接。执行器会详细记录这个过程的状态,例如变量值、编码日志、中间结果等,以方便进行多轮深度交互。
如果代码在执行过程中出现失败,会将错误信息报告给代码生成器进行自动修正,然后再次自动生成正确的代码。
在代码执行器执行完一轮任务后,会将结果发送给规划器,完成一次子步骤。再由规划器决定触发下一子步骤的执行任务,并重复以上流程。
本文素材来源TaskWeaver论文,如有侵权请联系删除
END
本篇文章来源于微信公众号: AIGC开放社区