ModelScope用qwen14bchat做微调(分类),训练过程显示的eval-acc是0.97,到我用同样的验证集,手动推理准确率只有0.89,有知道是这是为啥吗?
在使用ModelScope对qwen-14b-chat
模型进行微调(分类任务)时,您提到训练过程中显示的eval-acc
为0.97,但使用相同的验证集手动推理时准确率仅为0.89。这种差异可能由以下几个原因导致:
transformers
、modelscope
等)与训练环境一致。eval-acc
计算方式)可能与手动推理时的实现存在差异。例如:
temperature
、top-k
采样等),而手动推理时未启用。eval-acc
的具体计算方式,确保手动推理时的实现与其一致。temperature=0.9
),请在手动推理时也设置相同的参数。dropout
层在推理时未正确关闭)。random.seed
、numpy.random.seed
、torch.manual_seed
等)。dropout
层)。eval-acc
较高,但在实际推理时表现较差。weight_decay
、dropout
等)。learning_rate
、batch_size
、n_epochs
等),避免模型过度拟合训练数据。为了进一步排查问题,您可以按照以下步骤逐一检查: 1. 确认推理环境与训练环境一致,包括模型版本、依赖库版本等。 2. 对比训练代码中的评估逻辑与手动推理代码,确保两者实现一致。 3. 检查数据预处理流程,确保训练和推理时的处理方式完全一致。 4. 固定随机种子,关闭所有随机性机制。 5. 检查微调过程是否存在过拟合现象,并调整超参数以优化模型性能。 6. 确保验证集的分布与训练集一致,避免数据分布偏差。
通过以上步骤,您应该能够找到导致eval-acc
与手动推理准确率差异的原因,并采取相应措施解决问题。
ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!欢迎加入技术交流群:微信公众号:魔搭ModelScope社区,钉钉群号:44837352