社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  chatgpt

微软开源基于ChatGPT的,超级文本代码智能体

AIGC开放社区 • 3 月前 • 193 次点击  

专注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

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/171777
 
193 次点击