Xet
Hugging Face 的存储层技术,基于内容定义分块(CDC)实现文件级增量上传,已内置于Hugging Face CLI和Hub中,可显著减少重复数据传输带宽消耗
时间轴 (近 90 天)
Xet 是 Hugging Face 的存储层技术,可以理解为针对文件碎片而非整个文件的 Git
Xet 已经内置于 Hugging Face CLI 和 Hugging Face Hub 中,无需额外安装
Xet 把每个文件切成约 64KB 的小块,切割点由内容本身决定
Xet 上传前客户端先向 Hub 询问已有的分片指纹,已存在的小块不会被传输
Parquet 默认写入方式会打乱 Xet 的去重逻辑,因为其列式编码、Row Group 边界和 Footer 每次重写都会使字节布局大幅改变
一个 100MB 的 Parquet 文件在靠近开头处新增 3000 行,使用默认设置几乎整个文件都要重新上传,而开启内容定义分块后只需上传约 6 个分片
若为加速查询重新排序文件会使每个块改变导致整文件上传,正确做法是先排序再写入,之后只做追加
切换压缩算法、改变 page 设置或库升级后默认参数变化会导致 Xet 把相同数据视为新文件,升级后第一次上传会是完整上传
演示使用约 150 万行、191MB 的纽约市出租车行程 CSV 数据,首次上传完整传输,追加 100 行后仅上传新增部分
全部知识事实 (9)
Xet 是 Hugging Face 的存储层技术,可以理解为针对文件碎片而非整个文件的 Git
50%待验证Xet 已经内置于 Hugging Face CLI 和 Hugging Face Hub 中,无需额外安装
50%待验证Xet 把每个文件切成约 64KB 的小块,切割点由内容本身决定
50%待验证Xet 上传前客户端先向 Hub 询问已有的分片指纹,已存在的小块不会被传输
50%待验证Parquet 默认写入方式会打乱 Xet 的去重逻辑,因为其列式编码、Row Group 边界和 Footer 每次重写都会使字节布局大幅改变
50%待验证一个 100MB 的 Parquet 文件在靠近开头处新增 3000 行,使用默认设置几乎整个文件都要重新上传,而开启内容定义分块后只需上传约 6 个分片
50%待验证若为加速查询重新排序文件会使每个块改变导致整文件上传,正确做法是先排序再写入,之后只做追加
50%待验证切换压缩算法、改变 page 设置或库升级后默认参数变化会导致 Xet 把相同数据视为新文件,升级后第一次上传会是完整上传
50%待验证演示使用约 150 万行、191MB 的纽约市出租车行程 CSV 数据,首次上传完整传输,追加 100 行后仅上传新增部分
50%