首页 > 其他分享 >基于seq2seq模型实现英译法

基于seq2seq模型实现英译法

时间:2023-12-26 22:33:26浏览次数:31  
标签:编码器 译法 模型 torch seq2seq 机器翻译 解码器 import

一、 选题背景

机器翻译的发展主要分为三个阶段:基于规则的机器翻译;基于统计的机器翻译;基于人工神经网络的机器翻译。

现在神经机器翻译的主流模型是编码器-解码器模型结构。该模型由编码器与解码器两部分组成,编码器是一个循环神经网络(RNN),输入是一个词语的序列,每次向RNN单元输入一个词语的嵌入表示向量,并根据输入更新循环神经网络中的隐状态向量。输入完成后得到一个最终的定长的状态向量。理论上最后的这个状态向量包换了前面按序列输入的所有语意信息。解码器是一个生成模型,同样通过RNN单元,将状态向量中的信息一步步还原出来,直到输出特殊标记<EOS>时结束输出。在编码器-解码器模型结构的基础上,提出了seq2seq模型结构,该模型适长短关系不确定的场景,例如机器翻译或问答系统。

本实验内容是基于seq2seq模型的英法翻译。在现有seq2seq模型基础上,在解码器端加入注意力机制。在解码器端的注意力机制能够根据模型目标有效的聚焦编码器的输出结果,当其作为解码器的输入时提升效果,改善以往编码器输出是单一定长张量,无法存储过多信息的情况。

二、 开发环境

本实验在Windows 10操作系统上进行,使用python版本为3.6.13,pytorch版本为1.3.1,模型在CPU 11th Gen Intel(R) Core(TM) i7-11370H @ 3.30GHz上训练和评估。导入的工具包有:

# 从io工具包导入open方法 

from io import open

# 用于字符规范化

import unicodedata

# 用于正则表达式

import re

# 用于随机生成数据

import random
# 用于构建网络结构和函数的torch工具包

import torch import torch.nn as nn import torch.nn.functional as F

# torch中预定义的优化方法工具包

from torch import optim

三、 数据处理

1. 翻译数据集

本实验使用的是来自pytorch官网的翻译数据集,数据集eng-fra.txt格式如

image.png

2. 数据特点

数据中左边是英文,中间使用\t做为分隔,右边是对应的法文。

3. 数据处理

将给定的持久化文件中数据进行处理,以满足模型训练要求。将指定语言中的词汇映射成数值。生成词汇对应自然数值的字典和自然数值对应词汇的字典,其中0,1对应的SOS(开始标志)和EOS(结束标志)。

标签:编码器,译法,模型,torch,seq2seq,机器翻译,解码器,import
From: https://blog.51cto.com/u_15473389/8988322

相关文章

  • 基于seq2seq模型实现英译法02
    一、 模型设计模型的构建需要依次实现其嵌入层(embedding)、编码器(encoder)、解码器(decoder)等部分。下面以python3.6+pytorch1.3.1为例,给出了各部分的核心代码。代码4-1基于GRU的编码器classEncoderRNN(nn.Module):def__init__(self,input_size,hidden_size):super(EncoderR......
  • 混合专家模型 (MoE) 详解
    随着Mixtral8x7B(announcement,modelcard)的推出,一种称为混合专家模型(MixedExpertModels,简称MoEs)的Transformer模型在开源人工智能社区引起了广泛关注。在本篇博文中,我们将深入探讨MoEs的核心组件、训练方法,以及在推理过程中需要考量的各种因素。让我们开始吧!......
  • 机器学习-无监督机器学习-高斯混合模型-22
    目录1.2.GMM算法的一般流程3.使用模型1.假设不同的簇数据来自于不同的高斯分布。或者换句话说,高斯混合模型就是当成数据集是由多个高斯分布混合而成的。这是这个模型的核心思想.一维的gauss分布:多变量(比如d个变量)高斯分布的概率密度函数:μ是一个n维向量,对应着分布的均......
  • 探索星辰大海:成为AIGC大模型领域的精英 - 近屿智能OJAC深度训练营招募中!
    朋友,面对AIGC这股新的AIGC技术革命浪潮,您还在旁观吗? 近屿智能OJAC第六期AIGC星辰大海:大模型工程师和产品专家线上训练营,正在寻找像您这样有梦想、有热情的学员!OJAC的AIGC星辰大海第六期训练营,一个为您量身打造的AI大模型学习之旅,已经开启!成百上千的学员已经通过我们的课程实现了职......
  • MoveNet:超快且准确的姿态检测模型
    转载:https://zhuanlan.zhihu.com/p/569457464官方说明:https://www.tensorflow.org/hub/tutorials/movenet?hl=zh-cnncnn:https://github.com/FeiGeChuanShu/ncnn_Android_MoveNetgithub:https://github.com/tensorflow/docs-l10n/blob/master/site/zh-cn/hub/tutorials/movene......
  • 昇腾AI和智子引擎的产业应用指南:让大模型下沉到生产一线
    杰弗里·摩尔在《跨越鸿沟》中提出过一个著名的观点:“高科技产品面世过程中,最危险、最关键的一点,就是由少数有远见者所主宰的早期市场,向实用主义者占支配地位的主流市场过渡。”过去一年多时间里,这个说法精准预测了大模型市场的走向:上半年的注意力还集中在大模型的参数数量、效果优......
  • 多模态大模型的体验
    主要是出图,结合实际做3个例子:1、形容天气非常寒冷的风景图片(画一幅未来极度寒冷下城市的场景)2、妈妈过生日的庆祝图片(画一幅妈妈过生日的庆祝图片,水墨画风格)3、包含GreenOpen字样的富含科技感的图片未来不可限量,对于当前来说是提出准确的需求。关注提高用户体验:......
  • 大语言模型生成模型的源码结构复习
    modeling_gpt2.py:1099iflabelsisnotNone:#movelabelstocorrectdevicetoenablemodelparallelismlabels=labels.to(lm_logits.device)#Shiftsothattokens<npredictnshift_logits=lm......
  • 7. Java 内存模型
    Java内存模型Java内存模型(JavaMemoryModel)的主要目的是定义程序中各种变量的访问规则,即关注在虚拟机中把变量值存储到内存和从内存中取出变量值这样的底层细节1.主内存与工作内存Java内存模型规定了所有的变量都存储在主内存(MainMemory)中(虚拟机内存的一部分)。每条线程......
  • Runway官宣下场通用世界模型!解决视频AI最大难题,竟靠AI模拟世界?
    前言 Runway突然发布公告,宣称要开发通用世界模型,解决AI视频最大难题,未来要用AI模拟世界。本文转载自新智元仅用于学术分享,若侵权请联系删除欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。CV各大方向专栏与各个部署框架最全......