win xp 个人网站免费建设,企业网站管理系统 开源,如何利用个人nas做网站,12380网站建设将讲一个实际的例子#xff1a;对于模型文件#xff0c;动辄就是好几个G#xff0c;而有的仓库更是高达几十G#xff0c;拉一个仓库到本地#xff0c;稍不注意直接磁盘拉满都有可能。 比如#xff1a;meta-llama-3.1-8b-instruct#xff0c;拉到本地后发现居然占用了60G…将讲一个实际的例子对于模型文件动辄就是好几个G而有的仓库更是高达几十G拉一个仓库到本地稍不注意直接磁盘拉满都有可能。 比如meta-llama-3.1-8b-instruct拉到本地后发现居然占用了60G不得了。
还好有Git LFS 这个大文件管理工具Git LFS 就好像是一个图书馆。图书馆里有很多书大文件但你不需要把所有的书都搬回家你只需要借阅你需要的书就可以了。Git LFS 就是这个图书馆它帮你管理这些大文件让你随时随地都可以“借阅”到它们。
1 . 查看哪些类型的文件需要被追踪
$ git lfs track
Listing tracked patterns*.7z (.gitattributes)*.ckpt (.gitattributes)*.model (.gitattributes)*.onnx (.gitattributes)*.pickle (.gitattributes)*.pth (.gitattributes)*.safetensors (.gitattributes)......
Listing excluded patterns
这里列出来被追踪的文件对应.gitattributes这个配置文件。
2 . 查看被追踪的大文件是哪些
$ git lfs ls-files
2b1879f356 * model-00001-of-00004.safetensors
09d433f650 * model-00002-of-00004.safetensors
fc1cdddd6b * model-00003-of-00004.safetensors
92ecfe1a24 * model-00004-of-00004.safetensors
ab33d910f4 * original/consolidated.00.pth
82e9d31979 * original/tokenizer.model
在拉取时可以临时设置GIT_LFS_SKIP_SMUDGE1
$ GIT_LFS_SKIP_SMUDGE1 git clone https://www.modelscope.cn/LLM-Research/meta-llama-3.1-8b-instruct.git
Cloning into meta-llama-3.1-8b-instruct...
remote: Enumerating objects: 55, done.
remote: Total 55 (delta 0), reused 0 (delta 0), pack-reused 55
Receiving objects: 100% (55/55), 2.25 MiB | 7.63 MiB/s, done.
Resolving deltas: 100% (19/19), done.$ cd meta-llama-3.1-8b-instruct/$ du -sh
12M 这样就会跳过被追踪的大文件进行代码仓库的克隆。 当需要用到某些大文件时再单独拉取指定文件
$ git lfs fetch --includeoriginal/tokenizer.model
fetch: Fetching reference refs/heads/master
Downloading LFS objects: 100% (1/1), 2.2 MB | 0 B/s$ git lfs checkout original/tokenizer.model
Checking out LFS objects: 100% (1/1), 2.2 MB | 0 B/s, done.$ du -sh
16M .$ git lfs fetch --include*.safetensors
fetch: Fetching reference refs/heads/master
Downloading LFS objects: 100% (4/4), 19 GB | 75 MB/s$ du -sh
15G .$ git lfs checkout *.safetensors
Checking out LFS objects: 100% (4/4), 16 GB | 179 MB/s, done.$ du -sh
30G 疑问为什么git lfs fetch变成了15G而git checkout 变成了30G呢
git lfs fetch 是将文件下载到.git/lfs/objects目录下当然是一些对象格式的文件以便后续检出。 git lfs checkout 是将.git/lfs/objects下的对象格式文件检出到工作目录所以这里又增加了一倍的空间占用。
甚至检出后可以直接将这个.git目录删除掉这样就可以使占用空间最小只保留了需要用到的模型文件。 刚刚去看了一下为什么一开始说clone下来是60多G因为它仓库原本还有一个.pth文件我们没有git lfs fetch和git lfs checkout自然整体少占用了30G左右的空间。 码字不易希望对遇到相同问题的朋友有所帮助。