OpenBMB / BMCook

Model Compression for Big Models
Apache License 2.0
151 stars 21 forks source link

int8量化感知训练,保存的模型依然是fp32 #27

Open jinmin527 opened 1 year ago

jinmin527 commented 1 year ago

通过BMCook进行模型压缩,配置了quantization和distillation,训练的loss收敛的很好。但是保存模型的时候,发现保存的checkpoint文件并没有减少,分析发现线性层的参数还是fp32的。 另外bmtrain的优化器AdamOffloadOptimizer和AdamOptimizer也只支持参数保存为fp32和fp16,并没有实现参数保存为int8。

jinmin527 commented 1 year ago

是不是推理的时候,bminf将线程层转换成量化线性层,最终实现参数从fp16到int8,然后bminf计算也是int8

zzy14 commented 1 year ago

是不是推理的时候,bminf将线程层转换成量化线性层,最终实现参数从fp16到int8,然后bminf计算也是int8

是的,保存的精度没有变化,需要再面向bminf转换一下。

zzdxjtu commented 12 months ago

@jinmin527 你好,想问问你是怎么量化保存的,我是在微调训练的get_model之后添加的BMQuant.quantize(model, quantization_config)进行量化,能够保存模型,但是加载该模型推理时报了ValueError: Missing some parameters in layer 1

image