Huggingface 上的数据集一般都比较大,动辄上百 GB,在上传的时候我经常也是直接用 HF 的 CLI 工具中的 upload-large-folder 工具而不是用 git。
git 本身用来管理小文件比较合适,大文件用 git lfs 来 track 也合适但是最好不要用 git push 来上传 git lfs 的实际文件,他没有现代上传工具的很多特性,网络不好或者中断的时候,几百 G 的文件会想死
但这又引申了另一个问题,如果本地的文件都是通过 hf cli 的 upload 或者 upload-large-folder 传上去的,那如果要对远端的 datasets 仓库做修改该怎么做比较好,重新下载几百 G 的数据到本地显然不现实,这里就是体现 git 优雅特性的地方了,不需要把 git lfs track 的所有文件都下载下来就可以使用元数据进行操作,大致如下
GIT_LFS_SKIP_SMUDGE=1 git clone git@hf.co:datasets/username/reponame
cd reponame
mkdir target-folder
git mv folder1 target-folder/folder
git commit -m "move things around"
git push
这样就可以在不下载 git lfs 中的任何数据的情况下,更改远端数据的元信息,进行文件整理了
Top comments (0)