fairseq使用bart.mnli模型实践

这里记录以下在fairseq中微调roberta和使用bart的方法。本来想使用bart微调的,但是遇到了bug现在还没调通,因此曲线救国,使用了roberta,后面如果调通了,会补上的,以下代码和官网上https://github.com/pytorch/fairseq/blob/master/examples/roberta/README.glue.md一致,由于简书复制少空格可能会有错误,以官网为主。

1、安装

git clone https://github.com/pytorch/fairseq

cdfairseq

pip install --editable ./

2、如果想要训练更快,安装apex

git clone https://github.com/NVIDIA/apex

cd apex

pip install -v --no-cache-dir --global-option="--cpp_ext"--global-option="--cuda_ext"\ --global-option="--deprecated_fused_adam"--global-option="--xentropy"\ --global-option="--fast_multihead_attn"./

3、使用bart,下载预训练模型,这里选择bart.large(其他还有:bart.base bart.large 

from fairseq.models.bart import BARTModel

bart = BARTModel.from_pretrained('/path/to/bart.large',checkpoint_file='model.pt')

bart.eval()# disable dropout (or leave in train mode to finetune)

4、使用Bart做句子分类任务,这里使用了在Mnli数据集上微调的模型(将句子对分三类)

bart=torch.hub.load('pytorch/fairseq','bart.large.mnli')

bart.eval()

tokens=bart.encode('BART is a seq2seq model.','BART is not sequence to sequence.')

bart.predict('mnli',tokens).argmax()

tokens=bart.encode('BART is denoising autoencoder.','BART is version of autoencoder.')

bart.predict('mnli',tokens).argmax()

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 翻译自Xipeng Qiu*,School of Computer Science, Fudan Universi...
    京漂的小程序媛儿阅读 6,947评论 1 5
  • 这里记录以下在fairseq中微调roberta和使用bart的方法。本来想使用bart微调的,但是遇到了bug现...
    多情一棵葱阅读 1,790评论 0 0
  • 久违的晴天,家长会。 家长大会开好到教室时,离放学已经没多少时间了。班主任说已经安排了三个家长分享经验。 放学铃声...
    飘雪儿5阅读 7,736评论 16 22
  • 创业是很多人的梦想,多少人为了理想和不甘选择了创业来实现自我价值,我就是其中一个。 创业后,我由女人变成了超人,什...
    亦宝宝阅读 1,950评论 4 1
  • 今天感恩节哎,感谢一直在我身边的亲朋好友。感恩相遇!感恩不离不弃。 中午开了第一次的党会,身份的转变要...
    余生动听阅读 10,740评论 0 11

友情链接更多精彩内容