开源翻译大模型

本文介绍了几个开源的翻译模型,包括HelsinkiUniversity的opus-mt-en-zh用于英文到中文的翻译,Facebook的NLLB、MBART和SeamlessM4T支持多种语言间的单句或多语言翻译。还提供了下载和使用这些模型的示例代码,如NLLB-200、MBART-large-50和SeamlessM4T的安装与实例应用。
摘要由CSDN通过智能技术生成

开源翻译大模型

1 简介

在开发过程中,会遇到定制化翻译工具的需要,开源的翻译模型可以解决相应的问题。其中英语转中文的比较好的开源项目有:

序号组织模型地址备注
1赫尔辛基大学语言技术研究小组(Language Technology Research Group at the University of Helsinki)opus-mt-en-zh英文翻译为中文: https://hf-mirror.com/Helsinki-NLP/opus-mt-en-zh支持英文转中文;其他翻译模型在该项目下查找即可。
2facebook(Meta)nllb-200https://hf-mirror.com/facebook/nllb-200-3.3Bnllb-200可以在200种语言之间进行单句翻译。它有多个参数的模型,推荐使用3.3B,其中600M翻译时会出现“预载载载载载载载载载载”的错误
3facebook(Meta)mbart-large-50英语翻译为其他语言: https://hf-mirror.com/facebook/mbart-large-50-one-to-many-mmt
多语言翻译为多语言: https://hf-mirror.com/facebook/mbart-large-50-many-to-many-mmt
mbart-large-50支持将50种语言翻译为其他多语言。
4facebook(Meta)SeamlessM4T在线使用: https://hf-mirror.com/spaces/facebook/seamless-m4t-v2-large
仓库地址: https://hf-mirror.com/facebook/seamless-m4t-v2-large
Seamless M4T是一个一体化大规模多语言和多模式机器j基座翻译模型,提供近100种语言的语音和文本高质量翻译。可支持:
1.语音到语音翻译(S2ST)
2.语音到文本翻译(S2TT)
3.文本到语音翻译(T2ST)
4.文本到文本翻译(T2TT)
5.自动语音识别(ASR)

2 下载模型

下载模型的网站

# 国内代理huggingface的网站
https://hf-mirror.com/

# 下载大模型的网站
https://aifasthub.com/

下载命令

# 安装huggingface_hub,会在相应的环境中生成huggingface-cli
pip install -U huggingface_hub -i https://pypi.tuna.tsinghua.edu.cn/simple

# 进入到相应的目录下后,下载模型
huggingface-cli download --resume-download facebook/mbart-large-50-one-to-many-mmt --local-dir mbart-large-50-one-to-many-mmt  --local-dir-use-symlinks False

3 项目实例

3.1 模型nllb-200-3.3

源代码

from transformers import AutoTokenizer, AutoModelForSeq2SeqLM, pipeline

# 加载模型
model = AutoModelForSeq2SeqLM.from_pretrained("D:/model/nllb-200-3.3B")
tokenizer = AutoTokenizer.from_pretrained("D:/model/nllb-200-3.3B")

# pipelines使用方法: https://hf-mirror.com/docs/transformers/main_classes/pipelines
# 翻译语言的地址:https://hf-mirror.com/facebook/nllb-200-3.3B/blob/main/README.md
# task:任务类型,translation表示翻译
# src_lang: 输入文本的语言,eng_Latn表示英文
# tgt_lang: 输出文本的语言,zho_Hans表示中文
# max_length: 输入文本最大长度;
translator = pipeline(
    task='translation',
    model=model,
    tokenizer=tokenizer,
    src_lang='eng_Latn',
    tgt_lang='zho_Hans',
    max_length=512
)

# 文本
text_en = "Heart disease is a serious threat to human health. "
text_zh = translator(text_en)
print(text_zh)

在这里插入图片描述

3.2 模型mbart-large-50-one-to-many-mmt

安装依赖

# 安装sentencepiece 
pip install sentencepiece -i https://pypi.tuna.tsinghua.edu.cn/simple

# 安装protobuf
pip install protobuf -i https://pypi.tuna.tsinghua.edu.cn/simple

源代码

from transformers import MBartForConditionalGeneration, MBart50TokenizerFast

# 加载模型
model = MBartForConditionalGeneration.from_pretrained(
    pretrained_model_name_or_path="D:/model/mbart-large-50-one-to-many-mmt"
)
tokenizer = MBart50TokenizerFast.from_pretrained(
    pretrained_model_name_or_path="D:/model/mbart-large-50-one-to-many-mmt",
    src_lang="en_XX"
)

# 序列化
text_en = "Heart disease is a serious threat to human health. "
model_inputs = tokenizer(text_en, return_tensors="pt")

# 将英语翻译成中文
generated_tokens = model.generate(
    **model_inputs,
    forced_bos_token_id=tokenizer.lang_code_to_id["zh_CN"]
)

text_zh = tokenizer.batch_decode(generated_tokens, skip_special_tokens=True)
print(text_zh)

结果
在这里插入图片描述

3.3 模型opus-mt-en-zh

源代码

from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
from transformers import pipeline

# 加载模型
model = AutoModelForSeq2SeqLM.from_pretrained("D:/model/opus-mt-en-zh")
tokenizer = AutoTokenizer.from_pretrained("D:/model/opus-mt-en-zh")

# 创建 pipeline
translator = pipeline(task="translation", model=model, tokenizer=tokenizer)

text_en = "Heart disease is a serious threat to human health. "
text_zh = translator(text_en)
print(text_zh)

结果
在这里插入图片描述

3.4 模型SeamlessM4T

由于SeamlessM4T模型太大,此处借助HuggingFace上的模型运行。
在这里插入图片描述

去年,谷歌发布了 Google Neural Machine Translation (GNMT),即谷歌神经机器翻译,一个 sequence-to-sequence (“seq2seq”) 的模型。现在,它已经用于谷歌翻译的产品系统。   虽然消费者感受到的提升并不十分明显,谷歌宣称,GNMT 对翻译质量带来了巨大飞跃。   但谷歌想做的显然不止于此。其在官方博客表示:“由于外部研究人员无法获取训练这些模型的框架,GNMT 的影响力受到了束缚。”   如何把该技术的影响力最大化?答案只有一个——开源。   因而,谷歌于昨晚发布了 tf-seq2seq —— 基于 TensorFlow 的 seq2seq 框架。谷歌表示,它使开发者试验 seq2seq 模型变得更方便,更容易达到一流的效果。另外,tf-seq2seq 的代码库很干净并且模块化,保留了全部的测试覆盖,并把所有功能写入文件。   该框架支持标准 seq2seq 模型的多种配置,比如编码器/解码器的深度、注意力机制(attention mechanism)、RNN 单元类型以及 beam size。这样的多功能性,能帮助研究人员找到最优的超参数,也使它超过了其他框架。详情请参考谷歌论文《Massive Exploration of Neural Machine Translation Architectures》。   上图所示,是一个从中文到英文的 seq2seq 翻译模型。每一个时间步骤,编码器接收一个汉字以及它的上一个状态(黑色箭头),然后生成输出矢量(蓝色箭头)。下一步,解码器一个词一个词地生成英语翻译。在每一个时间步骤,解码器接收上一个字词、上一个状态、所有编码器的加权输出和,以生成下一个英语词汇。雷锋网(公众号:雷锋网)提醒,在谷歌的执行中,他们使用 wordpieces 来处理生僻字词。   据雷锋网了解,除了机器翻译,tf-seq2seq 还能被应用到其他 sequence-to-sequence 任务上;即任何给定输入顺序、需要学习输出顺序的任务。这包括 machine summarization、图像抓取、语音识别、对话建模。谷歌自承,在设计该框架时可以说是十分地仔细,才能维持这个层次的广适性,并提供人性化的教程、预处理数据以及其他的机器翻译功能。   谷歌在博客表示: “我们希望,你会用 tf-seq2seq 来加速(或起步)你的深度学习研究。我们欢迎你对 GitHub 资源库的贡献。有一系列公开的问题需要你的帮助!”   GitHub 地址:https://github.com/google/seq2seq   GitHub 资源库:https://google.github.io/seq2seq/nmt/ 标签:tensorflow  seq2seq  谷歌  机器学习
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值