Git LFS 简介
Git LFS(Large File Storage)是一种 Git 扩展,用于管理和存储大文件和二进制文件。它通过将大文件的实际内容存储在外部服务器上,并在 Git 仓库中保存指向这些文件的引用,从而优化了版本控制系统的性能。以下是 Git LFS 的一些关键特性和功能:
- 大文件管理 :Git LFS 通过对大文件进行专门管理,使得 Git 仓库更加轻量。大文件的实际内容存储在独立的存储服务器上,Git 仓库中只保存指向这些大文件的指针。
- 节省磁盘空间 :传统的 Git 没有对大文件进行专门优化,导致仓库的磁盘占用空间增大。Git LFS 则存储大文件的单一版本,只有指针文件被存储在 Git 仓库中,从而减少了磁盘使用。
- 加速克隆和拉取 :通过只下载需要的大文件,而不是整个历史仓库,Git LFS 可以显著加速仓库的克隆和拉取操作。
- 充分整合 Git :Git LFS 与标准的 Git 工作流程无缝整合,用户依然可以通过熟悉的 Git 命令进行操作。所有的大文件自动使用 LFS 仓库进行管理,对用户透明。
安装 Git-LFS
在 https://huggingface.co 克隆大模型仓库时,需要使用 git lfs
命令,直接使用 git
命令是无法拉取大模型文件的。
不同操作系统安装 git-lfs 的方法有所不同,建议参考:github/git-lfs – Installation · packagecloud。这是以 Rocky Linux 9 安装 git-lfs 为例,RPM 包链接:github/git-lfs – Results for el/9 in github/git-lfs,可以直接使用官方提供的 shell 脚本进行安装,木子这里采用手动安装。
# 配置安装源
[root@gpu-server-001 ~]# cat > /etc/yum.repos.d/github_git-lfs.repo << \EOF
[github_git-lfs]
name=github_git-lfs
baseurl=https://packagecloud.io/github/git-lfs/el/9/$basearch # 如果您使用的是 Rocky Linux 8,将这里的数字 9 改成 8
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/github/git-lfs/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
[github_git-lfs-source]
name=github_git-lfs-source
baseurl=https://packagecloud.io/github/git-lfs/el/9/SRPMS # 如果您使用的是 Rocky Linux 8,将这里的数字 9 改成 8
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/github/git-lfs/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
EOF
# 启用源,更新缓存
[root@gpu-server-001 ~]# yum -q makecache -y --disablerepo='*' --enablerepo='github_git-lfs'
Importing GPG key 0xDC282033:
Userid : "https://packagecloud.io/github/git-lfs (https://packagecloud.io/docs#gpg_signing) <[email protected]>"
Fingerprint: 6D39 8DBD 30DD 7894 1E2C 4797 FE2A 5F8B DC28 2033
From : https://packagecloud.io/github/git-lfs/gpgkey
# 安装 git-lfs
[root@gpu-server-001 ~]# dnf install git-lfs
github_git-lfs-source 176 B/s | 833 B 00:04
github_git-lfs-source 1.5 kB/s | 3.8 kB 00:02
Importing GPG key 0xDC282033:
Userid : "https://packagecloud.io/github/git-lfs (https://packagecloud.io/docs#gpg_signing) <[email protected]>"
Fingerprint: 6D39 8DBD 30DD 7894 1E2C 4797 FE2A 5F8B DC28 2033
From : https://packagecloud.io/github/git-lfs/gpgkey
Is this ok [y/N]: y
github_git-lfs-source 153 B/s | 1.5 kB 00:09
Dependencies resolved.
=========================================================================================================================================================================================
Package Architecture Version Repository Size
=========================================================================================================================================================================================
Installing:
git-lfs x86_64 3.5.1-1.el9 github_git-lfs 3.7 M
Transaction Summary
=========================================================================================================================================================================================
Install 1 Package
Total download size: 3.7 M
Installed size: 11 M
Is this ok [y/N]: y
Downloading Packages:
git-lfs-3.5.1-1.el9.x86_64.rpm 2.0 MB/s | 3.7 MB 00:01
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 1.9 MB/s | 3.7 MB 00:01
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : git-lfs-3.5.1-1.el9.x86_64 1/1
Running scriptlet: git-lfs-3.5.1-1.el9.x86_64 1/1
Git LFS initialized.
Verifying : git-lfs-3.5.1-1.el9.x86_64 1/1
Installed:
git-lfs-3.5.1-1.el9.x86_64
Complete!
# 初始化 Git LFS
[root@gpu-server-001 ~]# git lfs install
Git LFS initialized.
# 验证是否安装成功
[root@gpu-server-001 ~]# git lfs --version
git-lfs/3.5.1 (GitHub; linux amd64; go 1.21.8; git e237bb3a)
除了可以使用 git lfs
命令外,还可以使用 HuggingFace 官方提供的 huggingface-cli
命令行工具。
大模型拉取
# 复制上图中对应链接,直接克隆,这时候会发现报错 OpenSSL,这是因为国内无法直接访问 huggingface.co 大模型网站
[root@gpu-server-001 ~]# git clone https://huggingface.co/openai/whisper-large-v3-turbo
Cloning into 'whisper-large-v3-turbo'...
fatal: unable to access 'https://huggingface.co/openai/whisper-large-v3-turbo/': OpenSSL SSL_connect: Connection reset by peer in connection to huggingface.co:443
# 通过国内镜像站克隆
[root@gpu-server-001 ~]# git clone https://hf-mirror.com/openai/whisper-large-v3-turbo
Cloning into 'whisper-large-v3-turbo'...
remote: Enumerating objects: 53, done.
remote: Total 53 (delta 0), reused 0 (delta 0), pack-reused 53 (from 1)
Unpacking objects: 100% (53/53), 1.20 MiB | 1.87 MiB/s, done.
# 拉取更新
[root@gpu-server-001 ~]# cd whisper-large-v3-turbo
[root@gpu-server-001 whisper-large-v3-turbo]# git lfs pull
Downloading LFS objects: 0% (0/1), 97 MB | 1.7 MB/s
目前比较常用的大模型下载站有两个,国内构建的 ModelScope 魔搭社区,以及国外的 HuggingFace(简称:笑脸),而 HF-Mirror 是 HuggingFace 国内镜像站。
ModelScope 魔搭社区:首页 · 魔搭社区
HuggingFace:HuggingFace,国内镜像站:HF-Mirror
参考文献
[1] github/git-lfs – Packages · packagecloud
[2] github/git-lfs – Installation · packagecloud
版权声明:「自由转载-保持署名-非商业性使用-禁止演绎 3.0 国际」(CC BY-NC-ND 3.0)
用一杯咖啡支持我们,我们的每一篇[文档]都经过实际操作和精心打磨,而不是简单地从网上复制粘贴。期间投入了大量心血,只为能够真正帮助到您。
暂无评论