lucidrains/q-transformer

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

Q‑Transformer – 자동 회귀 Q-함수를 활용한 오프라인 강화학습

무엇인가요 – 2023년 구글 딥마인드의 논문 Q‑Transformer를 PyTorch로 구현한 것입니다. Q-함수를 자동 회귀 모델로 간주하여 이산적 행동 시퀀스를 예측함으로써, 로봇 작업에 대한 확장 가능한 오프라인 강화학습을 가능하게 합니다.

주요 구성 요소

  • QRoboticTransformer – MaxViT 기반의 비전 트랜스포머 백본으로, 비디오 프레임과 선택적 텍스트 지시를 입력받아 이산 행동 공간의 Q-값을 출력합니다.
  • QLearner – 에이전트가 생성한 리플레이 메모리 데이터셋에서 Q-학습을 수행하는 학습 루프입니다.
  • Agent – 사용자가 제공한 환경(BaseEnvironment의 서브클래스)에서 모델을 실행하여 트래잭션을 수집합니다.
  • ReplayMemoryDataset – (상태, 행동, 보상, 다음 상태, 종료) 튜플을 저장하는 간단한 데이터셋 래퍼입니다.

설치 방법

pip install q-transformer

일반적인 워크플로우

  1. 환경 정의BaseEnvironment를 구현하거나, 비디오 텐서와 지시 임베딩을 기대하는 제공된 MockEnvironment를 사용합니다.
  2. 모델 생성 – 시각적 하이퍼파라미터(예: 작은 MaxViT)를 지정하고, 이산 행동 수와 비닝 수를 지정하여 QRoboticTransformer를 인스턴스화합니다.
  3. 데이터 수집Agent(model, environment, ...)()가 에피소드를 실행하고 전이를 리플레이 버퍼에 저장하며 디스크에 기록합니다.
  4. 학습QLearner(model, dataset=ReplayMemoryDataset(), ...)()가 Q-학습을 실행합니다(듀얼 헤드, n-스텝 리턴, 그래디언트 누적 등 지원).
  5. 행동 추론 – 학습 후, model.get_optimal_actions(video, instructions)를 호출하여 새로운 비디오-지시 쌍에 대한 최적의 이산 행동 시퀀스를 얻습니다.

특징

  • 자동 회귀 Q-함수 아이디어를 구현하여 다차원 이산 행동 공간을 효율적으로 처리할 수 있습니다.
  • 선택적 듀얼 아키텍처, n-스텝 리턴, 보수적 정규화 플레이스홀더를 포함합니다.
  • 로봇 작업에 특화되어 있으며, 멀티카메라 비디오((3, 6, 224, 224))와 언어 지시를 처리합니다.
  • 리포지토리는 지속적인 연구 방향(예: 비음 서치 디코딩, 과거 행동에 대한 크로스 어텐션, Gumbel 기반 탐색)을 반영한 상세한 TODO 목록을 추적합니다.

누가 사용할 수 있나요

  • 조작 또는 몸체 기반 에이전트를 위한 오프라인 RL을 실험하는 연구자.
  • 비디오와 언어에서 이산화된 로봇 제어를 위한 즉시 실행 기준이 필요한 실무자.
  • Q‑Transformer 논문의 재현 또는 확장에 관심 있는 누구나 (이 구현은 Kotb et al., 2024에 의해 재현됨).

인용 – README에는 원본 Q‑Transformer 논문 및 관련 연구(FlashAttention, 지속적 학습 정규화 등)의 BibTeX 항목이 제공됩니다.


위의 모든 세부 정보는 리포지토리의 README에서 직접 인용되었습니다.

관련

  • Dispatch
  • Dispatch
  • Dispatch
  • Dispatch
  • 프로젝트