README.md
March 16, 2026 · View on GitHub
NCRL: Efficient Reinforcement Learning by Guiding World Models with Non-curated Data
PyTorch implementation of the NCRL algorithm from Efficient Reinforcement Learning by Guiding World Models with Non-curated Data. NCRL enables RL agents to effectively leverage reward-free and multi-embodiment offline data with world models.
Leveraging offline data is a promising way to improve the sample efficiency of online reinforcement learning (RL). This paper expands the pool of usable data for offline-to-online RL by leveraging abundant non-curated data that is reward-free, of mixed quality, and collected across multiple embodiments. Although learning a world model appears promising for utilizing such data, we find that naive fine-tuning fails to accelerate RL training on many tasks. Through careful investigation, we attribute this failure to the distributional shift between offline and online data during fine-tuning. To address this issue and effectively use the offline data, we propose two techniques: i) experience rehearsal and ii) execution guidance. With these modifications, the non-curated offline data substantially improves RL's sample efficiency. Under limited sample budgets, our method achieves a 102.8% relative improvement in aggregate score over learning-from-scratch baselines across 72 visuomotor tasks spanning 6 embodiments. On challenging tasks such as locomotion and robotic manipulation, it outperforms prior methods that utilize offline data by a decent margin.
Installation
Create and activate the conda environment:
conda env create -f environment.yaml
conda activate ncrl_env
Models and Datasets
Models and datasets used in the paper are hosted on Hugging Face https://huggingface.co/datasets/zhaoyi11/ncrl.
After downloading: a) unzip the files, and b) move the models and datasets to <Model_Path> and <Data_Path> respectively.
The model and dataset should have the following structure:
/<Base-Path>/ncrl/models (<Model_Path>)
|- dmcontrol.pt
|- metaworld.pt
/<Base-Path>/ncrl/ncrl_datasets (<Data_Path>)
|- dmcontrol
|- metaworld
Training Pipeline
-
(Optional) World model pre-training Edit
DATASETS_PATHinscripts/pretrain.shto<Data_Path>, then run:./scripts/pretrain.sh -
Build the dataset database (~10 min with RXT4090):
python3 src/prepare_dataset_kv.py \ --model-basedir <Model_Path> \ --data-basedir <Data_Path> \ --path-to-save <Database_Path>/dataset_db.npz -
Task-specific fine-tuning The training was conducted on AMD MI250x GPUs with 128G memory. If you encounter an OOM issue, try reducing the
ws.batch_sizeandws.chunk_length. Edit the following fields inscripts/finetune.shSNAPSHOT_BASEDIR→<Model_Path>(or your pre-trained world model in step 2)DATA_DB_PATH→<Database_Path>/dataset_db.npzENV→ Training env name (seesrc/envs.pyfor the full list) Then run:
./scripts/finetune.sh
BibTeX
If you find this repository useful for your research, please consider citing:
@inproceedings{zhaoefficient,
title = {Efficient Reinforcement Learning by Guiding World Models with Non-Curated Data},
author = {Zhao, Yi and Scannell, Aidan and Zhao, Wenshuai and Hou, Yuxin and Cui, Tianyu and Chen, Le and B{\"u}chler, Dieter and Solin, Arno and Kannala, Juho and Pajarinen, Joni},
booktitle = {The Fourteenth International Conference on Learning Representations}
year = {2026}
}