Decision Transformer 在 Hugging Face Transformers 中的整合
TL;DR
Hugging Face 已將 Decision Transformer 整合至 transformers 程式庫與 Hugging Face Hub。此整合讓研究人員能透過將決策視為序列建模問題來套用離線強化學習 (RL),從而不需要在訓練期間與環境進行即時互動。
離線強化學習 vs. 線上 RL
離線強化學習使代理能夠使用從其他代理或人類示範收集的靜態資料集來學習最佳策略,而不必透過試錯與環境互動。
相較之下,線上 RL 需要代理直接從環境中收集資料。此方式通常需要高保真度的模擬器或直接的真實世界互動,這兩者皆可能成本高昂、建置複雜,或在代理利用模擬器缺陷時造成安全風險。
雖然離線 RL 可避免上述風險,但它會面臨「反事實查詢問題」,即代理可能遭遇或決策的狀態在訓練資料中並不存在。
Decision Transformer 架構
Decision Transformer 將強化學習抽象為條件序列建模問題。它不使用傳統的 RL 方法(例如擬合價值函數以最大化累積回報(return)),而是採用 Transformer 架構,根據目標回報、過去的狀態與動作來產生未來的動作。
技術流程
- Input Sequence:模型以最近 K 個時間步作為輸入,包含三個組件:Return-to-go、State 與 Action。
- Embedding:這些輸入透過線性層(針對向量狀態)或 CNN 編碼器(針對影像框)進行處理。
- Autoregressive Prediction:基於 GPT-2 的模型處理這些 token,autoregressively(自回歸)預測未來動作,有效地對狀態、動作與回報的聯合分佈建模。
透過將範式從回報最大化轉變為生成軌跡建模,Decision Transformer 產生一系列旨在達成特定目標回報的動作。
在 🤗 Transformers 中的實作
Decision Transformer 現已在 transformers 程式庫中提供,並附有九個針對 Gym 環境中連續控制任務(包括 Hopper、Walker2D 與 Halfcheetah)的預訓練模型檢查點。
模型載入與使用
使用者可透過 DecisionTransformerModel 類別載入預訓練模型:
from transformers import DecisionTransformerModel
model_name = "edbeeching/decision-transformer-gym-hopper-expert"
model = DecisionTransformerModel.from_pretrained(model_name)
自回歸動作預測
由於模型為自回歸型,時間步 t 的預測會以先前時間步的輸出作為條件。實作上需要準備輸入(states、actions、returns-to-go 與 timesteps),並將它們填充至模型的 max_length,再送入模型以預測下一個動作。
透過目標回報控制效能
回報條件化離線 RL 的主要優勢之一是能透過調整目標回報來控制策略效能。這使得可以動態調整代理的難度,對於在多人環境中打造對手機器人尤為有用。
Hugging Face 深度強化學習未來路線圖
Hugging Face 計畫進一步擴充對深度強化學習生態系的支援,具體包括以下項目:
- 整合
RL-baselines3-zoo。 - 將
rl-trained-agents(使用 stable-baselines3)中的一系列預訓練 RL 代理上傳至 Hub。 - 整合其他深度 RL 程式庫。
- 為 Atari 環境實作卷積 Decision Transformers。