首页 云计算

谷歌开源项目飞马(PEGASUS):可以自动进行文章摘要


   

谷歌于去年年底发布了一个精简型的机器语义分析项目:飞马(PEGASUS):预先机器学习及训练后的自动文章摘要项目。近期这个项目迎来的新的版本,这个小型项目可以非常精准的自动提取出文章中的摘要,并且只用一千个训练模型就可以生成媲美人类的摘要内容。

1592178235005

 



当对包括文本摘要在内的下游NLP任务进行微调时,最近针对大型文本语料库进行自我学习的目标的预训练工作已显示出巨大的成功。

但是,尚未探讨为抽象文本摘要量身定制的预训练目标。此外,缺乏跨不同领域的系统评估。在这项工作中,我们提出了在大规模文本语料库上使用新的自我训练目标对基于大型编解码器模型进行预训练的方法。在PEGASUS中,重要句子从输入文档中删除/掩盖,并作为其余句子的一个输出序列一起生成,类似于摘录摘要。

我们在涉及新闻,科学,故事,说明,电子邮件,专利和立法法案的12个下游汇总任务中评估了最佳PEGASUS模型。

实验表明,在通过ROUGE分数衡量的所有12个下游数据集上,它均达到了最先进的性能。我们的模型还显示了在低资源汇总方面的令人惊讶的性能,超过了仅使用1000个学习后的6个数据集上的最新结果。

最后,我们使用人工评估验证了我们的结果,并表明我们的模型摘要可在多个数据集上实现人工表现。

 

附件:如何部署一个自动摘要的环境

项目地址:https://github.com/google-research/pegasus


设定

使用GPU在Google云端上创建实例(可选)

请先创建一个项目并创建一个实例

gcloud compute instances create \ ${VM_NAME} \ --zone=${ZONE} \ --machine-type=n1-highmem-8 \ --accelerator type=nvidia-tesla-v100,count=1 \ --boot-disk-size=500GB \ --image-project=ml-images \ --image-family=tf-1-15 \ --maintenance-policy TERMINATE --restart-on-failure

安装库和依赖项

在github上克隆库并安装要求。

git clone https://github.com/google-research/pegasuscd pegasusexport PYTHONPATH=.pip3 install -r requirements.txt

按照说明安装gsutil

下载“混合与动态”模型的vocab,经过预训练和微调的检查点。

mkdir ckptgsutil cp -r gs://pegasus_ckpt/ ckpt/

对下游数据集进行微调

在现有数据集上

对现有数据集进行微调aeslc

python3 pegasus/bin/train.py --params=aeslc_transformer \--param_overrides=vocab_filename=ckpt/pegasus_ckpt/c4.unigram.newline.10pct.96000.model \--train_init_checkpoint=ckpt/pegasus_ckpt/model.ckpt-1500000 \--model_dir=ckpt/pegasus_ckpt/aeslc

评估经过微调的数据集。

python3 pegasus/bin/evaluate.py --params=aeslc_transformer \--param_overrides=vocab_filename=ckpt/pegasus_ckpt/c4.unigram.newline.10pct.96000.model,batch_size=1,beam_size=5,beam_alpha=0.6 \--model_dir=ckpt/pegasus_ckpt/aeslc

请注意,上面的示例使用的是单个GPU,因此batch_size远小于本文报告的结果。

添加新的微调数据集

支持两种类型的数据集格式:TensorFlow数据集(TFDS)或TFRecords。

本教程说明如何在TFDS中添加新的数据集。(希望对微调数据集进行监督,请supervised_keys在数据集信息中提供 )。

Tfrecords格式要求每个记录都是的tf示例{"inputs":tf.string, "targets":tf.string}

例如,如果您注册了一个new_tfds_dataset用于训练和评估的TFDS数据集,并且有一些文件名为tfrecord格式new_dataset_files.tfrecord*用于测试,则可以在中注册它们/pegasus/params/public_params.py

@registry.register("new_params")def my_param(param_overrides): return public_params.transformer_params( { "train_pattern": "tfds:new_tfds_dataset,train", "dev_pattern": "tfds:new_tfds_dataset,validation", "test_pattern": "tfrecord:new_dataset_files.tfrecord*", "max_input_len": 512, "max_output_len": 128, "train_steps": 10000, "learning_rate": 0.0001, "batch_size": 8, }, param_overrides)

评估指标。

评估结果可在中找到mode_dir自动为每个评估点计算汇总指标。

  • ROUGE是总结质量的主要指标。

  • BLEU是替代语言生成的质量指标。

  • 提取碎片覆盖率和密度 是衡量摘要抽象性的指标。

  • 重复率测量代重复失败模式。

  • 长度统计数据比较黄金摘要来测量解码的长度分布。

可以在以下几种类型的输出文件中找到 model_dir

  • text_metrics-*。txt:以上指标以文本格式显示。每行包含度量标准名称,95%下限值,平均值,95%上限值。
  • 输入-.txt,目标-.txt,预测-* .txt:模型输入/输出的原始文本文件。

预训练

(在C4或任何其他语料库上)的预训练需要定制构建的tensorflow,其中包括进行实时解析的操作,这些操作将原始文本文档处理为模型输入并指定ID。有关详细信息,请参阅pegasus / ops / pretrain_parsing_ops.cc和pegasus / data / parsers.py。


官方微博/微信

每日头条、业界资讯、热点资讯、八卦爆料,全天跟踪微博播报。各种爆料、内幕、花边、资讯一网打尽。百万互联网粉丝互动参与,TechWeb官方微博期待您的关注。

↑扫描二维码

想在手机上看科技资讯和科技八卦吗?

想第一时间看独家爆料和深度报道吗?

请关注TechWeb官方微信公众帐号:

1.用手机扫左侧二维码;

2.在添加朋友里,搜索关注TechWeb。

手机游戏更多