LLM(6):理解词嵌入
深度神经网络模型,包括 LLM,无法直接处理原始文本。由于文本是分类的,它与用于实现和训练神经网络的数学操作不兼容。因此,我们需要一种方法来将词语表示为连续值向量。
注意:如果读者对向量和张量不太了解,请参阅《机器学习数学基础》(电子工业出版社)
将数据转换为向量格式的概念通常被称为嵌入(embedding)。通过使用特定的神经网络层或另一个预训练的神经网络模型,我们可以嵌入不同类型的数据——例如视频、音频和文本,如图 2.2 所示。然而,需要注意的是,不同的数据格式需要不同的嵌入模型。例如,为文本设计的嵌入模型不适合用于嵌入音频或视频数据。

图 2.2 深度学习模型无法直接处理视频、音频和文本等原始数据格式。因此,我们使用嵌入模型将这些原始数据转换成密集的向量表示,以便深度学习架构能够容易地理解并处理。具体来说,此图展示了将原始数据转换为三维数值向量的过程。
在原理上讲,嵌入是从诸如词语、图像甚至是整个文档等离散对象到连续向量空间点的映射——嵌入的主要目的是将非数值数据转换成神经网络可以处理的格式。
虽然词嵌入是最常见的文本嵌入形式,但也存在针对句子、段落或整个文档的嵌入。句子或段落嵌入是增强检索生成(retrieval-augmented generation,RAG)的通常选择。RAG 结合了生成(如产生文本)与检索(如搜索外部知识库),以在生成文本时提取相关信息。但现在,我们的目标是训练类似 GPT 的 LLM,这些模型学习一次生成一个词的文本,所以还是要专注于词嵌入。
为了生成词嵌入,已经开发了多种算法和框架。一个较早且非常流行的是 Word2Vec 方法。Word2Vec 通过给定目标词预测其上下文或者相反的方式来训练神经网络架构以生成词嵌入。Word2Vec 背后的主要思想是出现在相似上下文中的词语往往具有相似的意义。因此,当为了可视化目的被投影到二维词嵌入时,相似的术语会被聚集在一起,如图 2.3 所示。

图 2.3 如果词嵌入是二维的,我们可以将它们绘制在一个二维散点图中以便于可视化,如这里所示。当使用词嵌入技术(例如Word2Vec)时,表示相似概念的词语在嵌入空间中往往彼此靠近。例如,在嵌入空间中,不同类型的鸟类相互之间的距离比国家和城市的距离要近。
词嵌入可以有不同的维度,从一维到数千维不等。更高的维度可能捕捉到更细致的关系,但会牺牲计算效率。
虽然我们可以使用预训练的模型如 Word2Vec 为机器学习模型生成嵌入,但 LLM 通常会生成作为输入层一部分并在训练过程中更新的自有嵌入。将嵌入作为 LLM 训练的一部分进行优化而非使用 Word2Vec 的优势在于,这些嵌入是针对特定任务和数据进行优化的。在后续内容中将实现这样的嵌入层。
不幸的是,高维嵌入对可视化提出了挑战,因为我们的感官感知和常用的图形表示本质上被限制在三维或更低维度,这就是为什么图 2.3 展示了二维嵌入在一个二维散点图中的原因。然而,在使用 LLM 时,通常使用的嵌入具有更高的维度。对于 GPT-2 和 GPT-3 来说,嵌入大小(通常称为模型隐藏状态的维度)根据具体的模型变体和大小而变化,这是性能与效率之间的权衡。最小的 GPT-2 模型(具有1.17亿和1.25亿参数)使用 768 维度的嵌入大小以提供具体的例子。最大的 GPT-3 模型(拥有1750亿参数)则使用 12,288 维度的嵌入大小。
原文:Sebastian Raschka. Build a Large Language Model(From Scratch),此处为原文的中文翻译,为了阅读方便,有适当修改。
相关文章:
LLM(6):理解词嵌入
深度神经网络模型,包括 LLM,无法直接处理原始文本。由于文本是分类的,它与用于实现和训练神经网络的数学操作不兼容。因此,我们需要一种方法来将词语表示为连续值向量。 注意:如果读者对向量和张量不太了解,…...
SQLMesh系列教程:利用date_spine宏构建日期序列实践指南
引言:为什么需要日期维度表? 在数据分析和报表开发中,日期维度表是不可或缺的基础结构,其中包括一定日期范围的日期序列,每个序列包括对应日期属性,如年季月日、是否周末等。无论是计算日粒度销售额、分析…...
sqlite mmap
https://www.sqlite.org/mmap.html 1. 内存映射 I/O 的基本原理 默认机制(传统 I/O) SQLite 默认通过 xRead() 和 xWrite() 方法(对应 read()/write() 系统调用)访问数据库文件。这些方法需要将数据从内核缓冲区复制到用户空间&am…...
Java 大视界 -- 企业数字化转型中的 Java 大数据战略与实践(93)
💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…...
Unity Enlighten与Progressive GPU Lightmapper对比分析
一、技术背景与核心差异 1. 算法原理 Enlighten 基于辐射度算法(Radiosity),通过将场景分解为Systems(光照关联单元)和Clusters(计算单元),预计算光照环境中的间接光传输。其核心是…...
linux:环境变量,进程地址空间
一.命令行参数 main的参数:int argc,char*argv[],char*env[] 1.参数意义: argc是命令行调用次程序时传递的参数 例: ls -l -a 传递了三个参数,“ls" "-l" "-a"三个字符串 argv是传递的参…...
mybatis集合映射association与collection
官方文档:MyBatis的一对多关联关系 一、用途 一对一:association 一对多:collection 二、association 比较容易理解,可参考官方文档 三、collection <?xml version"1.0" encoding"UTF-8"?> &l…...
【AIGC】Win10系统极速部署Docker+Ragflow+Dify
【AIGC】WIN10仅3步部署DockerRagflowDify 一、 Docker快速部署1.F2进入bios界面,按F7设置开启VMX虚拟化技术。保存并退出。2.打开控制面板配置开启服务3.到官网下载docker安装包,一键安装(全部默认勾选) 二、 RagFlow快速部署1.确…...
全局上下文网络GCNet:创新架构提升视觉识别性能
摘要:本文介绍了全局上下文网络(GCNet),通过深入分析非局部网络(NLNet),发现其在重要视觉识别任务中学习的全局上下文与查询位置无关。基于此,提出简化的非局部模块、全局上下文建模…...
鸿蒙NEXT项目实战-百得知识库03
代码仓地址,大家记得点个star IbestKnowTeach: 百得知识库基于鸿蒙NEXT稳定版实现的一款企业级开发项目案例。 本案例涉及到多个鸿蒙相关技术知识点: 1、布局 2、配置文件 3、组件的封装和使用 4、路由的使用 5、请求响应拦截器的封装 6、位置服务 7、三…...
Linux上位机开发实战(qt编译之谜)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 很多同学都喜欢用IDE,也能理解。因为不管是visual studio qt插件,还是qt creator其实都帮我们做了很多额外的工作。这里面最…...
【人工智能】【Python】在Scikit-Learn中使用网格搜索对决策树调参
这次实践课最大收获非网格搜索莫属。 # 导入包 import matplotlib.pyplot as plt import numpy as np from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split, GridSearchCV # 网格搜索 from sklearn.tree import DecisionTreeClassi…...
用Python代码生成批量下单json
需求 根据以下json体,生成230OrderList对象生成10位有序的数字字母随机数赋值给OrderDetailList.ApiOrderId 和 OrderDetailList.Traceid生成的Json文件 保存在项目JSON目录中 {"UAccount": "xxxx","Password": "","…...
笔记:代码随想录算法训练营day56:图论理论基础、深搜理论基础、98. 所有可达路径、广搜理论基础
学习资料:代码随想录 连通图是给无向图的定义,强连通图是给有向图的定义 朴素存储:二维数组 邻接矩阵 邻接表:list基础知识:C 容器类 <list> | 菜鸟教程 深搜是沿着一个方向搜到头再不断回溯,转…...
Elasticsearch8.17 集群常见问题排查与解决
一、磁盘水位错误(Flood-Stage Watermark) 当数据节点磁盘空间极度不足并达到洪水阶段水位时,系统会记录以下错误: Error: disk usage exceeded flood-stage watermark, index has read-only-allow-delete block。 为防止磁盘写满,Elasticsearch 会阻止对受影响节点上分片…...
TCP、UDP协议的应用、ServerSocket和Socket、DatagramSocket和DatagramPacket
DAY13.1 Java核心基础 TCP协议 TCP 协议是面向连接的运算层协议,比较复杂,应用程序在使用TCP协议之前必须建立连接,才能传输数据,数据传输完毕之后需要释放连接 就好比现实生活中的打电话,首先确保电话打通了才能进…...
配置VMware Workstation中Ubuntu虚拟机与Windows主机的剪贴板共享功能
步骤1:安装或更新VMware Tools组件 卸载旧版本工具(可选) 若已安装旧版工具,建议先卸载: sudo apt-get autoremove open-vm-tools安装必需组件 sudo apt-get updatesudo apt-get install open-vm-tools o…...
深入理解Python闭包与递归:原理、应用与实践
目录 闭包 什么是闭包: 闭包的基本结构: 实现闭包的条件: 1.嵌套函数 2.内函数引用外部函数的变量 3.外部函数返回内部函数 4.外部函数已经执行完毕 递归函数 什么是递归函数: 递归函数条件 1.必须有个明确的结束条…...
第7章:Docker容器网络模型深度剖析
第7章:Docker容器网络模型深度剖析 作者:DogDog_Shuai 阅读时间:约30分钟 难度:高级 目录 1. 引言2. Docker网络架构3. Docker网络模式详解4. Docker网络配置5. Docker网络故障排查6. 总结1. 引言 Do...
SeaCMS代码审计
漏洞描述 漏洞分析 根据漏洞描述定位漏洞代码 当actionsaveCus或者save时,可以进行一个文件写入,不过文件类型被进行了限制,只有html,htm,js,txt,css 虽然这里并不能写入php文件,但是当actionadd或者custom时,这里进行…...
好看的网络安全登录页面 vue http网络安全
一、http协议 http协议是一种网络传输协议,规定了浏览器和服务器之间的通信方式。位于网络模型中的应用层。(盗图小灰。ヾ(◍∇◍)ノ゙) 但是,它的信息传输全部是以明文方式,不够安全,…...
springmvc中如何自定义入参注解并自动注入值
在Spring中,HandlerMethodArgumentResolver 是一个非常强大的接口,用于自定义控制器方法参数的解析逻辑。以下是一个完整的示例,展示如何使用 HandlerMethodArgumentResolver 并结合自定义注解来实现特定的参数解析逻辑。 ### **1. 定义自定…...
目标检测——清洗数据
清洗VOC格式数据集代码示例 import os import xml.etree.ElementTree as ETdef process_annotations(image_folder, annotation_folder):# 遍历标签文件夹中的所有XML文件for xml_file in os.listdir(annotation_folder):if not xml_file.endswith(.xml):continuexml_path os…...
numpy学习笔记7:np.dot(a, b) 详细解释
numpy学习笔记7:np.dot(a, b) 详细解释 np.dot(a, b) 函数详解 np.dot(a, b) 是 NumPy 中用于计算两个数组的点积或矩阵乘法的核心函数。其行为根据输入数组的维度不同而变化,以下是详细说明: 1. 输入为两个一维数组(向量&#…...
Unity--GPT-SoVITS接入、处理GPTAPI的SSE响应流
GPT-SoVITS GPT-SoVITS- v2(v3也可以,两者对模型文件具有兼容) 点击后 会进入新的游览器网页 ----- 看了一圈,发现主要问题集中在模型的训练很需要CPU,也就是模型的制作上,问题很多,如果有现有…...
Django初窥门径-Django REST Framework 基础使用
前言 在现代 Web 开发中,构建高效、安全且易于维护的 API 至关重要。Django REST framework(简称 DRF)作为 Django 生态中的强大工具,为开发者提供了创建 RESTful API 所需的完整解决方案。本文将详细介绍如何使用 Django 和 DRF 构建一个用户管理 API,涵盖环境配置、序列…...
LoRA中黑塞矩阵、Fisher信息矩阵是什么
LoRA中黑塞矩阵、Fisher信息矩阵是什么 1. 三者的核心概念 黑塞矩阵(Hessian) 二阶导数矩阵,用于优化问题中判断函数的凸性(如牛顿法),或计算参数更新方向(如拟牛顿法)。 Fisher信息矩阵(Fisher Information Matrix, FIM) 统计学中衡量参数估计的不确定性,反映数据…...
Redis哈希槽机制的实现
Redis哈希槽机制的实现 Redis集群使用哈希槽(Hash Slot)来管理数据分布,整个集群被划分为固定的16384个哈希槽。当我们在集群中存储一个键时,Redis会先对键进行哈希运算,得到一个哈希值。然后,Redis将该哈…...
docker pull 提示timeout
通过命令行拉取对应的mysql版本提示网络超时。 开始排查,首先确认是否能浏览器访问。ok的,可以正常访问。 终端curl 排查嗯 有问题 改了下 终端 vim ~/.zshrc 加入 export HTTP_PROXY"http://127.0.0.1:7890" export HTTPS_PROXY"…...
(超详细) ETL工具之Kettle
Kettle简介 kettle最早是一个开源的ETL工具,后命名为Pentaho Data Integration。由JAVA开发,支持跨平台运行,其特性包括:支持100%无编码、拖拽方式开发ETL数据管道,可对接包括传统数据库、文件、大数据平台、接口、流…...
