【HuggingFace 如何上传数据集】快速上传图片、文本等各种格式的数据

时间:2024-10-21 20:19:45
  • 【HuggingFace 下载】diffusers 中的特定模型下载,access token 使用方法总结
  • 【HuggingFace 下载中断】Git LFS 如何下载指定文件、单个文件夹?

如果只是为了上传备份、或者迁移数据,可以不用 huggingface dataset,而是直接使用 HfApi()
来上传文件夹。

  1. 如果是 private 的 repo,首先要 huggingface-cli login 登录。
  2. 然后直接上传文件夹,如果文件数量比较多,确实会等好长一段时间才会在命令行中有反应。

Upload a folder

使用 upload_folder() 函数将本地文件夹上传到现有仓库。指定要上传的本地文件夹路径、在仓库中的目标位置以及要添加文件夹的仓库名称。根据仓库类型,您可以选择将仓库类型设置为 dataset、model 或 space。

from huggingface_hub import HfApi
api = HfApi()

# Upload all the content from the local folder to your remote Space.
# By default, files are uploaded at the root of the repo
api.upload_folder(
    folder_path="/path/to/local/space",
    repo_id="username/my-cool-space",
    repo_type="dataset",
)

默认情况下,会考虑 .gitignore 文件来确定哪些文件应该提交或不提交。默认情况下,我们会检查提交中是否存在 .gitignore 文件,如果不存在,我们会检查它是否在 Hub 上存在。请注意,仅使用目录根目录中存在的 .gitignore 文件。我们不会检查子目录中的 .gitignore 文件。

如果您不想使用硬编码的 .gitignore 文件,可以使用 allow_patterns 和 ignore_patterns 参数来筛选要上传的文件。这些参数接受单个模式或模式列表。模式是标准通配符(globbing 模式),如 此处 文档所述。如果同时提供 allow_patterns 和 ignore_patterns,则两种约束都会生效。

除了 .gitignore 文件和允许/忽略模式外,任何子目录中存在的 .git/ 文件夹都将被忽略。

参考文档:https://hugging-face.cn/docs/huggingface_hub/guides/upload