跳到主要内容

上传数据集

如果您需要将数据集上传到CSGHub平台,您需要先注册一个账户,登录后可创建数据集并上传数据文件。CSGHub平台上的数据集基于Git存储库,可为您提供版本控制、分支管理和发现共享功能。您可以向数据集中上传任何想要的数据文件。

当前,我们支持四种上传文件的方式:通过 Web 端、Git、命令行 (CLI) 和 SDK。

💡 应该选择哪种方式?

  • Web 端上传:最简单快捷,适合上传少量的小文件(单文件限制 5MB 内)。
  • Git 上传:适合需要归档版本控制、管理大量零碎代码及配置文件。
  • 命令行 (CLI) / SDK 上传:适合上传大于 5GB 的超大数据集文件,支持更好的传输机制。

使用Git上传数据集

前置准备工作

在开始之前,请确保您已经完成了以下准备工作:

  1. 安装 Git 和 Git LFS:请检查系统中是否已 安装 GitGit LFS。对于大文件,安装后需在终端执行以下命令初始化 LFS:
    git lfs install
  2. 配置 Git 账户信息
    git config --global user.name "您的用户名"
    git config --global user.email "您的邮箱"
  3. 获取 Access Token(若使用 HTTPS 上传):请前往控制台的 个人设置 -> Access Token 页面生成并复制您的 Token,它将作为您的密码使用。

上传步骤

  1. 首先通过 git clone 将创建好的数据集仓库下载到本地:

    git clone https://hub.opencsg.com/<您的用户名>/<您的数据集名>.git
  2. 假设您的数据集文件位于 /work/my_dataset_dir 本地目录下,您可以通过执行以下命令将本地数据集文件拷贝到对应仓库中并上传:

    cd test_dataset
    cp -rf /work/my_dataset_dir/* .
    git add .
    git commit -m "commit message"
    git push

【特别说明】

目前平台对于包含以下后缀的文件会自动按照git-lfs的方式进行上传:
.7z、.arrow、.bin、.bz2、.ckpt、.ftz、.gz、.h5、.joblib、.mlmodel、.model、.msgpack、.npy、.npz、.onnx、.ot、.parquet、.pb、.pickle、.pkl、.pt、.pth、.rar、.safetensors、.tar、.tflite、.tgz、.wasm、.xz、.zip、*.zst

如果在数据文件中有其他类型的大文件,请在git add之前执行以下命令使其按照lfs的方式进行上传:

git lfs track <your_file_name>

注意

若文件大小超过 5GB,git lfs 方式可能会受限,请使用 CSGHub SDK 或 CLI 工具进行上传。

使用Web端上传文件

在网页端点击“添加文件”,可以选择“创建新文件”或者“上传文件”两种方式。

注意:网页端上传非常便捷,但在文件大小上有所限制,单文件最大不可超过 5MB。对于较大文件请使用 Git、CLI 或 SDK。 添加文件

创建新文件

点击“创建新文件”,在弹出的页面中填写文件内容,点击“创建文件”,可将当前填写的内容创建并提交。 创建文件

上传文件

点击“上传文件”,在弹出的页面中可以选择本地文件上传。 上传文件

使用命令行上传数据

获取 Access Token:在使用命令行或 SDK 上传时需要验证身份。请前往平台的 个人设置 -> Access Token 页面生成并复制您的 Token。

使用命令行工具 csghub-cli 可以方便的上传数据,安装方法如下:

pip install csghub-sdk

使用方法如下:

export CSGHUB_TOKEN=your_access_token

# upload local large folder '/Users/hhwang/my_model' to model repo 'wanghh2000/model05'
csghub-cli upload-large-folder wanghh2000/model05 /Users/hhwang/my_model

使用SDK上传数据

CSGHub SDK 提供了一个 Python Libaray,可以在代码中通过SDK上传数据。

上传一个仓库的示例代码如下:

from pycsghub.repository import Repository

token = "your access token"

r = Repository(
repo_id="wanghh2003/ds15",
upload_path="/Users/hhwang/temp/bbb/jsonl",
user_name="wanghh2003",
token=token,
repo_type="dataset",
)

r.upload()

同时SDK也支持上传单个或多个文件,详细示例请参考SDK文档

查看数据集仓库的历史记录

每次进行add-commit-push循环时,数据集仓库都会跟踪您对文件所做的每项更改。您可以浏览数据集文件和提交,并查看每次提交引入的差异(也称为diff)。要查看历史记录,您可以点击“提交历史”。 提交历史

也可以单击单个提交来查看该提交引入了哪些更改: 引入更改