赞
踩
Task1:首先我们先无脑跑通本次学习的第一个baseline
1.本次我们使用的是魔塔社区提供的GPU进行项目推进:
2.在Notebook中启用由魔塔提供的编译服务,我们运行Task1代码,随后将生成的txt文档上传到评分的NLP竞赛平台,最后会得到本次学习的第一个分数。
(可能到这里很多初学者都不明白这个过程,也不理解代码中的模型有何作用,甚至有些编程初学者还在处于代码疯狂报错的阶段,我作为初学者同样心存疑惑,所以让我们继续往下走。)
3.通过初步的代码运行,不难发现代码中存在多个模型,比如:Seq2Seq模型结构、中英文分词、循环神经网络(RNN)、门控循环单元(Gated Recurrent Unit,GRU)等。
在 task1的学习中不难发现,当前机器翻译任务的主流解决方案是基于神经网络进行建模,依据赛题背景中意思,也是希望我们能用神经网络解决此英文翻译中文的任务。
通常我们基于神经网络解决机器翻译任务的流程为:
1.配置环境:运行环境我们还是基于魔搭
平台进行模型训练,这里不再重复说明。另外,有几个包需要额外安装:
安装命令如下:
!pip install torchtext
!pip install jieba
!pip install sacrebleu
这里,我们需要安装 spacy 用于英文的 tokenizer(分词,就是将句子、段落、文章这种长文本,分解为以字词为单位的数据结构,方便后续的处理分析工作),不同环境的安装请参考:https://spacy.io/usage,如果使用魔搭平台,可按照下图中的配置进行安装:
然后我们从该路径下:https://github.com/explosion/spacy-models/releases 安装对应版本的 en_core_web_trf 语言包,这里需要注意,安装包的版本与自身终端的版本要适配,避免不必要的报错。下图中我的版本为3.7.5,所以我下载的安装包就需要兼容概括这个spacy的版本。
下载完成后,我们将下载到本地的压缩包上传到你的魔搭平台上的 dataset 目录下,然后使用 !pip install ../dataset/en_core_web_trf
安装英文语言包。
2.数据预处理:机器翻译任务的预处理是确保模型能够有效学习源语言到目标语言映射的关键步骤。预处理阶段通常包括多个步骤,旨在清理、标准化和转换数据,使之适合模型训练。
3.训练模型和验证:说到神经机器翻译就不得不提编码器-解码器模型,或编码器-解码器框架(EncoderDecoder Paradigm)。本质上,编码器解码器模型是描述输入输出之间关系的一种方式。编码器解码器这个概念在日常生活中并不少见。我们以 基于循环神经网络的机器翻译模型为例,说明其整体结构。其中,左侧为编码器部分,源语言单词按照其在文本序列中的先后顺序被依次送入到循环神经网络(RNN)当中。
而引入注意力机制的循环机器翻译架构与基于简单循环网络的机器翻译模型大体结构相似,均采用循环神经网络作为编码器与解码器的实现。关键的不同点在于注意力机制的引入使得不再需要把原始文本中的所有必要信息压缩到一个向量当中。
PS: baseline 代码中实现了一个经典的序列到序列(Seq2Seq)模型,中间层使用的GRU网络,并且网络中加入了注意力机制(Attention Mechanism)。
4.使用模型实现翻译功能:人们在使用机器翻译系统时需要评估系统输出结果的质量。这个过程也被称作机器翻译译文质量评价,简称为译文质量评价(Quality Evaluation of Translation)。在机器翻译的发展进程中,译文质量评价有着非常重要的作用。不论在系统研发的反复迭代中,还是在诸多的机器翻译应用场景中,都存在大量的译文质量评价环节。从某种意义上说,没有译文质量评价,机器翻译也不会发展成今天的样子。比如,本世纪初研究人员提出了译文质量自动评价方法 BLEU(Bilingual Evaluation Understudy)。该方法使得机器翻译系统的评价变得自动、快速、便捷,而且评价过程可以重复。正是由于 BLEU 等自动评价方法的提出,机器翻译研究人员可以在更短的时间内得到译文质量的评价结果,加速系统研发的进程。
5.提交结果(end):英译中 翻译结果如下:
本次文章的代码如下:
Docshttps://datawhaler.feishu.cn/wiki/PztLwkofsi95oak2Iercw9hkn2g#HJ6udWs5yolx45xVzT2c1nIPn4g
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。