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
일반적인 워크플로우
- 환경 정의 –
BaseEnvironment를 구현하거나, 비디오 텐서와 지시 임베딩을 기대하는 제공된MockEnvironment를 사용합니다. - 모델 생성 – 시각적 하이퍼파라미터(예: 작은 MaxViT)를 지정하고, 이산 행동 수와 비닝 수를 지정하여
QRoboticTransformer를 인스턴스화합니다. - 데이터 수집 –
Agent(model, environment, ...)()가 에피소드를 실행하고 전이를 리플레이 버퍼에 저장하며 디스크에 기록합니다. - 학습 –
QLearner(model, dataset=ReplayMemoryDataset(), ...)()가 Q-학습을 실행합니다(듀얼 헤드, n-스텝 리턴, 그래디언트 누적 등 지원). - 행동 추론 – 학습 후,
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
- 프로젝트