把Huggingface下载的arrow数据集转化为json格式

Arrow2json

使用默认的Huggingface路径

allenai/tulu-3-sft-mixture数据集为例。

使用load_dataset即可:

go 复制代码
from datasets import load_dataset

# 加载数据集
dataset = load_dataset("allenai/tulu-3-sft-mixture")

# 指定保存路径
output_dir = "~/xxx/open-instruct/data/tulu-3-sft-mixture-json"

# 将数据集转换为 JSON 格式
for split in dataset.keys():  # 处理所有划分 (train, validation 等)
    dataset[split].to_json(f"{output_dir}/{split}.json", orient="records", lines=True)

使用ls -sh输出可以看到数据集train.json大小是3.3GB

go 复制代码
3.3G train.json

从本地路径

本地路径如下:

查看一下文件大小:

go 复制代码
ls -sh ~/.cache/huggingface/datasets/allenai___tulu-3-sft-mixture-1024/train
total 1.2G
223M data-00000-of-00005.arrow  283M data-00002-of-00005.arrow  132M data-00004-of-00005.arrow
273M data-00001-of-00005.arrow  252M data-00003-of-00005.arrow  4.0K state.json

使用load_from_disk函数从本地路径加载

go 复制代码
from datasets import load_dataset, load_from_disk

# 加载数据集
dataset = load_from_disk("~/.cache/huggingface/datasets/allenai___tulu-3-sft-mixture-1024")

# 指定保存路径
output_dir = "~/xxx/open-instruct/data/tulu-3-sft-mixture-seqlen-1024-json"

# 将数据集转换为 JSON 格式
for split in dataset.keys():  # 处理所有划分 (train, validation 等)
    dataset[split].to_json(f"{output_dir}/{split}.json", orient="records", lines=True)

这样就可以转换为json了。

查看一下大小:

go 复制代码
ls -sh xxx/open-instruct/data/tulu-3-sft-mixture-seqlen-1024-json
total 1.3G
1.3G train.json

后记

2024年12月29日20点16分于上海.

相关推荐
小鸡吃米…1 天前
Python - JSON
开发语言·python·json
武藤一雄2 天前
一款基于WPF开发的BEJSON转换工具
windows·c#·json·wpf
联系QQ 180809512 天前
基于SVPWM改进的异步电机/感应电机直接转矩控制:解决传统DTC转矩纹波大的问题“ 参考文...
json
娱乐我有2 天前
北京深梵科技公益捐赠二十万 赋能流浪动物温暖过冬
人工智能·科技·json
charlee442 天前
使用cpp-httplib发布HTTP服务
c++·http·json·cpp-httplib
就是有点傻2 天前
ASP.NET Core Web API中的launchSettings.json介绍
json·asp.net
小北方城市网2 天前
第2课:零基础前端框架实操入门——从核心语法到第一个完整项目
javascript·ai·正则表达式·json·html5
Hcoco_me2 天前
RTMPose_JSON相关解读
算法·数据挖掘·json·聚类
码农阿豪2 天前
告别兼容焦虑:电科金仓 KES 如何把 Oracle 的 PL/SQL 和 JSON 业务“接住”
数据库·sql·oracle·json·金仓数据库
小肖爱笑不爱笑3 天前
JavaScript
java·javascript·json·web