LLM的基础模型5:Embedding模型

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

Embedding模型概览

Embeddings是自然语言处理技术中很重要的基石。它有很多种模型,从GloVe、word2vec、FastText、Bert、RoBERTa、XLNet、OpenAI ada、Google VertexAI Text Embeddings、Amazon SageMaker Text Embeddings和Cohere。每种模型都有优劣,如何去分析这些Embeddings技术,重点可以关注如下的参数信息:能否在编码中捕获上下文信息、能够处理非词表之外的单词、泛化的能力、预训练的效率、是否免费、最终效果质量。

一般而言在大型文本语料库上经过良好训练并且能够很好地捕获单词上下文的模型,那么GloVe、word2vec 或 FastText都是不错的选择。

若某个业务场景急需更好的捕获单词上下文,而且变现需要优于Bert,那么RoBERTa或XLNet是不错的选择。

其他大公司的Embeddings模型,有免费也有收费的。OpenAI、Google、Amazon都可以按需选择。

Embedding模型和训练数据有关,用于训练模型的训练数据的大小和质量更大更高,则会产生更好的模型。还有一些选择的限制,例如XLNet是问答和自然语言推理的最佳选择,而RoBERTa是文本摘要和机器翻译的最佳选择。

Word2Vec

Word2Vec有两种,CBOW和Skip-Gram,很多资料都没有划对重点。那么接下跟随小鲁来正确打开。

先铺垫下背景,假如已经拥有某个语料库,需要对语料库的词汇进行Embedding(下文统一称为编码)。那么可以将语料库的所有文本串起来。然后预设窗口的大小(下图的示例为5),每个窗口正中的橙色部分即为目标单词,而绿色部则为上下文单词。随着窗口的滑动,就可以获取很多的样本(目标单词,上下文单词)。然后利用这些样本进行编码器的训练。

那么CBOW和Skip-gram的区别就在于CBOW是用上下文的字符去预测目标单词,而Skip-gram则是用目标单词去预测上下文单词。

是不是到这里开始有点凌乱了,不是embedding model么,不是学习编码么,怎么变成预测了?其实就是通过刚才获取的样本进行训练编码,以CBOW为例,将这个过程放大如下图。

四个上下文单词输入经过一层的矩阵运算之后,得到了中间变量,然后在通过另外一个矩阵运算算出目标单词,然后将目标单词和预测的结果对比,反过来调整两个矩阵的权重。如此反复直到损失收敛。

这个过程其实就是为了通过训练得到橙色的两个矩阵,前面的矩阵学名为查询矩阵,后面矩阵学名为上下文矩阵。任何的输入通过这两个矩阵就可以编码。回到刚才的两种算法,无论谁预测谁,目标都是为了校正这两个矩阵。

下面是数学版本的推理过程,数学小白可以跳过。输入V维(也就是词汇表为V),每个词汇用N维的向量表示,那么需要学习的矩阵就是一个V*N维,一个N*V维。

Co-occurrence Vector

上一篇文章发布之后,有好学的同学咨询若滑动窗口,按照统计学的方法其实也可以得到一个矩阵,那么是如何计算每个单词的编码。

假如,所拥有的语料就两个文档:

文档1: "all that glitters is not gold"

文档2: "all is well that ends well"

所有的词汇一共10个,假定滑动窗口大小为1,那么就可以构造右侧的矩阵。

然后针对这个10*10(N*N,N为总词汇数)的矩阵进行PCA或者SVD算法进行降维分解,形成k-维的向量,进而最终完成编码。例如start的编码就是[0.705,0.484]

本章小结

经过编码之后,所有单词对应的编码向量能够反应单词之间的关系。理解和搞清楚Embedding的原理是必须的,它是一切的基石,某种意义也是深度神经网络的灵魂,其实它就是人类所谓的抽象思维。大模型模拟人类解决了将海量的信息进行高效的压缩编码。

Embedding是一种很好的技术与思想,微软和Airbnb已经将它应用到推荐系统。主要参照了把Word Embedding应用到推荐场景的相似度计算中的方法,把每个商品项视为word,把用户行为序列视为一个集合。通过获取商品相似性作为自然语言中的上下文关系,构建神经网描绘商品在隐空间的向量表示。

Airbnb通过Embedding捕获用户的短期兴趣和长期兴趣,即利用用户点击会话和预定会话序列。这里默认浏览点击的房源之间存在强时序关系,即前面查看房源会对影响后面查看房源的印象。通过客户点击或预定方式生成租客类型、房租类型等的Embedding,来获取用户对短期租赁和长期租赁兴趣。

总而言之,Embedding对于时序的场景有着灵活的运用方式,本质上提取时序中前后的关系,进而在N-维的空间中获取内在的联系和逻辑。当然目前为止最出色的还是人脑,对于外界事件的分析、检索和反应几乎在一瞬间完成,而且处于低功耗。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

三十七、openlayers官网示例Earthquakes Heatmap解析——在地图上加载热力图

官网demo地址: Earthquakes Heatmap 这篇主要介绍了热力图HeatmapLayer HeatmapLayer 是一个用于在地图上显示热力图的图层类型,通常用于表示地理数据中的密度或强度。例如,它可以用来显示地震、人口密度或其他空间数据的热点区域。在这个示…

Siemens-NXUG二次开发-创建倒斜角特征、边倒圆角特征、设置对象颜色、获取面信息[Python UF][20240605]

Siemens-NXUG二次开发-创建倒斜角特征、边倒圆角特征、设置对象颜色、获取面信息[Python UF][20240605] 1.python uf函数1.1 NXOpen.UF.Modeling.AskFaceData1.2 NXOpen.UF.Modeling.CreateChamfer1.3 NXOpen.UF.ModlFeatures.CreateBlend1.4 NXOpen.UF.Obj.SetColor 2.实体目标…

lib库和dll库的介绍和使用

lib(静态库) 静态库定义:.lib文件是静态库文件,包含了在编译时被链接到目标程序的代码。使用静态库时,库的代码会被复制到最终生成的可执行文件中。优点: 性能:由于库代码在编译时就被集成到可…

分布式架构与分布式理论

文章目录 分布式架构什么是分布式系统分布式系统特性分布式系统面临的问题 分布式理论数据一致性CAP理论BASE理论 分布式架构 什么是分布式系统 分布式系统是一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。 所谓分…

Vue的APP实现下载文件功能,并将文件保存到手机中

Vue的APP实现下载文件功能,并将文件保存到手机中 文字说明后台核心代码前台核心代码运行截图项目链接 文字说明 本文介绍Vue实现的APP,将文件下载并保存到手机中,为系统提供导出功能;同时支持导入,即选择本地的文件后&…

Ubuntu18.04 文件管理器无法打开的解决方法

问题:打开Ubuntu虚拟机发现文件管理器无法打开,一直在转圈圈 在终端中输入 nautilus 显示如下信息 nautilus: symbol lookup error: /usr/lib/x86_64-linux-gnu/tracker-2.0/libtracker-data.so.0: undefined symbol: sqlite3_bind_pointer 解决措施&#xff1a…

LabVIEW 反向工程的实现与法律地位

什么是LabVIEW反向工程? 反向工程是指从现有的应用程序或软件中推导出其设计、架构、代码等信息的过程。对于LabVIEW而言,反向工程涉及从现有的VI(虚拟仪器)文件、项目或应用程序中提取出设计思路、功能模块、算法实现等。 LabV…

Spring Boot整合Jasypt 库实现配置文件和数据库字段敏感数据的加解密

😄 19年之后由于某些原因断更了三年,23年重新扬帆起航,推出更多优质博文,希望大家多多支持~ 🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Mi…

大数据学习问题记录

问题记录 node1突然无法连接finalshell node1突然无法连接finalshell 今天我打开虚拟机和finalshell的时候,发现我的node1连接不上finalshell,但是node2、node3依旧可以链接,我在网上找了很多方法,但是是关于全部虚拟机连接不上finalshell&a…

大模型时代,是 Infra 的春天还是冬天?

Highlights 大模型时代元年感悟 Scaling Laws 是大模型时代的摩尔定律,是最值得研究的方向 LLM 发展的三个阶段: 算法瓶颈 -> 数据瓶颈 -> Infra 瓶颈 为什么 GPT 一枝独秀, BERT、T5 日落西山? 大模型时代,是大部分 Infra 人的冬天,少部分 Infra 人的春天(算法研…

算法金 | 一文读懂K均值(K-Means)聚类算法

​大侠幸会,在下全网同名[算法金] 0 基础转 AI 上岸,多个算法赛 Top [日更万日,让更多人享受智能乐趣] 1. 引言 数据分析中聚类算法的作用 在数据分析中,聚类算法用于发现数据集中的固有分组,通过将相似对象聚集在一…

统一响应,自定义校验器,自定义异常,统一异常处理器

文章目录 1.基本准备(构建一个SpringBoot模块)1.在A_universal_solution模块下创建新的子模块unified-processing2.pom.xml引入基本依赖3.编写springboot启动类4.启动测试 2.统一响应处理1.首先定义一个响应枚举类 RespBeanEnum.java 每个枚举对象都有co…

信息学奥赛初赛天天练-20-完善程序-vector数组参数引用传递、二分中值与二分边界应用的深度解析

PDF文档公众号回复关键字:20240605 1 2023 CSP-J 完善程序1 完善程序(单选题,每小题 3 分,共计 30 分) 原有长度为 n1,公差为1等升数列,将数列输到程序的数组时移除了一个元素,导致长度为 n 的开序数组…

云原生架构案例分析_5.某体育用品公司云原生架构的业务中台构建

1.背景和挑战 某体育用品公司作为中国领先的体育用品企业之一,在2016年,某体育用品公司启动集团第三次战略升级,打造以消费者体验为核心的“3”(“互联网”、“体育”和“产品”)的战略目标,积极拥抱云计算…

NeuralForecast TokenEmbedding 一维卷积 (Conv1d) 与矩阵乘法

NeuralForecast TokenEmbedding 一维卷积 (Conv1d) 与矩阵乘法 flyfish TokenEmbedding中使用了一维卷积 (Conv1d) TokenEmbedding 源码分析 在源码的基础上增加调用示例 下面会分析这段代码 import torch import torch.nn as nn class TokenEmbedding(nn.Module):def __i…

SEO 与 PPC 之间的区别

按点击付费 (PPC): PPC 是一种网络营销技术,广告商在每次点击广告时向网站支付一定金额,广告商只为符合条件的点击付费。Google 广告、Bing 和 Yahoo 广告基于按点击付费的概念。PPC是用于在搜索引擎首页上列出的最快方…

鸿蒙开发接口安全:【@system.cipher (加密算法)】

加密算法 说明: 本模块首批接口从API version 3开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 导入模块 import cipher from system.ciphercipher.rsa rsa(Object): void RSA 算法加解密。 系统能力: SystemCapabil…

K8S==ingress配置自签名证书

安装openssl Win32/Win64 OpenSSL Installer for Windows - Shining Light Productions 生成证书 openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout example.local.key -out example.local.crt -subj "/CNexample.local/Oexample.local"创建K8S secr…

【简单讲解TalkingData的数据统计】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

Vue3中的常见组件通信之mitt

Vue3中的常见组件通信之mitt 概述 ​ 在vue3中常见的组件通信有props、mitt、v-model、 r e f s 、 refs、 refs、parent、provide、inject、pinia、slot等。不同的组件关系用不同的传递方式。常见的撘配形式如下表所示。 组件关系传递方式父传子1. props2. v-model3. $refs…