DEV Community

cso662
cso662

Posted on

Hugginface 上移动 Datasets 的 git lfs 文件

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
Enter fullscreen mode Exit fullscreen mode

这样就可以在不下载 git lfs 中的任何数据的情况下,更改远端数据的元信息,进行文件整理了

Top comments (0)