D4RL은 Offline RL의 실패 모드 벤치마크다
D4RL의 목적, dataset 구성, normalized score, Minari 전환, 그리고 trading 연구에서 받아들일 점과 버릴 점을 정리합니다.
요약
D4RL은 Datasets for Deep Data-Driven Reinforcement Learning의 약자다. Offline RL algorithm을 비교하기 위해 만든 benchmark suite다.
핵심은 환경보다 dataset이다. Online RL benchmark는 agent가 환경과 상호작용하면서 점수를 낸다. D4RL은 미리 수집된 fixed dataset을 주고, agent가 추가 interaction 없이 policy를 학습하게 한다.
D4RL을 “offline RL의 ImageNet”처럼 부르기도 하지만, 더 정확하게는 offline RL 실패 모드 모음이다. Narrow dataset, biased behavior, mixed-quality trajectory, multi-task trajectory, stitching requirement 같은 문제가 들어 있다. 논문 저자들은 기존 benchmark가 partially-trained policy 데이터에 치우쳐 offline RL의 어려움을 충분히 드러내지 못한다고 봤다.
JeTech가 D4RL에서 배워야 할 점은 점수표 자체가 아니다. Dataset을 어떻게 설계하고, algorithm을 어떻게 공정하게 비교하며, normalized score와 evaluation protocol을 어떻게 고정할지다.
D4RL이 풀려던 문제
Offline RL은 실무적으로 매력적이다.
이미 존재하는 dataset
-> policy 학습
-> 위험한 online exploration 생략하지만 연구 비교는 어려웠다. 각 논문이 다른 dataset, 다른 환경, 다른 preprocessing, 다른 evaluation을 쓰면 algorithm 차이를 알기 힘들다. D4RL은 공통 dataset과 protocol을 제공해 이 문제를 줄였다.
BAIR의 D4RL 소개 글은 benchmark 목표를 분명히 설명한다. 현실 dataset은 평가가 어렵고, 단순 simulator dataset은 offline RL의 진짜 어려움을 드러내지 못한다. D4RL은 simulated domain 안에서 현실적인 dataset 문제를 흉내 내려 했다.
Dataset의 성격
D4RL은 단순히 “많은 transition”을 모은 benchmark가 아니다. Dataset collection 방식에 의미를 둔다.
| Dataset 성격 | Offline RL에서 어려운 이유 |
|---|---|
| Random | reward signal이 약하고 좋은 trajectory가 적다 |
| Medium | 중간 수준 policy라 개선 여지가 있지만 support가 좁다 |
| Medium-replay | 학습 중 replay buffer라 quality가 섞여 있다 |
| Medium-expert | 좋은 trajectory와 중간 trajectory가 섞여 있다 |
| Expert | action support가 좁아 BC는 쉬워도 개선은 어렵다 |
| Human/demo | non-Markovian behavior와 suboptimal behavior가 섞일 수 있다 |
| Multi-task | trajectory stitching 능력이 필요하다 |
Trading에서도 비슷한 구분이 필요하다.
| D4RL 용어 | Trading 대응 |
|---|---|
| random dataset | random exposure, random rebalance |
| medium dataset | 단순 trend following 또는 mean reversion |
| expert dataset | hindsight/oracle에 가까운 action, 단 leakage 위험 |
| medium-expert mix | 여러 synthetic action labeler 혼합 |
| replay dataset | 학습 중 나온 후보 policy trajectory 모음 |
| multi-task dataset | 종목, regime, horizon이 섞인 dataset |
JeTech의 synthetic action labeler mix는 D4RL의 dataset-quality 문제와 닮아 있다. Random만 있으면 reward가 약하고, oracle만 있으면 leakage와 support bias가 생긴다. Trend following, mean reversion, random, volatility-aware labeler를 섞어야 policy가 배울 action support가 생긴다.
주요 Task Family
D4RL은 여러 domain을 포함한다.
| Family | 예시 | 목적 |
|---|---|---|
| Gym locomotion | HalfCheetah, Hopper, Walker2d | continuous control 기본 성능 |
| AntMaze / Maze2D | navigation | trajectory stitching, sparse reward |
| Adroit | dexterous manipulation | high-dimensional action, demonstration data |
| Kitchen | multi-task manipulation | subtask composition |
| CARLA / Flow | driving, traffic | 현실적인 sequential decision 문제 |
Algorithm ranking은 task family마다 바뀐다. Dense reward locomotion에서 강한 방법이 sparse reward maze에서 약할 수 있다. Trading도 같다. Bull trend dataset에서 강한 policy가 sideways regime에서 손실을 낼 수 있다.
따라서 JeTech는 D4RL식 benchmark를 내부에 만들 때 하나의 평균 점수만 보면 안 된다.
symbol x regime x horizon x cost x algorithm이 축으로 나눠야 한다.
Normalized Score
D4RL은 raw return을 normalized score로 바꾼다.
normalized_score = 100 * (policy_return - random_return)
/ (expert_return - random_return)이 방식은 task마다 reward scale이 달라도 비교를 가능하게 한다. 하지만 normalized score는 benchmark 편의를 위한 숫자다. Trading에서는 그대로 쓰기 어렵다. Expert return 정의가 애매하고, random return도 transaction cost와 leverage 설정에 따라 크게 바뀐다.
JeTech는 D4RL의 아이디어를 trading metric으로 바꿔야 한다.
| D4RL | JeTech 대체 |
|---|---|
| random return | random exposure baseline |
| expert return | hindsight upper bound 또는 simple strategy upper band |
| normalized return | baseline-adjusted Sharpe, Calmar, drawdown score |
| episode return | cost-adjusted portfolio return |
| success rate | real gate pass rate |
핵심은 raw Sharpe 하나만 보지 않는 것이다. Strategy가 turnover를 10배로 올려 Sharpe를 개선했다면 net return은 나빠질 수 있다. D4RL의 normalized score처럼 JeTech도 비교 단위를 고정해야 한다.
D4RL의 한계
D4RL은 여전히 중요하지만 그대로 믿으면 안 된다.
1. Finance benchmark가 아니다
D4RL은 robotics, locomotion, navigation 중심이다. 금융 시장의 non-stationarity, heavy tail, regime shift, transaction cost, slippage, borrow cost, liquidity constraint를 직접 다루지 않는다.
따라서 D4RL에서 높은 점수를 낸 algorithm이 trading에서도 좋다는 보장은 없다. D4RL은 구현 sanity check와 algorithm 이해용이다.
2. Dataset과 environment version 이슈가 있다
D4RL은 Gym ecosystem 변화와 maintenance 이슈를 겪었다. Farama는 D4RL repository에서 offline datasets가 Minari로 이동했다고 안내한다. Minari announcement는 D4RL을 Minari로 대체하려는 배경을 설명한다.
JeTech에서는 D4RL을 직접 production dependency로 삼기보다, Minari 방식의 dataset API와 metadata discipline을 참고하는 편이 낫다.
3. Benchmark score가 구현 차이를 숨긴다
Offline RL은 preprocessing과 hyperparameter에 민감하다. CORL과 A Clean Slate for Offline RL이 중요한 이유가 여기에 있다. Algorithm을 비교하려면 network size, normalization, seed, replay sampling, evaluation episodes, target update 같은 구현 차이를 줄여야 한다.
JeTech가 “IQL이 ReBRAC보다 낫다”고 말하려면 최소한 아래 조건을 맞춰야 한다.
| 항목 | 고정 필요 |
|---|---|
| synthetic path set | 같은 world model sample |
| action labeler mix | 같은 trajectory generation policy |
| reward function | 같은 cost, drawdown penalty |
| model capacity | 가능한 같은 encoder와 hidden size |
| training budget | 같은 gradient step 또는 wall-clock budget |
| real gate | 같은 period, same symbols, same costs |
D3RL과 D4RL의 차이
이름이 비슷해서 혼동하기 쉽다.
| 이름 | 정체 | 역할 |
|---|---|---|
| D4RL | benchmark dataset suite | offline RL algorithm 평가용 dataset |
| d3rlpy | Python offline/deep RL library | algorithm 구현과 학습 API 제공 |
d3rlpy는 CQL, IQL, BCQ, TD3+BC 같은 algorithm을 쉽게 돌릴 수 있게 해주는 library다. D4RL은 algorithm이 아니라 dataset benchmark다. JeTech 구현을 직접 고칠 때는 CORL single-file 구현을 우선 참고하고, d3rlpy는 API 설계와 sanity experiment 용도로 보는 편이 좋다.
JeTech 내부 D4RL을 만든다면
JeTech에는 finance-specific D4RL이 필요하다. 이름을 붙이면 J4RL 같은 내부 benchmark가 될 수 있다. 핵심은 종목과 기간만 모으는 것이 아니라 dataset 품질 유형을 명시하는 것이다.
J4RL dataset card
symbol set
date range
market regime tags
observation schema
action labeler mix
reward formula
transaction cost
leverage cap
train/validation/test split
world model version
generation seed
quality metricsDataset type도 D4RL처럼 나눠야 한다.
| 내부 dataset type | 설명 |
|---|---|
random-v1 | exposure support 확인용 |
trend-medium-v1 | 단순 momentum labeler |
reversion-medium-v1 | contrarian labeler |
mixed-medium-v1 | random, trend, reversion 혼합 |
stress-tail-v1 | crash, volatility spike oversampling |
regime-mix-v1 | bull, bear, range, high-vol 균형 |
candidate-replay-v1 | 과거 후보 policy가 만든 trajectory |
이 구조가 생기면 algorithm 연구가 훨씬 깨끗해진다. 같은 dataset에서 IQL, ReBRAC, CQL, TD3+BC, Diffusion-QL을 비교하고, dataset이 바뀌었을 때 ranking이 어떻게 바뀌는지 볼 수 있다.
연구 결론
D4RL은 JeTech가 따라야 할 점수판이 아니다. JeTech가 내부 점수판을 만들 때 참고해야 할 설계 문서다.
우리가 가져올 것은 세 가지다.
1. Fixed dataset에서 algorithm을 비교한다. 2. Dataset quality와 collection policy를 metadata로 남긴다. 3. Evaluation protocol을 고정하고 normalized comparison을 만든다.
우리가 버릴 것은 하나다. D4RL leaderboard가 trading policy 우열을 말해준다는 착각이다. Trading policy의 최종 judge는 real market gate다.