《深入浅出Embedding》随笔

ChatGPT的核心运行机制或许是Transformer, ChatGPT的核心数据机制或许就是嵌入(Embedding)了。什么是Embedding呢?了解Embedding可以为我们的软件研发工作带来哪些帮助呢?鉴于此,老码农阅读了《深入浅出Embedding》(吴茂贵 王红星著,机械工业出版社,2021年)一书,本文是阅读该书的读书笔记和随感。

1. 关于Embedding

Embedding是一个向量,用以表达一个实体对象。该实体对象可以是一个单词,一个序列,一件商品,一个动作,一本书,一部电影等等。机器无法直接接收或处理标识符,标识符数据的数值化表示即为嵌入,即分布式表达。

Embedding 起源于Word2vec的Word Embedding,在NLP领域中取得了成功之后,开始把Item、Graph、Node、Position 甚至图像都转换为Embedding。就NLP而言,处理的一般步骤,首先做必要的清理工作,例如清楚特殊符号、格式转换、过滤停用词等等,然后进行分词、索引化,再利用相关模型和算法单词、短语等标识符向量化,形成静态或动态的词嵌入,最后输出给下游的任务,例如问答,机器翻译,自动摘要等等。其中,词嵌入或预训练模型是关键所在。

图片

词嵌入是预训练模型的学习载体,其中,ELMo和GPT采用自回归语言模型,BERT采用mask语言模型,XLNet采用排列语言模型。训练一个神经网络,意味着要输入训练样本并不断调整神经元的权重,从而不断提高对目标预测的准确性。vocabulary的大小决定了神经网络权重矩阵的具体规模,负样本可以提高训练速度并改善词嵌入的质量。

如今,Embedding几乎无处不在,无论是传统机器学习、推荐系统,还是深度学习、自然语言处理,甚至图像处理都涉及了Embedding的技术问题。由于Embedding在本质上是一种数据表达,了解Embedding还需要了解诸如注意力机制、神经网络等基础知识。

2. 注意力机制

注意力机制源于对人类视觉的研究,指人类关注一些信息的同时忽略其他信息的选择能力,俗称“抓重点”。注意力机制主要有两种,软注意力是对所有key求权重概率,是一种全局计算机制,而硬注意力是直接精确定位到某个key,而忽略其他。在NLP中,注意力机制被看作单词对齐模型,在机器学习语境下非常直观,这就容易理解到那篇经典论文的示例。

Transformer可以看成一种特征提取器,能够平行处理序列问题,利用self-attention机制有效解决长期依赖问题。Transformer 彻底改变了深度学习领域。

Transformer 使用自注意力机制,可以让单词之间直接建立联系。Transformer模型涉及两种掩码方式:padding mask 和sequence mask。padding mask 用于长短不一的语句,sequence mask 只用在Decoder的自注意力中。掩码语言模型是一种真正的双向方法。

多头注意力可以从3个方面提升注意力层的性能:

  1. 扩展了模型专注于不同位置的能力
  2. 将缩放点积注意力过程重复多次,在把输出会并起来
  3. 提高了多个“表示子空间”

3. 神经网络基础

CNN是一种前馈神经网络,由一个或多个卷积层和顶端的全连接层组成,同时包括关联权重和池化层。增加通道就是增加卷积核,卷积核相当于过滤器,类似于标准神经网络中的权重矩阵,一般通过梯度下降算法反复迭代求得。加深网络层数是为了减少参数的数量,扩大感受域。而层数增加会导致梯度消失,除了采用合适的激活函数外,还要使用残差连接。

RNN适合处理序列数据,及前后顺序有关的数据。RNN除了增加时间步长或序列长度外,也可以纵向扩展成多层循环神经网络,但只具备短期记忆。LSTM可以用于解决长期依赖问题,其变种GRU则提高了计算的效率。双向循环神经网络是集成算法思想的体现。

4. 词嵌入(Word Embedding)

Word Embedding 本质上是一种静态嵌入的方法,模型训练完成后每个单词的表达就固定了。Word2vec实现了从one-shot到词嵌入的转换,但没有解决一词多义的问题。ELMo则将Word Embedding带到了语境词嵌入的时代。

4.1 ELMo 词嵌入

ELMo是最早进行语境化词嵌入的方法之一,是典型的自回归预训练模型,包括了两个单向LSTM实现的单向语言模型。其核心思想体现在深度上下文上,首先把输入转化成字符级的Embedding,然后生成上下文无关的词嵌入,再双向语言模型生成上下文相关的词嵌入。但ELMo基于BI-LSTM,并发能力受到影响。

GPT和BERT是生成式的预训练模型,基于可平行处理的Transformer。

4.2 BERT 词嵌入

BERT使用上下文来预测单词,是在海量语料的基础上进行自监督学习,即没有人工标注的数据上进行监督学习。BERT的输入编码项链是标识嵌入(token Embedding)、位置嵌入(position Embedding)和段嵌入(segment Embedding)这三个嵌入特征的单位和。基于BERT的词嵌入可同时关注左右词的信息。

在下游的NLP任务中,可以使用BERT的特征表示作为该下游任务的词嵌入特征。也就是说,BERT提供的是供下游任务迁移学习的模型,该模型可以根据下游任务微调或固定之后作为特征提取器。除微调方法外,BERT也可使用特征提取方法,使用预先训练好的BERT模型来创建上下文的词嵌入,擅长处理自然语言理解任务。

4.3 GPT 词嵌入

GPT采用多层单向的transformer decoder,可以使用传统的语言模型进行训练,通过上文预测下一个单词,更擅长处理自然语言生成任务。GPT和GPT-2在架构上没有大的变化,只在规模、数据量上有所不同。GPT对下游采用有监督学习方式,通过修改输入格式,并添加一个全连接层。而GPT-2对下游采用无监督学习方式,不改变不同下游任务的参数和模型。

GPT-3 延续了GPT的单向语言模型训练方式,规模参数增大到1750亿,并使用45TB数据进行训练。同时,聚焦于更通用的NLP模型。

BERT由Transformer的Encoder模块构成,使用多头注意力,可以同时从某词的左右两边进行关注。而GPT-2采用遮掩多头注意力,只能关注词的右边,如下图所示——

图片

5. 生成/获取 Embedding

词嵌入的学习方法主要有两种:1)将嵌入作为一层,随机初始化那些词向量,然后通过正负向学习得到最终的词向量;2)使用预训练的词嵌入。传统上,根据上下文生成目标词嵌入,可以使用CBOW模型,根据目标生成上下文采用skip-gram模型。CBOW 模型是根据某个词前后的若干词来预测该词,可以看成多分类,skip-gram则根据某个词的条件概率生成这个词的上下文。

使用PyTorch的Embedding Layer,把一个张量(tensor)转换为词嵌入,TensorFlow平台也有对应的网络层,具体步骤如下:

  1. 准备语料库
  2. 预处理,得到不同单词构成的词典,词典包含各单词及其索引
  3. 构建神经网络,把Embedding layer作为第一层,初始化对应的矩阵权重(查表获得)
  4. 通过训练来不断更新权重矩阵。

把预训练好的词嵌入作为模型的权重,进行微调,是一种迁移学习的方法。使用预训练模型,首先要考虑目标模型的数据量及目标数据与源数据的相关性,入门可以选择:github.com/huggingface/transformers. 微调允许修改预训练模型的参数来学习目标任务,常用方法是固定底层参数,调整顶层或具体层的参数。

6. Embedding 的应用

词嵌入诞生于NLP 领域, 因此在NLP领域中有着广泛的应用。除了NLP领域之外, Embedding 同样对各种领域产生非常大的影响。

6.1 用Embedding 表现分类特征

对结构化数据使用神经网络或深度学习框架进行分析时,首先需要对连续特征和类别特征进行处理。如果是连续特征一般进行分段处理,对分类特征则可以进行数字编码或者Embedding。如果类别颗粒度很粗,可以采用one-hot编码,如果颗粒度较细可以使用Embedding,最后拼接这些数据作为网络的输入层。

6.2 用Embedding提升ML性能

对于传统的机器学习算法,例如XGBoost,采用相同的数据集和算法,但输入预处理的方式如果是Embedding处理,机器学习模型的性能会有较大提升。

6.3 在推荐系统中的应用

在结构化数据上运行神经网络时, entity Embedding 表现得很好。在推荐系统中,协同过滤基于矩阵分解模型,利用潜在特征的内积进行推荐,而内积属于线性变换,其特征的表现有限。如果利用神经网络取代内积部分,可以学到特征之间任意的函数关系。多层感知机利用FM、DNN等特征提取方法,这个架构可以无需人工特征工程,能同时学习低阶和高阶的组合特征,FM和DNN模块可以共享特征嵌入部分,进而提升训练效率及模型性能。用户对商品评价数据的稀疏性是影响推荐系统质量的主要因素之一,利用卷积神经网络的特征提取功能来学习高阶产品特征表示,然后作用到商品矩阵。 同样,使用Transformer的自注意力机制也可拥有强大的特征提取功能。

7. 小结

如果模型是大厦,那么Embedding就是砖瓦。Embedding技术由最初的自然语言处理领域在向机器学习、搜索排序、推荐和知识图谱领域延伸,具体表现为Word Embedding向item embbeding,graph Embedding,categorical variable embbeding 的扩展。同时,Embedding自身也在从单一的静态表达向实体的动态表达演变,例如,Word Embedding 向ELMo,GPT,BERT等动态预训练模型演进,这是技术系统动态化趋势的一种体现。

如何系统的去学习大模型LLM ?

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。

但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的 AI大模型资料 包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来

😝有需要的小伙伴,可以V扫描下方二维码免费领取🆓

在这里插入图片描述

AI大模型系统学习路线图

在这里插入图片描述

阶段1:AI大模型时代的基础理解

  • 目标:了解AI大模型的基本概念、发展历程和核心原理。
  • 内容
    • L1.1 人工智能简述与大模型起源
    • L1.2 大模型与通用人工智能
    • L1.3 GPT模型的发展历程
    • L1.4 模型工程
      - L1.4.1 知识大模型
      - L1.4.2 生产大模型
      - L1.4.3 模型工程方法论
      - L1.4.4 模型工程实践
    • L1.5 GPT应用案例

阶段2:AI大模型API应用开发工程

  • 目标:掌握AI大模型API的使用和开发,以及相关的编程技能。
  • 内容
    • L2.1 API接口
      - L2.1.1 OpenAI API接口
      - L2.1.2 Python接口接入
      - L2.1.3 BOT工具类框架
      - L2.1.4 代码示例
    • L2.2 Prompt框架
      - L2.2.1 什么是Prompt
      - L2.2.2 Prompt框架应用现状
      - L2.2.3 基于GPTAS的Prompt框架
      - L2.2.4 Prompt框架与Thought
      - L2.2.5 Prompt框架与提示词
    • L2.3 流水线工程
      - L2.3.1 流水线工程的概念
      - L2.3.2 流水线工程的优点
      - L2.3.3 流水线工程的应用
    • L2.4 总结与展望

阶段3:AI大模型应用架构实践

  • 目标:深入理解AI大模型的应用架构,并能够进行私有化部署。
  • 内容
    • L3.1 Agent模型框架
      - L3.1.1 Agent模型框架的设计理念
      - L3.1.2 Agent模型框架的核心组件
      - L3.1.3 Agent模型框架的实现细节
    • L3.2 MetaGPT
      - L3.2.1 MetaGPT的基本概念
      - L3.2.2 MetaGPT的工作原理
      - L3.2.3 MetaGPT的应用场景
    • L3.3 ChatGLM
      - L3.3.1 ChatGLM的特点
      - L3.3.2 ChatGLM的开发环境
      - L3.3.3 ChatGLM的使用示例
    • L3.4 LLAMA
      - L3.4.1 LLAMA的特点
      - L3.4.2 LLAMA的开发环境
      - L3.4.3 LLAMA的使用示例
    • L3.5 其他大模型介绍

阶段4:AI大模型私有化部署

  • 目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。
  • 内容
    • L4.1 模型私有化部署概述
    • L4.2 模型私有化部署的关键技术
    • L4.3 模型私有化部署的实施步骤
    • L4.4 模型私有化部署的应用场景

辅助学习书籍PDF资源:

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

学习计划:

  • 阶段1:1-2个月,建立AI大模型的基础知识体系。
  • 阶段2:2-3个月,专注于API应用开发能力的提升。
  • 阶段3:3-4个月,深入实践AI大模型的应用架构和私有化部署。
  • 阶段4:4-5个月,专注于高级模型的应用和部署。
    请根据您的个人进度和时间安排,适当调整学习计划。记得在学习过程中,理论与实践相结合,不断进行项目实践和反思,以加深理解和技能的掌握。

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

😝有需要的小伙伴,可以Vx扫描下方二维码免费领取🆓

在这里插入图片描述

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值