NLP(九十二)大模型时代下的微博新闻标题生成

本文将会介绍如何使用Qwen1.5-7B模型来生成微博新闻标题。

在BERT模型时代,文本生成是一项很难做且效果有限的NLG任务。笔者那时使用Chinese UniLM模型来生成微博新闻标题,Github项目的参考网址为:https://github.com/percent4/UniLM_Chinese_DEMO

在如今的大模型时代,文本生成已经是一个常规的任务,微调起来比较简单,且效果一般都很好。

在本文中,我们将借助最近很火的模型微调项目LLaMA-Factory,使用阿里开源的大模型Qwen1.5-7B来完成微博新闻标题生成任务,看看大模型的标题生成效果。

模型微调

我们使用微博新闻数据集进行模型微调,其中训练集约54w个样本,测试集约13w个样本。借助LLaMA-Factory,我们可以很轻松地完成Qwen1.5-7B在这个数据集上的微调。

我们将数据组织成instruction-tuning形式,即instruction, input, output的格式,示例样本如下:

1
2
3
4
5
{
"instruction": "为下面的文本生成一个合适的中文短标题。",
"input": "中国工程院院士邬贺铨介绍,利用大数据资料可以分析人类用不同语言想表达出的意思。微软正准备开发26种语言翻译的手机,将来你打电话讲中文,海外朋友听到的就是已经翻译过的英文。大数据让未来生活充满无限可能,网友:急问,未来还有多远?未来可能不用苦苦学外语了 ",
"output": "[话筒]未来可能不用苦苦学外语了"
}

将训练数据和测试数据加入至LLaMA-Factory下的data目录,并在data/dataset_info.json文件中加入数据集信息:

1
2
3
4
5
6
"weibo_sum_train": {
"file_name": "weibo_train_data.json"
},
"weibo_sum_test": {
"file_name": "weibo_test_data.json"
}

使用LLaMA-FactoryQwen1.5-7B模型进行SFT,命令如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
CUDA_VISIBLE_DEVICES=0 nohup python src/train_bash.py \
--stage sft \
--do_train True \
--model_name_or_path /models/Qwen1.5-7B \
--finetuning_type lora \
--template qwen \
--dataset weibo_sum_train \
--use_unsloth \
--cutoff_len 1024 \
--learning_rate 5e-05 \
--num_train_epochs 1.0 \
--max_samples 1000000 \
--per_device_train_batch_size 16 \
--per_device_eval_batch_size 16 \
--gradient_accumulation_steps 4 \
--lr_scheduler_type cosine \
--max_grad_norm 1.0 \
--logging_steps 1000 \
--save_steps 1000 \
--eval_steps 1000 \
--evaluation_strategy steps \
--warmup_steps 1000 \
--output_dir saves/qwen15_7b/lora \
--bf16 True \
--lora_rank 8 \
--lora_dropout 0.1 \
--lora_target q_proj,v_proj \
--val_size 0.2 \
--load_best_model_at_end True \
--plot_loss True \
--report_to "tensorboard" &

模型测试

模型微调完毕后,我们将在saves目录下找到训练好的模型文件,我们使用checkpoint-6000的结果,在全量测试集上进行评估,命令如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
CUDA_VISIBLE_DEVICES=0 nohup python src/train_bash.py \
--stage sft \
--do_predict \
--model_name_or_path /models/Qwen1.5-7B \
--adapter_name_or_path saves/qwen15_7b/lora/checkpoint-6000 \
--dataset weibo_sum_test \
--template qwen \
--finetuning_type lora \
--output_dir saves/qwen15_7b/lora/output \
--per_device_eval_batch_size 16 \
--max_samples 1000000 \
--predict_with_generate \
--fp16 &

整个评估结果耗时约3.25个小时,评估指标如下:

1
2
3
4
5
6
7
predict_bleu-4             =    26.5542
predict_rouge-1 = 39.8288
predict_rouge-2 = 23.0813
predict_rouge-l = 37.2813
predict_runtime = 3:16:46.63
predict_samples_per_second = 11.517
predict_steps_per_second = 0.72

我们再使用UniLM_Chinese_DEMO中的评估脚本来进行计算,与之前Chinese UniLM模型的评估结果进行对比,如下表:

指标名称 Chinese UniLM指标 Qwen1.5-7B指标
rouge-1 0.3981 0.4064
rouge-2 0.2406 0.2326
rouge-l 0.3867 0.3893

从上表中,我们可以看到,我们使用Qwen1.5-7B模型对80%的数据集仅仅微调了一轮,其评估指标就优于之前Chinese UniLM模型了。

新样本测试

我们对训练好的模型,观察下他们在全新的数据上的表现结果。

  • 例子1

文章:河北省蠡县留史村74岁的村民张国忠,农闲时间用1万多双筷子搭出了天坛等古建筑。张国忠制作过程不用图纸,全凭个人想象和手感。(记者 李继伟) L新华视点的微博视频 原标题:老大爷用1万多双筷子搭出天坛 Chinese UniLM生成标题:图看中国·用筷子搭建天坛 Qwen1.5-7B生成标题:74岁老人用1万多双筷子搭出天坛

  • 例子2

文章:今天,#国家法律法规数据库#正式开通。国家法律法规数据库收录了宪法和现行有效法律275件,法律解释25件,有关法律问题和重大问题的决定147件,行政法规609件,地方性法规、自治条例和单行条例、经济特区法规16000余件,司法解释637件,涵盖了中国特色社会主义法律体系最主要的内容。戳→O网页链接或登录微信小程序“国家法律法规数据库”,即可进行访问。周知!(总台央视记者吴玮 杨光 王鹏) 原标题:国家法律法规数据库正式开通 Chinese UniLM生成标题:国家法律法规数据库正式开通 Qwen1.5-7B生成标题:国家法律法规数据库正式开通

  • 例子3

文章:宁夏气象台2021年01月11日15时45分发布大风蓝色预警信号:预计今天夜间到明天白天,贺兰山沿山、石嘴山市北部、银川市东南部、中卫市南部、固原市北部和吴忠市大部有5级左右偏北风,部分地区阵风7到9级并伴有沙尘天气,请相关部门和广大群众注意做好防风、防火、防沙工作。 原标题:【新天气】阵风7到9级并伴有沙尘!宁夏气象台发布大风蓝色预警... Chinese UniLM生成标题:宁夏发布大风蓝色预警 Qwen1.5-7B生成标题:宁夏气象台发布大风蓝色预警

  • 例子4

文章:近日,上海海关所属邮局海关工作人员在进行X光机查验时,发现一个申报品名为“牙科耗材”的海外进境邮件包裹影像异常,工作人员随即开箱查验,从中查获活体蚂蚁406只。蚂蚁体长约2厘米,每只都单独放置于一个EP(环氧树脂)管中。@021视频 L021视频的微博视频 原标题:上海海关查获406只活体蚂蚁 Chinese UniLM生成标题:上海海关查获活体蚂蚁406只 Qwen1.5-7B生成标题:上海海关查获406只活体蚂蚁

  • 例子5

文章:权志龙近日被一名网民举报违反了首尔市颁布的防疫规定。昨天有媒体爆料权志龙与BLACKPINK成员JENNIE交往并公布了一组照片,这组照片中有一张权志龙在大街上拉下口罩抽烟的照片而引发争议,不久后就有网民在首尔市政府网站举报了权志龙没有遵守防疫相关规定。该网民表示,根据首尔市政府颁发的防疫规定,抽烟时虽然可以摘下口罩但应该去指定的吸烟区并与他人保持两米以上的距离,吸烟后要及时佩戴口罩,权志龙在大街上将口罩拉下抽烟的行为已经违反了相关规定。 原标题:权志龙被举报违反防疫规定 Chinese UniLM生成标题:权志龙被举报违反防疫规定 Qwen1.5-7B生成标题:权志龙被举报违反防疫规定

  • 例子6

文章:24日,A股连续第三个交易日下跌,#沪指跌破3600点#关口,跌幅1.99%。白酒股、周期股、抱团股纷纷大幅下挫。受股市持续下跌影响,很多投资者反映基金收益率下降,#基金大跌#冲上热搜。你买基金了吗?最近收益率咋样?(谢艺观) 原标题:A股持续下跌,你的基金跌了多少? Chinese UniLM生成标题:基金大跌,你买基金了吗? Qwen1.5-7B生成标题:A股持续下跌,基金收益率咋样?

  • 例子7

文章:近日,上海交通大学医学院附属新华医院李斐教授领衔的团队,与复旦大学类脑智能科学与技术研究院冯建峰教授、罗强副研究员团队、英国剑桥大学Barbara J Sahakian教授团队等合作,在Science Bulletin杂志上发表在线最新研究成果:将布美他尼“老药新用”,可有效干预小年龄自闭症患儿。布美他尼是儿科临床广泛使用的利尿剂,研究发现,经过3个月的布美他尼干预,3-6岁自闭症患儿的社交沟通障碍、感知觉障碍等核心症状有明显改善,用药安全有效。但由于自闭症可能存在病因异质性,不同自闭症患者对布美他尼治疗效果存在差别。这一研究成果有望填补自闭症药物治疗领域的空白。 原标题:老药新用!上海发现低龄自闭症患儿新药:或填补自闭症药物治疗空白 Chinese UniLM生成标题:研究成果:可有效干预小年龄自闭症患儿 Qwen1.5-7B生成标题:布美他尼“老药新用”:有望成为小年龄自闭症患儿的治疗新选择

可以看到,在这些例子中,Qwen1.5-7B模型生成的微博新闻标题优于Chinese UniLM模型生成的标题。

参考文献

  1. UniLM_Chinese_DEMO: https://github.com/percent4/UniLM_Chinese_DEMO
  2. LLaMA-Factory: https://github.com/hiyouga/LLaMA-Factory
  3. Google Gemma 2B 微调实战(IT科技新闻标题生成): https://ganymedenil.com/2024/03/24/Google-Gemma-2B-fine-tuning-practice-IT-technology-news-headline-generation.html
  4. How to fine-tune Google Gemma with ChatML and Hugging Face TRL: https://www.philschmid.de/fine-tune-google-gemma

欢迎关注我的公众号NLP奇幻之旅,原创技术文章第一时间推送。

欢迎关注我的知识星球“自然语言处理奇幻之旅”,笔者正在努力构建自己的技术社区。


NLP(九十二)大模型时代下的微博新闻标题生成
https://percent4.github.io/NLP(九十二)大模型时代下的微博新闻标题生成/
作者
Jclian91
发布于
2024年5月3日
许可协议