斯坦福NLP课程来了

生成式AI,尤其是以ChatGPT为首的大语言模型正在改变人们的生活方式,我想一定有小伙伴想加入NLP这个行列。

微软重磅发布4个适合初学者的机器学习资料

我在前一篇文章中分享了微软人工智能初学者课程,其中的【生成式AI】非常适合初学者,今天我将分享NLP的进阶课程。

https://web.stanford.edu/class/cs224n/
关注v公众号:人工智能大讲堂,后台回复snlp获取全部资料。

资料分为三种:课堂讲义,课后笔记,相关论文。

第一周课程:

第一讲:词嵌入

计算机只能处理数字,在将文本输入到模型之前,需要将其数字化,而词嵌入就是一种将文本数字化的方法。

在讲词嵌入之前,有必要先讲一下Tokenizer,Tokenizer是将文本分割成Token,常见的Token有字符,单词,或者子词(sub word)。

在这里插入图片描述

Tokenizer后,就可以将Token转换成数字了。

最简单的方式是直接使用字符编码(ASCII,Unicode),但这种方式无法保留单词的语义信息,且不同编码方式之间无法进行转换。

另一种方法是,因为常用的字符和词的个数是有限的,可以构造字典或者词典,然后将字符或者单词替换成在字典或者词典中的位置,或者是one-hot编码。但这种方式仍然无法保留语义信息。

什么是语义信息?可以这么理解,“男人”和“皇帝”语义相近,所以在向量空间中距离应该接近,也就是向量余弦相似度大。

在这里插入图片描述

上面这三种方法是一种硬编码方法,而词嵌入是一种软编码方法。

因为单词与字符相比具有更丰富的语义信息,所以NLP中通常将文本分割成词或者子词(sub word)。

Tokenizer后就可以进行词嵌入了,将词转换成具有语义信息向量的方法就是词嵌入方法,word2vec就是其中一种。其主要思想是通过神经网络模型对大规模语料进行训练,训练完成后得到词向量矩阵。

在这里插入图片描述

在这里插入图片描述

例如,如果一个词表有4096个单词,每个单词用512维向量表示,那么word2vec训练完成后就得到一个4096*512大小的矩阵,或者将矩阵构造成查找表,通过Tokenizer后的one-hot编码与词向量矩阵相乘或者根据位置索引查表就能得到词嵌入向量了。

第二讲:语言模型

将文本数字化后,接下来讲语言模型,语言模型(Language Model)是自然语言处理中的一个核心问题,是用来计算一个序列词语或字符出现的概率的模型。它也是后续GPT,Bert等大语言模型的理论基础。

在这里插入图片描述

在这里插入图片描述

常用的语言模型主要有以下几类:

n-gram语言模型

基于n-gram统计的传统语言模型,通过统计语料中序列出现的次数来估计概率。

如果n=2,也就是计算一个词跟在另一个词后面出现的概率。比如对句子“我爱北京天安门”,可以计算概率:

P(天安门|北京) = C(北京天安门)/C(北京)

这里:

  • C(北京天安门) 是“北京天安门”这个2-gram的出现次数

  • C(北京) 是“北京”这个1-gram的出现次数

n太小会导致语言模型太弱,n太大会导致概率无法估计。

深度学习模型

所以,更常用的方式是通过神经网络去构建语言模型,通过词向量和神经网络映射,获得词语的分布式表示。如RNN、LSTM、GRU,Transformer等语言模型。学习能力强,但是需要大量数据和计算资源。

其中,transformer模型效果最好。

第二周课程:

第一讲:神经网络和反向传播

既然已经明确了用神经网络去构建语言模型,那么有必要了解NLP中常用的模型架构以及如何训练模型。

NLP处理的是时序数据,擅长处理时序数据的是循环神经网络,按照NLP的发展历程来看,其模型经历了RNN->LSTM->GRU->Transformer的迭代。

在这里插入图片描述

Transformer已经成为主流模型,除了其自身的注意力机制外,还有一个优点,在CV中,当模型越来越大后,虽然可以通过残差连接加快模型收敛,但模型的效果提升有限,而Transformer在数据量和计算资源充足的情况下,模型越大效果越好,这也是为什么大公司都在搞军备竞赛一样,动不动就搞出个1000多亿个参数的模型。

但循环神经网络的训练过程也要比CV更复杂,RNN训练过程就容易出现梯度消失和爆炸问题。

在这里插入图片描述

虽然训练复杂,但本质上也是基于链式法则的反向传播过程对参数进行更新。

在这里插入图片描述

第三周课程:

第一讲:RNN和语言模型

第三周主要讲解具体的模型,第一个是RNN,因为RNN是NLP的鼻祖。

在这里插入图片描述

同CV中的模型一样,RNN也有输入层,隐藏层,和输出层,不同的是,它有时间的概念,不同时间步参数是共享的。

如果是类似机器翻译的任务,也就是seq in,seq out,那么每一个输入后,都会有一个输出。

如果是类似情感分析的人类任务,则使用最后一个时间步的隐藏状态,因为它考虑了前面所有时间的隐藏状态。

在这里插入图片描述

在这里插入图片描述

第二讲:Seq2Seq模型

对于seq in,seq out的任务,如果使用RNN模型,也就是每一个输入后都有一个输出,那么输出只会考虑当前时间点以前的输入和隐藏状态,并没有捕获整个输入的信息。

为了捕获整个输入的信息,就有了Seq2Seq模型,本质上是一个编码器和解码器模型,编码器对输入进行编码,保存到隐藏状态中,然后在解码器中使用编码器中的隐藏状态。

在这里插入图片描述

第四周课程:

第一讲:Tranformer

Tranformer太重要了,所以整个一周都在讲Tranformer。

Tranformer也是一种编码器-解码器结构,编码器和解码器中都通过多头注意力机制捕获不同位置单词的关系。

在这里插入图片描述

GPT就是一种transformer Decoder模型,Bert则是transformer Encoder模型,本质上都可以看作是概率模型。

在这里插入图片描述

第五周课程:

第一讲:预训练模型

大模型可以分为基础模型或者通用模型,以及在基础模型上进行微调而来的专用模型。

在这里插入图片描述

基础模型也被成为预训练模型,是在大量预料库中进行无监督训练而来的。

以Bert为例,如果直接使用Bert的预训练模型,因为Bert是一种Encoder模型,只能完形填空。

如果要使用Bert进行聊天怎么办?这就需要在预训练模型基础上进行有监督的微调,例如,使用成对的问答预料,加上人类反馈的强化学习。

在这里插入图片描述

我们目前所使用的ChatGPT也是在GPT 3.5-turbo预训练模型的基础上微调而来的。

第六周课程:

第一讲:提示微调

前面我们提到了需要在预训练模型的基础上进行微调才能得到能够聊天,问答,总结的专用模型,那有哪几种微调方法呢?

在这里插入图片描述

一种是全量微调,也就是用有监督的方式,在训练数据上对模型的全部参数进行调整,如果要想得到效果好的模型,就需要大量的有监督数据和计算资源。

另一种是只调整部分参数,例如LoRA,通过训练两个低秩矩阵来模拟参数的更新,而两个低秩矩阵的参数远小于原始参数的量。

在这里插入图片描述

最后一种是原始模型的参数冻结,在提示词上下功夫,通过学习在提示词前面加上一个前缀,或者将提示词映射成模型更能理解的提示词。这样做的好处是如果要训练多个专用模型,内存中只需要存储一个原始模型即可。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java 环境其他下载2

1 Eclipse Temurin Latest Releases | Adoptium Eclipse Temurin 是由基于 OpenJDK 的开源 Java SE 产生的构建版本。Temurin 适用于 广泛的平台 以及诸多 Java SE 版本。以下列出了推荐用于生产的最新版本,并且定期由 Adoptium 社区发布更新和支持。迁移帮助、容器…

kettle spoon连接MySQL8.0数据库报错解决方法

kettle 连接 mysql 8.0报错,显示无法连接到数据库服务 错误连接数据库 [11] : org.pentaho.di.core.exception.KettleDatabaseException: Error occurred while trying to connect to the databaseError connecting to database: (using class org.gjt.mm.mysql.D…

​​【项目实战】犬只牵绳智能识别:源码详细解读与部署步骤

1.识别效果展示 2.视频演示 [YOLOv7]基于YOLOv7的犬只牵绳检测系统(源码&部署教程)_哔哩哔哩_bilibili 3.YOLOv7算法简介 YOLOv7 在 5 FPS 到 160 FPS 范围内,速度和精度都超过了所有已知的目标检测器 并在 V100 上,30 FPS 的情况下达到实…

不是说人工智能是风口吗,那为什么工作还那么难找?

最近确实有很多媒体、机构渲染人工智能可以拿高薪,这在行业内也是事实,但前提是你有足够的竞争力,真的懂人工智能。 首先,人工智能岗位技能要求高,人工智能是一个涵盖了多个学科领域的综合性学科,包括数学、…

ChatGPT 使用入门

背景 ChatGPT是一个强大的聊天机器人助手,内置了大量的互联网知识文档,且具有上下文记忆,可以帮我们快速地查找一些资料,了解一个知识,帮我们回答问题,编写代码等。此外,在使用ChatGPT时具有一…

String类常用方法总结

目录 一.简单认识String 二.String对象的比较 1.equals 内部实现原理: 2.compareTo 3.compareToIgnoreCase 三.字符串查找 示例: 四.字符串与其他类型转化 1.数值和字符串相互转换 2.大小写相互转化 3.字符串转数组 4.格式化转化 五.字符串…

KDE 项目发布了 KDE Gear 23.08.3

导读KDE 项目发布了 KDE Gear 23.08.3,作为最新的 KDE Gear 23.08 开源集合的第三次维护更新,该集合包含了用于 KDE Plasma 桌面环境和其他平台的 KDE 应用程序。 KDE Gear 23.08.3 是在 KDE Gear 23.08.2 大约一个月之后发布的,包含了更多对…

数据结构-快速排序“人红是非多”?看我见招拆招

目录 1.快速排序 Hoare版本: 挖坑法: 前后指针版本: 快速排序的时间复杂度 2.快速排序的优化 三数取中法选key 随机数选key 三路划分法 3. 非递归实现快速排序 1.快速排序 快速排序一共有三种版本:Hoare版本、挖坑法、前后指针版本…

跑步耳机哪种好?运动耳机什么牌子好?无线运动耳机品牌排行

​运动健身已经成为当下最热门的运动健康项目,越来越多的人开始加入到这个行列中来。而在运动的过程中,佩戴一款适合自己的运动耳机听歌,不仅可以增加运动的乐趣,还能帮助我们更好地集中注意力,提高运动效果。然而&…

matplotlib设置y轴刻度范围【已解决】

用matplotlib绘制个一个图,但是y轴刻度过大,因为AUC本身最大值是1,所以现在需要修改y轴刻度 上图的代码如下 import matplotlib.pyplot as plt import numpy as np# 假设你的数据范围是0.5到1 y_ticks_range np.arange(0.5, 1.1, 0.1)# 示…

redis的一些操作

文章目录 清空当前缓存和所有缓存配置内存大小,防止内存饱满设置内存淘汰策略键过期机制 清空当前缓存和所有缓存 Windows环境下使用命令行进行redis缓存清理 redis安装目录下输入cmdredis-cli -p 端口号flushdb 清除当前数据库缓存flushall 清除整个redis所有缓存…

Oracle 的 Java SE、OpenJDK、Database 链接

1 访问主站 Oracle | Cloud Applications and Cloud Platform 2 开发者 2.1 OpenJDK (这里的不用登录,就可以下载) JDK Builds from Oracle 2.2 JavaSE (需要登录,才可以下载) Java Downloads | Oracle 2.3 DataBase (MySQL为例) MySQL :: MySQL Dow…

RFID读写器在物联网中的应用与优势

随着物联网技术的不断发展,RFID读写器作为物联网感知层的重要组成部分,在各个领域得到了广泛应用。本文将介绍RFID读写器在物联网中的应用及优势。 一、RFID读写器概述 RFID(Radio Frequency Identification)技术是一种利用无线…

HT560 30W 过温限幅 D类音频功率放大器

HT560具有过温限幅功能,当芯片内部温度达到过温限幅点,HT560自动降低增益,使其IC能够连续播放而不间断。另外,HT560具有功率限制功能,一种是限幅功能,在输出端限制一定的输出幅度,使其不损坏喇叭…

力扣OJ题讲解——循环队列

今天我们一起来做一道关于队列的OJ题目,这是力扣题目622题,点击题目链接可以直接跳转,https://leetcode.cn/problems/design-circular-queue/ 首先,我们看到要求,需要我们实现哪些功能? 我们需要设置队列长…

【科技素养】蓝桥杯STEMA 科技素养组模拟练习试卷2

单选题 1、两袋中分别有同样多的硬糖和酥糖,现将第一袋中的20块酥糖放到第二袋中,第二袋中的硬糖和酥糖相同,接着又将第二袋中的20块硬糖放到第一袋中,则第一袋中的硬糖是酥糖的4倍,问原来一袋中有(&#…

模电知识点总结(一)运算放大器

系列文章目录 文章目录 系列文章目录前言集成运算放大器基本线性运放电路虚短和虚断同向放大电路电压跟随器反向放大电路差分放大电路仪用放大器求和电路积分电路微分电路 前言 由于模电知识一直没用到,之前一直觉得没有什么用处,但是我越来越发现基础知…

基于Springboot的美容院管理系统(有报告)。Javaee项目,springboot项目。

演示视频: 基于Springboot的美容院管理系统(有报告)。Javaee项目,springboot项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构&a…

振南技术干货集:制冷设备大型IoT监测项目研发纪实(3)

注解目录 1.制冷设备的监测迫在眉睫 1.1 冷食的利润贡献 1.2 冷设监测系统的困难 (制冷设备对于便利店为何如何重要?了解一下你所不知道的便利店和新零售行业。关 于电力线载波通信的论战。) 2、电路设计 2.1 防护电路 2.1.1 强电防护…

差分放大器工作原理(差分放大器和功率放大器区别)

差分放大器是一种特殊的放大器,它可以将两个输入信号的差异放大输出。其工作原理基于差分放大器的电路结构和差分输入特性。 一、差分放大器电路结构 差分放大器一般由四个基本电路组成:正反馈网络、反相输入端、共模抑制电路和差分输入端。其中&#xf…