在自然语言处理领域,我们会经常跟文字打交道,对于人类而言,大脑就是一台极其复杂的机器,文字经过大脑解析后,我们就能意识到文字所表达的含义。
但是对于计算机而言,这件事就有点难了,计算机只认识数字,如何让文字变成数字,并且数字还能表达文字原本的含义就是自然语言领域的关键问题。
总结下来,核心的问题就是一句话:文字如何向量化?
一、词袋模型
1、什么是词袋模型
词袋模型是一种基于统计学原理的文本表示方法,它初步解决了文字向数值转化的问题。
在词袋模型中,文本会被表示为一个词频向量。
2、如何构建词袋模型
(1)构建词袋
比如我们有3句话,分别是:
i can swim
i love you
long time no see
很明显,我们可以将这3句话里面每个词都给拿出来,形成一个不重复的集合,那么这个集合(词袋)所包含的词汇如下:
(i can swim love you long time no see)
(2)文本向量化
根据这个词袋的容量将每句话给向量化出来,结果如下:
"i can swim"向量就是: [1,1,1,0,0,0,0,0,0]
"i love you"向量就是: [1,0,0,1,1,0,0,0,0]
"long time no see"向量就是:[0,0,0,0,0,1,1,1,1]
在文本向量化之后,无论做文本分类(垃圾邮件识别)还是情感分析等模型,都可以根据自己想法去实现。
3、词袋模型的优缺点
(1)优点
· 简单易用: 词袋模型原理直观,容易理解,实现方便
· 快速高效: 由于词袋模型忽略了词汇间的顺序和语法结构,所以词袋模型计算速度快
(2)缺点
· 丢失语序信息: 词袋模型忽视了词汇间的顺序关系,可能无法捕捉到依赖于顺序的语义
· 缺乏语义信息: 词袋模型中每个词被视为独立的实体,即使含义相近的词(如“快乐”与“愉快”)在向量空间中也表现为正交,无法通过向量的距离或相似度来衡量它们的语义相似性
· 高维空间问题: 在词汇量大的情况下,词袋模型会导致高维空间问题,增加计算复杂度
· 未考虑词形变化和词义消歧: 词袋模型没有考虑词汇的不同形态和词义的多样性
总结:词袋模型是文本向量化最简单的一种方式。
二、词嵌入模型
1、什么是词嵌入模型
词嵌入(Word Embedding)是一种自然语言处理技术,主要起到两个作用:
(1)文字转化为有限的m维向量(常见的就是300维),避免维度灾难
(2)捕捉词与词之间的语义和句法关系
词嵌入的训练基于一个假设:上下文中相似的词有相似的语义。
我们想要达到的效果如下:
在英文情况下,has、have应该保持较高的相似性(has、have是一个词的不同表达)。
在中文情况下,上海、北京、深圳等应该保持较高的相似性(都是城市这一类别)。
我们可以这么类比着去理解词嵌入:一个人可以用身高、体重、性别、年龄等数值特征进行描述,一个词也可以用不同的数值来描述这个词各个方面的特征,数值组合起来的结果就是词向量。
2、词嵌入向量如何生成
词嵌入模型由于需要大量语料与资源,所以一般由大公司训练,我们直接采用其训练好的向量结果即可。
常见的词嵌入模型:
(1)Word2Vec: 由Google提出,包括CBOW和Skip-gram两种模型。CBOW是基于上下文预测目标词,而Skip-gram则是基于目标词预测上下文。
(2)GloVe: 由Stanford提出,它利用了全局的词共现矩阵进行训练,试图平衡局部上下文与全局统计信息。
由于后续Transformer等模型的提出与应用,修补了Word2Vec这类词嵌入模型的缺点,所以此处就不再谈词嵌入模型的具体训练方法。
以Word2Vec为例,我们来看下训练后的词向量结果:
词向量结果示例
Word2Vec降维可视化展示
可以看到,在对高维词向量降维之后能够发现:相似的词距离更近。比如cat与cats,dog与dogs,king与man,queen与woman等。
这就说明:Word2Vec在一定程度上能够解释单词间复杂的关系,如同义词、反义词和关联词。
3、词嵌入模型的作用
(1)降低模型维度
相较于词袋模型动辄千维、万维的向量,词嵌入模型已经将词的维度压缩到300维的低维向量。
(2)捕获语义信息
词嵌入能够捕捉词语的语义特征,使得具有相似意义的词语在向量空间中距离较近。“猫cat”和“小猫kitten”的词嵌入向量会比“猫cat”和“房子houses”的向量更接近。
(3)向量运算能够得到有意思的结果
由于这些词本质上还是向量,在进行向量运算时可以发现有意思的事儿:
向量King - 向量Man ≈ 向量Woman - 向量Queen
这就表示:词嵌入模型确实学到了词与词之间的关系。
4、词嵌入模型的优缺点
(1)优点
· 计算效率: 相比于词袋模型,词嵌入使用较低维度的向量表示单词,减少了计算和存储的复杂性
· 语义相似性: 词嵌入模型能够将语义上相似的词映射到向量空间中相近的位置,这有助于捕捉词的语义信息
· 通用性: 词嵌入模型生成的向量可以广泛应用于不同的自然语言处理任务,如文本分类、情感分析等
(2)缺点
· 无法表示词表以外的词: 传统的词嵌入模型通常无法处理未见过的词或新词
· 忽略词序和长距离依赖: 词嵌入模型依然是多个向量的堆叠,但是实际文本是有顺序的,词嵌入无法捕捉顺序带来的关系
· 训练数据的偏见: 词嵌入模型的性能很大程度上依赖于训练数据的质量和多样性,数据中的偏见可能会被嵌入到向量中
总结:词嵌入模型可以很好的表达词本身所代表的含义。
对于词嵌入所存在的问题,将在Transformer模型中得到较好的解决。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。