Zhonghui

每个不曾起舞的日子,都是对生命的辜负

User Tools

Site Tools


软件:git:huggingface

HuggingFace

https://huggingface.co/

开源AI社区


首先HuggingFace是基于git的(虽然有很多的二进制的大文件),在一个模型的页面,切换到【Files and versions】标签页,就可以看到类似Github的文件结构了。在这里也就可以clone这个项目了,也就是下载模型的权重

安装客户端

使用pip可以安装,但是好像不太好用,推荐使用Homebrew

brew install huggingface-cli

下载模型

也就是clone工程

# 如何得到这个模型的具体名称?
# 一般来说这个模型的名称就是模型页面的url
# 或者在模型页面点击clone也可以得到这个名称
hf download facebook/opt-1.3b
 
# 下载到缓存
(py311) anny@annys-MacBook-Air models % hf download facebook/opt-1.3b
Fetching 12 files: 100%|████████████████████████████████████████████████████████████████| 12/12 [01:40<00:00,  8.41s/it]
Download complete: : 7.90GB [01:40, 332MB/s]              /Users/anny/.cache/huggingface/hub/models--facebook--opt-1.3b/snapshots/3f5c25d0bc631cb57ac65913f76e22c2dfb61d62
Download complete: : 7.90GB [01:41, 78.2MB/s]
 
# 下载到指定位置
(py311) anny@annys-MacBook-Air models % hf download facebook/opt-1.3b --local-dir ./opt-1.3b
Downloading (incomplete total...): 0.00B [00:00, ?B/s]                                                                 Warning: You are sending unauthenticated requests to the HF Hub. Please set a HF_TOKEN to enable higher rate limits and faster downloads.
Fetching 12 files: 100%|████████████████████████████████████████████████████████████████| 12/12 [00:06<00:00,  1.72it/s]
Download complete: : 0.00B [00:06, ?B/s]              /Users/anny/Downloads/models/opt-1.3b5/12 [00:06<00:10,  1.46s/it]
Download complete: : 0.00B [00:06, ?B/s]

xet

权重文件一般都是体积很大的二进制文件,而Git LFS并不好用。
“Xet” 标志代表该仓库使用了 XetHub 的技术来进行文件存储,而不是传统的 Git LFS。
可以简单地把它理解为 “Git LFS 2.0” 或者 “更智能的大文件存储”。

模型格式

safetensors(最推荐)

  1. Hugging Face 的默认格式,PyTorch 生态的首选。
  2. 现在主流模型(Llama 3, Qwen, Mistral)都默认提供 Safetensors 格式。
  3. 它只是纯粹的数据(张量),不包含任何可执行代码(不像 Python 的 .bin/pickle 文件可能包含恶意代码)。
  4. 速度: 支持 mmap (内存映射)。这意味着你的推理引擎可以直接把文件映射到内存中,而不需要先“读取”再“拷贝”,加载速度极快。
  5. 结构简单: 它由一个 JSON 头部(描述形状和数据类型)+ 纯二进制数据块组成。

【AI】权重文件划分:
对于小模型(比如 < 1B 参数),它可能只是一个单独的 .safetensors 文件。
但对于大多数现代主流模型(比如 Llama-3-8B, Qwen-72B),“模型权重”通常是由多个 .safetensors 文件切片(Shards)组成的,并且必须配合一个“索引文件”使用。
如果模型比较小(通常小于 10GB),则只有一个:model.safetensors
但是为了避免单个文件过大(导致下载困难或文件系统限制),模型通常会被切分成很多块。
model.safetensors.index.json (核心地图),这是最重要的文件。它不包含权重数据,而是一个目录。
model-00001-of-00004.safetensors(切分文件)

除此之外:
config.json是整体的配置文件。
tokenizer.json / tokenizer.model是字典。

GGUF (端侧/本地推理的标准)

  1. llama.cpp 生态的专用格式。
  2. 它把模型权重、配置参数、词表(Tokenizer)全部打包在一个文件里。虽然方便用户下载即用,但它的文件结构极其复杂,包含大量自定义的元数据编码。

.h5 (HDF5 格式)

  1. 所属帮派: TensorFlow / Keras

.msgpack (MessagePack 格式)

  1. 所属帮派: Flax / JAX

.bin (Pickle 格式)

  1. 所属帮派: PyTorch (旧版)
  2. 背景: 这是 Python 的 torch.save() 生成的标准文件。
/var/www/DokuWikiStick/dokuwiki/data/pages/软件/git/huggingface.txt · Last modified: 2026/01/09 00:25 by zhonghui