基于开源Agent框架,可自动解决复杂 数据科学问题 的Agent来了!
具体来说,Data Science Assistant(以下称DS Assistant)是基于Modelscope-Agent框架开发的数据科学助手。
有了它,我们只需给需求,这个助手就能自己跑完探索性数据分析(EDA)、数据预处理、特征工程、模型训练,模型评估等步骤。
当然,除了本文将重点提到的DS Assistant,它背后的Modelscope-Agent框架也值得说道。
这个框架由阿里开源, 主要特点包括:
更妙的是,Modelscope-Agent框架允许开发者 无需编码 即可交互式地创建Agent助理。
这不,啪的一下,咱们的数据科学助手“诞生”了~
复杂数据科学任务自动化
实现复杂数据科学任务自动化一直存在挑战。
传统的ReAct(Reasoning and Action)框架对于简单的任务比较有效, 但是有以下缺点:
而DS Assistant使用了 plan-and-excute框架 ,这是一种新兴的Agent框架,通过明确计划和执行步骤高效完成复杂任务。
langchain官网对Plan-and-execute Agent的描述:https://blog.langchain.dev/planning-agents/
具体而言,其 工作流程 包括以下几个步骤:
1、 任务计划 :Agent接收用户输入的任务描述,进行语义理解,将任务分解为多个可执行子任务。
2、 子任务调度 :基于任务之间的依赖关系和优先级,智能调度子任务的执行顺序。
3、 任务执行 :每个子任务分配给特定的模块执行。
4、 结果整合 :汇总各子任务的结果,形成最终输出,并反馈给用户。
基于上述框架,咱们接着看整个 系统架构 ,DS Assistant整套系统有 4个主要模块 。
先说右侧的 DS Assistant ,它作为整个系统的大脑,负责调度整个系统的运转。
而 Plan模块 负责根据用户的需求生成一系列 Task列表 ,并对Task先后顺序进行拓扑排序。
在这一阶段,DS Assistant根据用户输入的复杂数据科学问题,自动将其分解为多个子任务。
这些子任务根据依赖关系和优先级被组织和调度,确保执行顺序符合逻辑且高效。
接下来到了 Execution模块 ,负责任务的具体执行,保存任务执行结果。
在这里,每个子任务被具体化为可执行的操作,如数据预处理、模型训练等。
最后是 Memory management模块 ,负责记录任务中间执行结果,代码,数据详情等信息。
在所有Task执行完成后,DS Assistant会将中间数据的执行情况 ( 包括每个task生成的代码和结果,消耗token数,任务时间 ) 保存为文件。
案例实战
下面,我们以一个具体的例子来了解DS Assistant的执行过程。
我们选用Kaggle上的一个比赛任务 ICR - Identifying Age-Related Conditions 作为示例:
该任务是一项机器学习任务,主要目的是通过分析各种数据(如医疗记录、基因数据、生活方式数据等),识别与年龄相关的健康状况。
最终结果将用来帮助医疗专业人员及早发现老年人群中常见的健康问题,并提供个性化的预防和治疗方案。
废话不多说,我们这就开始~
首先,对于选用的LLM,我们需要 配置 一下。
我们引入MetaGPT的Data Science工具和Tool Recommender,可以根据任务类型向DS Assistant推荐合适的数据科学工具。
接着,我们需要将任务的具体要求传给DS Assistant。需要注意的是,在要求中需向DS Assistant 指明数据文件的路径:
在 Plan阶段 ,DS Assistant会根据用户需求生成任务列表,将整个数据处理流程进行分解,接着对任务列表进行按顺序处理。
可以看到,DS Assistant生成了 5个任务 ,分别是数据探索,数据预处理,特征工程,模型训练和预测。
然后这5个任务进入了 Execute阶段 ,下面咱们挨个看一下。
Task 1: 数据探索
可以看到生成的代码在执行时报了如下错误,原因是 没有引入numpy包 。
DS Assistant根据报错进行了反思,并重新生成代码并执行,成功输出数据探索的结果。
最后,code judge会对代码进行质检,确保本次生成代码逻辑正确。
Task 2: 数据预处理
在数据预处理阶段,DS Assistant分别对数值型数据和类别型数据进行了合适的 缺失值处理 ,并清除了ID列。
Task 3:特征工程
在修复了两次错误后,DS Assistant对数据进行了特征工程的处理,对类别型变量进行编码。
同时对之前定义的categorical_columns变量进行了更新,去除了ID列。
Task 4:模型训练
DS Assistant主动安装了合适的依赖,并选择了多个模型(随机森林,梯度提升,逻辑回归)进行训练,并选择了结果最好的模型。
Task 5:模型验证
DS Assistant选择了训练集中 F1分数最高 的模型对验证集进行测试,并计算了这个模型在验证集上的F1分数,成功地完成了任务。
执行完以上任务后,DS Assistant支持将运行结果保存为Jupyter Notebook类型的文件,并记录运行的中间过程。
△Jupyter Notebok
△中间过程记录JSON文件
实验效果
我们使用 ML-Benchmark 作为测试集(指路论文“Data Interpreter: An LLM Agent For>其中NPS是一种将不同任务或模型的 性能指标标准化 的方法,使得不同指标之间可以进行比较。
它的计算通常涉及以下步骤:
步骤1 :确定指标优化方向,判断性能指标是“越大越好”还是“越小越好”。
步骤2 :规范化计算。如果指标是“越大越好”(如准确率、F1分数、AUC),NPS等于原始值;如果指标是“越小越好”(如损失值),则需要将原始值映射到接近1的较高NPS值。
规范化后的性能得分范围通常是0到1,其中 1表示最优性能,0表示最差性能 。
实验任务详情和结果如下( 绿色 代表当前任务下最优指标 ):
可以看到,在部分复杂的数据科学任务上,DS Assistant在规范化性能得分(NPS),任务时间,消耗token数的指标上取得超过开源SOTA的效果。(其中开源SOTA效果指MetaGPT实测值)
完整实验日志:https://modelscope-agent.oss-cn-hangzhou.aliyuncs.com/resources/DS_Assistant_results.zip
总结
对不同的人来说,DS assistant 有不同作用 :
下一步,DS assistant将从 三个方向展开优化 :
1、进一步 提高任务执行成功率 :
对于Code Agent来说,传入信息量过大(报错信息,中间数据信息,已生成代码信息)会导致模型生成代码正确率下降,可以在未来考虑使用LLM进行总结,对信息进行筛选。
同一个Task可进行进一步的分解,以降低对LLM推理能力的要求。
2、 对话交互式 ,可以将任务和任务的执行展示分开,通过对话的方式推进任务,并影响执行结果。
3、支持 批处理 相同任务多批文件的场景。
更多细节可进一步查看Modelscope-Agent官方仓库中Data Sciecne Assistant示例。
自动化大发展的当下,哪些行业将消失?
1、银行柜员商业周刊中文网称,未来10年,中国大陆80%的现金使用会消失,人们逐渐开始选择网银或移动支付。 未来20年,绝大多数中小银行如果不把前台业务外包,将难以生存——无论这个预言如何,传统金融业和科技行业正在进行一场生死时速。 银行柜员要小心了。 金融领域将发生一场彻底的互联网革命,这是谁也阻挡不了的趋势。 2、司机如今看到谷歌的无人驾驶汽车在硅谷101高速公路上穿梭,或是自己停靠到旧金山大街上,都已经不足为奇。 而奥迪、丰田和奔驰等汽车厂商都计划开发自己的无人驾驶汽车。 因为汽车已经不需要人来驾驶,司机这一职业会消失。 包括驾校老师、停车执法者等等职业也都随之消失。 3、职业模特儿未来,没有谁再会为自己的个子矮而愁眉不展,高技术含量的增高手术能给一个人延长原身高。 这个医学项目目前已经在进行了。 还有便是新兴美容业的发展。 “超微科技”的运用使整容业更趋完美,已经有人在研发用电脑“勘测丈量”脸部细节,度身制作完美五官“零件”,以求“一劳永逸、完整美丽”效果的新技术。 从这个意义上讲,漂亮的脸蛋与高挑的身材人人都可以拥有,职业模特儿失去存在的意义,时装秀真正地从T形台走向每个人身边的大街。 4、装配车间工人全球最大代工企业富士康百万“机器人大军”计划公布后引起外界瞩目。 专家称一线工人短期内被挤占不可避免,一批生产工人将下岗成为共识。 目前富士康的机器人手臂还只是进行简单的操作,但是未来,随着机器人成本的下降和普及,装配车间的工作将不需要真人插手了。 未来富士康不用再发愁劳工问题了。 5、零售人员、批发贸易人员在电商的冲击下,“凡是有中介的地方,就应该进去”。 中介意味着交易成本,互联网的价值就在于准确实现买卖双方的匹配,砍掉中间环节。 越来越多的85后、90后一代|开始不进入实体店面,而把主要的购买行为都放在网络上。 因此,可以预料到的是,那些成本高、无法给消费者带来增值、无法营造极致体验的零售实体店面将面临关闭或亏损运营局面,大批从事中介式贸易的贸易公司也很难生存,相应的从业者压力很大。 6、企业网管、企业级软件程序员在云计算以及BYOD的趋势下,将有越来越多的企业选择将业务“云”化,包括IT维护管理外包,这使得部分不能创造增值价值的企业网管丢掉了岗位。 而传统企业级软件面临的压力在于,一方面是云计算带来的市场变化,另一方面,以社交软件为代表的个人消费软件开始进入企业级市场,改变了企业级软件传统的模式和架构,还有在去IOE趋势下的整个企业级市场生态体系重塑,这都直接影响到企业级软件公司程序员的职业生涯。 7、导游、猎头在未来的旅游业,面向旅游全流程的O2O服务日益完善,基于移动互联网的旅游服务将逐渐影响到旅行社的生意。 游客提前通过智能代理进行路线规划、酒店预订、车辆预订,在景区通过智能手机与景区景物建立连接听取讲解,这都在很大程度上替代了导游的工作。 同样,在大数据的帮助下,人才与企业之间的招聘连接也将越来越精准有效,这一方面帮助人才准确定位自己的择业方向,一方面帮助企业准确筛选自己的合适人员,这也将对传统的中低端猎头造成冲击。 8、有线电视安装人员借助一个电视盒子,就可以让每一台普通电视升级为智能云电视机,同时实现与家庭其他无线终端(手机、Pad、电脑)的交互。 只要身处带宽足够的WIFI环境,就可以在电视上免费观看在线视频内容。 有线电视这回事最终会消失。 甚至电视台的构建都会被打乱。 相关产业链上的人都要当心,有线电视安装人员只是一个小小的代表。 9、加油站管理和工作人员加油这回事可能会消失。 因为石油在枯竭。 未来,新能源充电站也许会遍布。 不过,充电站也会实现自动化。 不需要人来服务。 而且,连驾驶都已经实现无人化了,当然也不需要人来负责加油充电等动作了。 10、各种工业样品、小商品制造者3D打印将颠覆制造业。 商品将不再通过制造和物流的环节来到达用户的手中,用户将购买从杯子到房子等所有产品的设计,然后就地3D打印出来,这种方式最大的革新之处在于成本将比供应链产品便宜,而且有些东西不需要专门的人来制造了,你只需要有一个程序就行。 所以,各种工业样品根本不需要专人制造了。
python是个什么东西
Python是一种跨平台的计算机程序设计语言。 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。 最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。
Python的创始人为荷兰人吉多·范罗苏姆(GuidovanRossum)。 1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。
之所以选中Python(大蟒蛇的意思)作为该编程语言的名字,是取自英国20世纪70年代首播的电视喜剧《蒙提.派森的飞行马戏团》(MontyPython'sFlyingCircus)。
扩展资料:
python中文就是蟒蛇的意思。 在计算机中,它是一种编程语言。 Python(英语发音:/ˈpaɪθən/),是一种面向对象、解释型计算机程序设计语言,由GuidovanRossum于1989年底发明,第一个公开发行版发行于1991年。 Python语法简洁而清晰,具有丰富和强大的类库。
它常被昵称为胶水语言,它能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。 常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写。
比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C++重写。 1发展历程编辑自从20世纪90年代初Python语言诞生至今,它逐渐被广泛应用于处理系统管理任务和Web编程。 Python已经成为最受欢迎的程序设计语言之一。
参考资料:
网络百科-Python
国内有哪些好的数据可视化工具,推荐一下
Smartbi的数据可视化还是做得不错的,图形可视化、地图分析、交互仪表盘、数据大屏幕等产品功能,炫酷又实用!