小白必看!三步搞定文本预处理,大模型入门不再愁!NLP基础干货,手把手教你把文字变向量
文本序列化是自然语言处理的关键预处理步骤,主要包括分词、构建词汇表和向量化三个环节。由于计算机只能处理数字,文本需转化为多维矩阵形式:首先通过分词将句子拆分为词单元,再建立词汇表实现文字到数字的映射(含UNK和PAD特殊标记),最后通过Word Embedding等技术将数字序列转为向量。该过程解决了文本长度不一、生僻字处理等问题,为神经网络输入提供标准化数据格式。掌握这一技术对AI从业者至关重要
“ 文本序列化是自然语言处理任务的前置条件,而文本序列化需要经过分词,构建词汇表和序列化的几个步骤**”**
在神经网络或者说在机器学习领域中,数据主要以向量的形式存在,表现形式为多维矩阵;但怎么把现实世界中的数据输入到神经网络中是机器学习的一个前提。
而现实世界中的数据格式虽然多种多样,但事实上无非以下几种主要模态:
- 文字
- 图片
- 视频
但我们也知道,计算机只认识数字,而不认识文字和图片;因此,就需要把这些数据转换为计算机能够识别的格式;而在神经网络模型中就是怎么把这些数据转换为向量的格式。
简单来说,就是把现实世界中的数据转化为用多维矩阵进行表示的过程。图片是由多个像素点组成,因此天生的就可以用矩阵表示;但文字却不同,处理起来要复杂得多。至于视频,就是动起来的多张图片。
文本处理
在自然语言处理任务中,要想把文本数据输入到神经网络中,需要经过大概以下几个步骤:
- 分词
- 构建词汇表
- 文本序列化
但为什么自然语言处理需要经过以下几个步骤? 下面来介绍一下每个步骤的作用:
分词
在自然语言体系中,语义是以词或句子的形态体现的;因此,我们就需要去理解词或句子的意思;但众所周知的是,以我们汉语为例常用的词和字就几千个;而我们生活中绝大部分的语义都是由重复的字和词组成的。
因此,从效率的角度来讲,我们不可能把每个句子的语义都记下来;我们需要的是找到其中常用的字和词,然后通过类似排列组合的方式组合成一个个句子。

所以,自然语言处理的第一步就是分词;也就是说通过某种方式把句子中相同的字或词挑出来,组成一个字词列表。而常用的分词技术根据不同的语言又有不同的实现方式;比如说在英语体系中,很多时候每个单词就表示单独的意思;因此最简单的分词方式就是把每个不同的单词都找出来。
但在汉语言中,由于存在多音字,成语等具有复杂语言的形态;因此,汉语分词就不能使用找不同字的形式。
因此,分词的难点是怎么对文本数据进行拆分,但又不会影响到词语本身对意思。
词汇表
理解了什么是分词,以及为什么要分词,那么再理解词汇表就很简单了;对句子进行分词之后,就获取到了一个字和词的列表;因此就可以根据这个列表来构建词汇表,变成让计算机可以处理的数字格式。
学过计算机原理的应该都知道,计算机无法直接处理文字,因此文字在计算机中是通过编码的方式来实现的;比如说大名鼎鼎的ASCII码表,就是用八位二进制表示的。

而ASCII码表本质上就是一个字典结构,即使用K-V的形式来表示字符;需要计算机处理时就使用二进制表示,需要现实给人看时就使用字符表示;而词汇表就是类似ASCII码表的形式,把字或词作为K,把数字作为V。
这样一个数字就可以代表一个字或词;这样就可以让计算机处理。
在词汇表中有两个比较特殊的词汇,那就是UNK和PAD;我们知道常用的汉字只有几千个,但实际上的汉字有上万个;因此,我们根据文本数据的内容,可能并不能获取到所有的汉字;因此遇到“没见过”的汉字该怎么办呢,这时就使用UNK来表示。
而在矩阵计算中,需要的是相同的矩阵形式;比如说需要5*5的固定矩阵;但在自然语言中,每个句子的长度都不一样;短的可能就一两个字,长的可能有几十个字;这时变换的矩阵维度就不在相同。
dict = { "UNK_TAG": 0, "PAD_TAG": 1}
因此,就可以使用PAD对文字比较少的句子进行补充;而对文字比较长的句子进行截取。
文本序列化
在经过分词和构建词汇表之后,就可以对文本进行序列化;在自然语言处理任务中,文本需要转换为编码的数字进行表示;也就是把文字变成数字表示。
dict_1 = { "UNK_TAG": 0, "PAD_TAG": 1}
dict_2 = { 0: "UNK_TAG", 1: "PAD_TAG"}
所以就有了一个从文字变成数字和从数字变成文字的过程;本质上其实就是在词汇表中,根据文本获取其编码的数字,以及根据编码的数字获取文字。
文本序列化最重要的一步,就是把数字表示的句子转换成向量表示,也就是多维矩阵;而这就需要通过one-hot或者word embedding的方式来进行序列化。
但是在使用word embedding之前,需要把句子的数字列表转换为tensor格式。
# 将句子列表转换为tensor
sentences_tensor = torch.tensor(sentences, dtype=torch.long)
# 定义 Embedding 层
embedding = nn.Embedding(vocab_size, embedding_dim)
# 通过 Embedding 层
embedded_sentences = embedding(sentences_tensor)
如何学习大模型 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 的正确特征了。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

更多推荐


所有评论(0)