使用transformers生成文本Generating text with transformers

news2024/11/25 11:09:51

到目前为止,您已经看到了Transformers架构内部的一些主要组件的高级概述。但您还没有看到从头到尾的整体预测过程是如何工作的。让我们通过一个简单的例子来了解。在这个例子中,您将查看一个翻译任务或一个序列到序列的任务,这恰好是Transformers架构设计者的原始目标。
在这里插入图片描述

您将使用一个Transformers模型将法语短语[J’aime l’apprentissage automatique]翻译成英语。

首先,您将使用与训练网络相同的标记器对输入词进行标记。
在这里插入图片描述

这些令牌然后被添加到网络编码器端的输入中,
在这里插入图片描述

通过嵌入层,然后输入到多头注意力层中。
在这里插入图片描述

多头注意力层的输出通过前馈网络传递到编码器的输出。
在这里插入图片描述

此时,离开编码器的数据是输入序列的结构和含义的深度表示。这种表示被插入到解码器的中间,以影响解码器的自注意力机制。
在这里插入图片描述

接下来,一个序列开始的令牌被添加到解码器的输入中。
在这里插入图片描述

这触发了解码器预测下一个令牌,它是基于从编码器提供的上下文理解来做的。
在这里插入图片描述

解码器的自注意力层的输出通过解码器的前馈网络和一个最终的softmax输出层。
在这里插入图片描述

此时,我们有了我们的第一个令牌。
在这里插入图片描述

您将继续这个循环,将输出令牌传回输入以触发下一个令牌的生成,
在这里插入图片描述

直到模型预测一个序列结束令牌。
在这里插入图片描述

此时,最终的令牌序列可以被反标记为单词,您就有了您的输出。在这种情况下,I love machine learning 我爱机器学习。
在这里插入图片描述

有多种方式可以使用softmax层的输出来预测下一个令牌。这些可以影响您生成的文本的创造性。您将在本周晚些时候更详细地了解这些。

让我们总结一下您到目前为止看到的内容。完整的Transformers架构由编码器和解码器组件组成。编码器将输入序列编码为输入的结构和含义的深度表示。解码器从输入令牌触发器开始工作,使用编码器的上下文理解来生成新的令牌。它在达到某个停止条件之前一直这样做。
在这里插入图片描述

虽然您在这里探索的翻译示例使用了Transformers的编码器和解码器部分,但您可以为架构的变体分开这些组件。

仅编码器模型也可以作为序列到序列模型工作,但在没有进一步修改的情况下,输入序列和输出序列或相同长度。这些日子里,它们的使用不太常见,但通过向架构中添加额外的层,您可以训练仅编码器模型来执行分类任务,如情感分析,BERT是一个仅编码器模型的例子。
在这里插入图片描述

编码器-解码器模型,如您所见,表现良好,适用于序列到序列任务,例如翻译,其中输入序列和输出序列可以是不同的长度。您还可以扩展并训练这种类型的模型来执行一般的文本生成任务。编码器-解码器模型的例子包括BART(与BERT相对)和T5,这是您在本课程中的实验室中将使用的模型。
在这里插入图片描述

最后,仅解码器模型是当今最常使用的。再次,随着它们的扩展,它们的能力也增长了。这些模型现在可以推广到大多数任务。流行的仅解码器模型包括GPT模型家族,BLOOM,Jurassic,LLaMA等等。您将在本周晚些时候了解更多关于Transformers的不同种类以及它们是如何被训练的。这是相当多的。
在这里插入图片描述

这个Transformers模型的概述的主要目标是为您提供足够的背景,以了解世界上使用的各种模型之间的差异,并能够阅读模型文档。

我想强调,您不需要担心记住您在这里看到的所有细节,因为您可以根据需要多次回到这个解释。

请记住,您将通过自然语言与Transformers模型互动,使用书面单词而不是代码创建提示。

您不需要了解底层架构的所有细节来做到这一点。这被称为提示工程,这是您将在本课程的下一部分中探索的。让我们继续下一个视频,了解更多。

参考

https://www.coursera.org/learn/generative-ai-with-llms/lecture/R0xbD/generating-text-with-transformers

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

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

相关文章

破解难题:如何应对项目中的‘老油条’障碍

引言 在项目管理的实践中,我们经常遇到各种各样的人员挑战。其中,有一种特殊的挑战被称为“老油条”现象。这些“老油条”通常在表面上表现得非常配合,但在实际工作中却常常没有任何进展。这种情况不仅会影响项目的进度,还可能对…

机器学习---常见的距离公式(欧氏距离、曼哈顿距离、标准化欧式距离、余弦距离、杰卡德距离、马氏距离、切比雪夫距离、闵可夫斯基距离、K-L散度)

1. 欧氏距离 欧几里得度量(euclidean metric)(也称欧氏距离)是一个通常采用的距离定义,指在m维空 间中两个点之间的真实距离,或者向量的自然长度(即该点到原点的距离)。在二维和三维…

Spring(16) Aware结尾的类整理

目录 一、什么是 Aware 结尾的类?二、常见的 Aware 实现接口三、Aware 实现原理 一、什么是 Aware 结尾的类? 在 Spring Boot 中,以 Aware 结尾的类通常是一些继承了 Aware 接口的接口类,它们用于使 Bean 获取某些特定的能力或资…

AJAX的POST请求在chrome浏览器报net::ERR_CONNECTION_RESET问题

背景说明 公司对前端的所有的AJAX请求做了统一的封装,因此业务上需要发起请求调用后端服务时,使用的都是公司封装好的工具。 由于ERR_CONNECTION_RESET问题比较粗,也就是说可能会有很多原因会导致浏览器报这个错,因此在网上可以…

clion软件ide的安装和环境配置@ubuntu

1.官网: Download CLion 2.安装Clion 直接在官网下载并安装即可,过程很简单 https://www.jetbrains.com/clion/ https://www.jetbrains.com/clion/download/#sectionlinux 3.激活码 4.配置Clion 安装gcc、g、make Ubuntu中用到的编译工具是gcc©…

Java面向对象——多态、Object类、instanceof关键字以及final关键字

多态的概念 1.多态是指同一个方法调用可以在不同的对象上有不同的表现,即同一种方法调用方式适用于不同的数据类型。 编译时和运行时:编译时期调用的是父类中的方法,但运行时期会根据实际的对象类型来调用适当的方法。这种行为称为动态绑定&…

自注意力机制简介Transformers: Attention is all you need

“Attention is All You Need” 是一篇由Google研究人员在2017年发表的研究论文,该论文介绍了Transformer模型,这是一种革命性的架构,它彻底改变了自然语言处理(NLP)领域,并成为我们现在所知道的LLMs的基础…

剪枝基础与实战(1): 概述

本文介绍基于L1正则化的剪枝原理,并以VGG网络进行实战说明。将从零详细介绍模型训练、稀疏化、剪枝、finetune的全过程,提供详细的源码及说明,有助于对剪枝的熟练掌握,后续也会对yolov8进行剪枝的介绍。 论文: Learning Efficient Convolutional Networks through Network …

学习笔记|基于Delay实现的LED闪烁|模块化编程|SOS求救灯光|STC32G单片机视频开发教程(冲哥)|第六集(下):实现LED闪烁

文章目录 2 函数的使用1.函数定义(需要带类型)2.函数声明(需要带类型)3.函数调用 3 新建文件,使用模块化编程新建xxx.c和xxx.h文件xxx.h格式:调用头文件验证代码调用:完整的文件结构如下&#x…

PyTorch学习笔记(十七)——完整的模型验证(测试,demo)套路

完整代码: import torch import torchvision from PIL import Image from torch import nnimage_path "../imgs/dog.png" image Image.open(image_path) print(image)# 因为png格式是四个通道,除了RGB三通道外,还有一个透明度通…

利用“病毒制造机”实现脚本病毒的制造

一、脚本病毒的概念: 脚本病毒通常是 JavaScript 或 VBScript 等语言编写的恶意代码,一般广告性质,会修改 IE 首页、修改注册表等信息,对用户计算机造成破坏。 通过网页进行的传播的病毒较为典型,脚本病毒还会有如下前…

【LeetCode-中等题】128. 最长连续序列

题目 题解一:HeshSet枚举 思路:先对数组进行set去重,核心就是,先找出临界值(假设以最小临界为例,那么这个临界值自己就是最小值,),以临界值不断做加1操作,看…

Kotlin 使用 View Binding

解决的问题: 《第一行代码——Android》第三版 郭霖 P277 视图绑定的问题 描述: kotlin-android-extensions 插件已经弃用 butter knife 已经弃用 解决办法 推荐使用 View Binding 来代替 findViewById 使用方法 1、配置 build.gradle 2、在act…

【MySQL系列】SQL语句入门(创建删除操作)、字符集和数据类型详解

💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃个人主页 :阿然成长日记 …

Docker安装并配置镜像加速器,镜像、容器的基本操作

目录 1.安装docker服务,配置镜像加速器 (1)安装依赖的软件包 (2)设置yum源,我配置的阿里仓库 (3)选择一个版本安装 (4)启动docker服务,并设置…

WaSender 3.0 全功能版--Crack

WaSender – Is Windows software which runs on PC, a solution to automatically send messages to your bulk customers and Groups.​ Features:- Unlimited WhatsApp Messages to Contact / Numbers Send messages to all contacts including contacts not saved in your…

C#面向对象程序设计之变量的作用域,深入浅出 入门和进阶教程3

1、效果镇楼: 最近忒忙了!真的忙到不可开交的呢,繁杂业务的处理真的不是您,我个人想象的样子,完全比您个人想象的要复杂至少三倍以上的难度!也是客观事实。 菜鸟程序员面临的客观残酷现实!尤其您这个年龄阶段,实在是堪忧,尴尬的很啊,非常严峻的形势,也可以说特别严峻…

docker导出、导入镜像

导出镜像到本地,然后可以通过压缩包的方式传输。 导出:docker image save 镜像名:版本号 > /home/quxiao/javatest.tgz 导入:docker image load -i /home/quxiao/javatest.tgz 删除镜像就得先删除容器,当你每运行一次镜像&…

Hadabot:从网络浏览器操作 ROS2 远程控制器

一、说明 Hadabot Hadabot是一个学习ROS2和机器人技术的机器人套件。使用 Hadabot,您将能够以最小的挫败感和恐吓来构建和编程物理 ROS2 机器人。Hadabot套件目前正在开发中。它将仅针对ROS2功能,并强调基于Web的用户界面。 随着开发的进展&a…

classloader的讲解

我们先从Activity的启动流程开始切入: //位于android/app/ActivityThread.java中 private Activity performLaunchActivity(ActivityClientRecord r, Intent customIntent) {// ........省略代码//通过反射创建activityjava.lang.ClassLoader cl appContext.getCl…