大模型自主智能体爆火,OpenAI也在暗中观察、发力,这是内部人的分析博客(2)

简介: 大模型自主智能体爆火,OpenAI也在暗中观察、发力,这是内部人的分析博客

分层可导小世界(HNSW,Hierarchical Navigable Small World):这个方法受到小世界网络(small world networks,是一种图结构)的启发,其中大多数节点可以在很少的步骤内与其他节点相连。HNSW 构建了这些小世界图的层次结构,其中底层包含实际的数据点,中间层创建了快捷方式以加速搜索。在执行搜索时,HNSW 从顶层的一个随机节点开始,并向目标节点导航,当无法再靠近目标时,它向下移动到下一层,直到达到底层。在上层进行的每一次移动都有可能在数据空间中覆盖较大的距离,而在下层进行的每一次移动都会提高搜索的精度。

Facebook AI (现 Meta AI)团队开源的库 FAISS:FAISS 运作的基本假设是,在高维空间中,节点之间的距离遵循高斯分布,因此应该存在数据点的聚类。FAISS 通过将向量空间分割成聚类并在聚类内进行量化来应用向量量化。

可扩展最近邻(ScaNN):ScaNN 的主要创新是各向异性矢量量化(Anisotropic Vector Quantization,AVQ),它将数据点 x_i 量化为,使得内积尽可能接近原始距离,从而减少了数据点之间的距离误差。

MIPS 算法比较。

组件 3:使用工具

使用工具是人类的一个显著特点。我们创造、修改和利用外部物体来探索和认知现实世界。类似地,给 LLM 配备外部工具可以大幅扩展模型的能力。

一张海獭在水中漂浮时用石头敲开贝壳的照片。虽然其他一些动物也能使用工具,但其复杂性无法与人类相比。图源:Animals using tools

MRKL(Karpas et al. 2022)是一种用于自主智能体的神经 - 符号(neuro-symbolic)架构,命名来源于模块化推理(Modular Reasoning)、知识(Knowledge)和语言(Language)的简称。每个 MRKL 系统包含一些「专家」模块,通用 LLM 作为一个路由器,负责将查询路由到最合适的专家模块。这些模块可以是神经的(如深度学习模型),也可以是符号的(如数学计算器、货币转换器、天气 API)。

MRKL 的研究团队使用数学计算作为测试案例,进行了一个微调 LLM 调用计算器的实验。由于 LLM(7B  Jurassic1-large 模型)未能可靠地提取基本计算的正确 argument,因此该实验表明解决口语简单阐述的数学问题比明确说明的数学问题更难。该实验结果强调了当外部符号工具能够可靠地工作时,知道何时和如何使用这些工具是至关重要的,而这由 LLM 的能力决定。

另外两项研究 TALM(Parisi et al. 2022)和 Toolformer(Schick et al. 2023)都对语言模型(LM)进行了微调,以学习使用外部工具 API。数据集则是根据新增加的 API 调用注释是否能提高模型的输出质量来扩展的。

ChatGPT 插件和 OpenAI 的 API 函数调用是 LLM 使用工具增强能力的最好实例。工具 API 的集合可以由其他开发者提供(插件)或自定义(函数调用)。

HuggingGPT(Shen et al. 2023)则是一个使用 ChatGPT 作为任务规划器的框架,根据模型描述选择 HuggingFace 平台中可用的模型,并根据执行结果归纳总结出响应。

HuggingGPT 工作原理示意图。图源:Shen et al. 2023

HuggingGPT 系统由 4 个阶段组成:

(1)任务规划:LLM 作为大脑,将用户请求解析为多个任务。每个任务有四个关联属性:任务类型、任务 ID、依赖项和参数。研究团队使用少量例子来指导 LLM 进行任务解析和规划。


The AI assistant can parse user input to several tasks: [{"task": task, "id", task_id, "dep": dependency_task_ids, "args": {"text": text, "image": URL, "audio": URL, "video": URL}}]. The "dep" field denotes the id of the previous task which generates a new resource that the current task relies on. A special tag "-task_id" refers to the generated text image, audio and video in the dependency task with id as task_id. The task MUST be selected from the following options: {{ Available Task List }}. There is a logical relationship between tasks, please note their order. If the user input can't be parsed, you need to reply empty JSON. Here are several cases for your reference: {{ Demonstrations }}. The chat history is recorded as {{ Chat History }}. From this chat history, you can find the path of the user-mentioned resources for your task planning.


(2) 模型选择:LLM 会从一个模型列表中选择模型,将任务分配给专家模型。由于上下文长度有限,需要进行基于任务类型的过滤。


Given the user request and the call command, the AI assistant helps the user to select a suitable model from a list of models to process the user request. The AI assistant merely outputs the model id of the most appropriate model. The output must be in a strict JSON format: "id": "id", "reason": "your detail reason for the choice". We have a list of models for you to choose from {{ Candidate Models }}. Please select one model from the list.


(3) 任务执行:专家模型执行具体任务,并记录执行结果。


With the input and the inference results, the AI assistant needs to describe the process and results. The previous stages can be formed as - User Input: {{ User Input }}, Task Planning: {{ Tasks }}, Model Selection: {{ Model Assignment }}, Task Execution: {{ Predictions }}. You must first answer the user's request in a straightforward manner. Then describe the task process and show your analysis and model inference results to the user in the first person. If inference results contain a file path, must tell the user the complete file path.


(4) 响应生成:LLM 接收执行结果,并向用户提供总体结果。

为了将 HuggingGPT 投入实际使用,需要解决几个挑战:(1)需要提高效率,因为 LLM 推理和与其他模型的交互都会减慢进程;(2)它依赖一个长的上下文窗口来沟通复杂的任务内容;(3)提高 LLM 输出和外部模型服务的稳定性。

API-Bank(Li et al. 2023)是一个评估工具增强型 LLM 性能的基准。它包含 53 个常用的 API 工具,一个完整的工具增强型 LLM 工作流,以及涉及 568 个 API 调用的 264 个已注释的对话。API-Bank 基准中可选择的 API 相当多样化,包括搜索引擎、计算器、日历查询、智能家居控制、日程管理等等。LLM 首先可以通过 API 搜索引擎找到合适的 API 进行调用,然后使用相关文档调用 API。

LLM 在 API-BANK 中进行 API 调用的伪代码。(图片来源:Li et al. 2023)


在 API-Bank 的工作流中,LLM 需要做出一些决定,包括:

  • 是否需要调用 API;
  • 确定要调用的正确 API:如果不够好,LLM 需要反复修改 API 输入(例如更换搜索引擎 API 的搜索关键词);
  • 基于 API 结果的响应:如果结果不满意,模型可以选择优化并再次调用。


这个基准在三个层次上评估了智能体的工具使用能力:

  • 调用 API 的能力:根据 API 的描述,模型需要确定是否调用给定的 API,正确地调用,并对 API 的返回结果作出正确的反应;
  • 检索 API 的能力。模型需要搜索可能解决用户需求的 API,并通过阅读文档学习如何使用它们。
  • 检索和调用之外规划 API 的能力。考虑到不明确的用户要求(例如安排小组会议,为旅行预订航班 / 酒店 / 餐厅),模型可能需要进行多次 API 调用来解决实际问题。


案例研究

用于科学发现的智能体

ChemCrow 是一个由大型语言模型(LLM)设计的化学智能体,旨在完成有机合成、药物发现和材料设计等任务。通过整合 17 种专家设计的工具,ChemCrow 提高了 LLM 在化学方面的性能,并衍生出新的能力。

关于 ChemCrow ,一个有趣的观察是,尽管基于 LLM 的评估结果得出的结论是 GPT-4 和 ChemCrow 的性能几乎相当,但经过专家人工评估表明,ChemCrow 在很大程度上优于 GPT-4。这意味着在需要深度专业知识的领域使用 LLM 来评估其自身的性能可能存在潜在问题。缺乏专业知识可能导致 LLM 不了解其缺陷,因此无法很好地判断任务结果的正确性。

Boiko 等人的论文则研究了用于科学发现的 AI 智能体,它被用来处理复杂科学实验的自主设计、规划和执行。这个智能体可以使用工具浏览互联网、阅读文档、执行代码、调用机器人实验 API 和利用其他 LLM。

举例来说,当智能体收到提示「develop a novel anticancer drug(开发一种新的抗癌药物)」时,其推理步骤是这样的:

  • 询问当前抗癌药物发现的趋势;
  • 选定目标;
  • 开始寻找针对这个目标的化合物;
  • 一旦确定了化合物,模型就尝试合成它。


生产式智能体

生成式智能体将 LLM 与记忆、规划和反射机制相结合,使智能体能够根据过去的经验做出反应,并与其他智能体进行交互。

生成式智能体架构图。

概念验证示例

这里作者提到了 AutoGPT(自主人工智能),有了它,人类无需插手,AutoGPT 就能自主完成任务。Andrej Karpathy 也大赞:「AutoGPT 是 prompt 工程的下一个前沿。」

具体来说,AutoGPT 相当于给基于 GPT 的模型一个内存和一个身体。有了它,你可以把一项任务交给 AI 智能体,让它自主地提出一个计划,然后执行计划。此外其还具有互联网访问、长期和短期内存管理、用于文本生成的 GPT-4 实例以及使用 GPT-3.5 进行文件存储和生成摘要等功能。AutoGPT 用处很多,可用来分析市场并提出交易策略、提供客户服务、进行营销等其他需要持续更新的任务。

此外,作者还列举了 GPT-Engineer 项目,和代码生成类工具差不多,其能根据提示生成代码库(codebase)。就像前面讲到的,只要你提出合理的要求,GPT-Engineer 都能完成。

挑战

在了解了构建以 LLM 为中心的智能体关键思想和演示之后,我们应该也看到一些限制:

有限的上下文长度:LLM 处理上下文信息的能力有限,尽管 self-reflection 等机制可以从过去的错误中学习,但更长或无限的上下文窗口将会带来很大的好处。虽然向量存储和检索可以提供对更大知识库的访问,但它们的表示能力不如全注意力(full attention)强大。

LLM 在长期规划和任务分解中的挑战:LLM 在面对意外错误时很难调整规划并进行改正,与人类可以不断试错相比,LLM 鲁棒性还是比较差的。

自然语言接口的可靠性:当前的智能体系统依赖于自然语言作为 LLM 与内存和工具等外部组件之间的接口。然而,模型输出的可靠性是值得怀疑的,因为 LLM 可能会出现格式错误,偶尔还会表现出叛逆行为(例如,拒绝遵循指令)。

相关文章
|
2月前
|
人工智能 缓存 监控
使用LangChain4j构建Java AI智能体:让大模型学会使用工具
AI智能体是大模型技术的重要演进方向,它使模型能够主动使用工具、与环境交互,以完成复杂任务。本文详细介绍如何在Java应用中,借助LangChain4j框架构建一个具备工具使用能力的AI智能体。我们将创建一个能够进行数学计算和实时信息查询的智能体,涵盖工具定义、智能体组装、记忆管理以及Spring Boot集成等关键步骤,并展示如何通过简单的对话界面与智能体交互。
901 1
|
2月前
|
人工智能 Java API
AI 超级智能体全栈项目阶段一:AI大模型概述、选型、项目初始化以及基于阿里云灵积模型 Qwen-Plus实现模型接入四种方式(SDK/HTTP/SpringAI/langchain4j)
本文介绍AI大模型的核心概念、分类及开发者学习路径,重点讲解如何选择与接入大模型。项目基于Spring Boot,使用阿里云灵积模型(Qwen-Plus),对比SDK、HTTP、Spring AI和LangChain4j四种接入方式,助力开发者高效构建AI应用。
1380 122
AI 超级智能体全栈项目阶段一:AI大模型概述、选型、项目初始化以及基于阿里云灵积模型 Qwen-Plus实现模型接入四种方式(SDK/HTTP/SpringAI/langchain4j)
|
2月前
|
机器学习/深度学习 数据采集 人工智能
通义实验室Mobile-Agent-v3开源,全平台SOTA的GUI智能体,支持手机电脑等多平台交互
近日,通义实验室MobileAgent团队正式开源全新图形界面交互基础模型 GUI-Owl,并同步推出支持多智能体协同的自动化框架 Mobile-Agent-v3。该模型基于Qwen2.5-VL打造,在手机端与电脑端共8个GUI任务榜单中全面刷新开源模型性能纪录,达成全平台SOTA。
740 2
|
1月前
|
人工智能 API 开发工具
构建AI智能体:一、初识AI大模型与API调用
本文介绍大模型基础知识及API调用方法,涵盖阿里云百炼平台密钥申请、DashScope SDK使用、Python调用示例(如文本情感分析、图像文字识别),助力开发者快速上手大模型应用开发。
964 16
构建AI智能体:一、初识AI大模型与API调用
|
3月前
|
传感器 边缘计算 人工智能
2025大模型应用平台选型指南:从个人助手到企业级智能体,5大平台场景化拆解
本文深度评测五大主流大模型平台,结合金融、医疗、制造实战案例,解析Open WebUI、Dify、Ragflow、FastGPT与n8n的定位与优势,提供选型决策树与混合架构实例,助你精准匹配业务需求,避开“全能平台”陷阱,实现高效智能化落地。
|
4月前
|
数据采集 数据可视化 JavaScript
用 通义灵码和 PyQt5 爬虫智能体轻松爬取掘金,自动化采集技术文章和数据
本文介绍了如何利用智能开发工具通义灵码和Python的PyQt5框架,构建一个自动化爬取掘金网站技术文章和数据的智能爬虫系统。通过通义灵码提高代码编写效率,使用PyQt5创建可视化界面,实现对爬虫任务的动态控制与管理。同时,还讲解了应对反爬机制、动态内容加载及数据清洗等关键技术点,帮助开发者高效获取并处理网络信息。
|
1月前
|
人工智能 自然语言处理 安全
AI助教系统:基于大模型与智能体架构的新一代教育技术引擎
AI助教系统融合大语言模型、教育知识图谱、多模态交互与智能体架构,实现精准学情诊断、个性化辅导与主动教学。支持图文语音输入,本地化部署保障隐私,重构“教、学、评、辅”全链路,推动因材施教落地,助力教育数字化转型。(238字)
|
1月前
|
存储 人工智能 搜索推荐
拔俗AI助教系统:基于大模型与智能体架构的新一代教育技术引擎
AI助教融合大语言模型、教育知识图谱、多模态感知与智能体技术,重构“教、学、评、辅”全链路。通过微调LLM、精准诊断错因、多模态交互与自主任务规划,实现个性化教学。轻量化部署与隐私保护设计保障落地安全,未来将向情感感知与教育深度协同演进。(238字)

热门文章

最新文章

下一篇
oss云网关配置