首页 > 其他分享 >PoliFormer:使用 Transformers 扩展策略在线 RL,打造熟练导航员

PoliFormer:使用 Transformers 扩展策略在线 RL,打造熟练导航员

时间:2024-11-11 08:45:42浏览次数:6  
标签:导航员 Transformer 缓存 Transformers 训练 PoliFormer 解码器 因果 智体

24年6月来自西雅图AI2的论文“PoliFormer: Scaling On-Policy RL with Transformers Results in Masterful Navigators”,获得CoRL‘24最佳论文之一。

POLIFORMER(策略 Transformer),这是一个仅限 RGB 的室内导航智体,通过大规模强化学习进行端到端训练,尽管纯粹在模拟中训练,但它无需适应即可推广到现实世界。POLIFORMER 使用基础视觉Transformer编码器和因果Transformer解码器,可实现长期记忆和推理。它针对不同环境中的数亿次交互进行了训练,利用并行、多机部署实现高吞吐量高效训练。POLIFORMER 是一个熟练的导航器,在两个不同的实施例(LoCoBot 和 Stretch RE-1 机器人)和四个导航基准上产生了最好的结果。它突破了以前研究的瓶颈,在 CHORES-S 基准上实现了 85.5% 的物体目标导航(ObjectNav)成功率,绝对提升 28.5%。 POLIFORMER 还可以轻松扩展到各种下游应用,例如目标跟踪、多目标导航和开放词汇导航,无需微调。

如图所示:POLIFORMER 是一种基于Transformer的策略,在模拟中使用 RL 进行大规模训练,在两个具身中,在模拟(左下)和现实世界(右下)中实现了显着的性能改进。SR 表示成功率。在多个维度上扩展基于策略的 RL 训练:(左上)随 RL 训练的扩展,性能不断提高;(中上)用数百个并行部署来提高吞吐量;(右上)​​开发一种基于transformer的策略,将模型参数扩展到数亿。

请添加图片描述

具身导航中的 IL 和 RL。最近的进展包括点目标导航 [1]、物体目标导航 [3、23、24、25]、探索 [26、27、28] 和社交导航 [29],以及成功的模拟-到-现实迁移 [6] 和各种下游应用中的高性能 [16、30、31、32、33、34、35]。构建有能力导航智体的流行方法包括端到端训练 [1、6] 和利用映射 [36、37、38] 或现成基础模型 [39、40、41、42、43] 的模块化方法。在这些框架中,策略模型通常用专家轨迹的模仿学习 (IL) [44、45、46、47、48、49、50] 或交互式环境中的强化学习 (RL) [29、51、52、53、54、55、56、57、58、59] 进行优化,并精心调整奖励塑造和辅助损失 [5、60、61、62、63]。

基于 Transformer 的具身智体策略。最近的研究使用基于 Transformer 的架构来构建具身智体。决策 Transformer (DT [64]) 离线学习策略,以先前的状态、动作和未来的回报为条件,为使用 Transformer 作为顺序决策模型提供了一条途径。 ODT [65] 以 DT 为基础,提出融合离线预训练和在线微调,在 D4RL [66] 中显示出有竞争力的结果。最近,MADT [67] 展示了在多智体游戏环境中对离线训练 DT 进行少样本在线 RL 微调。Skill Transformer [68] 通过 IL 学习用于长范围移动操作任务的策略。这些工作的重点是针对特定任务的控制(依赖于 IL 预训练)。

人们在提高策略的规模和训练稳定性方面付出了巨大的努力。GTrXL [69] 提出在 [70] 中通过门控层增强因果Transformer策略,实现稳定的 RL 训练。PDiT [71] 提出交错基于感知和决策Transformer的块,展示了其在全观察环境中的效果。 GATO [72] 在包括运动和操纵在内的多种任务上学习了一种基于 Transformer 的大规模策略。Performer-MPC [73] 提出了可学习的模型预测控制(MPC)策略,以低秩注意Transformer(Performer [74])作为可学习的代价函数。SLAP [75] 基于混合设计学习一种移动操纵策略。Radosavovic [76] 使用 RL 和 IL 学习了一种因果Transformer器,用于现实世界的人形运动。他们的输入是本体感受状态,没有视觉观察,他们学习的策略是静止的(在现实世界中稳步行走)。

面向导航基础模型。许多近期研究都试图生成通用的“基础”导航模型。人形户外运动的因果Transformer [76] 依赖于本体感受状态,表现出手臂摆动和上下文适应等突发行为。GNM [77] 通过 IL 在各种具身中训练图像目标条件策略(即在所需目标位置对图像进行条件调节),这使它们能够扩大训练数据的大小并设法推广到控制未见过的具身。NOMAD [78] 扩展了 ViNT [79],它使用扩散策略,也使用图像目标条件。
虽然强化学习对于训练策略有效且直观,但它在具身人工智能中的扩展程度尚未达到其他领域那样的程度。强化学习主要应用于短期任务 [80, 81]、较小环境 [82, 83] 或利用特权知识的任务 [1]。本文将学习扩展到三个领域:(i) 网络容量,通过 POLIFORMER 的深度、高容量模型架构;(ii) 并行性和批大小,通过高度并行化的训练方法,利用大的批大小来提高效率;(iii) 训练环境,通过对模拟环境的优化来支持高速训练。

如图所示:POLIFORMER 是一个完全基于Transformer的策略模型。在每个时间步 t,它都会进行以自我为中心的 RGB 观察 it,使用视觉Transformer模型提取视觉表征 rt,进一步使用视觉表征和目标特征 g(以及可选检测的边框目标特征 g/bt)对状态特征 st进行编码,使用因果Transformer解码器随时间对状态信念 bt 进行建模,最后分别通过线性参与者头和批评者头预测动作逻辑 at 和价值估计 e^t。对于预测展开收集和推理,利用 KV 缓存 [10] 作为时间缓存策略,防止在每个新时间步重计算所有先前时间步的前向传递,从而节省内存并加快训练和推理速度。

请添加图片描述

POLIFORMER架构

视觉Transformer模型。受先前研究 [6, 86] 的启发,选择 DINOv2 [9] 作为视觉基础主干,因为它具有出色的密集预测和模拟-到-现实的迁移能力。视觉主干以自我中心的 RGB 观察 i 作为输入,并生成逐块表示 r。将视觉表示塑造成 l x h 矩阵,l = H x W / 196,(H 和 W 是观察的高度和宽度,h 是视觉表示的隐维度),并把表示投影生成 v,其中 d 是Transformer状态编码器的输入维度。为了有效地进行模拟-到-现实的迁移,在模拟训练时保持视觉Transformer模型冻结非常重要。

目标编码器。为了公平比较,当使用 LoCoBot 在 ObjectNav 基准上训练目标时,遵循 EmbCLIP [39] 并使用独热嵌入层对目标物体类别进行编码。在使用 Stretch RE-1 机器人的基准测试中,遵循 SPOC [6],使用 FLAN-T5 小 [87, 88] 模型对给定的自然语言目标进行编码,并使用 T5 模型中的最后一个隐状态作为目标嵌入。在将目标嵌入传递给Transformer状态编码器之前,始终将嵌入投影到所需维度 d,从而得到 g。

在选定的实验中,通过边框(b 框)指定目标物体,作为文本的补充或替代。在这种情况下,目标编码器使用正弦位置编码和坐标类型嵌入来处理 b 框,以嵌入左上角、右下角的 b 框坐标及其面积(总共 5 个值),然后使用 MLP 将隐特征投影到所需的维度 d,从而得到 gb。
Transformer 状态编码器。该模块将每个时间步的状态总结为向量 s 。该编码器的输入包括视觉表示 v、目标特征 g 和 STATE token的嵌入 f。将这些特征连接在一起并将它们馈送到非因果Transformer编码器。然后,该编码器返回与 STATE token相对应的输出作为状态特征向量。由于Transformer状态编码器吸收了视觉和目标特征,因此生成的状态特征向量也可以看作是目标条件下的视觉状态表示。

因果Transformer解码器。用因果Transformer解码器随时间执行显式记忆建模。这可以实现长期(例如,使用回溯进行详尽探索)和短期(例如,围绕物体导航)规划。具体而言,因果Transformer解码器使用相同轨迹内的状态特征序列 s = {sj} 构建其状态信念 bt。

基于 RNN 的因果解码器 [89] 在展开收集期间只需要恒定时间来计算每个时间步的表示,而因果Transformer的标准实现需要 t2 时间来计算时间步 t 的表示。这种巨大的计算成本使具有因果Transformer模型的大规模在线策略 RL 变得缓慢。为了克服这一挑战,用 KV 缓存技术 [10] 将过去的前馈结果保存在两个缓存矩阵中,一个用于K,一个用于V。使用 KV 缓存,因果Transformer解码器仅使用最新状态特征执行前馈计算,这会导致计算时间仅在 t 中线性增长,而不是二次增长。虽然这在数学上仍然比基于 RNN 的解码器所需的恒定时间慢,但从经验上讲,在该设置中,配备 KV 缓存的因果Transformer和 RNN 在整体训练 FPS 方面只有很小的差异。与其他时间缓存策略相比,KV-Cache 提供显著的速度提升。

可扩展RL训练

虽然 KV-cache 加速了因果Transformer,但仅靠这一点还不足以实现高效、快速的 RL 训练。本文用多节点训练并行化训练过程,与以前的方法 [30, 59, 86] 相比,并行部署的数量增加了 4 倍(对 Stretch RE-1 智体使用 192 个并行部署,对 LoCoBot 智体使用 384 个)。在 4 个节点上采用 DD-PPO [1] 学习算法,总共使用 32 个 A6000 GPU 和 512 个 CPU 核心。这种扩展将训练速度提高了约 3.4 倍,与单节点训练相比,几乎是线性增益;使用 4 个节点,训练 ∼4.5 天,而使用单个节点则需要 15.3 天。

训练期间的批次大小(以帧数表示)等于并行展开数 ® 乘以这些展开的长度 (T),因此,通过如上所述增加 R,可以乘以总批次大小。遵循 SPOC [6],并在整个实验过程中使用较小的恒定学习率 2 · 10−4。没有在训练期间退火学习率,而是遵循 PROCTHOR [11],将部署长度从 T=32 更改为 T=64,最后更改为 T=128 ,增加批次大小(最终 LoCoBot 智体的批次大小为 49,152 帧)。每 10M 步增加一次,直到达到 T =128。

扩展环境交互

对于 LoCoBot 上的实验,用原始的 PROCTHOR-10k 房屋进行训练,以便与基线进行公平比较。使用 KV 缓存技术,每秒的训练步数为 ∼2.3k,用于训练 POLIFORMER,在 32 块 GPU 上使用 384 个 rollout。对于 Stretch 上的实验,按照 [6],用 PROCTHOR-150k 房屋和 ∼40k 个带注释的 Objaverse 3D 资产。

由于在线策略 RL 需要智体与环境进行动态交互, AI2-THOR 中的 Stretch RE-1 智体使用的连续物理模拟太慢,无法有效地进行大规模训练。为了克服这个问题,通过带碰撞检查的传送方法离散地近似智体的连续运动。具体来说,为了移动智体,用表示智体沿所需移动方向的一个胶囊对撞器执行物理投射。如果投射未击中任何物体(表明没有潜碰撞),将智体传送到目标位置,否则让 AI2-THOR 像往常一样模拟连续运动。对于旋转,首先将智体传送到目标旋转姿势。如果智体的胶囊与任何物体发生碰撞,将智体传送回来并让 AI2-THOR 模拟连续旋转。对于任务,这些近似值将模拟速度提高约 40%。

用 Objaverse 资源时,AI2-THOR 场景加载和重置是一个重大瓶颈。将目标保存为 Msgpack 格式(可在 Unity 的 C# 后端原生使用)而不是仅限 Python 的 Pickle 文件,简化 AI2-THOR 的 Objaverse 3D 资源加载流水线。这一变化将新场景的加载时间从约 25 秒大大缩短至约 8 秒。通过所有这些改变,每秒的训练步数从∼550 增加到∼950,使用 32 个 GPU 上的 192 个展开训练 Stretch RE-1 智体,将训练时间减少了∼42%。

对于 LoCoBot 基准测试,遵循 [86] 在 ProcTHOR 房屋中的 10k 个训练场景中训练模型和基线,进行 435M 个训练步。评估集包括 AI2-iTHOR 20 个场景中的 800 个任务、ARCHITECTHOR 5 个场景中的 1200 个任务和 PROCTHOR-10k 150 个场景中的 1500 个任务。
对于 Stretch-RE1,在 150k ProcTHOR 房屋上训练模型和基线,这些房屋中填充了由 ObjaTHOR 处理的 Objaverse 资产。然后,像 [6] 一样对 200 个场景中的 200 个任务进行评估。在 32 个 GPU 上训练需要 4.5 天。

在训练期间,为了确保因果Transformer额解码器无法访问不同episode中的观察或状态,构建episode注意掩码,以仅允许关注同一episode中的过去经历。如图所示,展示在训练期间收集的几个可能展开。使用episode注意掩码,episode中的观察和状态只能关注同一episode中的先前观察和状态,而使用简单的因果掩码,它们也可能关注先前episode中的观察和状态。

请添加图片描述

除了 KV-Cache,存在四种不同的时间缓存策略(如图所示):
(i) 无缓存,缓存原始帧(视觉观察 i^t),为因果Transformer解码器提供过去的经验。因此,POLIFORMER 必须在每个时间步使用缓存的帧和最新的视觉观察在所有模块中重新前馈运行。
(ii) 特征缓存,缓存特征,包括视觉表示 v^t 和目标嵌入 g^t(以及 gb^t)。在这种情况下,POLIFORMER 需要在每个时间步使用缓存的特征和最新特征重新计算Transformer状态编码器和因果Transformer解码器。
(iii) 状态缓存,缓存状态特征向量 s^t。由于它就在因果Transformer解码器之前,POLIFORMER 只需要将缓存状态特征和最新的状态特征向量传递给解码器,而无需重新计算视觉Transformer模型、目标编码器和Transformer状态编码器。
(iv) KV-Cache,将K和V缓存在因果Transformer解码器内,从理论上进一步将Transformer解码器所需的计算时间从 t^2 减少到 t。此外,由于此策略在最后运行,因此可以节省因果Transformer解码器之前模块所需的所有重计算。

请添加图片描述
速度曲线结果如图所示。它清楚地表明,将缓存放置在更靠近因果Transformer解码器的位置可以显著提高训练效率。

请添加图片描述

标签:导航员,Transformer,缓存,Transformers,训练,PoliFormer,解码器,因果,智体
From: https://blog.csdn.net/yorkhunter/article/details/143659785

相关文章

  • 深入解析 Transformers 框架(四):Qwen2.5/GPT 分词流程与 BPE 分词算法技术细节详解
    前面我们已经通过三篇文章,详细介绍了Qwen2.5大语言模型在Transformers框架中的技术细节,包括包和对象加载、模型初始化和分词器技术细节:深入解析Transformers框架(一):包和对象加载中的设计巧思与实用技巧深入解析Transformers框架(二):AutoModel初始化及Qwen2.5模型加载全......
  • 【论文精读】BERT: Pre-training of Deep Bidirectional Transformers for Language U
    【论文精读】BERT:Pre-trainingofDeepBidirectionalTransformersforLanguageUnderstanding作者:JacobDevlin,Ming-WeiChang,KentonLee,KristinaToutanova发表会议:NAACL2019论文地址:arXiv:1810.04805BERT是近年来NLP领域影响最大的模型。在CV领域,很早......
  • Multi-criteria Token Fusion with One-step-ahead Attention for Efficient Vision T
    对于高效的ViT架构,近期研究通过对剪枝或融合多余的令牌减少自注意力层的二次计算成本。然而这些研究遇到了由于信息损失而导致的速度-精度平衡问题。本文认为令牌之间的不同关系以最大限度的减少信息损失。本文中提出了一种多标准令牌融合(Multi-criteriaTokenFusion),该融合......
  • 深入解析 Transformers 框架(三):Qwen2.5 大模型的 AutoTokenizer 技术细节
    前面2篇文章,我们通过查看Transformers包代码,学习了Transformer包模块API设计、模型初始化和加载流程:第1篇:transformers推理Qwen2.5等大模型技术细节详解(一)transformers包和对象加载第2篇:transformers推理Qwen2.5等大模型技术细节详解(二)AutoModel初始化......
  • transformers 推理 Qwen2.5 等大模型技术细节详解(二)AutoModel 初始化和模型加载(免费
    接上文:transformers推理Qwen2.5等大模型技术细节详解(一)transformers包和对象加载老牛同学和大家通过Transformers框架的一行最常见代码fromtransformersimportAutoModelForCausalLM,走读了transformers包初始化代码的整个流程。从中体会到了dummy对象、LazyModule延迟......
  • transformers 推理 Qwen2.5 等大模型技术细节详解(一)transformers 初始化和对象加载(
    上周收到一位网友的私信,希望老牛同学写一篇有关使用transformers框架推理大模型的技术细节的文章。老牛同学刚开始以为这类的文章网上应该会有很多,于是想着百度几篇质量稍高一点的回复这位网友。结果,老牛同学搜索后发现,类似文章确实不少,但是总觉得不太满意,要么细节深度不够,要么......
  • spacy-transformers: 在spaCy中使用预训练Transformer模型
    spacy-transformersspacy-transformers简介spacy-transformers是一个强大的库,它为spaCy提供了使用预训练Transformer模型的能力。这个库允许用户在spaCy管道中无缝集成像BERT、RoBERTa、XLNet和GPT-2这样的先进Transformer模型。通过spacy-transformers,我们可以轻松地将最先进......
  • Transformers: 引领自然语言处理的革命性工具
    transformers引言:Transformers的崛起在人工智能和自然语言处理(NLP)领域,Transformers模型的出现无疑是一场革命。而HuggingFace公司开发的Transformers库,更是将这场革命推向了一个新的高度。作为一个开源项目,Transformers为研究人员和开发者提供了一个强大而灵活的工具,使他......
  • transformers和bert实现微博情感分类模型提升
    关于深度实战社区我们是一个深度学习领域的独立工作室。团队成员有:中科大硕士、纽约大学硕士、浙江大学硕士、华东理工博士等,曾在腾讯、百度、德勤等担任算法工程师/产品经理。全网20多万+粉丝,拥有2篇国家级人工智能发明专利。社区特色:深度实战算法创新获取全部完整项目......
  • huggingface的transformers与datatsets的安装与使用
    目录1.安装 2.分词2.1tokenizer.encode() 2.2tokenizer.encode_plus ()2.3tokenizer.batch_encode_plus() 3.添加新词或特殊字符 3.1tokenizer.add_tokens()3.2 tokenizer.add_special_tokens() 4.datasets的使用4.1加载datasets 4.2从dataset中取数据  4.3对datas......