通过魔塔社区下载后的数据集,在联网状态下,可以直接使用官方的脚本进行读取:
from modelscope.msdatasets import MsDataset
ds = MsDataset.load('open-r1/OpenR1-Math-220k', subset_name='default', split='train')
or huggingface的读取方式:
from datasets import load_dataset
ds = load_dataset("open-r1/OpenR1-Math-220k", config_name="default")
以上两种方式,首先都会先尝试访问外网,下载相应的数据集。但是在本地已有数据集的情况下,依然会先访问外网,在离线状态下,会直接报错返回。
在网上看到许多方法,基本都是记载本地的csv数据集或者json数据集,都没啥用,因为modelscope上下载下来的都是.arrow格式的数据。还有说在MsDataset.load中的cache_dir指定数据集目录的,各种方法都尝试了,目录从modelscope根目录到数据集目录换了个遍,都没用。
最后尝试了很多办法终于找到了解决方式,具体如下:
from datasets import load_dataset
ds = load_dataset('/home/***/.cache/modelscope/hub/datasets/open-r1___open_r1-math-220k/default-f85bbd709552ea85/0.0.0/master')
还是使用datasets库下的load_dataset方法,直接输入下载数据集的目录,也就是.arrow文件和dataset_info.json文件所在目录,就可以实现离线加载了。