[OCR Phase3] 实现模型量化和压缩优化
## 任务描述
实现 VLM 模型的量化和压缩技术,降低推理时的显存占用和计算开销,提升推理速度。
**关联主 Issue**: #2348 Phase 3: 模型微调与优化
## 任务目标
- [ ] 实现 FP16 半精度推理支持
- [ ] 实现 INT8 量化推理(使用 bitsandbytes 或 GPTQ)
- [ ] 实现 INT4 量化推理(可选,用于极致压缩)
- [ ] 支持量化配置的动态切换(环境变量或 API 参数)
- [ ] 提供量化模型性能对比报告(速度、显存、精度)
## 技术方案
### 1. FP16 半精度推理
- 在模型加载时指定 `torch_dtype=torch.float16`
- 适配 NPU/GPU 设备的半精度支持
- 验证精度损失在可接受范围内(< 1%)
### 2. INT8 量化
- 使用 bitsandbytes 实现 8-bit 量化
- 支持动态量化(post-training quantization)
- 保存量化配置到 config 文件
### 3. INT4 量化(可选)
- 使用 GPTQ 或 GGUF 格式
- 适用于资源极度受限场景
- 需要评估精度损失是否可接受
### 4. 配置管理
- 添加环境变量:`OCR_QUANTIZATION_MODE` (fp16/int8/int4/none)
- 添加 API 参数:`quantization` 字段
- 在 `settings.py` 中添加量化配置项
## 测试要求
### 单元测试
- [ ] 测试 FP16 模型加载和推理
- [ ] 测试 INT8 模型加载和推理
- [ ] 测试量化配置切换功能
- [ ] 测试不同量化模式的结果一致性
### 性能测试
- [ ] 对比不同量化模式的推理速度(FP32/FP16/INT8)
- [ ] 对比不同量化模式的显存占用
- [ ] 验证 OCR 精度损失 < 2%(使用标准数据集)
### 基准测试数据集
- ICDAR 2015(场景文本识别)
- SROIE(发票识别)
- 自定义业务数据集(营业执照、身份证等)
## 验收标准
- ✅ FP16 推理速度提升 30-50%,精度损失 < 0.5%
- ✅ INT8 推理速度提升 50-70%,精度损失 < 2%
- ✅ 显存占用降低 50% 以上(INT8)
- ✅ 支持配置动态切换,无需重启服务
- ✅ 提供完整的性能对比文档和测试报告
## 依赖项
- bitsandbytes (INT8/INT4 量化)
- torch >= 2.0 (原生量化支持)
- transformers >= 4.37.0 (量化模型加载)
## 优先级
**P0** - 核心功能,直接影响推理性能和成本
## 预计工时
3-5 天
0 条评论