当代人工智能实验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 (不下载)