lucidrains/q-transformer

Implementation of Q-Transformer, Scalable Offline Reinforcement Learning via Autoregressive Q-Functions, out of Google Deepmind

Q‑Transformer – 基于自回归 Q 函数的离线强化学习

是什么 – 2023年谷歌DeepMind论文《Q‑Transformer》的PyTorch实现。将Q函数视为自回归模型,预测离散动作序列,从而实现对机器人任务的可扩展离线强化学习。

核心组件

  • QRoboticTransformer – 基于MaxViT的视觉Transformer骨干网络,接收视频帧和可选的文本指令,输出离散动作空间的Q值。
  • QLearner – 在由代理生成的回放缓冲区数据集上执行Q学习的训练循环。
  • Agent – 在用户提供的环境(BaseEnvironment的子类)中运行模型以收集轨迹。
  • ReplayMemoryDataset – 用于存储(状态, 动作, 奖励, 下一状态, 完成)元组的简单数据集包装器。

如何获取

pip install q-transformer

典型工作流程

  1. 定义环境 – 实现 BaseEnvironment 或使用提供的 MockEnvironment,该环境期望输入视频张量和指令嵌入。
  2. 创建模型 – 使用视觉超参数(例如小型MaxViT)实例化 QRoboticTransformer,并指定离散动作数量和分箱数。
  3. 收集数据Agent(model, environment, ...)() 运行多个episode,将转换存储在回放缓冲区中,并写入磁盘。
  4. 训练QLearner(model, dataset=ReplayMemoryDataset(), ...)() 执行Q学习(支持dueling头、n步回报、梯度累积等)。
  5. 推断动作 – 训练完成后,调用 model.get_optimal_actions(video, instructions) 获取新视频-指令对的最佳离散动作序列。

独特之处

  • 实现了自回归Q函数思想,使模型能够高效处理多维离散动作空间。
  • 包含可选的dueling架构、n步回报和保守正则化占位符。
  • 面向机器人设计:模型可处理多摄像头视频((3, 6, 224, 224))和语言指令。
  • 仓库维护详细的TODO列表,反映正在进行的研究方向(如beam-search解码、对过去动作的交叉注意力、Gumbel探索)。

适合谁使用

  • 探索操作或具身智能体离线强化学习的研究人员。
  • 需要从视频和语言中实现离散化机器人控制即插即用基线的实践者。
  • 任何希望复现或扩展Q‑Transformer论文的人(该实现已被Kotb等,2024年复现)。

引用 – README提供了原始Q‑Transformer论文及相关工作(FlashAttention、持续学习正则化等)的BibTeX条目。


以上所有细节均直接取自仓库的README。

相关

  • Dispatch
  • Dispatch
  • Dispatch
  • Dispatch
  • 项目