跳到主要内容

上传数据集

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

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

💡 应该选择哪种方式?​

  • Web 端上传:最简单快捷,适合上传少量的小文件(单文件上限以当前上传页和部署配置为准)。
  • Git 上传:适合需要归档版本控制、管理大量零碎代码及配置文件。
  • 命令行 (CLI) / SDK 上传:适合批量上传数据集文件,支持更好的传输机制。

使用Git上传数据集​

前置准备工作​

  1. 安装 Git 和 Git LFS,并执行 git lfs install。
  2. 配置本地 Git 提交者信息:
git config --global user.name "您的用户名"
git config --global user.email "您的邮箱"
  1. 登录目标实例,在“账号设置 → Access Token”获取凭据。HTTPS 操作提示输入密码时使用该 Token;组织仓库还需要相应写入权限。

上传步骤​

从当前仓库页面复制 HTTPS 克隆地址。下面的命名空间和仓库名为示例;自部署域名以实际实例为准。

git lfs install
git clone https://your-csghub.example.com/datasets/your-namespace/example-dataset.git
cd example-dataset

将需要上传的文件放入本地仓库目录;确认没有包含 Token、密码或不需要上传的文件后提交:

git add .
git commit -m "Upload repository files"
git push

回到目标仓库的“文件”页核对文件和提交记录。

【特别说明】​

大文件应使用 Git LFS。在 git add 前检查仓库的 .gitattributes,确认所需文件已被追踪;需要新增追踪规则时执行:

git lfs track "path/to/large-file"
git add .gitattributes

上传大小和超时限制由站点、代理和存储配置决定。保留文件大小及错误信息,按本页支持的传输方式处理;不要把站点限制理解为 Git LFS 协议的统一上限。

使用Web端管理与上传文件​

在仓库“文件”页点击“添加文件”,可以选择“新建目录”、“创建新文件”或“上传文件”。

注意:单文件上限以当前上传页面为准。对于较大文件,请使用本页已说明支持的传输方式。

添加文件

新建目录​

点击“新建目录”,输入目录名称并提交,即可在当前仓库路径下创建子目录。

新建目录

创建新文件​

点击“创建新文件”,填写文件名称及内容,点击“创建文件”保存并提交。

创建文件

上传文件​

点击“上传文件”,选择需要上传的本地文件并提交。完成后在文件列表中确认目标文件已出现。

上传文件

使用命令行上传数据集​

先在目标实例创建数据集仓库,并确认对个人或组织仓库具有写入权限。设置该实例的 CSGHUB_TOKEN,参见 Access Token。

python -m pip install csghub-sdk
csghub-cli upload-large-folder --help

自部署环境请向管理员获取平台 API 基础地址;此处使用占位域名。它不一定与 Web 地址相同,也不是以 /v1 结尾的推理网关地址。 下例将本地目录上传到已有数据集仓库;替换仓库 ID 与本地目录后执行。

export CSGHUB_ENDPOINT="https://your-csghub.example.com"
csghub-cli upload-large-folder your-namespace/example-dataset ./my_dataset \
--repo-type dataset --endpoint "$CSGHUB_ENDPOINT"

显式填写仓库类型:model 表示模型,dataset 表示数据集。上传完成前保留工具产生的进度缓存;若已安装版本不支持上述参数,先核对客户端与服务端兼容版本,不要省略地址或类型后重试。

使用 SDK 上传​

下面的 Repository 示例依赖 Git 与 Git LFS,适用于向已创建的仓库提交文件;大量文件可使用上面的 upload-large-folder。复用 CSGHUB_ENDPOINT、CSGHUB_TOKEN,并设置 CSGHUB_USERNAME 为当前登录账号,组织命名空间不一定等于登录账号。

import os
from tempfile import TemporaryDirectory
from pycsghub.repository import Repository

with TemporaryDirectory(prefix="csghub-upload-") as work_dir:
repo = Repository(
repo_id="your-namespace/example-dataset",
upload_path="./my_dataset",
user_name=os.environ["CSGHUB_USERNAME"],
token=os.environ["CSGHUB_TOKEN"],
endpoint=os.environ["CSGHUB_ENDPOINT"],
repo_type="dataset",
work_dir=work_dir,
auto_create=False,
)
repo.upload()

验证上传结果​

在同一实例的数据集仓库“文件”页检查文件、提交记录和所有者,再按 下载数据集 下载一份进行核对。不要只以进度条结束作为成功依据。

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

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

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