章节 01
导读 / 主楼:Tensora:为大型语言模型打造的自适应检查点加载框架
Tensora 是一个开源 Rust 框架,通过工作负载感知启发式算法自动选择最优 I/O 策略,支持 SafeTensors 和 ServerlessLLM 存储格式,显著提升大模型加载效率。
正文
Tensora 是一个开源 Rust 框架,通过工作负载感知启发式算法自动选择最优 I/O 策略,支持 SafeTensors 和 ServerlessLLM 存储格式,显著提升大模型加载效率。
章节 01
Tensora 是一个开源 Rust 框架,通过工作负载感知启发式算法自动选择最优 I/O 策略,支持 SafeTensors 和 ServerlessLLM 存储格式,显著提升大模型加载效率。
章节 02
章节 03
现代大语言模型的部署面临一个共同挑战:如何在最短时间内将庞大的模型权重加载到显存中。不同的存储格式(如 Hugging Face 的 SafeTensors 和 ServerlessLLM 格式)有着不同的访问模式,而不同的硬件平台和文件系统配置又对 I/O 性能有着显著影响。
传统的做法通常是选择一种固定的加载策略,比如始终使用内存映射(mmap)或始终使用异步 I/O。然而,这种方法无法适应多样化的工作负载。Tensora 的核心洞察是:没有一种 I/O 策略能在所有场景下都是最优的,选择应该基于检查点大小、分片结构和平台能力动态决定。
章节 04
Tensora 采用模块化架构,将 I/O 后端、存储格式和转换管道分离,使得系统既灵活又可扩展。
章节 05
框架实现了四种主要的 I/O 后端:
章节 06
Tensora 的核心创新在于其自适应默认后端。系统会根据以下因素自动选择最优策略:
| 场景 | 推荐后端 | 机制 |
|---|---|---|
| 小型/单分片 SafeTensors | sync | 线程并行分块 POSIX 读取 |
| 大型多分片 SafeTensors (≥4GB) | io_uring | 多工作者环形提交 |
| 范围访问型 ServerlessLLM | async | Tokio 分组每文件任务 |
| 大型分区 ServerlessLLM | io_uring | 批量提交与合并 |
这种自适应机制确保了在不同工作负载下都能获得接近最优的加载性能,无需用户手动调优。
章节 07
Tensora 原生支持两种主流的模型存储格式:
章节 08
Hugging Face 推出的 SafeTensors 格式以其安全性和零拷贝特性广受欢迎。Tensora 针对 SafeTensors 的扁平存储结构进行了优化,能够高效处理单分片和多分片变体。