AI工作流程设计的自动化优化:微软与斯坦福的新成果 - Trace

  每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领域的领跑者。点击订阅,与未来同行! 订阅:https://rengongzhineng.io/

设计AI应用(如聊天机器人和编码助手)的计算工作流程非常复杂,因为需要管理许多异构参数,如提示和机器学习超参数。部署后的错误需要手动更新,增加了挑战性。该研究探讨了旨在自动化设计和更新这些工作流程的优化问题。由于其复杂性,涉及相互依赖的步骤和半黑盒操作,传统的优化技术(如贝叶斯优化和强化学习)往往效率不足。虽然提出了基于LLM的优化器以提高效率,但大多数仍依赖标量反馈,并处理仅包含单一组件的工作流程。

微软研究院和斯坦福大学的研究人员提出了一个名为Trace的框架,用于自动化设计和更新AI系统(如编码助手和机器人)。Trace将计算工作流程视为类似于神经网络的图结构,并使用Trace Oracle优化(OPTO)优化异构参数。Trace高效地将工作流程转换为OPTO实例,使通用优化器OptoPrime能够基于执行轨迹和反馈迭代更新参数。这种方法提高了跨多个领域的优化效率,在提示优化、超参数调整和机器人控制器设计等任务中表现优异,超过了专门优化器。


现有框架如LangChain、Semantic Kernels、AutoGen和DSPy主要通过标量反馈和黑盒搜索技术来组合和优化计算工作流程。而Trace不同的是,它使用执行追踪进行自动优化,将计算图泛化以适应各种工作流程。Trace的OPTO框架支持提示、超参数和代码的联合优化,提供丰富的反馈,并动态适应工作流程结构的变化。它将自动微分原则扩展到不可微工作流程,实现高效的自适应代理和通用优化,且在多个任务中超越了专门优化器。

OPTO构成了Trace的基础,定义了一个用于迭代优化的基于图的抽象。计算图是一个DAG,其中节点表示对象,边表示输入输出关系。在OPTO中,优化器选择参数,Trace Oracle返回包含计算图和输出输入的轨迹反馈。此反馈可以包括分数、梯度或自然语言提示。优化器使用这些反馈来迭代更新参数。与黑盒设置不同,执行轨迹提供了到输出的清晰路径,使参数更新更加高效。Trace利用OPTO通过抽象设计和领域特定组件来优化各种工作流程。


基于LLM的优化算法OptoPrime是为OPTO问题设计的。它利用LLM的编码和调试能力来处理执行轨迹子图。Trace反馈是一种伪算法,允许LLM建议参数更新。OptoPrime包括一个内存模块,用于跟踪过去的参数反馈对,增强鲁棒性。实验表明,OptoPrime在数值优化、交通控制、提示优化和长时间跨度机器人控制任务中的有效性。OptoPrime在利用执行轨迹信息和记忆方面表现出优异性能,优于其他优化器。

Trace将计算工作流程优化问题转化为OPTO问题,并通过OPTO优化器OptoPrime有效地展示了这一点。这标志着向新优化范式迈出了初步步骤,并具有多种未来方向。LLM推理的改进,如链式思维、少样本提示、工具使用和多代理工作流程,可能会改善或启发新的OPTO优化器。结合LLM和搜索算法与专用工具的混合工作流程可能会产生一个通用的OPTO优化器。特别是针对大规模图的计算传播器的专门化,以及开发能够进行反事实推理的优化器,可能会提高效率。非文本上下文和反馈也可能扩展Trace的适用性。

https://github.com/microsoft/Trace

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/51647.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学习网络安全 为什么Linux首择Kali Linux? 以及如何正确的使用Kali Linux

1.什么是kali linux? Kali Linux是一款基于Debian的Linux发行版,主要用于网络安全测试和渗透测试。它由全球顶尖的安全专家和黑客社区维护开发,提供了丰富的工具和资源,用于测试安全性、漏洞利用和渗透测试。此外,Kal…

修复msvcp120.dll丢失的问题的几种简单方法,msvcp120.dll是什么

在使用电脑时,你可能会遭遇一个提示称“msvcp120.dll丢失”的错误信息。这个问题比较普遍,主要是因为你的系统中缺失了某个特定的动态链接库(DLL)文件。msvcp120.dll是由 Microsoft Visual C 可再发行包提供的关键文件&#xff0c…

一键切换阿里yum源(包括其他系统repo镜像查找方法)

一键切换阿里yum源 示例命令其他系统repo镜像GitHub文档 示例命令 # 备份旧源 mv CentOS-Base.repo CentOS-Base.repo.bak # 添加新源(阿里镜像源) wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo其他系统repo镜像 这里的示例是用…

create-vue项目的README中文版

使用方法 要使用 create-vue 创建一个新的 Vue 项目,只需在终端中运行以下命令: npm create vuelatest[!注意] (latest 或 legacy) 不能省略,否则 npm 可能会解析到缓存中过时版本的包。 或者,如果你需要支持 IE11,你…

链表篇-02.从尾到头打印链表(反转链表)

解题思路: 链表从尾到头打印链表, 我的思路是 用三个指针,第一个指针(pre)指向指向头节点的前一个位置,第二个指针(cur)指向头节点, 然后依次往后执行,第三个指针用于临时记录第二个指针的下一个位置。 代码详情: import java.…

2024年中职云计算实验室建设及云计算实训平台整体解决方案

随着信息技术的飞速发展,云计算作为新一代信息技术的核心,正逐步渗透到各行各业,成为推动数字化转型的重要力量。为了适应这一趋势,中职教育作为技能型人才培养的重要阵地,亟需加强云计算实验室建设与云计算实训平台的…

西门子s7协议

S7Comm(S7 Communication)是西门子专有的协议,是西门子S7通讯协议簇里的一种。 S7通信协议是西门子S7系列PLC内部集成的一种通信协议,是S7系列PLC的精髓所在。 它是一种运行在传输层之上的(会话层/表示层/应用层&…

速记Java八股文——并发编程篇

前言 分类汇总 20 常见的 Java集合 经典后端面试题,并对题目进行了精炼总结,旨在帮助大家高效记忆,在面试中游刃有余,不至于陷入词穷的窘境。 Java 并发编程 多线程怎么使用的? 继承 Thread 类。实现 Runnable 接口。…

STL 简介(标准模板库)

前言 通过对C的特性,类和对象的学习和C的内存管理对C基本上有了全面的认识,但是C的核心在于STL 一、STL简介 什么是STL C STL(Standard Template Library,标准模板库)是C编程语言中一个功能强大的模板库,…

【Linux】CentOS更换国内阿里云yum源(超详细)

目录 1. 前言2. 打开终端3. 确保虚拟机已经联网4. 备份现有yum配置文件5. 下载阿里云yum源6. 清理缓存7. 重新生成缓存8. 测试安装gcc 1. 前言 有些同学在安装完CentOS操作系统后,在系统内安装比如:gcc等软件的时候出现这种情况:&#xff08…

前端 socket.io 跨域

在使用Socket.io进行前端跨域通信时,可以通过设置Socket.io的cors选项来允许跨域请求。 以下是一个简单的例子,展示了如何在Node.js的服务器代码中配置Socket.io以允许跨域连接: const express require(express); const http require(http…

【C++进阶学习】第九弹——哈希的原理与实现——开放寻址法的讲解

前言: 在前面,我们已经学习了很多存储机构,包括线性存储、树性存储等,并学习了多种拓展结构,效率也越来越高,但是是否有一种存储结构可以在大部分问题中都一次找到目标值呢?哈希可能能实现 目录…

Vite项目中根据不同打包命令配置不同的后端接口地址,proxy解决跨域

在vite.config.ts同级目录添加两个文件 .env.development #开发环境 VITE_APP_ENV developmentVITE_APP_BASE_API .env.production #生产配置 VITE_APP_ENV productionVITE_APP_BASE_API https://www.bdjw.work代码中使用路径 const request axios.create({baseURL: i…

Maven已经导入Junit包,但是还是无法使用注解

Maven已经导入Junit包&#xff0c;但是还是无法使用注解 背景&#xff1a; 导入了Junit的依赖 <dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></d…

【Python的GDAL/OGR库】

GDAL/OGR库是一个开源的地理数据处理库&#xff0c;用于读取、写入和转换各种地理数据格式。以下是对GDAL/OGR库的详细解释&#xff1a; GDAL&#xff08;Geospatial Data Abstraction Library&#xff09; 定义&#xff1a;GDAL是一个在X/MIT许可协议下的开源栅格空间数据转…

【初阶数据结构题目】2.移除元素

文章目录 顺序表算法题代码&#xff1a; 顺序表算法题 点击链接做题 移除元素 思路&#xff1a;定义两个变量指向数组第一个位置&#xff0c;判断nums[src]是否等于val 相等&#xff0c;src不相等&#xff0c;nums[dst] nums[src],src,dst 代码&#xff1a; int removeElem…

如何使用CANoe自带的TCP/IP Stack验证TCP的零窗口探测机制

如果想利用CANoe自带的TCP/IP协议栈验证TCP的零窗口探测机制,就必须添加一个网络节点并配置独立的CANoe TCP/IP协议栈,作为验证对象。而与它进行TCP通信的对端也是一个网络节点,但不要配置TCP/IP协议栈,而是使用CAPL代码在底层组装TCP报文模拟TCP通信过程。这样可以尽量减少…

postgrsql——事务概述

事务概述 事务的特性 原子性&#xff08;Atomicity&#xff09;&#xff1a; 事务被视为一个整体&#xff0c;其中的操作要么全部执行成功&#xff0c;要么全部不执行&#xff0c;即不存在部分执行的情况。这确保了事务的完整性和一致性。一致性&#xff08;Consistency&…

C——简介

一、C语言的诞生背景 C语言的诞生并非偶然&#xff0c;它是为了解决当时编程环境中存在的问题而设计的。在C语言出现之前&#xff0c;编程主要依赖于汇编语言&#xff0c;这种语言虽然执行效率高&#xff0c;但编写和维护都极其复杂且容易出错。与此同时&#xff0c;高级语言如…

轻松入门Linux—CentOS,直接拿捏 —/— <1>

一、什么是Linux Linux是一个开源的操作系统&#xff0c;目前是市面上占有率极高的服务器操作系统&#xff0c;目前其分支有很多。是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统 Linux能运行主要的UNIX工具软件、应用程序和网络协议 Linux支持 32…