【免费下载链接】Minari
A standard format for offline reinforcement learning datasets, with popular reference datasets and related utilities
Minari 是离线强化学习(Offline RL)领域的标准数据集格式与托管工具,你可以把它理解为"离线版的 HuggingFace Datasets"。通过内置的远程托管能力,Minari 支持将数据集发布到 HuggingFace Hub 或 GCP 存储桶,并配合minari download一行命令拉取、版本校验后加载,极大简化了离线数据集的分享与复用流程。
为什么需要远程托管?
本地数据集默认存放在~/.minari/datasets/目录(可用环境变量MINARI_DATASETS_PATH修改),这在单机研究中够用,但数据集要分享给团队、复现论文结果时,就需要一个远程仓库。Minari 原生支持两类远程后端:
- 🅗HuggingFace Hub:
hf://组织名/数据集ID,默认远程源即hf://farama-minari(官方参考数据集全部托管在此); - ☁️GCP 存储桶:
gcp://桶名,适合企业内部私有化托管。
二者的实现都继承自统一的抽象接口 cloud_storage.py,上层逻辑(下载、上传、版本校验)完全复用,详见 hosting.py。
一键接入:安装 Minari 与选择存储后端
Minari 采用可选依赖设计:基础包不含云客户端,按需安装即可。
pip install "minari[all]" # 或按需安装:minari[hf]、minari[gcs]minari[hf]安装huggingface_hub,启用 HuggingFace 存储后端;minari[gcs]安装google-cloud-storage+tqdm(带下载进度条),启用 GCP 存储后端。
切换远程源只需设置环境变量MINARI_REMOTE,格式为remote-type://remote-path:
# 使用自己的 HuggingFace Hub 组织 export MINARI_REMOTE=hf://my-org # 或指向自己的 GCP 存储桶 export MINARI_REMOTE=gcp://my-datasets设置后,所有minari list / download / upload命令都会自动指向该远程,无需改代码。
从 HuggingFace Hub 下载数据集:CLI 三步走
第 1 步:列出远程数据集
minari list remote终端会输出数据集表格,包含名称、总回合数、总步数、体积与作者,方便快速挑选。
第 2 步:下载指定数据集
minari download D4RL/door/human-v2数据集 ID 遵循(namespace/)(env_name/)数据集名-v版本号的规范(dataset_standards.md),例如D4RL/door/human-v2表示 D4RL 命名空间下、door 环境、human 策略生成的第 2 版数据。下载会校验 ID 中的版本号,并自动递归下载组合数据集的子集。
第 3 步:确认本地就位
minari list local💡 小技巧:minari download支持在 ID 前直接写完整远程路径(如hf://my-org/D4RL/door/human-v2),这样无需设置环境变量即可临时访问其他组织的仓库。
Python API:一行代码加载远程数据集
在脚本或 Notebook 中,load_dataset的download=True参数会自动先下载再加载:
import minari dataset = minari.load_dataset("D4RL/door/human-v2", download=True) episodes = dataset.sample_episodes(10) # 随机采样 10 条回合每条回合(EpisodeData)包含观察、动作、奖励、终止/截断标志与 infos 字段。以 Adroit 机械手门数据集为例,单帧观察长这样:
上传数据集到远程:HF Token 与 GCP 密钥的区别
上传前注意一个容易踩坑的细节:token参数在两个后端的含义不同(见 hosting.py 的文档说明):
| 后端 | token 含义 | 示例 |
|---|---|---|
| HuggingFace Hub | API Token(网页 Settings → Tokens 生成) | hf_xxxx |
| GCP | 服务账号密钥文件(JSON)的本地路径 | ./service-account.json |
命令行方式:
minari upload my-env/my-dataset-v0 --key-path ./service-account.jsonPython 方式:
from minari.storage import hosting hosting.upload_dataset("my-env/my-dataset-v0", token="hf_xxxx")上传逻辑位于 cli.py:会先校验本地数据集存在、远程不存在同名数据集,并自动把数据集所属命名空间的元数据一并上传。注意:向官方 Farama 服务器(farama-minari组织)投稿数据集需要事先联系 Farama 团队,自己的组织/存储桶则可自由上传。
版本兼容性与 force_download
这是 Minari 远程托管最贴心的设计之一:下载前会自动比对数据集制作时的 Minari 版本与当前安装版本(见 download_dataset):
- 存在兼容版本 → 正常下载;
- 指定版本不兼容 → 报错并提示可用的最新兼容版本;
- 本地已存在同名数据集 → 跳过下载并警告,加
--force/force_download=True才会覆盖。
遇到历史版本数据集需要强制下载时,直接加force_download=True即可(会打印警告但继续执行)。
下载后的下一步:直接接入训练
远程下载的数据集可无缝对接主流离线 RL 框架,如 TorchRL、d3rlpy、AgileRL。以下是一次 IQL 离线训练的损失与累积奖励曲线,数据即来自 Minari 托管数据集:
完整的从数据集到训练流程示例可参考 IQL_torchrl.py 教程。
常见问题速查
- 报错
huggingface_hub is not installed:执行pip install "minari[hf]"即可。 - 想切换多个远程源:
MINARI_REMOTE未设置时回退到默认的官方 HuggingFace 仓库;也可在list_remote_datasets(remote_path=...)中显式传参临时指定(hosting.py)。 - 只想看最新版本:调用
list_remote_datasets(latest_version=True)会过滤掉同一数据集的旧版本,加compatible_minari_version=True则只显示当前版本可加载的数据集。 - 元数据在哪:每个数据集的
data目录内含 metadata 文件,记录dataset_id、回合数、观察/动作空间、作者等字段,远程列目录时正是靠它识别数据集。
更多细节可查阅官方文档 basic_usage.md 与 dataset_standards.md。至此,你已掌握 Minari 远程数据集托管的核心玩法:设置MINARI_REMOTE→ 选择 HuggingFace Hub 或 GCP → 下载/上传一气呵成 🚀
【免费下载链接】Minari
A standard format for offline reinforcement learning datasets, with popular reference datasets and related utilities
相关推荐
XTuner 单轮对话数据管线完全指南:从 HuggingFace Hub 到自定义数据集的 SFT 实战
XTuner 单轮对话数据管线完全指南:从 HuggingFace Hub 到自定义数据集的 SFT 实战 单轮对话指令微调(Single turn Dialo
大模型模型微调Flagsmith 实验数据仓库连接指南:接入托管 Warehouse 与自带 ClickHouse 的完整实践
Flagsmith 实验数据仓库连接指南:接入托管 Warehouse 与自带 ClickHouse 的完整实践 导读 Flagsmith 的实验(Experi
后端前端Paseo Hosted Hub 使用指南:托管 Hub 的登录、数据模型与自托管切换
Paseo Hosted Hub 使用指南:托管 Hub 的登录、数据模型与自托管切换 Paseo Hub 是位于你的 daemon(守护进程)之上的编排层:d
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考