慧心医问——项目实训第三周实录

76 阅读5分钟

一、本周工作总结

本周我们主要的工作内容主要是总结和分析chatGLM模型的初步微调结果。

下面将对这个工作进行简单介绍。

二、chatGLM模型的初步微调结果

运行微调除 ChatGLM2-6B 的依赖之外,还需要安装以下依赖 pip install rouge_chinese nltk jieba datasets

官网提供的shell脚本文件train.sh中的参数如下:

image.png

我们修改了train.sh文件参数:

train_file:训练集路径, 改为前面生成的 train.json 文件所在路径。

validation_file:验证集路径, 改为前面生成的 val.json 文件所在路径。

model_name_or_path:预训练模型的名称或路径,改为模型文件下载到的目录路径,我这里是../THUDM/chatglm2-6b

修改后的train.sh:

image.png

执行脚本 bash train.sh,开始训练:

image.png   image.png

image.png

 

训练过程:

  image.png

  image.png

image.png

 

2、 模型推理

在 P-tuning v2 训练时模型只保存 PrefixEncoder 部分的参数,所以在推理时需要同时加载原 ChatGLM2-6B 模型以及 PrefixEncoder 的权重,因此需要指定 evaluate.sh 中的参数: image.png 执行脚本 bash evaluate.sh 推理过程: image.png

image.png

image.png

最终评测指标为中文Rouge score和BLEU-4。

生成的结果保存在 ./output/adgen-chatglm2-6b-pt-300-2e-2/generated_predictions.txt中

image.png

我们准备了 200 条推理数据,所以相应的在文件中会有 200条评测数据。其中labels 是 val.json 中的预测输出,predict 是 ChatGLM2-6B 生成的结果。通过对比预测输出和生成结果,可以评测模型训练的好坏。如果不满意可以重新调整训练的参数再次进行训练。

3、 对比微调前后效果

这是我们在 pre_seq_len为300,学习率初始为2e-2的情况下微调后的问答结果与微调前的问答结果的对比:

image.png

 

问题回顾:

灾难性遗忘:

灾难性遗忘是指在微调过程中,模型学习新的任务时忘记了原有任务的知识,在原始任务上的表现灾难性地下降。

在本模型中,使用官方的学习率(2e-2 )可能会使得训练之后的模型回答问题时发生严重的错误回答,称为灾难性遗忘。例如:

微调前:

  image.png

微调后:

image.png

问题是“你是谁?”,回答却是糖尿病的相关介绍,回答与问题完全不相符。

我们对train.sh文件内的配置进行调整和修改:

由于使用官方的学习率(2e-2 )可能会导致灾难性遗忘,因此需要对学习率LR进行调整,将其设置为15e-3。重新训练后再次进行检测,发现现在能正常回答,没有发生灾难性遗忘。

 

阶段性总结:

经过多轮模型训练及评估,在训练数据集较大(约30000条)的情况下,我们目前的最好效果是平均损失率在2.7+,在训练数据集较少的情况下平均损失率可以达到1.1+,但是模型推理能力稍差。

image.png

红色:30000训练数据

黄色:5000训练数据

在训练数据为30000条,验证数据为3000条的情况下,文本任务评估指标最优结果如下:

image.png

BLEU(Bilingual Evaluation Understudy)是用于评估机器翻译质量的常用指标。对于生成式模型(如聊天机器人)来说,BLEU可以作为衡量模型生成文本与参考文本之间相似性的一个指标。一般来说,BLEU-4分数越高,表示生成文本与参考文本之间的相似度越高,模型在词汇选择、句子结构和流畅性方面可能表现得越好。我们的BLEU-4分数表明模型在生成与参考文本相似的句子方面有一定的能力。但是仍然有很大的进步空间。

ROUGE(Recall-Oriented Understudy for Gisting Evaluation)是一组用于评估自动摘要和机器翻译系统质量的指标。在这里使用了ROUGE-1(基于单词的F1分数),ROUGE-2(基于词组的F1分数)和ROUGE-L(基于最长公共子序列的F1分数)。这些指标考虑了模型生成文本与参考文本之间的召回率(recall)和精确度(precision)。较高的ROUGE分数表示模型生成的摘要或回答与参考文本更为相似。从数值来看,ROUGE-1得分最高(29.18),ROUGE-2得分较低(9.37),而ROUGE-L得分介于两者之间(24.37)。这意味着模型在生成包含较长词组的句子方面还有改进的空间。这也是我们未来努力的方向。
当然,除了对模型文本回答任务的这些评价指标外,我们也进行了实际地医学领域的问答实践,如前表格所示,微调后的模型回答的答案会更符合医学事实,并提出一些健康建议,总体来说,我们的微调是有效果的。未来,需要针对长文本任务进行进一步的实验与调整,并需要要请专业人士进行模型对话评估,验证答案的正确性和有效性。

 

三、总结

本周,我们团队在主要在模型微调取得了显著进展。首先,针对chatGLM模型,我们成功完成了初步微调,并进行了详细的数据分析和结果评估。通过深入分析模型的输出和性能表现,我们获取了宝贵的反馈,为后续的模型优化提供了明确的方向。为后续工作的顺利开展奠定了坚实基础。