LLM的基础模型4:初识Embeddings

大模型技术论文不断,每个月总会新增上千篇。本专栏精选论文重点解读,主题还是围绕着行业实践和工程量产。若在某个环节出现卡点,可以回到大模型必备腔调或者LLM背后的基础模型新阅读。而最新科技(Mamba,xLSTM,KAN)则提供了大模型领域最新技术跟踪。若对于具身智能感兴趣的请移步具身智能专栏。技术宅麻烦死磕AI架构设计。

Embeddings

Embeddings会分为两个章节,前部分主要还是放在常规方法总结,后者主要放在神经网络技术。其实这个英文单词不难理解,就是将对象用数字标识描述。其实一直纠结是否要讲述这个话题,因为可深可浅。

若要用一句话概括,就是给输入分配一个数字标识,可以是一个整数数值也可以是一个向量。不过最重要的目的是在模型训练的过程中能够高效且有效的学习参数。

这里需要解释下向量,例如apple可以使用三维的向量[0.95,0.23,-0.23]来表示,也可以使用四维的向量来表示[0.95,0.23,-0.23,0.12],请注意下图中Embedding Dimensions这一列,不同模型的Embedding维度不一

one-hot encoding

这是一种最直观,也是最不需要动脑子的编码模式。假如有10000个对象,那么每个对象就是一个10000维的向量,朴素也暴力。例如apple这个词在第50个,那么apple对应的编码就是:10000维的向量,这个向量除了第50个为1之外,其余的数值均为0。

#词汇表Vocabulary:{'mat', 'the', 'bird', 'hat', 'on', 'in', 'cat', 'tree', 'dog'}#词汇表中词汇和位置的映射Word to Index Mapping:{'mat': 0, 'the': 1, 'bird': 2, 'hat': 3, 'on': 4, ……}#输入一句话的编码矩阵One-Hot Encoded Matrix:cat: [0, 0, 0, 0, 0, 0, 1, 0, 0]in:  [0, 0, 0, 0, 0, 1, 0, 0, 0]the: [0, 1, 0, 0, 0, 0, 0, 0, 0]hat: [0, 0, 0, 1, 0, 0, 0, 0, 0]dog: [0, 0, 0, 0, 0, 0, 0, 0, 1]on:  [0, 0, 0, 0, 1, 0, 0, 0, 0]the: [0, 1, 0, 0, 0, 0, 0, 0, 0]mat: [1, 0, 0, 0, 0, 0, 0, 0, 0]bird:[0, 0, 1, 0, 0, 0, 0, 0, 0]in:  [0, 0, 0, 0, 0, 1, 0, 0, 0]the: [0, 1, 0, 0, 0, 0, 0, 0, 0]tree:[0, 0, 0, 0, 0, 0, 0, 1, 0]

这种编码方式的缺点显而易见,One-hot编码会产生高维向量,使其计算成本高昂且占用大量内存,尤其是在词汇量较大的情况下;它不捕捉单词之间的语义关系;它仅限于训练期间看到的词汇,因此不适合处理词汇表之外的单词。

Feature Vector

第二种编码方式是基于特征,其实彩色图片是一种很好的例子。做过视觉学习的都知道彩色图片常见的有三种通道(三维向量),分别代表RGB(红绿蓝)。三种颜色取不同的值就可以合成任意一个位置的色块。举个例子橘色其实就可以使用orange = [1, .5, 0]来表示。说白了就是每个维度代表一种特征,然后组合起来就能代表一个输入对象。

为了加深大家的理解,上图这个例子更加直观。假如约定的编码只有4个维度,分别是“春夏秋冬”,那么上图右侧框框中的事物都可以使用下面的编码来替代。具体的意思就是这个物体是不是在四季节出现,当然学过数学组合的都知道这种编码方式只能将整个世界的对象分成16类。但是它已经开始在编码中存储对象之间的某种关系。

emoji = [spring, summer, autumn, winter]🌳    = [1, 1, 1, 0]🍂    = [1, 0, 0, 0]🍁    = [1, 0, 0, 0]🌻    = [0, 1, 0, 0]🎁    = [0, 0, 1, 1]🎅    = [0, 0, 1, 1]...etc

这种编码模式更加符合人脑,人类在记忆某种事物的时候其实也是某种编码,例如看到笔,一般会浮现它的形状,属性和相关的事物,例如纸张。

Document Vector

换个思路,假如收集了大量的文章,然后将文章里面的字词在文章中出现的次数做个标记。可以得到如下的矩阵:每一列代表着文章编号,每一行代表某个词,通过观察图片你就会发现其实traffic和network是不是有点相似,按照这个编码其实也是一种思路。

Co-occurrence Vector

顺着刚才的思路,其实还有一种编码的办法:可以将文章按照特定的长度进行窗口的滑动,然后统计在这个窗口里面单词之间的关联次数。下图给出例子,从其中可以发现其实data和mining还是挺相似的。这种编码的好处在于这种类型的embedding可以准确地捕获单词的使用含义(毕竟单词的含义会根据使用的时间、社区和上下文而变化)。

Neural Embedding

除了基于传统的统计学方法,其实可以采用神经网络来帮助自动化的抽取信息,方法很多。为了帮助大家更好的理解,这里先引入较早机器学习的一个术语,自编码器。其实它的历史很悠久,只不过到近期才被发扬光大而已。

如何理解自编码器呢,请看下图:

当输入一副图、一段语音或者一段文字的时候,通过绿色部分的神经网络,然后输出一个向量,紧接着再将这个向量输入紫色部分的神经网络,紫色部分的输出为重建之后的图、语音或者文字。最后用输出和真实值对比出差异反过来调整两个神经网络的参数。如此循环!

聪明的你一定反应过来了,要是重建之后的正确率很高的话。那么中间变量是不是经过压缩的向量,代表了原图,原语音或者原文。对了!这个就是自编码器。

那么中间的向量代表什么,其实是可以的解释。以输入“图片”为例,中间的向量有些维度描述对象特征,有些描述了材质。有人曾经做过实验,语音通过自编码器之后,中间向量有一部分代表内容,一部分代表音调。取一段中文和一段日文的语音输入编码器,然后将两个向量拆分组合,是可以重建出日语说中文。

如何用神经网络用于Embedding,下文会展开详细讲解。整体的基本思路还是在于将单词的上下文和情景信息,通过神经网络的参数训练进行编码。

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

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

相关文章

2024.5.30

思维导图 代码 #include <iostream>using namespace std; class Rect { private:int width;int height; public:void init(int w,int h){width w;height h;}void set_w(int w){width w;}void set_h(int h){height h;}void show(){int zhou (width height) * 2;int…

vue-router 源码分析——2. router-link 组件是如何实现导航的

这是对vue-router 3 版本的源码分析。 本次分析会按以下方法进行&#xff1a; 按官网的使用文档顺序&#xff0c;围绕着某一功能点进行分析。这样不仅能学习优秀的项目源码&#xff0c;更能加深对项目的某个功能是如何实现的理解。这个对自己的技能提升&#xff0c;甚至面试时…

使用raise语句抛出异常

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 如果某个函数或方法可能会产生异常&#xff0c;但不想在当前函数或方法中处理这个异常&#xff0c;则可以使用raise语句在函数或方法中抛出异常。rai…

车联网安全之GPS欺骗

随着车辆GPS技术的广泛应用&#xff0c;其在导航、交通监控等方面的关键性日益凸显&#xff0c;与之相关的安全性问题也备受关注。GPS欺骗便是其中一种重要的威胁手段。 本文旨在使用模拟GPS欺骗设备&#xff0c;模拟不同的GPS攻击以评估其对车辆定位系统的影响。通过这个实验…

「不只是框架:Django REST framework的超能力大揭秘」

想要让你的API服务像五星级餐厅一样令人难忘吗&#xff1f;今天阿佑将为你揭晓&#xff01;从基础的RESTful原则到Django REST framework的高级特性&#xff0c;我们一步步带你走进API开发的后厨&#xff0c;展示如何准备食材&#xff08;数据模型&#xff09;、调制酱料&#…

记录一次云服务器无法连接的排查过程

运行环境&#xff1a;阿里云服务器 故障外显原因&#xff1a;登录失败,操作系统禁用了密码登录方式 控制台监控数据显示云盘读写BPS拉满了 因为之前问过线上售后&#xff0c;让安装了atop监控&#xff0c;&#xff0c;所以先打开atop日志&#xff1a; atop -r /var/log/atop…

try…except…else语句

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 在Python中&#xff0c;还有另一种异常处理结构&#xff0c;它是try…except…else语句&#xff0c;也就是在原来try…except语句的基础上再添加一个…

关于博图17安装体验过程—博图17安装失败原因(STEP7 许可证找不到)

目录 一、序言 二、正片 一、序言 该失败原因是在我使用Win11专业版安装博图17时出现的问题&#xff0c;也仅代表我的体验过程&#xff01;以下我将安装过程和解决问题的过程描述一下&#xff0c;希望可以帮助和我一样自己安装博图时能够解决出现的问题。 二、正片 如果阁下…

DRIVEN|15分的CNN+LightGBM怎么做特征分类,适用于转录组

说在前面 今天分享一篇做深度学习模型的文章&#xff0c;这是一篇软硬结合的研究&#xff0c;排除转换实体产品&#xff0c;我们做生信基础研究的可以学习模仿这个算法&#xff0c;适用且不局限于临床资料&#xff0c;转录组数据&#xff0c;GWAS数据。 今天给大家分享的一篇文…

构造+割点,F2. Spanning Tree with One Fixed Degree

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 Problem - 1133F2 - Codeforces 二、解题报告 1、思路分析 考虑以根节点为割点&#xff0c;会有若干个连通块 连通块的数目为根节点至少要连出去的边&#xff0c;不妨记为mi 如果mi > D&#xff0c;那…

分享一个 ASP.NET WebForm 使用 Form Authentication 的例子

前言 前些天一个朋友说他们客户的网站出了点故障&#xff0c;让我帮忙看看&#xff0c;这个网站还是用 ASP.NET WebForm 做的&#xff0c;很久以前的技术了&#xff0c;不过很多客户就是这样&#xff0c;只要网站还能稳定地运行&#xff0c;一般就不会去折腾升级&#xff0c;_…

未来以来!鸿蒙生态爆发式增长,程序员新出路火速Get。

鸿蒙生态取得爆发式增长&#xff01; 鸿蒙生态建设速度突飞猛进&#xff0c;不仅有超4000款应用加速开发&#xff0c;众多头部SDK伙伴也在积极加入&#xff0c;为开发者提供构建鸿蒙原生应用所需的多项能力。近期&#xff0c;友盟移动统计SDK、神策数据SDK、阿里云日志服务SDK…

【TB作品】msp430g2553单片机,秒表,LCD1602,Proteus仿真

功能 秒表 动图&#xff1a; 部分代码 这段代码是用C语言编写的&#xff0c;用于在基于德州仪器MSP430微控制器的平台上实现一个简易的电子秒表功能。 #include <msp430.h> #include "LCD.h"unsigned int second 0; unsigned int millisecond10…

向量化:机器学习中的效率加速器与数据桥梁

在机器学习领域的广袤天地中&#xff0c;向量化技术以其独特的魅力&#xff0c;为数据处理和模型训练注入了强大的动力。本文将深入探讨向量化在机器学习领域中的体现&#xff0c;剖析其如何助力模型实现高效的数据处理和精确的结果预测&#xff0c;并通过丰富的案例和详尽的数…

一文了解JVM(中)

HotSpot 虚拟机对象探秘 对象的创建 Header解释使用 new 关键字调用了构造函数使用 Class 的 newInstance 方法调用了构造函数使用 Constructor 类的newInstance 方法调用了构造函数使用 clone 方法没有调用构造函数使用反序列化没有调用构造函数说到对象的创建,首先让我们看…

路由策略简介

一、路由策略 1、定义: 路由策略(RoutingPolicy)作用于路由&#xff0c;主要实现了路由过滤和路由属性设置等功能&#xff0c;它通过改变路由属性(包括可达性)来改变网络流量所经过的路经。 2、目的 设备在发布、接收和引入路由信息时&#xff0c;根据实际组网需要实施一些策…

【深度学习代码缝合教程】二:适用于新手小白的超详细模块+模块=新模块的代码缝合

参考B站教学视频&#xff1a; 深度学习网络缝合模块&#xff0c;模块缝模块 如何对主干网络模块进行代码缝合&#xff1a; 【深度学习代码缝合教程】一&#xff1a;适用于新手小白的超详细深度学习主干网络模块代码缝合 上一篇写了如何把模块放进自己的主干网络进行模块的融合…

SEO代理是什么?代理IP在SEO优化中的应用

在搜索引擎优化 (SEO) 领域&#xff0c;拥有一个好的代理对于取得成功至关重要。代理充当您的设备和互联网之间的中介&#xff0c;允许您隐藏您的 IP 地址并使用不同的 IP 访问网络。在这篇博文中&#xff0c;我们将探讨为什么好的代理对 SEO 至关重要&#xff0c;以及它如何有…

【UnityShader入门精要学习笔记】第十七章 表面着色器

本系列为作者学习UnityShader入门精要而作的笔记&#xff0c;内容将包括&#xff1a; 书本中句子照抄 个人批注项目源码一堆新手会犯的错误潜在的太监断更&#xff0c;有始无终 我的GitHub仓库 总之适用于同样开始学习Shader的同学们进行有取舍的参考。 文章目录 表面着色器…