huggingface文件名字及格式理解
1.解读
概述
同一个基础模型 DeepSeek-R1-Distill-Qwen-1.5B
被转换成 LiteRT / TFLite / LiteRT-LM 可部署格式
面向 Android / iOS / Web / MediaPipe LLM Inference API / LiteRT-LM 场景
提供了不同的:
- 精度格式:
f32、q8 - 推理图形态:
seq128、multi-prefill-seq - KV Cache 容量:
ekv1280、ekv4096 - 封装格式:
.tflite、.task、.litertlm
- 精度格式:
2.文件名命名规则拆解
先看一个完整名字:
DeepSeek-R1-Distill-Qwen-1.5B_multi-prefill-seq_q8_ekv4096.task
可以拆成下面几段:
2.1 模型主体
DeepSeek-R1-Distill-Qwen-1.5B
表示基础模型就是这个 1.5B 参数规模的蒸馏版 DeepSeek R1 Distill Qwen。README 里也标了 base_model。
2.2 推理图类型
multi-prefill-seq
- 支持 multiple prefill signatures
- 针对不同长度的 prompt prefill 阶段做了多签名/多形状优化
- 目的是提升 prefill 阶段吞吐、减少不同输入长度带来的低效
seq128
- 图编译时采用了 固定或偏固定的序列处理块/签名
- 这里的
128一般可理解为 预填充或输入处理的序列块长度/签名长度级别 - 相比
multi-prefill-seq,它往往更简单,但灵活性通常弱一些
从命名习惯看,seq128 更像“单一序列长度特征”的导出版本;而 multi-prefill-seq 更像“多段 prefill 签名优化版”。
2.3 精度/量化类型
f32
表示 float32:
- 权重大概率是 32 位浮点
- 体积最大
- 内存占用最大
- 精度最原始
q8
表示 8-bit quantization,README 里对应的是 dynamic_int8:
- int8 权重
- float 激活
- 体积显著缩小
- 更适合端侧部署
2.4 KV Cache 容量
ekv1280
这里的 ekv 基本可以理解为 exported KV cache size / effective KV cache capacity 这一类含义,即导出时预设的 KV cache 容量级别。
1280说明 KV cache 配置较小- 更省内存
- 可支撑的上下文更短
ekv4096
表示 KV cache 容量更大:
- 能支持更长上下文
- 内存占用更高
- 更适合长对话、长 prompt、复杂推理链
支持缓存:4096/token
3.不同扩展名的含义
3.1 .tflite
这是 LiteRT / TFLite 的 flatbuffer 模型文件。
用途:
- 直接给 LiteRT/TFLite runtime 加载
- 偏底层
- 适合自己写加载逻辑、自己控制 tokenizer / sampling / session
3.2 .task
这是给 MediaPipe / LLM Inference API / Task API 这类更高层封装使用的模型包。
一般理解为:
- 在
.tflite基础上再加一些 metadata / task 封装 - 更适合直接接入官方 demo 或 task-style API
3.3 .litertlm
这是 LiteRT-LM 生态专用封装格式。
可理解为:
- 面向 LiteRT-LM 的更直接分发格式
- 适配该框架自己的加载方式
- 对使用 LiteRT-LM 项目的人更省事
4.命名关系图
flowchart TD
A[DeepSeek-R1-Distill-Qwen-1.5B] --> B[推理图类型]
B --> B1[multi-prefill-seq
多 prefill 签名优化]
B --> B2[seq128
固定/较简单序列图]
A --> C[精度]
C --> C1[f32
全精度]
C --> C2[q8
8位量化 dynamic_int8]
A --> D[KV Cache配置]
D --> D1[ekv1280
较短上下文 较省内存]
D --> D2[ekv4096
更长上下文 更耗内存]
A --> E[封装格式]
E --> E1[tflite
底层模型文件]
E --> E2[task
MediaPipe/Task API封装]
E --> E3[litertlm
LiteRT-LM专用]