【ML】 如何训练transform model, 模型训练实现细节

news2024/11/24 9:11:00

【ML】 如何训练transform model, 模型训练实现细节

      • 1. transform 训练 原理
      • 2. transform 训练TIPS
        • 2.1 copy mechanism![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/69fb84a73d0240cc9042e17ae10bbef7.jpeg)
      • 2. bean search
      • 束搜索的工作原理:
      • 束搜索的特点:
      • 3. 计划抽样的背景:
        • 3.1.1 计划抽样的原理:
      • 实现步骤:

1. transform 训练 原理

训练 Transformer 模型通常涉及以下步骤和实现细节:

  1. 定义模型架构

    • 确定模型的大小,包括层数、头数、隐藏层维度等。
    • 设计编码器(Encoder)和解码器(Decoder)的层结构。
  2. 输入数据准备

    • 对于机器翻译等任务,准备成对的输入输出序列数据集。
    • 对输入文本进行分词、构建词汇表,并转换为数值化表示。
  3. 位置编码

    • 为模型添加位置编码,以便模型能够理解序列中单词的顺序。
  4. 构建自注意力和交叉注意力机制

    • 实现自注意力层,包括 Query、Key、Value 的计算和注意力权重的归一化。
    • 实现解码器中的遮蔽自注意力层,以保持解码顺序的正确性。
    • 实现编码器-解码器之间的交叉注意力层。
  5. 前馈网络

    • 为每个自注意力和交叉注意力层后面添加前馈网络,通常包含两个线性层和一个非线性激活函数。
  6. 残差连接和层归一化

    • 在每个子模块的输出上应用残差连接和层归一化。
  7. 输出层

    • 对于解码器的最终输出,使用线性层和 softmax 函数来预测下一个词的概率分布。
  8. 损失函数

    • 选择适当的损失函数,如交叉熵损失,用于训练模型。
  9. 优化器

    • 选择优化算法,如 Adam、SGD 等,来更新模型的参数。
  10. 训练循环

    • 使用训练数据集进行多轮迭代训练。
    • 在每个批次上执行前向传播,计算损失,执行反向传播,并更新模型参数。
  11. 验证和测试

    • 在验证集上评估模型性能,并根据需要进行超参数调整。
    • 使用测试集评估模型的最终性能。
  12. 正则化技术

    • 应用如 Dropout、权重衰减等正则化技术来防止过拟合。
  13. 学习率调度

    • 使用学习率衰减或学习率预热等策略来优化训练过程。
  14. 保存和加载模型

    • 在训练过程中保存模型的检查点,并在需要时加载模型进行进一步的训练或测试。
  15. 多GPU训练

    • 如果可用,使用多GPU来加速模型的训练。
  16. 使用预训练模型

    • 利用预训练的 Transformer 模型作为起点,进行迁移学习。
  17. 实现细节

    • 使用深度学习框架,如 TensorFlow 或 PyTorch,来实现 Transformer 模型。
    • 利用这些框架提供的自动微分和优化工具来简化训练过程。
  18. 调试和分析

    • 监控训练过程中的损失和性能指标,分析并解决可能出现的问题,如梯度消失或爆炸。
  19. 模型评估指标

    • 根据任务定义评估指标,如 BLEU 分数(机器翻译)、ROUGE 分数(文本摘要)等。

训练 Transformer 模型是一个复杂的过程,需要仔细设计和调整模型架构、训练过程和超参数。随着模型规模的增长,对计算资源的需求也会增加,因此可能需要使用分布式训练策略。此外,模型的微调和优化通常需要对特定任务和数据集有深入的理解。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

*

2. transform 训练TIPS

2.1 copy mechanism在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2. bean search

“Beam search”(束搜索)是一种在人工智能和机器学习领域,特别是在处理序列生成任务(如机器翻译、语音识别、文本摘要等)时常用的启发式图搜索算法。它是一种用于寻找最优序列的搜索策略,常用于深度学习模型的解码过程。

束搜索的工作原理:

  1. 初始化

    • 从初始状态开始,定义一个固定数量的候选解,这个数量被称为“束宽”(beam width)。
  2. 扩展

    • 在每一步中,对于每个候选解,生成所有可能的后继状态。这些后继状态可能是下一个词、短语或其他输出。
  3. 评分

    • 对每个生成的后继状态进行评分,评分通常基于概率模型,如语言模型、翻译模型等。
  4. 选择

    • 从所有生成的后继状态中选择概率最高的前 N(N 为束宽)个状态作为新的候选解集合。
  5. 终止

    • 当达到某个终止条件时结束搜索,例如生成了序列的结束符号或搜索达到最大步数。
  6. 输出

    • 从所有候选解中选择概率最高的序列作为最终输出。

束搜索的特点:

  • 效率与准确性的平衡:相比于贪心搜索,束搜索能够在一定程度上保证结果的准确性,同时相比于穷举搜索,它在计算上更加高效。
  • 启发式:束搜索使用概率作为启发式来指导搜索过程,从而减少搜索空间。
  • 灵活性:束宽是一个重要的超参数,可以根据具体任务和计算资源进行调整。
  • 适用性:束搜索适用于那些可以定义清晰评分函数的序列生成问题。

在深度学习中,尤其是在使用循环神经网络(RNN)、长短期记忆网络(LSTM)或 Transformer 模型进行序列生成时,束搜索常用于模型的解码阶段。例如,在机器翻译任务中,模型可能生成多个可能的翻译序列,束搜索可以帮助选择概率最高的序列作为最终输出。

束搜索是实现高效且效果良好的序列生成的关键技术之一,尽管它可能不会找到全局最优解,但在实践中往往能够获得满意的结果。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Scheduled Sampling(计划抽样)是一种在训练循环神经网络(RNN)和其变体(如LSTM、GRU)时使用的技术,特别是在处理序列生成任务时。这个方法由 Bengio 等人在 2015 年提出,目的是减少模型对教师强制(Teacher Forcing)的依赖,并提高模型在实际应用中的泛化能力。

3. 计划抽样的背景:

在传统的序列生成模型训练中,经常使用教师强制的方式,即在训练过程中,即使用真实的输出序列作为下一步的输入。这种方式虽然可以加快训练速度,但也会使模型过度依赖于正确的输入,从而在实际应用中可能导致泛化能力下降。

3.1.1 计划抽样的原理:
  1. 概率调度

    • 在训练过程中,模型以一定的概率 ( p ) 使用真实标签作为下一步的输入,以 ( 1 - p ) 的概率使用模型自身预测的输出作为下一步的输入。
  2. 逐渐减少教师强制

    • 随着训练的进行,逐渐减少使用真实标签的概率 ( p ),使得模型逐步习惯于使用自己的预测结果。
  3. 平衡训练和推理过程

    • 通过计划抽样,模型在训练时就能体验到与推理时相同的输入情况,这有助于模型更好地学习如何处理自身的预测错误。
  4. 避免过拟合

    • 减少对教师强制的依赖可以降低过拟合的风险,提高模型在新数据上的泛化能力。
  5. 灵活性

    • 计划抽样提供了一种灵活的方式来平衡训练速度和模型泛化能力之间的关系。

实现步骤:

  1. 初始化

    • 在训练开始时,设置一个较高的教师强制概率 ( p )。
  2. 训练迭代

    • 在每个训练批次中,根据概率 ( p ) 决定是使用真实标签还是模型的预测作为下一步的输入。
  3. 调整概率

    • 随着训练的进行,逐渐降低 ( p ) 的值,例如通过指数衰减或其他调度策略。
  4. 训练完成

    • 当训练完成或 ( p ) 降低到某个阈值以下时,停止计划抽样过程。

计划抽样是一种简单而有效的方法,可以提高循环神经网络在序列生成任务中的鲁棒性和泛化能力。它特别适用于那些对输入错误敏感的任务,如机器翻译、文本摘要、语音识别等。通过减少模型对完美输入的依赖,计划抽样有助于训练出更加健壮和实用的模型。

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1986530.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

部署DR模式集群

一、配置实验环境 每台主机的防火墙和SELinux都要关掉 systemctl stop firewalld setenforce 0 1、client(eth0为nat模式) 配置好网卡IP和网关IP,然后重启网卡 nmcli connection reload nmcli connection up eth0 [rootclient ~]# cat /etc/NetworkManager/syst…

500Kg载重履带式无人车技术详解

本款500Kg载重履带式无人车,专为复杂环境与多样化任务设计,具备卓越的机动性和承载能力。其基础参数如下: 最大载重量:500Kg,适用于运输装备、物资或执行特定作业任务。 整车重量:根据具体配置有所不同&am…

解决RDP远程计算机收到非预期的证书的问题

打开证书管理 查看远程桌面证书删除 然后搜索别的同名证书,如果在受信任的根证书里面,也删除。

差旅平台如何为企业降本30%?事前管控是关键

在多员工、业务跨地域的众多企业中,差旅成本常常成为一项巨大负担。为了有效解决这一问题,许多企业开始寻求可以显著降低企业差旅成本的差旅平台。本次,我们将集中拆解上市公司中智药业集团是如何通过差旅平台分贝通实现差旅成本减少30%效果的…

微信小程序教程011-3:京西购物商城实战之Home页实现

文章目录 3、首页3.0 创建home分支3.1 配置网络请求3.2 轮播图区域3.2.1 请求轮播图的数据3.2.2 渲染轮播图的UI结构3.2.3 配置小程序分包3.2.4 点击轮播图跳转到商品详情页3.2.5 封装 uni.$showMsg() 方法3.3 分类导航区域3.3.1 获取分类导航的数据3.3.2 渲染分类导航的UI结构…

通过Sui Gas Pool扩展赞助交易gas费

Mysten Labs正在向Sui开发者社区开源Sui Gas Pool功能。这项创新服务旨在大规模赞助Sui上交易的gas费,解决高并发需求应用的用户入驻问题。 Sui的原生功能赞助交易,允许交易使用与发送者地址不同的gas coin支付gas费。这一功能允许服务补贴用户的交易成…

如何评估并选择最佳的国内项目管理软件?

国内外主流的10款国内项目管理软件对比:PingCode、Worktile、Jira 、Basecamp、Trello、Asana 、Wrike、Tower 、禅道、Teambition 。 在选择适合自己企业的项目管理软件时,很多人会感到无从下手,担心无法找到既符合预算又能满足团队需求的解…

【优秀python案例】基于百度贴吧的数据采集与文本分析设计与实现

数据采集实现: 对百度贴吧帖子数据的采集。首先,使用requests库发送HTTP请求,通过设置请求头模拟浏览器访问,获取网页的HTML内容。然后,利用BeautifulSoup库对HTML内容进行解析,以便提取所需的信息。 在循…

AI回答:C#项目编译后生成部分文件的主要职责

【引入】以ConsoleApp1为例,请问C#编译之后以下文件有啥用 1.bin\runtimes 文件夹存放什么,有什么用? bin\runtimes 文件夹存放了项目的运行时相关文件,这些文件包括了各种目标平台的运行时库。 2.bin\生成的exe文件可以在别的电脑…

(这是让文心一言生成的文心一言指令博客)3分钟学会写文心一言指令:解锁AI创作新境界

3分钟学会写文心一言指令:解锁AI创作新境界 在这个AI技术日新月异的时代,文心一言作为领先的智能语言模型,正逐步改变着我们的创作与交流方式。无论是撰写文章、创作诗歌,还是进行日常对话,文心一言都能凭借其强大的语…

记忆化搜索——1

目录 1.斐波那契数 2.不同路径 3.最长递增子序列 4.猜数字大小2 5.矩阵中的最长递增路径 1.斐波那契数 该题规律很明显,就直接放记忆化搜索的版本了 class Solution { public:int dfs(int n){if(n0||n1)//递归出口{return n;}if(f[n-1]-1)//检查是否已经记忆过…

计算机网络中拥塞控制的门限值怎么设置

拥塞避免的门限值设置主要涉及到加权随机早期检测(‌WRED)‌技术,‌这是一种拥塞避免机制,‌通过为每个队列设定一对低门限和高门限值来实现。‌具体来说,‌当队列长度小于低门限时,‌不丢弃报文&#xff0…

64 lambda 表达式

lambda 表达式常用来声明匿名函数,即没有函数名字的临时使用的小函数,常用在临时需要一个类似于函数的功能但又不想定义函数的场合。 lambda 表达式只可以包含一个表达式,不允许包含其他复杂的语句,但在表达式中可以调用其他函数…

Flink实战(10)-checkpoint容错保证

0 前言 程序在 Flink 集群运行,某个算子因为某些原因出现故障,如何处理 在故障恢复后,如何保证数据状态,和故障发生之前的数据状态一致? 1 什么是 checkpoint(检查点)? Checkpoint 能生成快照(Snapshot)。 若 Flink 程序崩…

ResNet 网络中的残差单元

今晚看《深度学习推荐系统实战》这本书,读到这样一句话,残差单元中的两层 ReLU 网络其实拟合的是输出和输入之间的“残差” x o − x i x^o-x^i xo−xi ,想看看微信读书的 AI 问书新功能对这句话怎么理解,原以为会像其他大模型一…

H20 首发!上 Neolink.AI 免费尝鲜

AI 原生服务平台 Neolink.AI 正式上线!Neolink.AI 致力于整合关键要素——算力、数据、知识、模型与企业应用,旨在为 AI-Native 应用的构建提供高效能的 GPU 算力资源和全面的一站式数据与 AI 平台产品服务。 #高性能千卡集群免费尝鲜# 今天&#xff0…

[Vue3] 4 computed

前言 … 目标 1 computed的用法 computed的用法 computed 计算属性用法与vue2的类似 引入 import { reactive,computed } from vue使用 setup(){let person reactive({firstName:张,lastName:三})// 简单写法 - 只有读// person.fullName computed(()>{// return…

Windows11手动安装linux分发版

Manual installation steps for older versions of WSL | Microsoft LearnStep by step instructions to manually install WSL on older versions of Windows, rather than using the wsl install command.https://learn.microsoft.com/en-us/windows/wsl/install-manual下载完…

【算法 03】雇佣问题

“雇用问题”及其算法优化 在日常生活和工作中,我们经常会遇到需要从多个选项中做出选择的情况,而“雇用问题”正是这样一个典型的例子。在这个问题中,我们不仅要考虑如何高效地找到最佳候选人,还要关注整个过程中的成本。今天&a…

Tomcat漏洞

一、Tomcat 漏洞描述 当 Tomcat运行在Windows操作系统时,且启用了HTTPPUT请求方法(例如,将readonly初始化参数由默认值设置为false),攻击者将有可能可通过精心构造的攻击请求数据包向服务器上传包含任意代码的JSP 文件,JSP文件中…