万事通,专精部分领域的多功能 Transformer 智能体

transformer · 浏览次数 : 0

小编点评

**总结:** * JAT 能够在各种任务中模仿专家的表现,其中以 Atari 57 的智能体达到专家得分的 14.1% 最接近。 * 对于其他几个游戏,JAT 的表现也非常好,例如 Meta-World 的智能体达到专家得分的 65.5%。 * JAT 使用单一网络实现了各种任务的性能。 * 预测观测值可以帮助智能体更好地预测动作,但这可能会使智能体偏离其主要目标,导致在观测和动作预测方面的表现平平。 * 最佳的预测观测值参数取决于任务,但一般而言, \\( k = 0.005 \\) 左右是一个最佳点。 * 结合观测损失和动作损失的损失函数可以显著提高智能体的性能。

正文

介绍

我们很高兴分享“万事通”(Jack of All Trades,简称 JAT) 项目,该项目旨在朝着通用智能体的方向发展。该项目最初是作为对 Gato (Reed 等,2022 年) 工作的公开复现启动的,Gato 提出训练一种能够执行视觉与语言以及决策任务的 Transformer。于是我们首先构建了 Gato 数据集的开放版本。随后,我们在此基础上训练了多模态 Transformer 模型,并针对处理顺序数据和连续值引入了若干改进。

总体而言,该项目取得了以下成果:

  • 发布了大量在各种任务上表现优异的 专家 RL 智能体
  • 发布了 JAT 数据集,这是第一个用于通用智能体训练的数据集。它包含了由专家智能体收集的数十万条专家轨迹。
  • 发布了 JAT 模型,这是一种基于 Transformer 的智能体,能够玩电子游戏、控制机器人执行各种任务、理解并在简单的导航环境中执行命令等!

数据集和专家策略

专家策略

传统的强化学习 (RL) 涉及在单一环境中训练策略。利用这些专家策略是构建多功能智能体的有效方法。我们选择了各种性质和难度不同的环境,包括 Atari、BabyAI、Meta-World 和 MuJoCo。在每个环境中,我们训练一个智能体,直到它达到最先进的性能水平。(对于 BabyAI,我们使用的是 BabyAI bot)。这些训练结果被称为专家智能体,并已在🤗 Hub 上发布。您可以在 JAT 数据集卡 中找到所有智能体的列表。

JAT 数据集

我们发布了 JAT 数据集,这是第一个用于通用智能体训练的数据集。JAT 数据集包含由上述专家智能体收集的数十万条专家轨迹。要使用此数据集,只需像从🤗 Hub 加载任何其他数据集一样加载它:

>>> from datasets import load_dataset
>>> dataset = load_dataset("jat-project/jat-dataset", "metaworld-assembly")
>>> first_episode = dataset["train"][0]
>>> first_episode.keys()
dict_keys(['continuous_observations', 'continuous_actions', 'rewards'])
>>> len(first_episode["rewards"])
500
>>> first_episode["continuous_actions"][0]
[6.459120273590088, 2.2422609329223633, -5.914587020874023, -19.799840927124023]

除了强化学习 (RL) 数据,我们还包含了文本数据集,以为用户提供独特的界面。因此,您还会发现 WikipediaOscarOK-VQAConceptual-Captions 的子集。

JAT 智能体架构

JAT 的架构基于 Transformer,使用了 EleutherAI 的 GPT-Neo 实现。JAT 的特别之处在于其嵌入机制,该机制专门用于内在地处理顺序决策任务。我们将观测嵌入与动作嵌入交错排列,并结合相应的奖励。

JAT 网络的架构。在顺序决策任务中,一方面将观测和奖励编码,另一方面将动作编码并交错排列。模型使用因果掩码自回归地生成下一个嵌入,并根据预期的模态进行解码。

每个嵌入因此对应于一个观测 (与奖励相关联) 或一个动作。那么 JAT 是如何编码这些信息的呢?这取决于数据的类型。如果数据 (观测或动作) 是图像 (如在 Atari 中的情况),那么 JAT 使用 CNN。如果是连续向量,则 JAT 使用线性层。最后,如果是离散值,JAT 使用线性投影层。同样的原理也用于模型输出,具体取决于要预测的数据类型。预测是因果的,将观测值移位一个时间步长。通过这种方式,智能体必须根据所有先前的观测和动作来预测下一个动作。

此外,我们认为让我们的智能体执行 NLP 和 CV 任务会很有趣。为此,我们还让编码器可以选择将文本和图像数据作为输入。对于文本数据,我们使用 GPT-2 的标记化策略,对于图像,我们使用 ViT 类型的编码器。

考虑到数据的模态可能因环境而异,JAT 如何计算损失呢?它分别计算每种模态的损失。对于图像和连续值,它使用 MSE 损失。对于离散值,它使用交叉熵损失。最终损失是序列中每个元素损失的平均值。 等等,这是否意味着我们对预测动作和观测赋予了相等的权重?实际上并不是这样,但我们将在 下文 中详细讨论。

实验与结果

我们在所有 157 个训练任务上评估 JAT。我们收集了 10 个回合的数据并记录总奖励。为了便于阅读,我们按领域汇总结果。

每个 RL 领域的汇总专家标准化得分及其 95%置信区间 (CI),作为学习步数的函数。

如果要用一个数字来总结这些结果,那就是 65.8%,这是在 4 个领域中相对于 JAT 专家的平均表现。这表明 JAT 能够在各种任务中模仿专家的表现。让我们更详细地看看:

  • 对于 Atari 57,智能体达到了专家得分的 14.1%,相当于人类表现的 37.6%。在 21 个游戏中超过了人类表现。
  • 对于 BabyAI,智能体达到了专家得分的 99.0%,仅在 1 个任务上未能超过专家得分的 50%。
  • 对于 Meta-World,智能体达到了专家得分的 65.5%。
  • 对于 MuJoCo,智能体达到了专家得分的 84.8%。

JAT 智能体在 Atari 57 基准测试中的人类标准化得分。

最令人印象深刻的是,JAT 在所有领域中使用 单一网络 实现了这一性能。为了衡量这一性能,让我们来看看 JAT 在一些任务中的渲染效果:

想试试吗?你可以的!JAT 模型 已在 🤗 Hub 上提供!

我们的模型显示了初步的文本任务处理能力,详情请参阅 论文

预测观测值的惊人好处

在训练 RL 智能体时,主要目标是最大化未来奖励。但是,如果我们还要求智能体预测它将来会观测到的内容,这个额外的任务会帮助还是妨碍学习过程呢?

对于这个问题有两种对立的观点。一方面,学习预测观测值可以提供对环境更深入的理解,从而导致更好更快的学习。另一方面,这可能会使智能体偏离其主要目标,导致在观测和动作预测方面的表现平平。

为了解决这一争论,我们进行了一个实验,使用了一个结合观测损失和动作损失的损失函数,并用一个加权参数 ( \kappa ) 来平衡这两个目标。

对于所选任务的观测预测学习影响研究的汇总度量及 95%置信区间 (CI)。结果覆盖所选的 \( k \) 值范围,并基于每个任务 100 次评估。选择最佳的 \( k \) 值可以显著提高智能体的性能。

结果非常显著。当 \( k \) 值过高 (0.5) 时,预测观测的额外目标似乎阻碍了学习过程。但是,当 \( k \) 值较低时,对学习的影响可以忽略不计,智能体的表现与不将预测观测作为目标时相似。

然而,我们发现 \( k = 0.005 \) 左右是一个最佳点,此时学习预测观测实际上提高了智能体的学习效率。 我们的研究表明,只要平衡得当,将预测观测添加到学习过程中是有益的。这一发现对这类智能体的设计有重要意义,强调了辅助目标在提高学习效率方面的潜在价值。

所以,下次训练 RL 智能体时,可以考虑让它预测将来会观测到的内容。这可能会带来更好的表现和更快的学习速度!

结论

在这项工作中,我们介绍了 JAT,一个能够掌握各种顺序决策任务并在 NLP 和 CV 任务中表现出初步能力的多用途 Transformer 智能体。对于所有这些任务,JAT 都使用单一网络。我们的贡献包括发布专家级 RL 智能体、JAT 数据集和 JAT 模型。我们希望这项工作能够激发未来在通用智能体领域的研究,并有助于开发更多功能和更强大的 AI 系统。

下一步是什么?研究请求

我们相信,JAT 项目为通用智能体领域的研究开辟了新的方向,而我们只是刚刚开始。以下是一些未来工作的想法:

  • 改进数据: 尽管具有开创性,JAT 数据集仍处于初期阶段。专家轨迹仅来自每个环境中的一个专家智能体,这可能会导致一些偏差。尽管我们尽力达到了最先进的性能,但有些环境仍然具有挑战性。我们相信,收集更多的数据和训练更多的专家智能体将会 大有帮助
  • 使用离线 RL: JAT 智能体是使用基本的行为克隆训练的。这意味着两件事: (1) 我们无法利用次优轨迹,(2) JAT 智能体不能超过专家的表现。我们选择这种方法是为了简单,但我们相信使用离线 RL 可以 大大提高 智能体的性能,同时实现起来也不会太复杂。
  • 释放更聪明的多任务采样策略的全部潜力: 目前,JAT 智能体从所有任务中均匀采样数据,但这种方法可能会限制其表现。通过动态调整采样率以集中于最具挑战性的任务,我们可以加速智能体的学习过程并释放 显著的性能提升

相关链接

引文

@article{gallouedec2024jack,
    title = {{Jack of All Trades, Master of Some, a Multi-Purpose Transformer Agent}},
    author = {Gallouédec, Quentin and Beeching, Edward and Romac, Clément and Dellandréa, Emmanuel},
    journal = {arXiv preprint arXiv:2402.09844},
    year = {2024},
    url = {https://arxiv.org/abs/2402.09844}
}

英文原文: https://hf.co/blog/jat

原文作者: Quentin Gallouédec, Edward Beeching, Clément ROMAC, Thomas Wolf

译者: xiaodouzi

与万事通,专精部分领域的多功能 Transformer 智能体相似的内容:

万事通,专精部分领域的多功能 Transformer 智能体

介绍 我们很高兴分享“万事通”(Jack of All Trades,简称 JAT) 项目,该项目旨在朝着通用智能体的方向发展。该项目最初是作为对 Gato (Reed 等,2022 年) 工作的公开复现启动的,Gato 提出训练一种能够执行视觉与语言以及决策任务的 Transformer。于是我们

万字长文 | 泰康人寿基于 Apache Hudi 构建湖仓一体平台的应用实践

文章贡献者 Authors 技术指导: 泰康人寿 数据架构资深专家工程师 王可 文章作者: 泰康人寿 数据研发工程师 田昕峣 摘要 Abstract 本文详细介绍了泰康人寿基于 Apache Hudi 构建湖仓一体分布式数据处理平台的技术选型方法、整体架构设计与实施、以及针对大健康领域的领域特征和公

[转帖]操作系统专家解读 openEuler 22.09 最新技术特性

https://linux.cn/article-15326-1.html 前不久,欧拉社区发布了今年的创新版本 openEuler 22.09。作为欧拉社区贡献给开放原子开源基金会后的首个创新版本,此版本中新增了 2012 万行代码,其中仅在 Linux 内核上就新增了 4.8 万行代码,全量代码

万物皆可集成资源包!低代码集成系列一网打尽

本文由葡萄城技术团队于博客园原创并首发 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 如何花最短的时间、用最少的成本解决客户的企业级应用定制问题? 如何满足数据库集成、Web API集成、第三方软件集成等需求,在如今万物皆可盘的当下,低代码如何用积木大玩

万物皆可集成系列:低代码对接微信小程序

本文由葡萄城技术团队于博客园原创并首发 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 近年来,微信小程序的开发如火如荼,很多移动端应用为了更方便被大家所使用的,都步入了小程序的行列 那么对于低代码平台开发的移动端应用是否可以和小程序集成呢?这里我以微信小

为医生打造专属数字分身!华为云联合万木健康打造医疗医学科普和患者教育数字人引擎

摘要:如今,医生出镜的视频已经成为喜闻乐见的医学科普和患者教育手段,但医生难以抽出时间拍摄、拍摄时间较长、成本较高等制作痛点也日益凸显。对此,国内首个医生AI数字人运营服务商——成都万木健康科技有限公司找到了破局之法。 本文分享自华为云社区《为医生打造专属数字分身!华为云联合万木健康打造医疗医学科普

读破万卷,神交古人,突破ChatGPT4096的Token限制,建立自己的垂直领域资料人工智能助理

ChatGPT的泛用性极高,上知天文,下通地理,参考古今,博稽中外,几乎无所不知,无所不晓。但如果涉及垂直领域的专业知识点,ChatGPT难免也会有语焉不详,闪烁其词的毛病,本次我们将特定领域的学习材料“喂”给ChatGPT,让它“学习”后再来回答专业问题。 专业领域语料问题 所谓专业领域语料问题,

零拷贝并非万能解决方案:重新定义数据传输的效率极限

本文讨论了零拷贝在优化数据传输效率方面的局限性。尽管零拷贝技术在减少数据传输过程中的内存拷贝次数方面有很大的优势,但它并非适用于所有情况。文章介绍了一些其他的优化方法,如异步I/O和直接I/O的组合、根据文件大小选择不同的优化方式。至此,我们的计算机基础专栏就结束了,不知道大家有没有发现,操作系统底层提供了丰富的解决方案来支持应用程序的复杂性和可扩展性。对于任何工作中遇到的问题,我们都可以从操作系统的角度寻找解决方法。

[转帖]如何大幅度提升EDA仿真效率?华为、概伦电子专家这样说

https://baijiahao.baidu.com/s?id=1734939411718338257&wfr=spider&for=pc 作者:电子创新网张国斌 2nm、GAA、3D封装、chiplet、异构....近年来,随着半导体工艺的进步,单颗IC的晶体管数量已经从百亿向千亿甚至万亿数量发

当你使用Taro时,你需要了解的一些事儿

2017 年 1 月 9 日凌晨,万众期待的微信小程序正式上线,前有跳一跳等爆圈小游戏的带动,后有特殊时期下各类健康码小程序的加持,小程序成为了国内技术圈独树一帜的存在。但随着小程序的迅猛发展,其实在小程序发展的过程中,关于小程序的架构就层出不穷,小程序架构的后面也会绑定一个专属 DSL,如类 React 或者类 Vue。