Project Icon

bert-base-uncased-sst2-unstructured80-int8-ov

BERT模型的非结构化剪枝与量化优化技术

该项目通过非结构化幅度剪枝、量化和蒸馏,在GLUE SST2数据集上优化了BERT模型。模型在Torch和OpenVINO IR模式下准确率达到0.9128,并在Transformer层中实现了80%的稀疏性。此项目适用于OpenVINO 2024.3.0及以上版本及Optimum Intel 1.19.0及更高版本,利用NNCF完成优化,同时提供详细的参数与训练步骤,以实现高效的文本分类。

bert-base-uncased-sst2-unstructured80-int8-ov 项目介绍

项目背景

bert-base-uncased-sst2-unstructured80-int8-ov是一个基于BERT模型进行文本分类的项目,最初由Google推出。这一项目的基础模型是google-bert/bert-base-uncased,经过量化、剪枝和蒸馏等优化处理,用于在GLUE SST2数据集上进行微调。

项目特点

在项目中,模型实现了结构化稀疏的剪枝、量化到INT8和蒸馏技术的综合应用。通过这些优化措施,该模型在验证集上达到了以下性能:

  • PyTorch框架下的准确率:0.9128
  • OpenVINO IR格式的准确率:0.9128
  • Transformer块线性层的稀疏率:0.80

该模型已被转换为OpenVINO™ IR(中间表示)格式,并通过NNCF对权重进行INT8压缩。

兼容性

提供的OpenVINO™ IR模型支持以下版本:

  • OpenVINO版本2024.3.0及以上
  • Optimum Intel 1.19.0及以上

优化参数

优化过程中使用了以下nncf_config.json文件:

[
    {
        "algorithm": "quantization",
        "preset": "mixed",
        "overflow_fix": "disable",
        "initializer": {
            "range": {
                "num_init_samples": 300,
                "type": "mean_min_max"
            },
            "batchnorm_adaptation": {
                "num_bn_adaptation_samples": 0
            }
        },
        "scope_overrides": {
            "activations": {
                "{re}.*matmul_0": {
                    "mode": "symmetric"
                }
            }
        },
        "ignored_scopes": [
            "{re}.*Embeddings.*",
            "{re}.*__add___[0-1]",
            "{re}.*layer_norm_0",
            "{re}.*matmul_1",
            "{re}.*__truediv__*"
        ]
    },
    {
        "algorithm": "magnitude_sparsity",
        "ignored_scopes": [
            "{re}.*NNCFEmbedding.*",
            "{re}.*LayerNorm.*",
            "{re}.*pooler.*",
            "{re}.*classifier.*"
        ],
        "sparsity_init": 0.0,
        "params": {
            "power": 3,
            "schedule": "polynomial",
            "sparsity_freeze_epoch": 10,
            "sparsity_target": 0.8,
            "sparsity_target_epoch": 9,
            "steps_per_epoch": 2105,
            "update_per_optimizer_step": true
        }
    }
]

更多关于优化的信息,可以参考OpenVINO模型优化指南

运行模型训练

  1. 安装所需软件包:
conda install pytorch torchvision torchaudio pytorch-cuda=11.6 -c pytorch -c nvidia
pip install optimum[openvino,nncf]
pip install datasets sentencepiece scipy scikit-learn protobuf evaluate
pip install wandb # 可选项
  1. 运行模型训练:
NNCFCFG=/path/to/nncf_config.json
python run_glue.py \
  --lr_scheduler_type cosine_with_restarts \
  --cosine_lr_scheduler_cycles 11 6 \
  --record_best_model_after_epoch 9 \
  --load_best_model_at_end True \
  --metric_for_best_model accuracy \
  --model_name_or_path textattack/bert-base-uncased-SST-2 \
  --teacher_model_or_path yoshitomo-matsubara/bert-large-uncased-sst2 \
  --distillation_temperature 2 \
  --task_name sst2 \
  --nncf_compression_config $NNCFCFG \
  --distillation_weight 0.95 \
  --output_dir /tmp/bert-base-uncased-sst2-int8-unstructured80 \
  --overwrite_output_dir \
  --run_name bert-base-uncased-sst2-int8-unstructured80 \
  --do_train \
  --do_eval \
  --max_seq_length 128 \
  --per_device_train_batch_size 32 \
  --per_device_eval_batch_size 32 \
  --learning_rate 5e-05 \
  --optim adamw_torch \
  --num_train_epochs 17 \
  --logging_steps 1 \
  --evaluation_strategy steps \
  --eval_steps 250 \
  --save_strategy steps \
  --save_steps 250 \
  --save_total_limit 1 \
  --fp16 \
  --seed 1

更多细节请参考训练配置和脚本

使用示例

可以在OpenVINO notebooks中找到使用示例,例如:使用OpenVINO™和第四代英特尔®至强®可扩展处理器加速稀疏Transformer模型推理

局限性

更多有关模型的局限性,请参考原始模型卡片

法律信息

原始模型根据apache-2.0许可证分发,详细信息请查阅google-bert/bert-base-uncased模型卡片。

声明

Intel致力于尊重人权,并避免对人权产生不利影响,详见Intel的全球人权原则。Intel的产品和软件仅用于不对人权产生不利影响的应用。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

稿定AI

稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号