跳转至

当代人工智能实验4

文本摘要是指使用算法从一段较长文本中提取关键信息,生成简短、凝练的摘要。本次实验是文本摘要在医学领域的应用:从详细的病情描述中提取关键信息生成简短清晰的诊断报告。

我在本次实验中,调用了两种预训练的架构T5和BART,同时尝试着完成了一下GRU。

3种架构的具体介绍、实验流程请见实验报告。

运行

在BART.ipynb和T5.ipynb中有我当时训练、测试的结果。

安装依赖

进入目录,输入

pip install -r requirements.txt

接下来运行程序,举例:

python main.py --model BART --download 1 --device cuda --lr 1e-3 --epochs 10 --batch_size 64

一定要注意大小写!是BART不是Bart ! T5而不是t5 !!!

因为预训练的模型实在是太大了,所以并未随压缩包一起上传。如果本地没有,请务必--download 1下载一次。但是下载请确保连接外网畅通,否则会遇到网络问题

参数介绍:

  • 模型名 --model

BART(默认参数) GRU

  • 训练轮次 --epoch

默认:6次

  • 批大小 --batch_size

默认:32

  • 学习率 --lr

默认:1e-4

  • 设备 --device

cuda(默认) cpu 注意!如果cuda不支持,则强制转化为cpu

  • 是否要下载 --download

是否要从HuggingFace官方下载到需要的预训练模型到本地?

默认 0 (不下载)

我不知道为什么出了jupyter notebook之后自己的T5模型在计算ROUGE时反而很容易出现ValueError: Hypothesis is empty,一检查才知道T5生成的不少预测值pred为空。由于实在是没有时间了,所以我参考着HuggingFace官方的示范完成了T5,并放到了T5.py中。

如果要运行T5,其实也同理,T5和main的参数是类似的,缺少的就是--model 举例:

python T5.py --download 1 --device cuda --lr 1e-3 --epochs 10 --batch_size 64

参数介绍:

  • 训练轮次 --epoch

默认:6次

  • 批大小 --batch_size

默认:32

  • 学习率 --lr

默认:1e-4

  • 设备 --device

cuda(默认) cpu 注意!如果cuda不支持,则强制转化为cpu

  • 是否要下载 --download

是否要从HuggingFace官方下载到需要的预训练模型到本地?

默认 0 (不下载)