🚀 INT8 DistilBERT Base Uncased在SQuAD上微调模型卡
本模型是DistilBERT base uncased的INT8量化版本,该模型已在斯坦福问答数据集(SQuAD)上进行了微调。量化过程使用了Hugging Face的Optimum-Intel,并借助了英特尔®神经压缩器(Intel® Neural Compressor)。
✨ 主要特性
- 量化优势:通过训练后静态量化将模型从原始的FP32精度转换为INT8,在优化模型大小和推理速度的同时,尽可能保留原始模型的准确性。
- 适用场景:专为问答任务设计,适用于需要快速推理和减小模型大小,同时又不显著降低准确性的场景。
- 目标用户:适用于研究人员、开发者和企业,特别是在计算资源有限的应用中,需要高效、低延迟问答能力的用户。
📦 安装指南
此部分未提供具体安装步骤,暂不展示。
💻 使用示例
基础用法
from optimum.intel import INCModelForQuestionAnswering
model_id = "Intel/distilbert-base-uncased-distilled-squad-int8-static"
int8_model = INCModelForQuestionAnswering.from_pretrained(model_id)
高级用法
from optimum.onnxruntime import ORTModelForQuestionAnswering
model = ORTModelForQuestionAnswering.from_pretrained('Intel/distilbert-base-uncased-distilled-squad-int8-static')
📚 详细文档
模型详情
属性 |
详情 |
模型作者 |
Xin He、Zixuan Cheng、Yu Wenz |
日期 |
2022年8月4日 |
版本 |
此量化过程的基础模型是distilbert-base-uncased-distilled-squad,它是为问答任务设计的BERT蒸馏版本。 |
模型类型 |
语言模型 |
论文或其他资源 |
基础模型:distilbert-base-uncased-distilled-squad |
许可证 |
apache-2.0 |
问题或评论 |
社区板块 和 英特尔开发者中心Discord |
量化详情 |
该模型经过训练后静态量化,从原始的FP32精度转换为INT8,旨在优化模型大小和推理速度,同时尽可能保留原始模型的准确性。 |
校准详情 |
对于PyTorch,校准数据加载器是训练数据加载器,实际采样大小为304,因为默认校准采样大小300不能被批量大小8整除。对于ONNX版本,使用评估数据加载器进行校准,默认校准采样大小为100。 |
预期用途
预期用途 |
描述 |
主要预期用途 |
该模型用于问答任务,可根据给定的上下文段落回答问题。它针对需要快速推理和减小模型大小,同时又不显著降低准确性的场景进行了优化。 |
主要目标用户 |
需要在应用程序中实现高效、低延迟问答功能的研究人员、开发者和企业,特别是在计算资源有限的情况下。 |
超出范围的用途 |
无 |
评估
PyTorch版本
这是一个使用 huggingface/optimum-intel 通过 英特尔®神经压缩器 进行量化的INT8 PyTorch模型。
|
INT8 |
FP32 |
准确率 (评估F1值) |
86.1069 |
86.8374 |
模型大小 (MB) |
74.7 |
265 |
ONNX版本
这是一个使用 英特尔®神经压缩器 进行量化的INT8 ONNX模型。
|
INT8 |
FP32 |
准确率 (评估F1值) |
0.8633 |
0.8687 |
模型大小 (MB) |
154 |
254 |
🔧 技术细节
模型经过训练后静态量化,将其从原始的FP32精度转换为INT8。在PyTorch中,校准数据加载器使用训练数据加载器,实际采样大小为304;在ONNX版本中,使用评估数据加载器进行校准,默认校准采样大小为100。这种量化方式在优化模型大小和推理速度的同时,尽可能保留了原始模型的准确性。
📄 许可证
本模型使用的许可证为apache-2.0。
⚠️ 重要提示
用户应注意训练数据(SQuAD和Wikipedia)中可能存在的潜在偏差,并考虑这些偏差对模型输出的影响。此外,量化在某些情况下可能会引入或加剧偏差。
💡 使用建议
- 用户在关键应用中部署量化模型时,应考虑性能和准确性之间的平衡。
- 对于特定用例或满足更严格的准确性要求,可能需要进一步的微调或校准。