🚀 BERT-base无大小写区分模型在SQuAD v1上的微调版本
本模型解决了在问答任务中模型效率与精度平衡的问题,通过剪枝技术在保证一定准确率的前提下,显著提升了模型的运行速度。它基于SQuAD v1数据集进行微调,适用于问答相关的自然语言处理任务。
🚀 快速开始
本模型使用 nn_pruning Python库创建,线性层包含原权重的 26.0%。
整体而言,模型包含原权重的 42.0%(嵌入层在模型中占比显著,且此方法未对其进行剪枝)。
在评估中,通过对线性矩阵进行简单的调整,模型运行速度达到原模型的 2.44倍。这是因为剪枝方法产生了结构化矩阵,将鼠标悬停在下方的图表上,即可查看每个矩阵的非零/零部分。
在准确率方面,其 F1值为87.71,而原模型的F1值为88.5, F1值下降了0.79。
✨ 主要特性
精细剪枝细节
本模型是基于HuggingFace 模型 检查点在 SQuAD1.1 上进行微调,并从 csarron/bert-base-uncased-squad-v1 模型进行蒸馏得到的。
该模型不区分大小写,即对于 "english" 和 "English" 不会有不同处理。
块剪枝的一个副作用是,部分注意力头被完全移除:在总共144个注意力头中,有80个被移除(占比55.6%)。以下是剪枝后剩余注意力头在网络中的详细分布情况。
SQuAD1.1数据集详情
数据集 |
划分 |
样本数量 |
SQuAD1.1 |
训练集 |
90.6K |
SQuAD1.1 |
评估集 |
11.1k |
微调信息
CPU: Intel(R) Core(TM) i7-6700K CPU
内存: 64 GiB
GPU: 1 GeForce GTX 3090,显存24GiB
GPU驱动: 455.23.05,CUDA: 11.1
结果
PyTorch模型文件大小:355MB
(原始BERT模型:420MB
)
指标 |
值 |
原始值 (表2) |
变化 |
精确匹配率(EM) |
80.03 |
80.8 |
-0.77 |
F1值 |
87.71 |
88.5 |
-0.79 |
📦 安装指南
安装 nn_pruning
,它包含优化脚本,可通过移除空行/列将线性层打包成更小的矩阵。
pip install nn_pruning
💻 使用示例
基础用法
安装 nn_pruning
后,你可以像往常一样使用 transformers
库,只需在加载管道后调用 optimize_model
即可。
from transformers import pipeline
from nn_pruning.inference_model_patcher import optimize_model
qa_pipeline = pipeline(
"question-answering",
model="madlag/bert-base-uncased-squadv1-x2.44-f87.7-d26-hybrid-filled-v1",
tokenizer="madlag/bert-base-uncased-squadv1-x2.44-f87.7-d26-hybrid-filled-v1"
)
print("/home/lagunas/devel/hf/nn_pruning/nn_pruning/analysis/tmp_finetune parameters: 189.0M")
print(f"Parameters count (includes only head pruning, not feed forward pruning)={int(qa_pipeline.model.num_parameters() / 1E6)}M")
qa_pipeline.model = optimize_model(qa_pipeline.model, "dense")
print(f"Parameters count after complete optimization={int(qa_pipeline.model.num_parameters() / 1E6)}M")
predictions = qa_pipeline({
'context': "Frédéric François Chopin, born Fryderyk Franciszek Chopin (1 March 1810 – 17 October 1849), was a Polish composer and virtuoso pianist of the Romantic era who wrote primarily for solo piano.",
'question': "Who is Frederic Chopin?",
})
print("Predictions", predictions)
📄 许可证
本项目采用MIT许可证。