作者|huggingface 编译|VK 来源|Github

该库中可用的大多数模型都是单语言模型(英语,中文和德语)。有一些多语言模型可用,并且与单语言模型具有不同的机制。本页详细介绍了这些模型的用法。

当前支持多种语言的两个模型是BERT和XLM。

XLM

XLM共有10个不同的checkpoints,其中只有一个是单语言的。剩下的9个模型checkpoints可以分为两类:使用语言嵌入的checkpoints和不使用语言嵌入的checkpoints

XLM和语言嵌入

本节涉及以下checkpoints:

  • xlm-mlm-ende-1024(掩码语言建模,英语-德语)
  • xlm-mlm-enfr-1024(掩码语言建模,英语-法语)
  • xlm-mlm-enro-1024(掩码语言建模,英语-罗马尼亚语)
  • xlm-mlm-xnli15-1024(掩码语言建模,XNLI语言)
  • xlm-mlm-tlm-xnli15-1024(掩码语言建模+翻译,XNLI语言)
  • xlm-clm-enfr-1024(因果语言建模,英语-法语)
  • xlm-clm-ende-1024(因果语言建模,英语-德语)

这些checkpoints需要语言嵌入,这些语言嵌入将指定推理时使用的语言。这些语言嵌入表示为张量,其形状与传递给模型的输入idS相同。这些张量中的值取决于所使用的语言,并且可以使用tokenizers中的lang2idid2lang属性

这是一个使用xlm-clm-enfr-1024checkpoints的示例(因果语言建模,英语-法语):

import torch
from transformers import XLMTokenizer, XLMWithLMHeadModeltokenizer = XLMTokenizer.from_pretrained("xlm-clm-1024-enfr")

该模型/tokenizer处理不同语言以及这些语言的ID可以使用lang2id属性标明:

print(tokenizer.lang2id)  # {'en': 0, 'fr': 1}

在模型传递语言参数时,应使用这些ID。让我们定义输入:

input_ids = torch.tensor([tokenizer.encode("Wikipedia was used to")]) # batch大小为1

现在,我们应该使用先前定义的语言ID来定义语言嵌入。我们想创建一个张量填充适当的语言ID,其大小与input_ids相同。对于英语,id为0:

language_id = tokenizer.lang2id['en']  # 0
langs = torch.tensor([language_id] * input_ids.shape[1])  # torch.tensor([0, 0, 0, ..., 0])langs = langs.view(1, -1) # 现在是 [1, sequence_length] 

然后,你可以将其作为模型的输入:

outputs = model(input_ids, langs=langs)

示例run_generation.py可以使用语言嵌入从XLM使用CLM checkpoints生成文本。

没有语言嵌入的XLM

本节涉及以下checkpoints:

-xlm-mlm-17-1280(掩码语言建模,17种语言) -xlm-mlm-100-1280(掩码语言建模,100种语言)

这些checkpoints在推理时不需要语言嵌入。这些模型用于具有通用句子表示形式,与前面提到的XLM checkpoints不同。

BERT

BERT具有两个可用于多语言任务的checkpoints:

-bert-base-multilingual-uncased(掩码语言建模+下一个句子预测,102种语言) -基于bert-base-multilingual-cased(掩码语言建模+下一句预测,104种语言)

这些checkpoints在推理时不需要语言嵌入。他们会识别在上下文中使用的语言并据此进行推断。

原文链接:https://huggingface.co/transformers/multilingual.html

欢迎关注磐创AI博客站: http://panchuang.net/

OpenCV中文官方文档: http://woshicver.com/

欢迎关注磐创博客资源汇总站: http://docs.panchuang.net/

Transformers 多语言模型 | 十一相关推荐

  1. 《预训练周刊》第34期:使用图像级监督检测两万个类别、BigScience寻求建立强大的开放语言模型...

    No.34 智源社区 预训练组 预 训 练 研究 观点 资源 活动 关于周刊 本期周刊,我们选择了11篇预训练相关的论文,涉及图像处理.图像理解.语言模型调优.常识问答.大模型隐私泄漏.文本分类.多模 ...

  2. huggingface transformers实战系列-05_文本生成

    # hide from utils import * setup_chapter() Using transformers v4.11.3 Using datasets v1.13.0 Using a ...

  3. 《预训练周刊》第25期:HyperCLOVA:数十亿级韩语生成式预训练变换器、GPT-3在生物医学领域不是好的小样本学习器...

    No.25 智源社区 预训练组 预 训 练 研究 观点 资源 活动 关于周刊 超大规模预训练模型是当前人工智能领域研究的热点,为了帮助研究与工程人员了解这一领域的进展和资讯,智源社区整理了第25期&l ...

  4. 当AI学会高数:解题、出题、评分样样都行

    来源:AI科技评论 "高等数学里程碑式的研究",114页论文让AI文理双修,也许不久后机器出的高数试卷就会走进高校课堂,这下可以说"高数题不是人出的了". 人工 ...

  5. BERT: Bidirectional Encoder Representations from Transformers双向Transformer用于语言模型 NAACL 2018

    论文链接:https://arxiv.org/abs/1810.04805 tensorflow版本代码链接:https://github.com/google-research/bert pytor ...

  6. 如何使用Transformers和Tokenizers从头开始训练新的语言模型

    文章目录 前言 1. 下载数据集 2.训练一个分词器(tokenizer) 3. 从零开始训练语言模型 定义这个模型的配置文件 建立训练数据集 检查LM是否受过训练 总结 huggingface教程翻 ...

  7. 【Transformers】第 5 章:微调文本分类的语言模型

  8. 【Transformers】第 6 章:用于标记分类的微调语言模型

  9. 【Transformers】第 4 章:自回归和其他语言模型

最新文章

  1. 机器学习开源项目Top10
  2. [转]为什么程序员总是写糟糕的代码?这3个原因
  3. 关于CRTP(Curiously Recurring Template Prattern)的使用
  4. 精益 React 学习指南 (Lean React)- 3.4 掌控 redux 异步
  5. PHP通过计算经纬度获取附近的数据信息
  6. boost::mutex::scoped_lock
  7. Hibernate中hql的基本查询、条件查询、排序插叙、分页查询、投影查询
  8. java 熔断_熔断理解 - THISISPAN - 博客园
  9. 基于matlab的捕食算法,运行捕食者算法(OpenTLD-master)
  10. 初次注册使用Tushare Pro报错问题
  11. mysql --force 无效_【技能库】--mysql 索引失效 force index也失效-- 原因解决方案(256)...
  12. 计算机仿真 matlab,计算机仿真(matlab)PPT教程.ppt
  13. openlayer地图裁切
  14. Mac上挂载移动硬盘出现Read-only file system问题
  15. 彻底解读剪不断理还乱的\r\n和\n, 以Windows和Linux为例
  16. 学计算机专业还是数学专业课,数学专业的数学和计算机专业的数学的比较.doc...
  17. 如何关闭win10防火墙_Win技巧 | 如何关闭防火墙
  18. 【NLP】第12章 检测客户情绪以做出预测
  19. python手机摄像头投测距_python opencv单目测距 小孔成像原理
  20. c++ string最大长度_关于C++ std::string类内存布局的探究

热门文章

  1. 【CSS】如何用css做一个爱心
  2. java开发去国企和私企,看完跪了
  3. 测试---APP测试
  4. 温习翻阅必备---java筑基期知识大全--“基础不牢,地动山摇”
  5. 浅谈Redis面试热点之工程架构篇[1]
  6. JavaScript 无缝连接滚动特效
  7. 笔记十八:python的内置函数有哪些尼?都怎么是使用尼?(map()、reduce()、filter()、lambda()……)
  8. Jconsole和VisualVM使用指南
  9. 7. 用JDK5.0的JConsole来连接MBean
  10. 软件项目中的决策分析_软件工程中的决策管理