LAMBDA:基于大模型的数据agent

一、结论写在前面

论文标题:LAMBDA: A Large Model Based Data Agent

论文链接:https://arxiv.org/pdf/2407.17535

案例研究展示:https://www.polyu.edu.hk/ama/cmfai/lambda.html

论文介绍“LAMBDA”,一种新颖的开源、无代码的多agent数据分析系统,该系统利用大型模型的力量。LAMBDA旨在通过使用创新设计的数据agent来解决复杂数据驱动应用中的数据分析挑战,这些agent使用自然语言进行迭代和生成操作。LAMBDA的核心是两个关键agent角色:程序员和检查员,它们被设计为无缝协作。

具体而言,程序员根据用户指令和领域特定知识生成代码,并借助高级模型进行增强。同时,检查员在必要时调试代码。为了确保鲁棒性并处理不利场景,LAMBDA具有允许用户直接干预操作循环的用户界面。

LAMBDA在多种机器学习(ML)数据集上展示了卓越的性能。在NHANES、Breast Cancer和Wine数据集上分别取得了100%、98.07%和98.89%的显著准确率。总之,LAMBDA的主要特点如下:(1)无代码和自然语言界面。(2)整合人类智能与人工智能。(3)可靠性。(4)自动分析报告生成。

二、论文的简单介绍

2.1 论文的背景

利用深度神经网络的数据驱动方法在数据科学应用中遇到了挑战和局限,特别是在需要广泛专业知识和高级编程知识的领域,如生物学、医疗保健和商业。一个显著的障碍是领域专家与复杂AI模型之间缺乏有效沟通渠道。为了解决这一问题,论文引入了*LAMBDA,一种新的开源、无代码的多agent数据分析系统,旨在克服这一困境。LAMBDA旨在促进所需媒介的创建,促进领域知识与数据科学中AI能力的无缝交互。论文开发LAMBDA的主要目标如下。

图 1:概览,LAMBDA 通过自然语言交互促进高效的数据分析。它弥合了领域专家与数据科学领域之间的鸿沟,后者需要广泛的代码知识

(a) 跨越编码障碍:长期以来,编码一直被视为非计算机科学背景领域专家有效利用强大AI工具的主要障碍[28]。LAMBDA通过允许用户使用自然语言与数据agent进行交互,从而无需编码,为数据科学任务(如数据分析和数据挖掘)降低了入门门槛,同时提高了效率,使其对各学科的专业人士更加易于接触。

(b) 整合人类智能与人工智能:现有的数据分析范式面临挑战,因为缺乏一个有效的中介来连接人类智能与人工智能 [30]。一方面,AI 模型往往缺乏对特定任务所需未学习领域知识的理解。另一方面,领域专家发现将他们的专业知识融入 AI 模型以提升其性能具有挑战性 [9]。LAMBDA 为这一问题提供了解决方案。通过精心设计的接口模板,agent可以访问外部资源,如算法或模型。这种整合确保了领域特定知识得到有效利用,满足定制化数据分析的需求,并增强了agent执行复杂任务的能力,提高了准确性和相关性。

© 重塑数据科学教育:LAMBDA 有潜力成为一个互动平台,能够改变数据科学教育。它为教育者提供了灵活性,使他们能够定制教学计划并无缝整合最新的研究成果。这种适应性使得 LAMBDA 成为寻求提供尖端、个性化学习体验的教育者的宝贵工具。这种方法与直接应用 GPT-4 等模型 [29, 38] 形成对比,提供了一个独特且创新的教育平台。

除了上述特点,LAMBDA的设计还包括可靠性和可移植性。可靠性指的是LAMBDA能够稳定且正确地处理数据分析任务。可移植性表明LAMBDA兼容多种大型语言模型(LLMs),这确保了LAMBDA始终能够通过最新的最先进模型得到增强。为了使用户能够从撰写文档等琐碎工作中节省时间,LAMBDA进一步升级了自动分析报告生成功能。

2.2 方法论

论文提出的多智能体数据分析系统(LAMBDA)由两个智能体组成,它们无缝协作,通过自然语言解决数据分析任务,如图2所示。宏观工作流程首先根据用户指令编写代码,随后执行该代码。

图2:提出的 LAMBDA 框架。论文利用云存储缓存用户上传的数据集和系统生成的文件。这使得 LAMBDA 能够持久化存储整个对话,包括数据、图形和模型。

2.2.1 概述

LAMBDA 围绕两个核心agent角色构建:“程序员”和“检查员”,分别负责代码生成和评估。当用户提交指令时,程序员agent根据提供的指令和数据集编写代码。然后,该代码在主机系统的内核环境中执行。如果在执行过程中出现任何错误,检查员介入,提供代码改进建议。程序员考虑这些建议,修改代码,并重新提交以进行重新评估。这个迭代循环继续进行,直到代码无错误运行或达到预设的最大尝试次数。为了应对不利情况并增强其可靠性和灵活性,工作流程中集成了人工干预机制。这一功能允许用户在必要时直接修改代码并进行干预。协作算法如算法 1 所示。

2.2.2 程序员

程序员的主要职责是编写代码并响应用户。在用户上传数据集后,程序员接收一个定制的系统提示,该提示概述了程序员的角色、环境上下文和 I/O 格式。该提示通过示例增强,以促进程序员的少量样本学习。具体而言,系统提示包括用户的工作目录、数据集的存储路径、数据集的维度、每个列的名称、每个列的类型、缺失值信息和统计描述。

程序员的流程可以概括如下:最初,程序员根据用户或检查员的指示编写代码;随后,程序从程序员的输出中提取代码块并在内核中执行它们。最后,程序员根据执行结果生成最终回复,并将其传达给用户。这个最终回复包含了一个总结和下一步的建议。

2.2.3 检查员与自校正机制

检查员的主要职责是在代码执行出现错误时提供合理的修改建议。检查员的提示包括当前对话轮次中程序员编写的代码以及内核的错误信息。检查员将提供可操作的修订建议给程序员进行代码修正。这个建议提示包含错误代码、内核错误信息以及检查员的建议。这两个agent之间的协作过程会迭代多轮,直到代码成功执行或达到最大尝试次数。这种自校正机制使得程序员和检查员在出错时可以多次尝试。自校正机制的一个案例展示在图15中。论文的实验结果如表~ 2 所示,包含检查员的agent系统显著提高了可靠性。

2.2.4 融合人类智能与AI

图3 : LAMBDA 中的知识匹配。该过程通过计算描述与指令之间的相似度,从知识库中选择代码。

除了利用LLMs的固有知识外,LAMBDA还通过用户提供的外部资源(如定制算法和模型)进一步增强,以整合人类智能。由于通用RAG方法在数据科学场景中面临的挑战,这些挑战源于用户指令与表示空间中代码片段之间可能缺乏明确关联,以及代码片段长度变化的影响。论文设计了一个KV知识库来存储代码资源。

其中,K是知识库,d_i 表示第i 条知识的描述,c_i 表示相应的源代码。

当用户发出指令ins 时,嵌入模型(记为F)会对知识库中的所有描述及ins 进行编码。描述和指令的嵌入张量分别表示为e_d_i 和e_ins。通过计算它们之间的余弦相似度,选取相似度分数大于阈值 且匹配度最高的知识作为知识。

设嵌入函数为F,则e_d_i 和e_ins 的表达式如下:

描述与指令之间的相似度S_i 可通过余弦相似度计算为:

论文设定匹配阈值theta = 0.5。选取满足S_i > theta 且具有最高S_i 的匹配知识k,计算如下:

知识k 将被嵌入到上下文学习(ICL)中,供大型语言模型(LLM)生成答案A。形式上,给定查询q、匹配知识k、一组示例D =(q_1, k_1, a_1), (q_2, k_2, a_2), …, (q_n, k_n, a_n),以及 LLMM,模型通过M 估计概率并输出使该概率最大的答案A。最终响应A 为P(a | q, k, D),如下:

KV 知识库是一个用于存储用户外部资源的关键值对仓库。具体而言,论文将资源的代码格式化为键值对:键表示资源描述,值表示代码。用户的查询将在知识库中进行匹配,以选择相似度最高的代码。图3 展示了 LAMBDA 中知识匹配的工作流程。

2.2.5 报告生成

LAMBDA 可以根据对话历史生成分析报告。报告通常包括数据处理、数据可视化、模型描述和评估结果。论文提供多种报告模板供用户选择。LAMBDA 通过 ICL 生成所需格式的报告。这一功能使用户能够专注于高价值任务,而不是花费时间和资源在报告撰写和格式化上。图 21 中可以找到一个示例案例。

总体而言,程序员agent、检查员agent、自校正机制和人在回路为 LAMBDA 提供了理论上的可靠性。知识集成使 LAMBDA 具有可扩展性和灵活性。此外,为了给 LAMBDA 带来可移植性,论文提供了 OpenAI 风格的接口。这意味着大多数 LLM,一旦通过 vLLM和 LLaMAF-Factory 等开源框架部署,就可以与论文的系统兼容。

2.3 实验与结果

论文首先验证函数调用方法的猜想。此外,论文对提出的 LAMBDA 进行了消融研究,以展示每个agent的影响和性能。最后,为了评估提出的 LAMBDA,论文观察了 LAMBDA 在多个机器学习(ML)数据集上的性能,以及是否需要人类干预。

2.3.1 函数调用方法的挑战

论文通过使用论文预定义的 API 的平均长度,估计了一些开源 LLM 在数据科学场景中能处理的最大 API 数量。图 4 展示了结果。Qwen1.5 和 Mistral-v0.1 专门设计为自然处理长序列,分别能够管理 400 和 372 个 API。然而,通用 LLM 如 LLaMA2、LLaMA3、Mistral-V0.2、Qwenl、ChatGLM2 和 ChatGLM3 只能处理少于 100 个 API,这对于需要更多 API 的应用(如数据科学任务)构成了挑战。

为了研究API数量对LLMs选择这些API准确性的影响,论文制作了一个包含100个数据科学场景中常用API的数据集。通过少样本学习,论文使用Qwen1.5-110B生成了与这些API对齐的880条测试指令。随后,论文将API和测试指令分别按10个功能为间隔进行分割,以进行分析。评估数据集的详细信息如表1所示,结果如图5所示。

表1:评估数据集中API数量及相应指令数

综上所述,函数调用方法存在几个显著缺点。首先,定义大量API的劳动密集型过程效率低下。其次,API的静态特性阻碍了其对多样化和不断变化的用户需求的适应性。第三,大量的API注释可能占据输入序列的很大一部分,可能导致截断风险。最后,随着API数量的增加,模型正确选择的准确性下降,从而引入了响应中潜在的不准确性。

图4:单个API的平均token长度及每个LLM能处理的最大API数量

图5:模型 Qwen1.5 选择的 API 准确性。由于 Qwen1.5 能够处理实验中最大数量的 API,因此被用于实验

API 选择的结果表明,随着 API 数量的增加,模型准确选择 API 的能力显著下降。这一效应在较小的模型中尤为明显。具体而言,Qwen1.5-32b 和 Qwen1.5-7b 的准确率分别从 100% 下降到94.32% 和85.45%。在数据科学场景中,由于包含多种处理方法和组合,API 的数量可能非常庞大。

2.3.2 LAMBDA的消融研究

为了评估LAMBDA中各agent的可靠性和性能,论文基于心脏病数据集设计了一项消融研究。该数据集包含缺失值,自然带来了挑战。论文利用Qwen1.5-110B为相关任务生成指令。经过筛选后,实验中有454条指令。论文分别评估了单一程序员agent和多agent(程序员和检查员)的执行通过率。结果总结在表z中。

表2:单一agent与多agent实验对比。括号内的百分比表示相对于单一agent的提升率。本实验中,程序员和检查员agent均由Qwen1.5-32b实现

结果显示,仅使用程序员agent与加入检查员之间的通过率存在显著差距。程序员agent的通过率为 68.06%,而结合检查员后,通过率提升至 95.37%,较单一agent设置提高了 40.13%。这一实验验证了协作agent在提升 LAMBDA 可靠性和鲁棒性方面的重要作用。通过利用错误建议和修正的互补优势,多agent协作方法不仅提高了代码通过率,还减少了执行复杂数据分析任务时的人工干预频率。

2.3.3 机器学习数据集实验

为了获取在实际数据科学任务中的实践经验和性能,论文在多个 ML 数据集上评估了 LAMBDA,记录了其在这些数据集上的表现,并观察是否需要人工介入。分类任务采用准确率作为评估指标,回归任务则采用均方误差。结果如表3 所示。

•AIDS临床试验组研究175提供了关于AIDS患者的医疗统计和分类数据。该数据集于1996年发布,包含2139个实例和23个特征,主要用于预测患者在特定时间框架内的死亡率。

• 国家健康与营养健康调查2013-2014年年龄预测子集(NHANES)源自CDC的综合健康与营养调查。该子集包含6287个实例和l个特征,专注于利用生理、生活方式和生化数据预测受访者的年龄组(老年人或非老年人)。

•威斯康星州乳腺癌(诊断)数据集包含569个实例和30个特征,用于将患者分类为恶性或良性。

•葡萄酒数据集包含了对意大利特定地区三种不同品种葡萄酒的化学分析结果。它包括178个实例和13个特征,重点关注葡萄酒中各种成分的含量。

•混凝土抗压强度数据集包含1030个实例和 8个特征,研究混凝土抗压强度、年龄和成分之间的高度非线性关系。

• 联合循环发电厂数据集包含六年间收集的9568个数据点,具有4个特征,用于分析发电厂在满负荷条件下的性能。

•鲍鱼数据集通过物理测量来预测鲍鱼的年龄。该数据集包含4177个样本,每个样本有8个特征

•翼型自噪声数据集旨在预测缩放后的声压,包含1503个实例和5个特征,这些特征源自翼型叶片部分在消声风洞中的空气动力学和声学测试。

表3的结果展示了在执行机器学习任务中的卓越性能。对于分类任务,LAMBDA在AIDS、NHANES、乳腺癌和葡萄酒数据集上分别达到了最高的准确率89.679%、1009%、98.079%和98.899%。对于回归任务,它分别达到了最低的均方误差(MSE)0.2749、0.0315、0.4542和0.2528。这些表现展示了其在使用多种模型处理不同数据科学场景中的全面性。

此外,在这些实验的整个过程中没有人类的参与,这验证了LAMBDA有效地克服了编码障碍,并弥合了数据科学与缺乏编码知识的人类专家之间的差距。总而言之,上述实验结果表明,LAMBDA可以作为一个高效且可靠的数据agent,协助各行各业的人士处理数据科学任务。

2.4 示例

论文提供了三个示例来展示LAMBDA在数据分析中的能力,分别结合了人类智能和教育领域。

数据分析:论文模拟了用户要求LAMBDA在提供的鸢尾花数据集上执行不同任务的场景,包括数据预处理、数据可视化和模型训练。LAMBDA始终提供准确的响应。更重要的是,LAMBDA进一步根据用户的完整指令生成分析报告。演示视频见 https://www.polyu.edu.hk/ama/cmfai/files/lambda/lambda.mp4。

表3:使用LAMBDA在MIL数据集上的实验结果。分类问题通过准确率评估,准确率越高越好。回归问题通过均方误差(MSE)评估,MSE越低越好。所有结果均通过5折交叉验证获得。

整合人类智能:论文通过使用二次收敛牛顿法计算最近相关矩阵,展示了LAMBDA中的知识整合[31]。首先,论文展示了GPT-4在任务上的局限性,并通过比较突出了LAMBDA的价值。演示视频见https://www.polyu.edu.hk/ama/cmfai/files/lambda/knw.mp4。

互动教育:论文考虑一种教育情境,教师利用LAMBDA设计课程,学生使用LAMBDA完成习题。习题数据集为Abalone。这种教育支持提高了教学和学习的效率。演示视频见https://www.polyu.edu.hk/ama/cmfai/files/lambda/LAMBDA-education.mp4。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范
第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署
第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建
第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

  • 20
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值