查看原文
其他

如何做大模型的微调实验,记录一次基于ChatGLM-6B 大模型微调实验过程。

Editor's Note

大模型要在实际业务需求场景落地,不可避免会遇到微调的需求,文章介绍了一次大模型的微调记录,提升了大模型的正向收益,为更好的满足业务需求提供了参考。

The following article is from 余生不设限 Author myddup

大模型微调实验的核心目标的通过实验找到最佳的优化方法,来提升大模型的正向收益。

本文通过记录一次基于ChatGLM-6B 大模型微调实验,验证对话场景中历史对话轮次是否越长越好,来说明如何做大模型的微调实验,给大家一些参考。‍

如何做大模型的微调实验,其实每次实验都需要有明确的实验目的,算法的优化方法有很多,如数据样本质量优化,模型参数优化、损失函数优化、模型网络结构优化等等。但是,每次优化迭代的效果怎么样,需要设计对比实验来验证,验证实验目的是否符合预期。下面看看,一次大模型的微调实验的实验报告。

一、背景与实验目的

验证历史对话轮次是否越长越好,通过训练两个模型,控制变量max_source_length|max_target_length,对训练好之后的模型从Loss、Bleu指标、离线人工评估等角度进行对比分析。

二 、数据样本

全量数据经过降采样后,从中随机10w样本进行测试。

三、 模型优化

关注对比参数:

                 

512-10w-模型

1024-10w-模型

max_source_length

512

1024

max_target_length

128

256

lr

1e-5

1e-5

num_train_epochs

5

5

per_device_train_batch_size

2

1

四、离线效果

Loss情况:

1024-10w-模型loss下降得更低,到0.5x,512-10w模型loss到0.9x。说明在训练集上1024拟合更好

         

        


Loss指标说明:

在机器学习中,Loss是损失函数,它衡量模型的预测输出和真实目标值之间的差距,用来评估模型的预测性能。

常见的Loss函数包括:

- Mean Squared Error(MSE):均方误差,用于回归问题,计算预测值和目标值差的平方和的平均数。

- Cross Entropy:交叉熵,用于分类问题,计算预测概率分布和真实概率分布之间的距离。

- Hinge Loss:合页损失,用于分类问题,计算预测值和目标值之间的最大边界距离。

- Kullback-Leibler Divergence:KL散度,计算两个概率分布之间的距离。

Loss值越低,表示模型预测效果越好。所以训练过程中要不断通过优化算法(梯度下降等)来最小化Loss,使模型预测结果不断接近目标

 

Bleu情况:‍‍‍‍

bleu指标1024比512低0.1%。

评测集:1043个样本

512-模型:

1024-模型,推理使用512-128长度:

1024-模型,推理使用1024-256长度:


BLEU指标说明:

BLEU(Bilingual Evaluation Understudy)是一种用于评估机器翻译输出质量的自动评测算法。

BLEU的基本思想是:将机器翻译系统输出的翻译结果与人工参考翻译进行比较,计算两者的相似度,来评估机器翻译的质量。BLEU计算方法主要有:

1. n-gram精度:计算机器翻译输出中的n-gram(一串n个词)与参考译文的匹配程度。

2. 修正的精度:对长度过短的句子进行惩罚,防止只输出短小句子来获得高分。

3. BLEU得分:综合N-gram精度和修正的精度,得到0-100分的BLEU评测分数。分数越高表示翻译结果越好。

4. 对多参考译文取平均:使用多份参考译文来获得更准确的评测结果。


人工评估:

评估样本量较少。从少量样本上看1024全量是有优势的         

、实验结论

结论:从人工评估少量样本以及loss下降来看,历史对话长度1024比512长度好,后续模型训练可以扩大到1024长度。

         

感谢关注“余生不设限”,陪您一起成长!

继续滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存