玩转huggingface

Hugging Face这一段时间来特别火,融资拿到了一大笔钱,还跟Cousera这些社区常常联系,推出了diffusers,Gradio,Transformers等等好用的库和框架.也可以作为上传数据集和模型的地方,这里尝试玩玩其常用的一些功能.

上传模型或数据集

使用git上传文件Getting Started with Repositories (huggingface.co)

数据集项目结构Structure your repository (huggingface.co)

一般来说应该使用git相关功能直接上传下载,但是一旦文件特别多或者大,上传数据集时就比较麻烦.我就遇到了这些问题,而且不止我遇到了.Batch response: Too many password attempts while uploading the dataset files with lfs - 🤗Datasets - Hugging Face Forums 解决办法就是使用官方提供的api写python代码上传,或者通过git尝试分批次上传你的数据集.

image-20231006172039626

这个问题截至我写时依旧是个Bug

image-20231006172024686

看看这位兄弟的解决方案

也就是使用upload_folder,知道这点后就方便多了,但是我也建议把git的ssh密钥也加到hugging face里.接下来按照官方教程

1
2
3
huggingface-cli login
# or using an environment variable
huggingface-cli login --token $HUGGINGFACE_TOKEN

注意,登录需要token,而创建token时,因为要上传数据,所以需要write权限.

image-20231006172104775

登陆之后,如果要上传一个文件

1
2
3
4
5
6
7
8
from huggingface_hub import HfApi
api = HfApi()
api.upload_file(
path_or_fileobj="D:/anime_face/misaka_mikoto.zip",
path_in_repo="misaka_mikoto.zip",
repo_id="proanimer/anime_face",
repo_type="dataset",
)

文件夹也是同理

1
2
3
4
5
6
7
from huggingface_hub import HfApi
api = HfApi()
api.upload_folder(
folder_path="/path/to/local/space",
repo_id="username/my-cool-space",
repo_type="space",
)

当然也可以使用hugging face的cli

1
2
3
4
5
6
7
8
# Upload file at root
huggingface-cli upload my-cool-model model.safetensors

# Upload directory at root
huggingface-cli upload my-cool-model ./models

# Upload `my-cool-model/` directory if it exist, raise otherwise
huggingface-cli upload my-cool-model

然后可以修改DatasetCard让其他人知道这是个什么,还有自动生成的Dataset Viewer.

image-20231006172212449

此外,官方建议除了CSV, JSON, JSON lines, text 以及Parquet这些格式数据之外,最好添加一个loading脚本用于加载数据集.

1
2
3
my_dataset/
├── README.md
└── my_dataset.py

目的是

  • Add dataset metadata.
  • Download data files.
  • Generate samples.
  • Generate dataset metadata.
  • Upload a dataset to the Hub.

但是这里我就没有使用了,因为你可以直接git clone这个仓库然后解压即可.

-------------本文结束感谢您的阅读-------------
感谢阅读.

欢迎关注我的其它发布渠道