善用Git LFS来降低模型文件对磁盘的占用

将讲一个实际的例子:对于模型文件,动辄就是好几个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_SMUDGE=1

$ GIT_LFS_SKIP_SMUDGE=1 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 --include="original/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 fetchgit lfs checkout,自然整体少占用了30G左右的空间。
在这里插入图片描述


码字不易,希望对遇到相同问题的朋友有所帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/908666.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CentOS 磁盘扩容

1. 查看要扩展的磁盘 df -h这个就是要扩展的磁盘空间,记住名称,后面会用到 2. 查看所有磁盘信息 fdisk -llsblk可以发现,500G 的硬盘已经安装到服务器但是没被使用,此时需要操作这块硬盘 3. 创建分区 fdisk /dev/vdb根据流程…

js中怎么把excel和pdf文件转换成图片打包下载

index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>文件转图片工具</title><!-- 本…

【JavaEE初阶 — 多线程】Thread类的方法&线程生命周期

目录 1. start() (1) start() 的性质 (2) start() 和 Thread类 的关系 2. 终止一个线程 (1)通过共享的标记结束线程 1. 通过共享的标记结束线程 2. 关于 lamda 表达式的“变量捕获” (2) 调用interrupt()方法 1. isInterrupted() 2. currentThread() …

Metasploit渗透测试之在云服务器中使用MSF

概述 随着云计算的发展&#xff0c;对基于云的应用程序、服务和基础设施的测试也在不断增加。在对云部署进行渗透测试时&#xff0c;最大的问题之一是共享所有权。过去&#xff0c;在进行渗透测试时&#xff0c;企业会拥有网络上的所有组件&#xff0c;我们可以对它们进行全部…

2016年7月和8月NASA的气候成像(ATom)-1飞行活动期间测量的黑碳(BC)质量混合比(单位为ng BC / kg空气)

目录 简介 摘要 代码 引用 网址推荐 知识星球 机器学习 简介 ATom: Black Carbon Mass Mixing Ratios from ATom-1 Flights 该数据集提供了在2016年7月和8月NASA的气候成像&#xff08;ATom&#xff09;-1飞行活动期间测量的黑碳&#xff08;BC&#xff09;质量混合比&…

关于各链 Meme Launchpad

随着Web3生态的迅猛发展&#xff0c;区块链领域诞生了大量创意无限的meme项目&#xff0c;逐渐引起了广泛关注。这些meme项目不仅展示了加密社区的活力与创造力&#xff0c;也为投资者提供了新的机会和玩法。 然而&#xff0c;meme项目的快速崛起也带来了筛选优质项目和发现市场…

C语言 | Leetcode C语言题解之第537题复数乘法

题目&#xff1a; 题解&#xff1a; bool parseComplexNumber(const char * num, int * real, int * image) {char *token strtok(num, "");*real atoi(token);token strtok(NULL, "i");*image atoi(token);return true; };char * complexNumberMulti…

C# 日志框架 NLog、log4net 和 Serilog对比

文章目录 前言NLog、log4net 和 Serilog 三个框架的详细对比:一、NLog优点:缺点:二、 log4net优点缺点三、Serilog优点缺点四、Serilog使用举例总结前言 NLog、log4net 和 Serilog 三个框架的详细对比: NLog、log4net 和 Serilog 是三个非常流行的 .NET 日志框架,它们各自…

助力风力发电风机设备智能化巡检,基于YOLOv8全系列【n/s/m/l/x】参数模型开发构建无人机巡检场景下风机叶片缺陷问题智能化检测预警模型

在全球能源转型的大潮中&#xff0c;清洁环境能源的发展已成为各国关注的焦点。风力发电作为其中的佼佼者&#xff0c;以其可再生、无污染的特点&#xff0c;受到了广泛的青睐。然而&#xff0c;风力发电设施大多建于人迹罕至的地区&#xff0c;设备庞大且复杂&#xff0c;其维…

RV1126-SDK学习之OSD实现原理

RV1126-SDK学习之OSD实现原理 前言 本文简单记录一下我在学习RV1126的SDK当中OSD绘制的原理的过程。 在学习OSD的过程当中&#xff0c;可能需要补充的基础知识&#xff1a; OSD是什么&#xff1f; BMP图像文件格式大致组成&#xff1f; 图像调色&#xff08;Palette&#…

BFV/BGV全同态加密方案浅析

本文主要为翻译内容&#xff0c;原文地址&#xff1a;Introduction to the BFV encryption scheme、https://www.inferati.com/blog/fhe-schemes-bgv 之前的一篇博客我们翻译了CKKS全同态加密方案的内容&#xff0c;但该篇上下文中有一些知识要点&#xff0c;作者在BFV/BGV中已…

前端小练习——星辰宇宙(JS没有上限!!!)

前言&#xff1a;在刚开始学习前端的时候&#xff0c;我们会学习到前端三件套中的JavaScript&#xff0c;可能那时候读者没有觉得JavaScript这个语言有多么的牛逼&#xff0c;本篇文章将会使用一个炫酷的案例来刷新你对JavaScript这个语言的认知与理解。 ✨✨✨这里是秋刀鱼不做…

JavaScript 生成二维码

我试过了&#xff0c;这一款js库支持中英文混合。 进入网站后&#xff0c;可以直接点击运行哟&#xff5e; https://andi.cn/page/621821.html

Vue全栈开发旅游网项目(6)-接口开发

1.景点详情接口开发 1.设计响应数据结构 文件地址&#xff1a;sight/serializers.py 创建类&#xff1a; class SightDetailSerializers(BaseSerializer):#景点详情def to_dict(self):obj self.objreturn {id: obj.id,name: obj.name,desc: obj.desc,img: obj.banner_img.…

【嵌入式】STM32中的SPI通信

SPI是由摩托罗拉公司开发的一种通用数据总线&#xff0c;其中由四根通信线&#xff0c;支持总线挂载多设备&#xff08;一主多从&#xff09;&#xff0c;是一种同步全双工的协议。主要是实现主控芯片和外挂芯片之间的交流。这样可以使得STM32可以访问并控制各种外部芯片。本文…

微服务系列一:基础拆分实践

目录 前言 一、认识微服务 1.1 单体架构 VS 微服务架构 1.2 微服务的集大成者&#xff1a;SpringCloud 1.3 微服务拆分原则 1.4 微服务拆分方式 二、微服务拆分入门步骤 &#xff1a;以拆分商品模块为例 三、服务注册订阅与远程调用&#xff1a;以拆分购物车为例 3.1 …

密码学简要介绍

密码学是研究编制密码和破译密码的技术科学&#xff0c;它研究密码变化的客观规律&#xff0c;主要包括编码学和破译学两大部分。 一、定义与起源 定义&#xff1a;密码学是研究如何隐密地传递信息的学科&#xff0c;在现代特别指对信息以及其传输的数学性研究&#xff0c;常被…

苄基异喹啉类生物碱的微生物合成-文献精读77

苄基异喹啉类生物碱的微生物合成研究进展及挑战 摘要 微生物发酵是一种经济高效、可持续的生产方式&#xff0c;可替代植物种植和化学合成来生产多种植物来源的药物。苄基异喹啉类生物碱作为植物来源生物碱的典型代表&#xff0c;具有多种重要的生理活性&#xff0c;已成为极具…

Centos安装配置Jenkins

下载安装 注意&#xff1a;推荐的LTS版本对部分插件不适配&#xff0c;直接用最新的版本&#xff0c;jenkins还需要用到git和maven&#xff0c;服务器上已经安装&#xff0c;可查看参考文档[1]、[2]&#xff0c;本次不再演示 访问开始使用 Jenkins 下载jenkins 上传至服务器…

【进度猫-注册/登录安全分析报告】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞…