transformer--使用transformer构建语言模型

什么是语言模型?

以一个符合语言规律的序列为输入,模型将利用序列间关系等特征,输出一个在所有词汇上的概率分布.这样的模型称为语言模型.

# 语言模型的训练语料一般来自于文章,对应的源文本和目标文本形如:
src1="Ican do",tgt1="can do it"
src2="can do it", tgt2="do it <eos>"

语言模型能解决哪些问题?

  1. 根据语言模型的定义,可以在它的基础上完成机器翻译,文本生成等任务,因为我们通过最后输出的概率分布来预测下一个词汇是什么.
  2. 语言模型可以判断输入的序列是否为一句完整的话,因为我们可以根据输出的概率分布查看最大概率是否落在句子结束符上,来判断完整性
  3. 语言模型本身的训练目标是预测下一个词,因为它的特征提取部分会抽象很多语言序列之间的关系,这些关系可能同样对其他语言类任务有效果.因此可以作为预训练模型进行迁移学习.

整个案例的实现可分为以下五个步骤

  1. 第一步: 导入必备的工具包
  2. 第二步:导入wikiText-2数据集并作基本处理。
  3. 第三步: 构建用于模型输入的批次化数据
  4. 第四步: 构建训练和评估函数
  5. 第五步: 进行训练和评估(包括验证以及测试) 

torchtext

torchtext 是一个用于文本处理的库,专为PyTorch设计。它提供了处理文本数据的多种工具,旨在简化自然语言处理(NLP)任务的数据预处理过程,并且可以与PyTorch无缝配合。以下是 torchtext 的一些主要功能:

  1. 数据加载torchtext 包含了许多预加载的数据集(如IMDb电影评论、语言建模数据集等),这使得加载和处理这些数据集变得简单。

  2. 文本预处理:库包含预处理功能,如分词、词干提取、停用词过滤。

  3. 构建词汇表:可以自动根据文本数据构建词汇表,并将单词转换为整数索引。

  4. 文本编码:提供了一种将单词转换为整数或向量表示(比如通过Word Embeddings)的机制。

  5. 批处理:提供了便捷的批处理功能,例如,可以将单词替换为对应的整数索引,并自动填充或截断使得批内的样本具有相同的长度,这对于训练循环非常有用。

  6. 迭代器torchtext 提供了几种迭代器(如BucketIterator)用于生成mini-batch,这些迭代器可以将长度相似的样本分到同一个批次中,以减少填充的数量,使训练更加高效。

  7. 集成学习词嵌入:可以轻松加载预训练的词向量,如GloVe或FastText,并将它们集成到模型中。

以下是一个使用torchtext的基本流程示例,包括加载数据集、构建词汇表和创建数据加载器迭代器:

import torchtext
from torchtext.datasets import IMDB
from torchtext.data import Field, LabelField, BucketIterator# 定义字段处理
TEXT = Field(tokenize="spacy", tokenizer_language="en_core_web_sm")
LABEL = LabelField(dtype=torch.float)# 加载IMDB电影评论数据集
train_data, test_data = IMDB.splits(TEXT, LABEL)# 构建词汇表
TEXT.build_vocab(train_data, max_size=25000, vectors="glove.6B.100d")
LABEL.build_vocab(train_data)# 创建批处理迭代器
train_iterator, test_iterator = BucketIterator.splits((train_data, test_data), batch_size=64, device=device) # 'device' can be 'cpu' or 'cuda'# 迭代数据
for batch in train_iterator:text, labels = batch.text, batch.label# 应用到模型训练...

主要有以下数据集:

Text Classification
AG_NEWS、AmazonReviewFull、AmazonReviewPolarity、CoLA、DBpedia、IMDb、MNLI、MRPC、QNLI、QQP、RTE、SogouNews、SST2、STSB、WNLI、YahooAnswers、YelpReviewFull、YelpReviewPolarityLanguage Modeling
PennTreebank、WikiText-2、WikiText103Machine Translation
IWSLT2016、IWSLT2017、Multi30kSequence Tagging
CoNLL2000Chunking、UDPOSQuestion Answer
SQuAD 1.0、SQuAD 2.0Unsupervised Learning
CC100、EnWik9

 wikiText-2数据集的体量中等,训练集共有600篇短文,共208万左右的词汇,33278个不重复词汇,OvV(有多少正常英文词汇不在该数据集中的占比)为2.6%,数据集中的短文都是维基百科中对一些概念的介绍和描述.

具体做法我就不写了,大家去这个网站看:这个网站,还有这个可能需要翻墙软件

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

抖音短视频素材哪里找,推荐五个好用的抖音素材网站

不知道你有没有想过一个问题&#xff0c;为什么别人都能找到那种高质量的视频素材&#xff0c;画质特别高清&#xff0c;甚至是4K的内容&#xff0c;而你需要视频素材却不知道去哪里找&#xff1f;网上有各种参差不齐的网站&#xff0c;变着法的想掏空你那本不富裕的腰包。今天…

消息队MQ

文章描述 &#xff1a;&#x1f60a; 作者&#xff1a;Lion J &#x1f496; 主页&#xff1a; https://blog.csdn.net/weixin_69252724 &#x1f389; 主题&#xff1a; 消息队列MQ_rabbitMQ搭建 ⏱️ 创作时间&#xff1a;2024年03月9日 ———————————————…

GIS之深度学习08:安装GPU环境下的pytorch

环境&#xff1a; cuda&#xff1a;12.1.1 cudnn&#xff1a;12.x pytorch&#xff1a;2.2.0 torchvision&#xff1a;0.17.0 Python&#xff1a;3.8 操作系统&#xff1a;win &#xff08;本文安装一半才发现pytorch与cuda未对应&#xff0c;重新安装了cuda后才开始的&a…

中探:事件循环相关内容(因为不仅仅是初步认识,但也不至于是深入探讨,所以命名为“中探”)

下面内容写于 2022 年&#xff0c;文本描述过多&#xff0c;可能不适合有经验的人看。新的文章在 个人网站 中。 对了&#xff0c;说到事件循环&#xff0c;怎么可以离开这个最知名的视频呢&#xff01;视频是英文的&#xff0c;但即使你听不懂&#xff0c;单纯看他的操作&…

微信小程序如何实现下拉刷新

1.首先在你需要实现下拉刷新页面的json文件中写入"enablePullDownRefresh": true。 2.在js文件的onPullDownRefresh() 事件中实现下拉刷新。 实现代码 onPullDownRefresh() {console.log(开始下拉刷新)wx.showNavigationBarLoading()//在标题栏中显示加载图标this.d…

【网络原理】使用Java基于UDP实现简单客户端与服务器通信

目录 &#x1f384;API介绍&#x1f338;DatagramSocket&#x1f338;DatagramPacket&#x1f338;InetSocketAddress &#x1f333;回显客户端与服务器&#x1f338;建立回显服务器&#x1f338;回显客户端 ⭕总结 我们用Java实现UDP数据报套接字编程&#xff0c;需要借用以下…

[LeetCode][102]二叉树的层序遍历——遍历结果中每一层明显区分

题目 102. 二叉树的层序遍历 给定二叉树的根节点 root&#xff0c;返回节点值的层序遍历结果。即逐层地&#xff0c;从左到右访问所有节点。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;[[3],[9,20],[15,7]] 示例 2&#xff1a; 输入…

MongoDB在Linux环境下的安装与配置

目录 1. 准备工作 2. 安装MongoDB 2.1 传输MongoDB安装包 2.2 解压安装包 2.3 创建MongoDB安装目录 2.4 创建数据目录和日志目录 3. 启动MongoDB服务 3.1 启动MongoDB 3.2 连接MongoDB 3.3 退出MongoDB 1. 准备工作 在安装MongoDB之前&#xff0c;请确保您已具备以下…

10、MongoDB -- MongoDB 的 MongoTemplate 的功能和用法介绍

目录 MongoTemplate 的功能和用法演示前提&#xff1a;登录单机模式的 mongodb 服务器命令登录【test】数据库的 mongodb 客户端命令登录【admin】数据库的 mongodb 客户端命令 为 MongoDB 提供的两个 Starterspring-boot-starter-data-mongodb&#xff08;为以同步方式操作 Mo…

2024年如何批量下载知乎回答和知乎文章导出pdf?

如何批量下载知乎回答和知乎文章导出pdf&#xff1f;用scraper浏览器扩展 2024 年开发的第一个脚本神器 下载的所有回答html内容&#xff0c;文件名为回答日期加标题。 接着批量将html转换pdf&#xff0c;效果如图&#xff1a; 再将所有pdf合成一个pdf文件&#xff1a; 每个回…

SQL盲注-实战布尔盲注

环境&#xff1a;win10 靶场&#xff1a;sqli-labs-master 本实验仅供学习参考&#xff01;&#xff01;&#xff01; 1 布尔盲注 盲注就是在 SQL 注入过程中&#xff0c; SQL 语句执行后&#xff0c;查询到的数据不能 回显到前端页面。此时&#xff0c;我们需要利用一些方…

如何进入Windows 11的安全模式?这里提供详细步骤

序言 如果你在启动Windows 11 PC时遇到问题,则重新启动到安全模式可能会有所帮助,该模式会暂时禁用驱动程序和功能,以使你的PC更稳定。下面是如何做到这一点。 在Windows 7和更早版本中,通常可以在打开电脑后按功能键(如F8)启动安全模式。Microsoft从Windows 8中删除了…