当前位置: 首页 > news >正文

善用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左右的空间。
在这里插入图片描述


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

相关文章:

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

将讲一个实际的例子:对于模型文件,动辄就是好几个G,而有的仓库更是高达几十G,拉一个仓库到本地,稍不注意直接磁盘拉满都有可能。 比如:meta-llama-3.1-8b-instruct,拉到本地后发现居然占用了60G…...

Oracle RAC的thread

参考文档: Real Application Clusters Administration and Deployment Guide 3 Administering Database Instances and Cluster Databases Initialization Parameter Use in Oracle RAC Table 3-3 Initialization Parameters Specific to Oracle RAC THREAD Sp…...

如何创建备份设备以简化 SQL Server 备份过程?

SQL Server 中的备份设备是什么? 在 SQL Server 中,备份设备是用于存储备份数据的物理或逻辑介质。备份设备可以是文件、设备或其他存储介质。主要类型包括: 文件备份设备:通常是本地文件系统中的一个或多个文件。可以是 .bak 文…...

DeBiFormer实战:使用DeBiFormer实现图像分类任务(一)

摘要 一、论文介绍 研究背景:视觉Transformer在计算机视觉领域展现出巨大潜力,能够捕获长距离依赖关系,具有高并行性,有利于大型模型的训练和推理。现有问题:尽管大量研究设计了高效的注意力模式,但查询并…...

【go从零单排】迭代器(Iterators)

🌈Don’t worry , just coding! 内耗与overthinking只会削弱你的精力,虚度你的光阴,每天迈出一小步,回头时发现已经走了很远。 📗概念 在 Go 语言中,迭代器的实现通常不是通过语言内置的迭代器类型&#x…...

Java与HTML:构建静态网页

在Web开发领域,HTML是构建网页的基础标记语言,而Java作为一种强大的编程语言,也能够在创建HTML内容方面发挥重要作用。今天,我们就来探讨一下如何使用Java来制作一个不那么简单的静态网页。 一、项目准备 首先,我们需…...

软件测试:测试用例详解

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 一、通用测试用例八要素   1、用例编号;    2、测试项目;   3、测试标题; 4、重要级别;    5、预置…...

FreeSWITCH Ubuntu 18.04 源码编译

应朋友邀请,试了试 FreeSWITCH Ubuntu 18.04 源码编译,交的作业如下: #!/bin/bash####### Ubuntu 18.04 LTS ####### ARM64 ####### FreeSWITCH 1.10.12apt update && \ apt install -y --fix-missing git sed bison build-essentia…...

spring—boot(整合redis)

整合redis 第一步导入数据源 <!--redis--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId> </dependency> RedisConfig&#xff08;默认有RedisTemplate&#…...

Python 包镜像源

阿里云、清华大学和豆瓣之外&#xff0c;还有许多其他的 Python 包镜像源。下面是更新后的代码&#xff0c;增加了更多常用的镜像源&#xff0c;如华为云、腾讯云等 import tkinter as tk from tkinter import messagebox import os# 定义 pip 配置文件路径 pip_config_file …...

Sigrity SPEED2000 Power Ground Noise Simulation模式如何进行电源阻抗仿真分析操作指导(一)-无电容

Sigrity SPEED2000 Power Ground Noise Simulation模式如何进行电源阻抗仿真分析操作指导(一)-无电容 Sigrity Power Ground Noise Simulation模式同样可以用来观测电源网络的自阻抗&#xff0c;以下图为例进行说明 2D 视图 3D view 本例要观测的是U17端口处的自阻抗&#xff0…...

Unity3D ASTC贴图压缩格式详解

一、技术详解 ASTC&#xff08;Adaptive Scalable Texture Compression&#xff09;是一种先进的纹理压缩格式&#xff0c;特别适用于OpenGL ES 3.0及更高版本。ASTC在2012年推出&#xff0c;自那以后已经成为游戏开发中重要的纹理压缩技术。它不仅在iOS设备上得到广泛应用&am…...

Docker的轻量级可视化工具Portainer

docker目录 1 Portainer官方链接2 是什么&#xff1f;3 下载安装4 跑通一次5 后记 1 Portainer官方链接 这里给出portainer的官方链接&#xff1a;https://www.portainer.io/ portainer安装的官方链接&#xff1a;https://docs.portainer.io/start/install-ce/server/docker/l…...

udp丢包问题

udp或者tcp丢包问题监测方式&#xff1a; netstat -su 问题分析&#xff1a; 1. 内存 2. cpu 3. 发送接收缓存 动画图解 socket 缓冲区的那些事儿-CSDN博客...

儿童安全座椅行业全面深入分析

儿童安全座椅就是一种专为不同体重&#xff08;或年龄段&#xff09;的儿童设计&#xff0c;将孩子束缚在安全座椅内&#xff0c;能有效提高儿童乘车安全的座椅。欧洲强制性执行标准ECE R44/03的定义是&#xff1a;能够固定到机动车辆上&#xff0c;带有ISOFIX接口、LATCH接口的…...

【笔记】扩散模型(九):Imagen 理论与实现

论文链接&#xff1a;Photorealistic Text-to-Image Diffusion Models with Deep Language Understanding 非官方实现&#xff1a;lucidrains/imagen-pytorch Imagen 是 Google Research 的文生图工作&#xff0c;这个工作并没有沿用 Stable Diffusion 的架构&#xff0c;而是级…...

05 SQL炼金术:深入探索与实战优化

文章目录 SQL炼金术&#xff1a;深入探索与实战优化一、SQL解析与执行计划1.1 获取执行计划1.2 解读执行计划 二、统计信息与执行上下文2.1 收集统计信息2.2 执行上下文 三、SQL优化工具与实战3.1 SQL Profile3.2 Hint3.3 Plan Baselines3.4 实战优化示例 SQL炼金术&#xff1a…...

Linux用lvm格式挂载磁盘

Linux用lvm格式挂载磁盘 本次目标是将磁盘/dev/sdd以lvm格式挂载到/backup目录作为备份盘来用 1、查看当前磁盘 [rootquentin ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 300G 0 disk ├─sda1 8:1 0 1G…...

Xshell,Shell的相关介绍与Linux中的权限问题

目录 XShell的介绍 Shell的运行原理 Linux当中的权限问题 Linux权限的概念 Linux权限管理 文件访问者的分类&#xff08;人&#xff09; 文件类型和访问权限&#xff08;事物属性&#xff09; 文件权限值的表示方法 文件访问权限的相关设置方法 如何改变文件的访问权限…...

考研要求掌握的C语言(选择排序)

选择排序的特点 每次进行一趟排序后&#xff0c;就确定一个数据的最终位置 选择排序的原理 就是假设你是最小&#xff08;最大数据&#xff09;的下标&#xff0c;然后和其他进行比较&#xff0c;若发现还有比你还小&#xff08;或还大&#xff09;的数据&#xff0c;就更新…...

《Playwright:微软的自动化测试工具详解》

Playwright 简介:声明内容来自网络&#xff0c;将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具&#xff0c;支持 Chrome、Firefox、Safari 等主流浏览器&#xff0c;提供多语言 API&#xff08;Python、JavaScript、Java、.NET&#xff09;。它的特点包括&a…...

渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止

<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet&#xff1a; https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...

测试markdown--肇兴

day1&#xff1a; 1、去程&#xff1a;7:04 --11:32高铁 高铁右转上售票大厅2楼&#xff0c;穿过候车厅下一楼&#xff0c;上大巴车 &#xffe5;10/人 **2、到达&#xff1a;**12点多到达寨子&#xff0c;买门票&#xff0c;美团/抖音&#xff1a;&#xffe5;78人 3、中饭&a…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命

在华东塑料包装行业面临限塑令深度调整的背景下&#xff0c;江苏艾立泰以一场跨国资源接力的创新实践&#xff0c;重新定义了绿色供应链的边界。 跨国回收网络&#xff1a;废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点&#xff0c;将海外废弃包装箱通过标准…...

在WSL2的Ubuntu镜像中安装Docker

Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包&#xff1a; for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...

处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的

修改bug思路&#xff1a; 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑&#xff1a;async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...

Web后端基础(基础知识)

BS架构&#xff1a;Browser/Server&#xff0c;浏览器/服务器架构模式。客户端只需要浏览器&#xff0c;应用程序的逻辑和数据都存储在服务端。 优点&#xff1a;维护方便缺点&#xff1a;体验一般 CS架构&#xff1a;Client/Server&#xff0c;客户端/服务器架构模式。需要单独…...

MySQL 主从同步异常处理

阅读原文&#xff1a;https://www.xiaozaoshu.top/articles/mysql-m-s-update-pk MySQL 做双主&#xff0c;遇到的这个错误&#xff1a; Could not execute Update_rows event on table ... Error_code: 1032是 MySQL 主从复制时的经典错误之一&#xff0c;通常表示&#xff…...

mac:大模型系列测试

0 MAC 前几天经过学生优惠以及国补17K入手了mac studio,然后这两天亲自测试其模型行运用能力如何&#xff0c;是否支持微调、推理速度等能力。下面进入正文。 1 mac 与 unsloth 按照下面的进行安装以及测试&#xff0c;是可以跑通文章里面的代码。训练速度也是很快的。 注意…...

针对药品仓库的效期管理问题,如何利用WMS系统“破局”

案例&#xff1a; 某医药分销企业&#xff0c;主要经营各类药品的批发与零售。由于药品的特殊性&#xff0c;效期管理至关重要&#xff0c;但该企业一直面临效期问题的困扰。在未使用WMS系统之前&#xff0c;其药品入库、存储、出库等环节的效期管理主要依赖人工记录与检查。库…...