1 引言
2021年7月26日,Transformers V4.9.1发布了,因此tfs4虚拟环境更新到了最新版本。Transformers的任务(Tasks)如下所示, 这些任务都可以通过管道(Pipeline)来调用。默认的管道模型都是小模型,因而精度相对较差。如果要提高精度,则必须在管道中显式地指定模型。
过去,我们已经完成过部分任务:
from transformers import pipeline
unmasker = pipeline("fill-mask")
question_answering = pipeline("question-answering")
summarizer = pipeline("summarization")
translation = pipeline("translation_en_to_zh")
(1) Fill-Mask
完形填空---遮蔽式语言模拟(Masked Language Modeling
(2) Question Answering
阅读理解回答问题(Question Answering)---一个更强的BERT预训练模型
Transformers之问题对答(Question Answering)
(3) Summarization
(4) Translation
中英文机器翻译模型(Machine Translation)
今天要完成的任务是Text2TextGeneration。
2 Text2TextGeneration简介
如上所述,Text2TextGeneration是Transformers的其中一个管道或任务,这个管道可以用于各种各样的NLP任务,如问题回答(question answering)、情感分类(sentiment classification)、问题生成(question generation)、翻译(translation)、转述(paraphrasing)、总结(summarization)等。它使用seq2seq模型进行文本到文本生成(text to text generation)。
从pipeline()中加载Text2TextGenerationPipeline管道,任务标识为"text2text-generation"。
from transformers import pipeline
text2text = pipeline("text2text-generation")
3 任务处理管道(Pipeline)方法
3.1 问题回答(question answering)
如果给定一个问题(question)和回答(content)对(pair), 模型能够正确解析出答案,例如:
question: What are machine learning models based on?
context: Machine learning (ML) is the study of computer algorithms that improve automatically through experience.
回答是computer algorithms,回答正确。对于一些简单的问题,不给content只问问题也能根据预训练模型给出答案,但在很多情况下是错误的。例如:Which is capital city of China? 回答是Beijing, 回答正确,但如果问Which is capital city of Cnanda?回答是Toronto,显然是错误的。另一个例子问Where is Chuquicamata mine located? 回答是California,显然也是错误的。
3.2 问题生成(question generation)
问题生成是由给定的一个句子产生出问题。在这个试验里,测试了两个模型:tuner007/pegasus_paraphrase ; valhalla/t5-base-e2e-qg
这两个模型都需要安装protobuf库把Google的数据格式转化为Transformers可识别的数据格式:
pip install protobuf
Installing collected packages: protobuf
Successfully installed protobuf-3.17.3
经过测试,显示第一个模型不如第二个模型的效果好,因此目前使用第二个模型valhalla/t5-base-e2e-qg,测试结果如下:
例子1:
描述问题: Beijing is China's capital.
生成问题:What is the capital of China?
例子2:
描述问题: The Chuquicamata mine in northern Chile has one of the largest open pits in the world. (位于智利北部的丘基卡马塔矿是世界上最大的露天矿之一。)
生成问题: Where is the Chuquicamata?
例子3:
描述问题: The rock fall hazard assessment, generally based on surface geological observations and on a simple geomechanical model, suffers from the lack of information on the 3D geometry and the properties of the joints. (岩石坠落灾害评估通常基于地表地质观测和简单的地质力学模型,由于缺乏三维几何形状和节理的属性信息而受到影响。)
生成问题: What is the rock fall hazard assessment based on?<sep> What is the rock fall?
特别注意的是在这个例子中,生成了两个问题。
3.3 转述(paraphrasing)
转述的目标是给定一个输入句子,生成一个在语义上与输入句子相同的输出句子,但在词汇或句法上有所变化。在这个测试中,除了使用上面的两个模型外,还使用了Vamsi/T5_Paraphrase_Paws模型。测试句子:This paper presents a novel method for estimating rock bridges using a searching algorithm that identifies potential failure pathways through realistic Discrete Fracture Network (DFN) models with no limitations on fracture orientation, length scale or spacing variations. (本文提出了一种新的方法,通过真实的离散断裂网络(DFN)模型,利用搜索算法来估计岩桥,该算法对断裂方向、长度尺度或间距变化没有限制,可以确定潜在的破坏途径。)
结果显示这三个模型都没有达到预想的效果,最大仅把novel改变为new.
3.4 其他功能
其它功能包括翻译(translation): 在默认的管道中不支持中文,好像只支持法语和德语的翻译;总结(summarization):在默认的管道中这个功能非常差,远远比不上管道 "summarization"; 情感分类(sentiment classification): 情感分类很简单,只有两个回答: positive 和negative,这个功能在我们目前的工作中用不上。
4 结束语
本文对Text2TextGeneration管道进行了测试,结果表明只有问题生成(question generation)功能相对好,其他功能略显逊色,因此需要在模型和算法上持续改进。