大语言模型的token和向量

现在大语言模型火了,像 ChatGPT 什么的,能回答问题、写文章,。但它们为啥这么聪明呢?这就和向量、Token 有关系。那怎么通过向量、Token来理解我们的问题呢。看完这篇文章就知道了

token

Token 就像是语言里的小积木,是文本中最小有意义的部分。

英文里,单词常常就是 Token,不过有时候长单词会被拆成子词,比如“unbelievable”拆成“un”“believ”“able”。

中文呢,因为字词没空格,得用工具分成一个个字词,像“我爱自然语言处理”,可能分成“我”“爱”“自然语言”“处理”这些 Token。

Tokenization 的方法与策略

  • 基于空格的分割:这在英文里很好用,比如 “I am a student.”,按空格就能分成 [“I”, “am”, “a”, “student.”] 这些 Token。但遇到像 “don't” 这样的缩写,就不太行了,而且中文没有空格,不能用这个方法。
  • 规则基础的分割:按照设定好的规则来分,比如把标点去掉,数字统一处理。像 “Hello, world! 123”,去掉标点就变成 [“Hello”, “world”, “123”]。不过这样可能会丢掉一些重要信息,比如引号里的内容,而且规则得根据具体情况调整。
  • 字节对编码(BPE):它会统计文本里字节对出现的频率,把经常一起出现的字节对合并成新的子词单元。比如 “low lowing lowest”,先发现 “lo” 出现多,就合并,最后可能得到 [“low”, “lowing”, “lowest”]。这个方法能处理没见过的词,但分出来的子词可能不太好理解,而且计算有点复杂。
  • 字节级 BPE:在字节级别用 BPE 算法,对多种语言混合的文本或者特殊符号处理得很好,不过计算量更大,需要更多存储空间。
  • WordPiece:和 BPE 类似,不过它在合并字节对的时候,会考虑对语言模型有没有帮助,会根据大量文本学习怎么分最好。但需要很多数据来训练,不然可能分不好。
  • Unigram Language Model:从很多 Token 开始,慢慢去掉对语言模型不太重要的,留下有用的。这样能根据实际情况调整 Token 集合,但计算成本高,训练时间长。

Token 在模型中的作用与影响

在大语言模型里,文本要先变成 Token 序列,每个 Token 会被编成一个数字编号。比如有个简单的词汇表 {“I”: 1, “love”: 2, “natural”: 3, “language”: 4, “processing”: 5},那么 “I love natural language processing.” 就会被编成 [1, 2, 3, 4, 5]。接着这些编号会变成向量,模型就能通过向量来理解文本的意思。

模型推理生成文本时,会根据输入的 Token 序列和学过的知识,算出下一个 Token 可能是什么,比如算出 “is” 的概率是 0.1,“a” 的概率是 0.05 等等,然后选概率高的或者用其他方法确定下一个 Token,这样就能生成连贯的文本。

选择不同的 Tokenization 方法对模型性能影响很大。词汇量大,模型能表达的意思就多,但计算也更复杂,要花更多时间和空间。处理没见过的词时,如果 Tokenization 方法好,模型就能把没见过的词拆成认识的部分,从而大概理解意思。而且合理的 Tokenization 还能让输入序列变短,计算更快,比如把 “New York” 当成一个 Token 处理,就比分开处理 “New” 和 “York” 更高效。

向量

从数学来讲,向量有大小和方向。在大语言模型里,向量用来表示单词、句子甚至整篇文档。比如把每个单词变成一个固定长度的向量,语义相近的单词,它们的向量在空间里的距离就会比较近,像 “猫” 和 “狗” 的向量距离就比 “猫” 和 “苹果” 的近。

向量的维度很重要。维度高,能表示的语义信息就多,模型能力就强,像做复杂的文本分类、理解语义、生成自然的文本等都能做得更好,但计算也更难,训练时间长,还可能出现过拟合。维度低,计算简单,但可能没法很好地表示复杂的语义,在遇到有隐含意思或者有歧义的文本时,模型就容易理解错。一般大语言模型里,词向量维度从 256 维到 1024 维甚至更高都有,句子和文档向量维度会根据模型和任务再调整。

 向量化的目的与优势

向量化主要是为了让计算机能处理文本这种非数字的数据。计算机处理数字快,把文本变成向量,就能利用计算机的计算能力来分析文本。比如在文本分类任务中,把文本变成向量后,计算机就能通过计算向量快速判断文本属于哪一类,而不是只简单地匹配文字。

向量化还能准确地抓住数据的特征和关系。在词向量空间里,语义相近的词向量距离近,不同的词向量距离远。比如 “国王” 和 “王后” 的向量相似度就比和 “苹果” 的高,模型就能根据这个理解它们的语义联系,在回答问题、生成文本时就能更符合逻辑。而且向量形式的数据做矩阵运算快,能利用高效的矩阵运算库,让模型训练和推理更快,能处理更多文本,满足实际应用中快速处理大量数据的需求。

向量在模型中的应用场景

在大语言模型里,词向量很基础。通过像 Word2Vec、GloVe 这些方法在大量文本上训练,词向量能抓住单词的语义信息。比如在情感分析任务中,模型可以根据词向量判断文本的情感倾向。

句子和文档也能变成向量。句子向量通常是把句子里单词的向量加权求和得到,文档向量也类似。这样得到的向量能用来计算文本相似度、做分类和聚类。比如在信息检索中,通过计算查询语句和文档向量的相似度,能快速找到相关文档;在文本聚类中,根据向量相似性把文本分类,能发现文本的潜在主题和模式。

在模型输入和输出时,向量化也很关键。输入文本要先变成向量,模型处理后输出也是向量,然后再变成文本。比如在文本生成任务中,模型输出的向量要解码成单词序列,才能生成连贯的文本;在机器翻译中,源语言文本变成向量输入,模型输出目标语言文本的向量,再解码成翻译结果。

向量在注意力机制里也很重要。注意力机制通过计算向量之间的相关性,给输入文本的不同部分分配不同权重,让模型能关注重要信息,提高性能。比如在阅读理解中,回答问题时,注意力机制能让模型聚焦在相关文本上,提取关键信息,回答更准确,避免无关信息干扰,让模型能更好地理解复杂文本,输出更有针对性的答案。

那Token 和向量怎么配合

文本被分成 Token 序列后,模型会用一种叫词嵌入的技术把 Token 变成向量。比如 Word2Vec,它通过让神经网络学习大量文本中单词的上下文信息,来调整单词对应的向量值,让语义相近的单词向量距离近。像 “苹果” 和 “香蕉” 如果经常在相似上下文中出现,它们的向量就会接近。

基于 Transformer 架构的模型(像 GPT、BERT 等),在嵌入层直接把 Token 变成向量。模型会给每个 Token 一个固定维度的向量,通过模型的参数矩阵和 Token 的编码(比如独热编码或者整数编码)相乘得到。比如模型嵌入层维度是 512,词汇表大小是 10000,那么一个 Token 的向量就是 512×10000 的参数矩阵和它的编码向量相乘得到的 512 维向量。这样就能快速把 Token 变成模型能处理的向量,而且随着模型训练,向量会不断优化,更好地表示 Token 的语义和语言特征。

 向量如何表征 Token 的语义

向量在空间里的位置和数值分布能表示 Token 的语义。语义相近的 Token,向量位置近,某些维度的数值也相似。比如表示颜色的 “红色”“蓝色”“绿色”,它们的向量在和颜色相关的维度上数值可能相似,其他维度有差异。通过计算向量的距离(像欧几里得距离、余弦距离)或者相似度(像余弦相似度),模型能判断 Token 语义的相似程度。

在模型推理和理解语言时,向量的这种语义表示能力很有用。比如在文本分类任务中,模型根据文本中 Token 的向量判断主题类别;在情感分析中,通过分析向量里的情感倾向信息确定文本的情感态度。向量之间的运算也能模拟一些语义关系,像 “国王 - 男人 + 女人 = 王后”,通过向量运算能得到和 “王后” 向量相近的结果,这说明模型能理解一些语义逻辑关系,提升语言理解和处理能力,更好地应对各种复杂的语言情况和任务。

 两者协同工作的机制

在大语言模型训练时,Token 和向量紧密配合。输入文本先被分成 Token 序列,然后通过词嵌入层变成向量。模型通过学习大量文本,不断调整向量的权重和参数,让向量更好地表示 Token 的语义和语言结构。比如在基于 Transformer 架构的语言模型训练中,模型通过多头注意力机制对不同位置的 Token 向量加权计算,学习 Token 之间的依赖关系和语义关联。这里 Token 的顺序和组合对模型学习语法和语义规则很重要,向量则是模型计算和推理的基础数据形式,承载 Token 的语义信息,让模型能深入理解和分析文本。

在模型推理阶段,输入文本先变成 Token 序列再变成向量输入模型。模型根据学过的知识,通过对向量的运算处理,生成输出文本的概率分布,然后选合适的 Token 输出,生成连贯文本。比如在问答系统中,模型把用户问题变成 Token 向量,在已有的知识里找相关信息,通过向量运算推理,找到答案的向量表示,再解码成 Token 序列回答用户。Token 和向量的协同工作,让模型能快速准确理解用户问题,生成合理回答,实现自然流畅的人机交互,提高模型的实用性和应用价值。

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

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

相关文章

Qt Creator项目构建配置说明

QT安装好之后,在安装目录的Tools\QtCreator\bin下找到qtcreator.exe文件并双击打开 点击文件-新建文件或项目 选择Qt Widgets Application 设置项目名称以及路径 make工具选择qmake(cmake还未尝试过) 设置主界面对应类的名称、父类&#…

智能边缘计算×软硬件一体化:开启全场景效能革命新征程(企业开发者作品)

边缘智能技术快速迭代,并与行业深度融合。它正重塑产业格局,催生新产品、新体验,带动终端需求增长。为促进边缘智能技术的进步与发展,拓展开发者的思路与能力,挖掘边缘智能应用的创新与潜能,高通技术公司联…

【React】- 跨域PDF预览、下载(改文件名)、打印

我们经常会碰到跨域来方位PDF,同时需要下载、打印的需求,通常由于浏览器的安全策略,可以预览,但是下载和打印可能会受限,这时候怎么办呢? 1.创建一个隐藏的标签 要下载 iframe 中的 PDF 文件,…

Ps:创建数据驱动的图像

在设计实践中,常常需要处理大量内容变化但设计格式统一的任务,例如批量生成名片、工作证、学生证、胸牌、奖状或证书甚至图册。这些工作如果逐一手动制作,不仅耗时费力,还容易出错。 为解决这一问题,Photoshop 提供了强…

Kotlin 协程基础知识总结六 —— 协程 Flow 的综合应用

1、项目描述与搭建 (P92~P94)我们会将几个 Flow 的应用实例放在同一个 Demo 中,主页就是一个 Activity 里包含一个按钮,点击按钮跳转到对应的功能展示页面上。整体架构采用一个 Activity 多个 Fragment 的结构,结合 J…

环,域,体,整区,理想,极大理想,

环: 定义: 加法交换群 乘法半群 分配律 域的定义: 加法交换群 乘法群(去掉0元是交换群) 分配律 Eg:比如整数集合不是域,因为对于乘法来说,去掉0后没有单位元了,但是是环 Eg…

关于Flutter应用国际化语言的设置

目录 1. Locale配置 2. 用户切换/启动自动加载缓存里面的locale 由于最近在开发app国际化设置的时候遇到一些问题,所以做出一些总结。 1. Locale配置 具体的初始化配置可以参考文档:i18n | Flutter 中文文档 - Flutter 中文开发者网站 - Flutter 值得…

【游戏开发】游戏生产的标准与工业化,管线Pipeline的概念与设计(项目管理,资产管理)

【游戏开发】游戏生产的标准与工业化,管线Pipeline的概念与设计(项目管理,资产管理) 文章目录 1、管线(Pipeline)是什么?1.1 管线解决什么问题(例子)1.2 一个动画电影的完…

探寻 OneCode 核心优势:MVVM 进阶与前后端协同之魅

在当今的软件开发领域,高效、可维护且功能强大的架构是开发者们不懈追求的目标。OneCode 凭借其独特的增强版 MVVM 架构、前后端一体化特性,以及创新的技术如 OneCode DSM(Domain-Specific Modeling,领域特定建模)、视…

机器人C++开源库The Robotics Library (RL)使用手册(三)

进入VS工程,我们先看看这些功能函数及其依赖库的分布关系: rl命名空间下,主要有八大模块。 搞定VS后将逐个拆解。 1、编译运行 根据报错提示,配置相应错误的库(根据每个人安装位置不同而不同,我的路径如下:) 编译所有,Release版本耗时大约10分钟。 以rlPlan运动…

ISP代理与住宅代理的区别

了解ISP代理 通常称为互联网服务提供商代理,通过服务提供商将用户直接连接到互联网。这些代理利用互联网服务提供商的网络,通常提供广泛的IP地址池。ISP代理通常快速可靠,非常适合一般浏览和常规互联网使用场景。 了解住宅代理 相比之下&a…

【ArcGIS Pro】完整的nc文件整理表格模型构建流程及工具练习数据分享

学术科研啥的要用到很多数据,nc文件融合了时间空间数据是科研重要文件。之前分享过怎样将nc文件处理成栅格后整理成表格。小编的读者还是有跑不通整个流程的,再来做一篇总结篇,也分享下练习数据跟工具,如果还是弄不了的&#xff0…

使用 Navicat 官方免费版来实现从 DAT 文件填充 MySQL 8 表

在异构存储库之间迁移数据(即源数据库和目标数据库来自不同供应商的不同数据库管理系统)会遇到一些挑战。在某些情况下,可以同时连接两个数据库。但有时根本无法实现。面对这样的困境,数据库从业者别无选择,只能从转储…

Three.js滚动画案例精选

今天为大家带来 3 个基于滚动动画的网站 Demo,它们不仅视觉效果惊艳,而且每个案例的源码都已开源在 GitHub,方便大家学习和借鉴! 3D照片墙滚动 通过滚动操作实现 3D 网格效果以及动态过渡动画。这个案例使用了 GSAP 的 SplitTex…

今日收获(C语言)

一.文件的打开 有这样一个结构体,它内部是文件信息区,文件信息区中的变化可以影响到硬盘中的数据。这个结构体的名字是FILE。我们如果想要写代码对文件进行各种操作,就需要一个指向文件信息区的指针,这个指针的类型是FILE*&#…

【C++】九九乘法表编程题详解与多角度对比分析

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯题目概述题目描述 💯老师的实现方法代码解析优点不足 💯我的实现方法代码解析优点不足 💯实现方法对比💯优化与扩展代码优化…

RK3568 bsp 9 - USB调试记录

文章目录 1、环境介绍2、RK3568 USB资源介绍3、配置目标4、dts配置4.1、USB3.0 OTG4.2、USB2.0 Host 2 和 USB2.0 Host 3 5、kernel配置5.1、USB PHY CONFIG5.2、USB Host CONFIG5.3、USB OTG CONFIG5.4、USB外设CONFIG5.4.1、Mass Storage Class CONFIG5.4.2、USB HID CONFIG …

图像描述/字幕开源模型与数据集全览

图像描述/字幕(Image Captioning)是用文字描述图像内容的任务,属于计算机视觉和自然语言处理的交叉领域。大多数图像描述系统采用编码器-解码器(encoder-decoder)框架,其中输入图像被编码为中间表示形式&am…

mongodb(6.0.15)安装注意事项,重装系统后数据恢复

window10系统 上周重装了系统,环境变量之类的都没有了。现在要恢复。 我电脑里之前的安装包没有删除(虽然之前也没在C盘安装,但是找不到了,所以需要重新下载安装),长下图这样。这个不是最新版本&#xff0…

Redis单线程快的原因

基于内存操作:Redis将数据存储在内存中,使得数据的读写速度极快,这是其性能优势的主要原因。单线程避免上下文切换:在多线程环境下,CPU核数有限,线程上下文切换会带来性能损耗。Redis采用单线程&#xff0c…