全国免费咨询:

13245491521

VR图标白色 VR图标黑色
X

中高端软件定制开发服务商

与我们取得联系

13245491521     13245491521

2019-02-06_跨语言版BERT:Facebook提出跨语言预训练模型XLM

您的位置:首页 >> 新闻 >> 行业资讯

跨语言版BERT:Facebook提出跨语言预训练模型XLM 选自 GitHub 机器之心编译 参与:张倩、思源 自去年 BERT 横空出世以来,预训练语言模型就得到大量的关注,但大多数预训练表征都是单语言的,不同语言的表征并没有什么关系。今天,Facebook 发布了一种新型跨语言预训练语言模型,它旨在构建一种跨语言编码器,从而将不同语言的句子在相同的嵌入空间中进行编码。这种共享的编码空间对机器翻译等任务有很大的优势。 项目地址:https://github.com/facebookresearch/XLM 在这一项工作中,作者展示了跨语言预训练语言模型的高效性,它在多种跨语言理解基准任务中都取得了很好的效果。总的而言,Facebook 提供的是一种跨语言版的 BERT,它在 XNLI 和无监督机器翻译等跨语言任务取得了当前最好的效果。 整个 XLM 开源项目主要展示了预训练语言模型和机器翻译等使用方法,如下所示为项目结构。 1. 预训练语言模型: 因果语言模型(CLM)—单语言 BERT 中通过掩码训练的语言模型(MLM)—单语言 翻译语言模型(TLM)—跨语言 2. 监督/无监督机器翻译训练: 降噪自编码器 平行数据训练 在线回译 3.XNLI 微调 4.GLUE 微调 此外,XLM 支持多 GPU 和多节点训练,这对于大规模重训练或微调都很有帮助。 预训练模型 本项目提供预训练跨语言模型,所有预训练模型都是利用 MLM 目标函数训练的: 机器翻译预训练论文中用到的是英-法、英-德、英-罗马尼亚模型。如果要使用这些模型,需要使用相同的数据预处理/BPE 代码来预处理数据。 XNLI 微调用到的模型是 XNLI-15。它可以处理英语、法语、西班牙语、德语、希腊语、保加利亚语、俄语、土耳其语、阿拉伯语、越南语、泰国语、汉语、印地语、斯瓦希里语和乌尔都语。该模型的预处理方法不同于机器翻译模型。 生成跨语言句子表征 项目提供了一段简单的示例代码,它可以帮我们从预训练模型快速获取跨语言句子表征,这种跨语言的句子表征对机器翻译、计算句子相似性或实现跨语言的分类器都很有帮助。项目提供的示例主要是 Python 3 写的,它还需要 Numpy、PyTorch、fastBPE 和 Moses 四个库的支持。其中 fastBPE 主要帮助解决机器翻译中罕见词的表征问题,Moses 主要对文本进行清理和 Tokenize 等过程,这个库并不需要安装。 要生成跨语言的句子表征,首先需要导入一些代码文件和库: importos importtorch fromsrc.utilsimportAttrDict fromsrc.data.dictionaryimportDictionary,BOS_WORD,EOS_WORD,PAD_WORD,UNK_WORD,MASK_WORD fromsrc.model.transformerimportTransformerModel 加载预训练模型: model_path='/private/home/guismay/aws/XLM/mlm_tlm_xnli15_1024.pth' reloaded=torch.load(model_path) params=AttrDict(reloaded['params']) print("Supportedlanguages:%s"%",".join(params.lang2id.keys())) __________________________________________ Supportedlanguages:ar,bg,de,el,en,es,fr,hi,ru,sw,th,tr,ur,vi,zh 构建字典、更新参数和构建模型: #builddictionary/updateparameters dico=Dictionary(reloaded['dico_id2word'],reloaded['dico_word2id'],reloaded['dico_counts']) params.n_words=len(dico) params.bos_index=dico.index(BOS_WORD) params.eos_index=dico.index(EOS_WORD) params.pad_index=dico.index(PAD_WORD) params.unk_index=dico.index(UNK_WORD) params.mask_index=dico.index(MASK_WORD) #buildmodel/reloadweights model=TransformerModel(params,dico,True,True) model.load_state_dict(reloaded['model']) 下面展示一些语言的案例,我们会根据预训练模型抽取句子表征,它们已经是 BPE 格式(基于 fastBPE 库): #listof(sentences,lang) sentences=[ ('thefollowingsecon@@darycharac@@tersalsoappearinthenov@@el.','en'), ('leszonesruralesoffr@@entdepetitesroutes,adeuxvoies.','fr'), ('luegodelcri@@quet,estaelfutbol,elsur@@f,entreotros.','es'), ('am18.august1997wurdederastero@@id(76@@55)adam@@riesnachihmbenannt.','de'), ('???????????????@@??@@?????????????????@@??????????:','ar'), ('此外,松@@嫩平原上还有许多小湖泊,当地俗@@称为“泡@@子”。','zh'), ] #add/ssentencedelimiters sentences=[(('%s/s'%sent.strip()).split(),lang)forsent,langinsentences] 最后创建批量并完成前向传播就能获得最终的句子嵌入向量: bs=len(sentences) slen=max([len(sent)forsent,_insentences]) word_ids=torch.LongTensor(slen,bs).fill_(params.pad_index) foriinrange(len(sentences)): sent=torch.LongTensor([dico.index(w)forwinsentences[i][0]]) word_ids[:len(sent),i]=sent lengths=torch.LongTensor([len(sent)forsent,_insentences]) langs=torch.LongTensor([params.lang2id[lang]for_,langinsentences]).unsqueeze(0).expand(slen,bs) tensor=model('fwd',x=word_ids,lengths=lengths,langs=langs,causal=False).contiguous() print(tensor.size()) 最后输出的张量形状为 (sequence_length, batch_size, model_dimension),它可以进行进一步的微调,从而完成 GLUE 中的 11 项 NLP 任务或 XNLI 任务等。 当然除了提取预训练句子嵌入向量,该项目还展示了如何用于无监督机器翻译等任务,详细内容可查阅原 GitHub 项目。 论文:Cross-lingual Language Model Pretraining 论文链接:https://arxiv.org/abs/1901.07291 摘要:最近的研究已经展示了生成预训练在英语自然语言理解上的有效性。本研究将此方法扩展到多种语言并展示了跨语言预训练的有效性。研究者提出了两种方法,用于学习跨语言模型(XLM):一个是无监督模型,只依赖单语数据,另一个是有监督模型,利用具有新的跨语言模型目标函数的平行数据。该方法在跨语言分类、无监督和有监督机器翻译方面达到了当前最佳水准。在 XNLI 上,该方法将当前最高绝对准确率提高了 4.9%。在无监督机器翻译上,本研究中的方法在 WMT'16 德语-英语任务上的 BLEU 到达了 34.3,将当前最佳水平提高了 9 分。在有监督机器翻译任务中,该方法在 WMT'16 罗马尼亚语-英语任务中的 BLEU 达到 38.5,将当前最佳水平提高了 4 分。 本文为机器之心编译,转载请联系本公众号获得授权。 ?------------------------------------------------ 加入机器之心(全职记者 / 实习生):hr@jiqizhixin.com 投稿或寻求报道:content@jiqizhixin.com 广告 & 商务合作:bd@jiqizhixin.com

上一篇:2023-07-15_「转」化学语言模型polyBERT,以前所未有的速度和准确性在聚合物「宇宙」中搜索所需聚合物 下一篇:2021-07-18_早鸟票倒数3天!下周末溪涌浪起来

TAG标签:

19
网站开发网络凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设网站改版域名注册主机空间手机网站建设网站备案等方面的需求...
请立即点击咨询我们或拨打咨询热线:13245491521 13245491521 ,我们会详细为你一一解答你心中的疑难。
项目经理在线

相关阅读 更多>>

猜您喜欢更多>>

我们已经准备好了,你呢?
2022我们与您携手共赢,为您的企业营销保驾护航!

不达标就退款

高性价比建站

免费网站代备案

1对1原创设计服务

7×24小时售后支持

 

全国免费咨询:

13245491521

业务咨询:13245491521 / 13245491521

节假值班:13245491521()

联系地址:

Copyright © 2019-2025      ICP备案:沪ICP备19027192号-6 法律顾问:律师XXX支持

在线
客服

技术在线服务时间:9:00-20:00

在网站开发,您对接的直接是技术员,而非客服传话!

电话
咨询

13245491521
7*24小时客服热线

13245491521
项目经理手机

微信
咨询

加微信获取报价