Hugging Face新一代官方推荐下载利器:hf-xet为何备受推崇?

大模型向量数据库数据中台
引言

hf_xet 是Hugging Face推出的最新存储技术,并且已成为官方推荐的模型和数据集下载方式。 它旨在从根本上解决传统 git lfs方案的弊端,提供更高效、更快速的体验。

如何安装:pip install hf-xet或者pip install -U transformers[hf_xet]

hf_xet的核心原理:块级去重

hf_xet的核心优势在于其块级去重 技术。 我们可以通过一个简单的对比来理解:

  • 传统 git clone (git lfs): 当你下载一个模型,后续该模型文件哪怕只发生了一点微小的改动(比如增量训练后),Git LFS会将其视为一个全新的文件。这意味着你需要重新下载整个几GB甚至几十GB的文件。
  • hf_xet 的工作方式: hf_xet 会将大文件智能地分解成许多个小的数据块(chunks)。当文件更新时,它只会下载那些实际发生变化的数据块,对于未改动的部分,则直接利用本地已有的数据,从而极大地减少了下载量。

这种机制使得在进行模型微调、恢复训练或更新数据集版本时,下载过程变得飞快,因为它避免了大量的冗余数据传输。自2025年5月起, hf_xet已成为Hugging Face Hub上新用户的默认存储后端。

各种下载方式实践对比

| 特性 | huggingface-cli download

(默认后端为hf_xet) | git clone

(配合 git lfs) | hf_transfer

(加速库) | | --- | --- | --- | --- | | 官方推荐度 | | 低(旧版方式) | 中(作为加速选项) | | 冗余数据 | 极少

(块级去重) |

(文件级存储) | 同 huggingface-cli ,因为它是一个传输库 | | 断点续传 | 支持

(新版默认支持) | 不直接支持,易因网络中断而失败 | 支持

,并优化传输 | | 下载速度 | 较快,更新时速度优势巨大 | 相对较慢,尤其在下载大文件和更新时 | 极快

,专为高速网络优化 | | 使用复杂度 | 简单,官方标准命令行 | 熟悉Git的用户觉得简单,但需额外安装配置Git LFS | 简单,通过设置环境变量即可启用 |

实践角度的优劣分析
  • huggingface-cli download (默认集成 hf_xet) : 这是目前最推荐 的通用下载方式。它完美地结合了易用性与高效性。你无需关心底层的复杂技术,就能享受到块级去重带来的低冗余和快速更新的好处。同时,它内置了对断点续传的支持,让大模型下载过程更加稳健。
  • git clone (git lfs) : 这是最传统的方式。对于熟悉Git流程的开发者来说很直观,并且能方便地进行版本管理。但其最大的缺点在于 git lfs的工作机制,任何文件的改动都会导致整个文件的重新下载,造成巨大的数据冗余和时间浪费。 在大模型时代,这一缺点被急剧放大,因此已不再是官方推荐的首选。
  • hf_transfer : 这不是一个独立的下载工具,而是一个由Rust编写的、用于加速传输的底层库 。 你可以通过设置环境变量 HF_HUB_ENABLE_HF_TRANSFER=1 来让 huggingface-cli 使用它。 它的优势在于极致的速度,特别适合在网络带宽极高(如服务器环境)的情况下,能最大限度地占满带宽,实现高速下载。 不过官方也指出,它是一个为高级用户设计的工具,可能缺少一些如高级错误处理等用户友好功能。
总结建议
  • 日常使用和大多数场景 :直接使用 huggingface-cli download 命令。
  • 追求极致下载速度且网络条件好 :在使用 huggingface-cli download 之前,先设置环境变量 export HF_HUB_ENABLE_HF_TRANSFER=1 来启用 hf_transfer 加速。
  • 需要版本控制和代码管理 :仍然可以使用 git clone ,但请注意其在处理大文件更新时的低效问题。
0
0
0
0
关于作者

文章

0

获赞

0

收藏

0

相关资源
火山引擎大规模机器学习平台架构设计与应用实践
围绕数据加速、模型分布式训练框架建设、大规模异构集群调度、模型开发过程标准化等AI工程化实践,全面分享如何以开发者的极致体验为核心,进行机器学习平台的设计与实现。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论