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

来源:TECHWEB  责任编辑:小易  

用LGPLLGPL最初是Library GPL的缩写,后来改称作Lesser GPL,即为更宽松的GPL。当一个自由软件使用GPL声明时,该软件的使用者有权重新发布、修改该软件,并得到该软件的源代码;但只要使用者在其程序中使用了该自由软件,或者是使用修改后的软件,那么使用者的程序也必须公布其源代码,同时允许别人发布、修改。也就是说,使用GPL声明下的的自由软件开发出来的新软件也一定是自由软件。LGPL是GPL的变种,也是GNU为了得到更多的甚至是商用软件开发商的支持而提出的。与 GPL的最大不同是,可以私有使用LGPL授权的自由软件,开发出来的新软件可以是私有的而不需要是自由软件。所以任何公司在使用自由软件之前应该保证在 LGPL或其它GPL变种的授权下www.zgxue.com防采集请勿采集本网。

   

Google的C++开源代码项目 v8-V8 JavaScript Engine V8 是 Google 的开源 JavaScript 引擎。V8 采用 C++ 编写,可在谷歌浏览器(来自 Google 的开源浏览器)中使用。V8 根据 ECMA-262 第三版中的

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

关于开源项目文档,建议你阅读:开源项目文档应规避的13处“硬伤”三、项目可以很容易地升级 随着项目中bug的修复和一些功能的改进,你需要发布另一个版本。需要注意的是:1.向后兼容 不要因为不向后兼容

1592178235005

 

在哪里能够找到开源项目?这很不好说。一方面,你可以在sf.net(需要翻墙)和code.google.com(最好翻墙)找到相当多的开源项目,也可以在github之类的地方寻找。另一方面,你也可以在debian里面找。很多包

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

这是我比较喜欢的几个开源项目:Orchard http://www.orchardproject.net/ 可以使用于cms blog etc Mono http://mono-project.com/ 你可以在linux上部署http://ASP.net mvc3网站 SharpDevelop-The

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

谷歌开源项目很多的,下面我列举几个我用过的: Google GFlags GFlags是一个命令行标记的处理库,它可以替代“getopt()”,其内置对C++的支持比如string,十分方便。Google Glog Glog提供强大的

我们在涉及新闻,科学,故事,说明,电子邮件,专利和立法法案的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_dirtext_metrics-*。txt:以上指标以文本格式显示。每行包含度量标准名称,95%下限值,平均值,95%上限值。输入-.txt,目标-.txt,预测-* .txt:模型输入/输出的原始文本文件。

预训练

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

谷歌当然拥有安卓,要不然谷歌不会花那么多钱、人力与精力推广安卓。开源项目属于开发开源项目的个人或者公司所有,正常不收费,如果要企业定制就需要收费了内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • 开源项目属于谁?就像安卓 apache开源等开源项目,那么谷歌拥有安卓吗?
  • 在google上发起开源项目,该用哪个协议?(100分高分)
  • 如何在Google Code上创建开源项目
  • Java开源项目有哪些
  • 为什么C++是Google 大部分开源项目的主要编程语言?
  • 如何做一个好的开源项目
  • 如何参与一个开源项目
  • 有哪些好的C#开源项目推荐?
  • 除了安卓,谷歌有哪些用户熟知的开源项目?
  • 为什么chrome浏览器要开源呢?
  • 免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved