首页 > 其他分享 >LLM的基础模型5:Embedding模型

LLM的基础模型5:Embedding模型

时间:2024-06-05 21:59:25浏览次数:19  
标签:编码 Embedding 模型 矩阵 单词 LLM 上下文

大模型技术论文不断,每个月总会新增上千篇。本专栏精选论文重点解读,主题还是围绕着行业实践和工程量产。若在某个环节出现卡点,可以回到大模型必备腔调或者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-维的空间中获取内在的联系和逻辑。当然目前为止最出色的还是人脑,对于外界事件的分析、检索和反应几乎在一瞬间完成,而且处于低功耗。

标签:编码,Embedding,模型,矩阵,单词,LLM,上下文
From: https://blog.csdn.net/Janexjy/article/details/139483126

相关文章

  • AI大模型引领未来,产品经理如何把握机遇?
    前言在科技日新月异的今天,我们正站在一个前所未有的历史转折点上,目睹着人工智能(AI)从概念走向现实,深刻地重塑着世界的每一个角落。其中,AI大模型的崛起尤为瞩目,它不仅是科技进步的象征,更是开启未来智能时代的一把钥匙。本文旨在探讨这一新兴技术趋势对产品经理角色的深远影响......
  • 回归模型的算法性能评价
    一、概述在一般形式的回归问题中,会得到系列的预测值,它们与真实值(groundtruth)的比较表征了模型的预测能力,为有效量化这种能力,常见的性能评价指标有可解释方差(EVS)、平均绝对误差(MAE)、均方误差(MSE)、均方根误差(RMSE)、决定系数(R2)等。值得一提的是,回归问题分单输出情形和多输出情形,在......
  • 赛博斗地主——使用大语言模型扮演Agent智能体玩牌类游戏。
    通过大模型来实现多个智能体进行游戏对局这个想对已经比较成熟了无论是去年惊艳的斯坦福小镇还是比如metaGPT或者类似的框架都是使用智能体技术让大模型来操控,从而让大模型跳出自身“预测下一个token”的文字功能去探索更多的应用落地可能性。不过一直没有真正操作过,直到前段时间......
  • 大语言模型应用指南:三类微调方法
    大语言模型应用指南:三类微调方法1.背景介绍1.1大语言模型的发展历程近年来,随着深度学习技术的快速发展,大语言模型(LargeLanguageModels,LLMs)在自然语言处理领域取得了显著的进展。从GPT-2、BERT到GPT-3、PaLM等,大语言模型的规模和性能不断提升,展现出了强大的语言......
  • Docker部署深度学习模型
    Docker部署深度学习模型基础概念DockerDocker是一个打包、分发和运行应用程序的平台,允许将你的应用程序和应用程序所依赖的整个环境打包在一起。比如我有一个目标检测的项目,我想分享给朋友,那么他首先需要在自己的电脑上配置好显卡驱动、CUDA、CuDNN,在拿到我的项目后,还需要安......
  • AI推介-多模态视觉语言模型VLMs论文速览(arXiv方向):2024.05.25-2024.05.31
    文章目录~1.EmpoweringVisualCreativity:AVision-LanguageAssistanttoImageEditingRecommendations2.Bootstrap3D:Improving3DContentCreationwithSyntheticData3.Video-MME:TheFirst-EverComprehensiveEvaluationBenchmarkofMulti-modalLLMsin......
  • STEEL ——首个利用 LLM 检测假新闻的框架算法解析
    1.概述近年来,假新闻的泛滥确实对政治、经济和整个社会产生了深远的负面影响。为了解决这一问题,人们开发了各种假新闻检测方法,这些方法试图通过分析新闻内容、来源和传播方式来识别虚假信息。然而,正如你所提到的,现有的假新闻检测方法存在一些局限性。其中一个主要问题是它......
  • 一切模型皆可联邦化:高斯朴素贝叶斯代码示例
    联邦学习是一种分布式的机器学习方法,其中多个客户端在一个中央服务器的协调下合作训练模型,但不共享他们的本地数据。一般情况下我们对联邦学习的理解都是大模型和深度学习模型才可以进行联邦学习,其实基本上只要包含参数的机器学习方法都可以使用联邦学习的方法保证数据隐私。所以......
  • Python数据分析案例45——基于融合模型(Stack)的电商用户购买行为预测
    案例背景最近618快到了,上电商购买的人很多,正好我手上还有这个用户购买行为的数据,就做了一个机器学习模型流程,然后也使用的都是常见的机器学习模型,但是加了一点创新吧,使用了stacking融合模型。简单来说就是使用了很多机器学习模型一起融合,这样的好处在于会降低方差,使预测结果更......
  • (三)Redis 线程与IO模型
    1、Redis单线程通常说Redis是单线程,主要是指Redis的网络IO和键值对读写是由一个线程来完成的,其他功能,比如持久化、异步删除、集群数据同步等,是由额外的线程执行的,所以严格来说,Redis并不是单线程。多线程开发会不可避免的带来并发控制和资源开销的问题,如果没有良好的系统......