【课程总结】Day17(下):初始Seq2Seq模型

前言

"日月忽其不淹兮,春与秋其代序。"

技术更新的车轮在滚滚向前,曾经名噪一时的RNN模型,在新的技术革新下也渐渐落幕,本章我们将初步了解Seq2Seq模型,同时借助Demo代码,对Seq2Seq模型有一个直观了解。

Encoder-Decoder的回顾

回顾【课程总结】Day15(上):图像分割之语义分割,我们曾接触到U-Net模型,它是一种Encoder-Decoder模型。在此,我们重新回顾理解Encoder-Decoder模型。

  • Encoder-Decoder是一个通用的框架。
  • Encoder又称作编码器。它的作用就是:将现实问题转化为数学问题。
  • Decoder又称作解码器,它的作用是:求解数学问题,并转化为现实世界的解决方案。

只要符合上面的框架,都可以统称为Encoder-Decoder模型,其中sequence-to-sequence就是Encoder-Decoder的一种特例。

Encoder-Decoder的应用

图片 - 图片

应用:U-net系列算法的应用,如肝脏识别

音频 - 文本

应用:语音识别

图片 - 文本

应用:图像描述生成(看图说话)

论文地址:https://arxiv.org/pdf/1505.00487

文本 - 文本

应用:机器翻译,对话机器人,文章摘要,代码补全

其中,文本(RNN) - 文本(RNN)是NLP第一模型!

Seq2Seq模型

模型简介

序列到序列(seq2seq)模型是一种用于处理序列数据的架构,主要用于将一个输入序列转换为一个输出序列。它广泛应用于机器翻译、文本摘要、对话系统等任务。

模型结构

下图所示的是一个典型的机器翻译任务中,输入的文本序列(源语言表述)到输出的文本序列(目标语言表述)之间的变换。

进一步,显示编码器和解码器结构如下图:

进一步,展开编码器和解码器的步骤如下图:

进一步,结合之前所了解RNN知识,展开其结构如下图:

解释说明:

  • Seq - Encoder编码器

    • 作用:解析问句,将其编码为一个中间表达Vector
    • 本质:一个RNN(自动完成循环,一次性得到结果即可)
  • 中间表达

    • 作用:承上启下,既是上句处理的结果,又是下句生成的参考。
    • 本质:编码器RNN的最后一个时间步的隐藏状态 hn
  • Seq - Decoder解码器

    • 作用:把中间表达作为初始化状态,逐个生成下句
    • 本质:一个RNN(单步生成,自回归,即:一次生成一个词)

Seq2Seq的实践

接下来,我们通过运行示例代码,对Seq2Seq模型有一个直观了解。

拉取代码

shell 复制代码
git clone https://github.com/domonic18/seq2seq_demo.git

安装依赖包

shell 复制代码
pip install jieba
pip install OpenCC

训练

shell 复制代码
# 进入seq2seq_demo目录
python main.py

运行结果:

可以看到首次运行的时候,预测结果与真实结果相差甚远,可以说翻译的能力很差。

当训练到第6轮的时候,预测结果与真实结果已经非常接近。

验证翻译能力

输入:Am I wrong?

可以看到经过初步训练,模型可以翻译简单的英语句子。

输入:A word spoken is past recalling.

对比有道词典的翻译结果,其翻译能力还是不足的。原因是当前的demo中data训练集只有3万条数据,如果加大data.txt的训练集数据,模型的能力是可以进一步提升的。

内容小结

  • Encoder-Decoder是一种通用的架构,Encoder-Decoder模型有多种应用,其中文本-文本广泛应用于机器翻译、文本摘要,对话系统等任务,是NLP的第一模型。
  • Seq2Seq模型是Encoder-Decoder模型的一种特例。
  • Encoder编码器的作用是解析问句,将其编码为一个中间表达Vector,其本质是一个RNN。
  • 中间表达承上启下,既是上句处理的结果,又是下句生成的参考,其本质是编码器RNN的最后一个时间步的隐藏状态 hn
  • Decoder解码器的作用是把中间表达作为初始化状态,逐个生成下句,其本质是一个自回归的RNN。

参考资料

CNBlog:Seq2Seq原理详解
CSDN:自然语言处理从零到入门 Encoder-Decoder 与 Seq2Seq

相关推荐
学历真的很重要6 小时前
VsCode+Roo Code+Gemini 2.5 Pro+Gemini Balance AI辅助编程环境搭建(理论上通过多个Api Key负载均衡达到无限免费Gemini 2.5 Pro)
前端·人工智能·vscode·后端·语言模型·负载均衡·ai编程
普通网友6 小时前
微服务注册中心与负载均衡实战精要,微软 2025 年 8 月更新:对固态硬盘与电脑功能有哪些潜在的影响。
人工智能·ai智能体·技术问答
苍何6 小时前
一人手搓!AI 漫剧从0到1详细教程
人工智能
苍何6 小时前
Gemini 3 刚刷屏,蚂蚁灵光又整活:一句话生成「闪游戏」
人工智能
苍何7 小时前
越来越对 AI 做的 PPT 敬佩了!(附7大用法)
人工智能
苍何7 小时前
超全Nano Banana Pro 提示词案例库来啦,小白也能轻松上手
人工智能
阿杰学AI8 小时前
AI核心知识39——大语言模型之World Model(简洁且通俗易懂版)
人工智能·ai·语言模型·aigc·世界模型·world model·sara
智慧地球(AI·Earth)8 小时前
Vibe Coding:你被取代了吗?
人工智能
大、男人8 小时前
DeepAgent学习
人工智能·学习
测试人社区—66799 小时前
提升测试覆盖率的有效手段剖析
人工智能·学习·flutter·ui·自动化·测试覆盖率