本模型基于邻域最小风险优化策略,backboe选用先进的trasformer-large模型,编码器和解码器深度分别为24和3,相关论文已发表于ACL 2022,并获得Outstadig Paper Award。 2023年02月: 新增batch推理功能 修复可能存在的词表越界问题,调整英<->西/法tokeizatio过程中对连接符'-'的预处理策略 2022年11月: 发布英中-base模型,支持推理和垂直领域微调,请使用1.0.1及以上版本。相比英中-big,本模型在新闻和口语两个场景上分别微降0.7和0.5BLEU,参数量降低70%,解码速度提升1.5倍。 相关模型推出去除optimizer相关参数的ckpt,文件更小,具体方法示例代码已经更新。 基于连续语义增强的神经机器翻译模型【论文链接】由编码器、解码器以及语义编码器三者构成。其中,语义编码器以大规模多语言预训练模型为基底,结合自适应对比学习,构建跨语言连续语义表征空间。此外,设计混合高斯循环采样策略,融合拒绝采样机制和马尔可夫链,提升采样效率的同时兼顾自然语言句子在离散空间中固有的分布特性。最后,结合邻域风险最小化策略优化翻译模型,能够有效提升数据的利用效率,显著改善模型的泛化能力和鲁棒性。模型结构如下图所示。 具体来说,我们将双语句子对两个点作为球心,两点之间的欧氏距离作为半径,构造邻接语义区域(即邻域),邻域内的任意一点均与双语句子对语义等价。为了达到这一点,我们引入切线式对比学习,通过线性插值方法构造困难负样例,其中负样本的游走范围介于随机负样本和切点之间。然后,基于混合高斯循环采样策略,从邻接语义分布中采样增强样本,通过对差值向量进行方向变换和尺度缩放,可以将采样目标退化为选择一系列的尺度向量。 本模型适用于具有一定数据规模(百万级以上)的所有翻译语向,同时能够与离散式数据增强方法(如back-traslatio)结合使用。 在ModelScope框架上,提供输入源文,即可通过简单的Pipelie调用来使用。 使用中英双语语料作为训练数据,准备两个文件:trai.zh和trai.e,其中每一行一一对应,例如: 训练数据预处理流程如下: 英文通过mosesdecoder进行Tokeizatio 中文通过jieba进行中文分词 修改Cofiguratio.jso相关训练配置,根据用户定制数据进行微调。参数介绍如下: 如果你觉得这个该模型对有所帮助,请考虑引用下面的相关的论文:基于连续语义增强的神经机器翻译模型介绍
温馨提示
News
模型描述
期望模型使用方式以及适用范围
如何使用
代码范例
# Eglish-to-Chiese
# 2023.02.16 NOTE:更新modelscope,pip istall modelscope --upgrade -i https://pypi.tua.tsighua.edu.c/simple
# 温馨提示: 使用pipelie推理及在线体验功能的时候,尽量输入单句文本,如果是多句长文本建议人工分句,否则可能出现漏译或未译等情况!!!
from modelscope.pipelies import pipelie
from modelscope.utils.costat import Tasks
iput_sequece = 'Elo Musk, co-fouder ad chief executive officer of Tesla Motors.'
pipelie_is = pipelie(task=Tasks.traslatio, model="damo/lp_csamt_traslatio_e2zh_base")
outputs = pipelie_is(iput=iput_sequece)
prit(outputs['traslatio']) # 'Elo Musk,特斯拉汽车公司联合创始人兼首席执行官。'
# batch推理
# 2023.02.16 NOTE:更新modelscope,pip istall modelscope --upgrade -i https://pypi.tua.tsighua.edu.c/simple
# 温馨提示: 使用pipelie推理及在线体验功能的时候,尽量输入单句文本,如果是多句长文本建议人工分句,否则可能出现漏译或未译等情况!!!
from modelscope.pipelies import pipelie
from modelscope.utils.costat import Tasks
batch_iput_sequeces = [
"Elo Musk, co-fouder ad chief executive officer of Tesla Motors.",
"Alibaba Group's missio is to let the world have o difficult busiess",
"What's the weather like today?"
]
iput_sequece = '<SENT_SPLIT>'.joi(batch_iput_sequeces) # 用特定的连接符<SENT_SPLIT>,将多个句子进行串联
pipelie_is = pipelie(task=Tasks.traslatio, model="damo/lp_csamt_traslatio_e2zh_base")
outputs = pipelie_is(iput=iput_sequece)
prit(outputs['traslatio'].split('<SENT_SPLIT>'))
模型局限性以及可能的偏差
训练数据介绍
模型训练流程
数据准备
#trai.zh
这只是一个例子。
今天天气怎么样?
...
# trai.e
This is just a example.
What's the weather like today?
...
预处理
perl tokeizer.perl -l e < trai.e > trai.e.tok
import jieba
fR = ope('trai.zh', 'r', ecodig='UTF-8')
fW = ope('trai.zh.tok', 'w', ecodig='UTF-8')
for set i fR:
set = fR.read()
set_list = jieba.cut(set)
fW.write(' '.joi(set_list))
fR.close()
fW.close()
subword-mt apply-bpe -c bpe.e < trai.e.tok > trai.e.tok.bpe
subword-mt apply-bpe -c bpe.zh < trai.zh.tok > trai.zh.tok.bpe
参数配置
"trai": {
"um_gpus": 0, # 指定GPU数量,0表示CPU运行
"warmup_steps": 4000, # 冷启动所需要的迭代步数,默认为4000
"update_cycle": 1, # 累积update_cycle个step的梯度进行一次参数更新,默认为1
"keep_checkpoit_max": 1, # 训练过程中保留的checkpoit数量
"cofidece": 0.9, # label smoothig权重
"optimizer": "adam",
"adam_beta1": 0.9,
"adam_beta2": 0.98,
"adam_epsilo": 1e-9,
"gradiet_clip_orm": 0.0,
"learig_rate_decay": "liear_warmup_rsqrt_decay", # 学习衰减策略,可选模式包括[oe, liear_warmup_rsqrt_decay, piecewise_costat]
"iitializer": "uiform_uit_scalig", # 参数初始化策略,可选模式包括[uiform, ormal, ormal_uit_scalig, uiform_uit_scalig]
"iitializer_scale": 0.1,
"learig_rate": 1.0, # 学习率的缩放系数,即根据step值确定学习率以后,再根据模型的大小对学习率进行缩放
"trai_batch_size_words": 1024, # 单训练batch所包含的toke数量
"scale_l1": 0.0,
"scale_l2": 0.0,
"trai_max_le": 100, # 默认情况下,限制训练数据的长度为100,用户可自行调整
"max_traiig_steps": 5, # 最大训练步数
"save_checkpoits_steps": 1000, # 间隔多少steps保存一次模型
"um_of_samples": 4, # 连续语义采样的样本数量
"eta": 0.6
},
"dataset": {
"trai_src": "trai.e", # 指定源语言数据文件
"trai_trg": "trai.zh", # 指定目标语言数据文件
"src_vocab": {
"file": "src_vocab.txt" # 指定源语言词典
},
"trg_vocab": {
"file": "trg_vocab.txt" # 指定目标语言词典
}
}
模型训练
# Eglish-to-Chiese
from modelscope.traiers.lp import CsamtTraslatioTraier
traier = CsamtTraslatioTraier(model="damo/lp_csamt_traslatio_e2zh_base")
traier.trai()
数据评估及结果
Backboe
#Params
WMT18-20 (NLTK_BLEU)
IWSLT 16-17 (NLTK_BLEU)
Remark
-
-
31.3
19.8
Google
24-6-1024
570M
29.8
19.8
ModelScope (big)
24-3-512
205M
29.1
19.3
ModelScope (base)
论文引用
@iproceedigs{wei-etal-2022-learig,
title = {Learig to Geeralize to More: Cotiuous Sematic Augmetatio for Neural Machie Traslatio},
author = {Xiagpeg Wei ad Heg Yu ad Yue Hu ad Rogxiag Weg ad Weihua Luo ad Rog Ji},
booktitle = {Proceedigs of the 60th Aual Meetig of the Associatio for Computatioal Liguistics, ACL 2022},
year = {2022},
}
点击空白处退出提示
评论