【大模型】大语言模型语料下载

文章目录

  • 概述
  • Hugging Face
  • obs操作
  • git-lfs
  • 例子
    • RedPajama-Data-1T
    • SlimPajama-627B/
    • git clone续传
  • 数据格式
  • 参考资料

概述

大模型训练中语料是非常重要的,目前公网上有各种各样的语料可以供下载,但是不可能每个用户、每次训练任务都通过公网去拉取语料,因此我们需要在语料平台上为用户提前下载并且注册一些需要的语料,通过语料平台维护一些公用的语料。

鉴于语料下载的多样性,目前下载公网上的语料一般会先把语料下载到国外的服务器,然后再上传到华为云的 obs,最后再在 IDC 环境的服务器上将 obs 的数据下载到 CephFS 的语料目录(要求这台机器需要有外网以及挂载CephFS的权限)。

外网动辄上 TB 的语料下载是很费时间的,也很考验网络的可靠程度,因此在下载的时候,不管用什么方法,一定要注意断点续传之类的方案。

Hugging Face

下面以下载 Hugging Face 的 cerebras/SlimPajama-627B 为例,下面的脚本前提是需要安装 datasets。

from datasets import load_dataset
ds = load_dataset("cerebras/SlimPajama-627B")

因为数据集是会有低数据量的版本的,因此建议用户可以先用这部分做一些简单的测试,再决定是否全量下载。
在这里插入图片描述

# cat test.py
from datasets import load_dataset
dataset = load_dataset("neulab/conala", cache_dir="./dataset")
dataset.save_to_disk('dataset/neulab/conala')
(chatgpt) [root@ecs-f430 ~]# tree
.
├── dataset
│         ├── downloads
│         │         ├── c2f5907d74f66a3a8e62dfbbd17301cd9ac82f7af932353dbd97faa7c5636cfa
│         │         ├── c2f5907d74f66a3a8e62dfbbd17301cd9ac82f7af932353dbd97faa7c5636cfa.json
│         │         ├── c2f5907d74f66a3a8e62dfbbd17301cd9ac82f7af932353dbd97faa7c5636cfa.lock
│         │         ├── c6099a128d3e027c23a9f2e574333bf42e65bd69a531bbbe4ca2a53e6ee93190
│         │         ├── c6099a128d3e027c23a9f2e574333bf42e65bd69a531bbbe4ca2a53e6ee93190.json
│         │         └── c6099a128d3e027c23a9f2e574333bf42e65bd69a531bbbe4ca2a53e6ee93190.lock
│         ├── neulab
│         │         └── conala
│         │             ├── dataset_dict.json
│         │             ├── test
│         │             │         ├── data-00000-of-00001.arrow
│         │             │         ├── dataset_info.json
│         │             │         └── state.json
│         │             └── train
│         │                 ├── data-00000-of-00001.arrow
│         │                 ├── dataset_info.json
│         │                 └── state.json
│         └── neulab___conala
│             └── curated
│                 └── 1.1.0
│                     ├── 8557ab15640c382a1db16dca51ee1845bc77bf7c45015a2c095446a8e20ba5d3
│                     │         ├── conala-test.arrow
│                     │         ├── conala-train.arrow
│                     │         └── dataset_info.json
│                     ├── 8557ab15640c382a1db16dca51ee1845bc77bf7c45015a2c095446a8e20ba5d3_builder.lock
│                     └── 8557ab15640c382a1db16dca51ee1845bc77bf7c45015a2c095446a8e20ba5d3.incomplete_info.lock
└── test.py10 directories, 19 files

obs操作

curl -LO https://obs-community.obs.cn-north-1.myhuaweicloud.com/obsutil/current/obsutil_linux_amd64.tar.gz
tar zxvf obsutil_linux_amd64.tar.gz
mv obsutil_linux_amd64_5.5.9/obsutil /usr/local/bin/
obsutil config -i=<秘钥> -k=<秘钥> -e=obs.cn-north-4.myhuaweicloud.com
obsutil config -i=MJBDGH3HLXYZERXD2NRE -k=DAIVJcgpeflGzgdXMmA27yatPp1oYfyu707vx3gr -e=obs.ap-southeast-3.myhuaweicloud.com# 测试
obsutil cp obs://a800-bj/tmp/llama-2-7b . -f -r
obsutil cp obs://dok/dok-release-without-app-image.gz . -f -r
obsutil cp obs://dok/dok-release-without-app-image.gz.md5sum . -f -r

下面就是实际操作的时候打印的日志,可以评估一下下载的速度。
在这里插入图片描述

git-lfs

Hugging Face 的语料也可以用 git-lfs 进行下载,但是 git 下载的时候会把 .git 文件下载下来,而这个文件在使用的时候是没什么必要的。

git lfs install
git clone https://huggingface.co/datasets/cerebras/SlimPajama-627B

可以看到,通过 git 下载的数据,是跟 Hugging Face 页面显示的语料格式一样的。
在这里插入图片描述

例子

RedPajama-Data-1T

比如说下载这个数据集 RedPajama-Data-1T,实际上依靠下面的脚本也可以完成下载,通过分析 urls.txt 可以发现,下载的这些数据文件完全不经过 HF 的服务器,类似这种情况,有时候能是比直接从 HF 的服务器下载语料是快很多的。

wget 'https://data.together.xyz/redpajama-data-1T/v1.0.0/urls.txt'
while read line; dodload_loc=${line#https://data.together.xyz/redpajama-data-1T/v1.0.0/}mkdir -p $(dirname $dload_loc)wget "$line" -O "$dload_loc"
done < urls.txt

SlimPajama-627B/

这个在华为云的新加坡区的机器下载非常慢。

python -c 'from datasets import load_dataset;dataset = load_dataset("cerebras/SlimPajama-627B")'

但是上述这个方法一样会遇到一些网络问题。
在这里插入图片描述
通过 git clone 是容易报错的。
在这里插入图片描述
可以通过下面的方法实现断点续传。

from datasets import load_dataset
import datasets
import os# 需要设置一下环境变量
os.environ["HF_DATASETS_CACHE"] = "/data/hf_dataset/"
config = datasets.DownloadConfig(resume_download=True, max_retries=100)
dataset = datasets.load_dataset("cerebras/SlimPajama-627B", cache_dir="/data/hf_dataset/", download_config=config)

git clone续传

git clone --recursive --depth 1 <repository_url>

数据格式

  1. jsonl: json line格式
  2. jsonl.zst: 用zst压缩json line格式文件

测试一下。

(base) [root@ecs-f430 tmp]# unzstd example_holdout_212.jsonl.zst
example_holdout_212.jsonl.zst: 95993 bytes
(base) [root@ecs-f430 tmp]# ls
awesome-chatgpt-prompts  example_holdout_212.jsonl  example_holdout_212.jsonl.zst  obsutil_linux_amd64_5.4.11  systemd-private-a37c64d204184d31a75497db9347d40f-chronyd.service-jMVrVi
(base) [root@ecs-f430 tmp]# vim ^C
(base) [root@ecs-f430 tmp]# ll example_holdout_212.jsonl*
-rw-r--r-- 1 root root 95993 94 14:17 example_holdout_212.jsonl
-rw-r--r-- 1 root root 39089 94 14:17 example_holdout_212.jsonl.zst
(base) [root@ecs-f430 tmp]# ll -h example_holdout_212.jsonl*
-rw-r--r-- 1 root root 94K 94 14:17 example_holdout_212.jsonl
-rw-r--r-- 1 root root 39K 94 14:17 example_holdout_212.jsonl.zst
(base) [root@ecs-f430 tmp]# vim example_holdout_212.jsonl

参考资料

  1. datasets-server
  2. Hugging Face教程 - 5. huggingface的datasets库使用
  3. Datasets 使用小贴士: 探索解决数据集无法下载的问题
  4. huggingface之datasets将数据集下载到本地
  5. datasets.Dataset.save_to_disk
  6. How can I get the original files using the HuggingFace datasets platform?
  7. jsonlines官方网站

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/189084.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MYSQL操作详解

一)计算机的基本结构 但是实际上&#xff0c;更多的是这种情况: 二)MYSQL中的数据类型: 一)数值类型: 数据类型内存大小(字节)说明bit(M)M指定位数,默认为1单个二进制位值&#xff0c;或者为0或者为1&#xff0c;主要用于开/关标志tinyint1字节1个字节的整数值&#xff0c;支持…

快速走进通信世界 --- 基础知识扫盲

想不到吧&#xff0c;家人们&#xff0c;博主好久没来更新文章了&#xff0c;而且这次更新的是关于通信工程的文章。博主确实以前一直更新关于编程的文章&#xff0c;只不过最近在学习一些新的知识&#xff0c;以后有机会了我还是会继续更新一些编程技术文章的。不过每一门技术…

时序预测 | MATLAB实现WOA-CNN-BiGRU-Attention时间序列预测(SE注意力机制)

时序预测 | MATLAB实现WOA-CNN-BiGRU-Attention时间序列预测&#xff08;SE注意力机制&#xff09; 目录 时序预测 | MATLAB实现WOA-CNN-BiGRU-Attention时间序列预测&#xff08;SE注意力机制&#xff09;预测效果基本描述模型描述程序设计参考资料 预测效果 基本描述 1.MATLA…

数字政府!3DCAT实时云渲染助推上海湾区数字孪生平台

数字孪生&#xff0c;是一种利用物理模型、传感器数据、运行历史等信息&#xff0c;在虚拟空间中构建实体对象或系统的精确映射&#xff0c;从而实现对其全生命周期的仿真、优化和管理的技术。数字孪生可以应用于各个领域&#xff0c;如工业制造、智慧城市、医疗健康、教育培训…

idea使用git删除本地提交(未推送)

1、找到reset head 2、打开弹窗&#xff0c;在HEAD后面输入^ 结果为HEAD^ 注释&#xff1a; Reset Type 有三种&#xff1a; Mixed&#xff08;默认方式&#xff09;&#xff0c;保留本地源码&#xff0c;回退 commit 和 index 信息&#xff0c;最常用的方式Soft 回退到某个版本…

Android选项卡TabHost

选项卡主要由TabHost(标签&#xff0c;主人)&#xff0c;TabWidget(微件)和FrameLayout3个组件组成&#xff0c;用于实现一个多标签页的用户界面。 1. TabHost在XML文件中添加&#xff1a; XML布局文件中添加选项卡时必须使用系统id来为各组件指定id属性。 <TabHostandro…

1366 - Incorrect string value: ‘\xE5\xB9\xBF\xE5\x85\xB0...‘ for column编码错误

1366 - Incorrect string value: ‘\xE5\xB9\xBF\xE5\x85\xB0…’ for column ‘campus_name’ at row 1 > 查询时间: 0s 原因是数据库创建的时候使用的默认编码latin1&#xff0c;导致表和字段的编码格式都是这种编码&#xff0c;显然这种编码不支持中文。 自己修改了数据库…

MySQL表的增删改查(进阶)

目录 数据库约束 约束的定义 约束类型 null约束 unique:唯一约束 default:默认值约束 primary key:主键约束(重要) foreign key:外键约束(描述两个表之间的关联) 表的设计 一般思路 三大范式 一对一 一对多 ​编辑 多对多 ​编辑 新增 查询 聚合查询 聚合函…

leetcode(力扣) 51. N 皇后 (回溯,纸老虎题)

文章目录 题目描述思路分析对于问题1对于问题2 完整代码 题目描述 按照国际象棋的规则&#xff0c;皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。 n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上&#xff0c;并且使皇后彼此之间不能相互攻击。 给你一个整数…

OpenCV C++ 图像处理实战 ——《多二维码识别》

OpenCV C++ 图像处理实战 ——《多二维码识别》 一、结果演示二、zxing库配置2.1下载编译三、多二维码识别3.1 Method one3.1.1 源码3.2 Method two3.2.1 源码四、源码测试图像下载总结一、结果演示 </

nginx https 如何将部分路径转移到 http

nginx https 如何将部分路径转移到 http 我有一个自己的网站&#xff0c;默认是走的 https&#xff0c;其中有一个路径需要走 http。 实现 在 nginx 的配置文件 https 中添加这个路径&#xff0c;并添加一个 rewrite 的指令。 比如我需要将 tools/iphone 的路径转成 http&am…

Jvm虚拟机

问题&#xff1a; 计算机能识别的语言是二进制&#xff0c;Java文件是程序员编写的&#xff0c;如何能够在计算机上运行&#xff1f; 以及Java为什么可以实现跨平台&#xff1f; 一Java的jdk中有jvm虚拟机 可以将文件转换为字节码文件 使得它可以在各种平台上运行&#xff0c;这…

网网络安全基础之php开发 文件读取、写入功能的实现

前言 续之前的系列&#xff0c;这里php开发的文件操作的内容读取以及文本写入的部分 文件读取代码的实现 css代码 本系列的php博客都是这个css&#xff0c;名字都是index.css /* css样式初始化 */ * {font-family: Poppins, sans-serif;margin: 0;padding: 0;box-sizing: …

HDRP图形入门:HDRP渲染管线depth翻转

新项目开坑HDRP渲染管线&#xff0c;花了些时间把项目开发框架和图形工作流更新到最新版本&#xff0c;其间发现HDRP中深度信息和buildin渲染管线翻转了。 以前的buildin渲染管线&#xff0c;距离摄像机越近depth->0&#xff0c;越远depth->1&#xff0c;这也很好理…

酷开科技持续推动智能投影行业创新发展

近年来&#xff0c;投影仪逐渐成为年轻人追捧的家居时尚单品。据国际数据公司&#xff08;IDC&#xff09;报告显示&#xff0c;2022年中国投影机市场总出货量505万台&#xff0c;超80%为家用投影仪。相比于电视&#xff0c;投影仪外观小巧、屏幕大小可调节&#xff0c;无论是卧…

Oracle获取执行计划的6种方法

一、什么是执行计划&#xff1f; 执行计划是一条查询语句在Oracle中的执行过程或访问路径的描述。 执行计划描述了SQL引擎为执行SQL语句进行的操作&#xff0c;分析SQL语句相关的性能问题或仅仅质疑查询优化器的决定时&#xff0c;必须知道执行计划&#xff1b;所以执行计划常用…

docker启动某个镜像一直restarting状态

因为微服务学习的需要&#xff0c;就需要在虚拟机中安装一下Nacos&#xff0c;可哪儿能想到使用docker ps命令一直显示nacos的状态是restarting。 经过一番测试&#xff0c;发现并不是执行代码的问题。上网查了一下&#xff0c;也找不到合适的答案&#xff0c;终于查到了是doc…

Java自学第8课:电商项目(3) - 重新搭建环境

由于之前用的jdk和eclipse&#xff0c;以及mysql并不是视频教程所采用的&#xff0c;在后面运行源码和使用作者提供源码时&#xff0c;总是报错&#xff0c;怀疑&#xff1a; 1 数据库有问题 2 jdk和引入的jar包不匹配 3 其他什么未知的错误&#xff1f; 所以决定卸载jdk e…

SharePoint 的 Web Parts 是什么

Web Parts 可以说是微软 SharePoint 的基础组件。 根据微软自己的描述&#xff0c;Web Parts 是 SharePoint 对内容进行构建的基础&#xff0c;可以想想成一块一块的砖块。 我们需要使用这些砖块来完成一个页面的构建。 我们可以利用 Web Parts 在 SharePoint 中添加文本&am…