【AIGC】Embedding与LLM:token长度限制困局下,长文本LLM应用的暂缓之计
【详细内容首发于微信公众号(Hobbes View)】
什么是Embedding?
Embedding是一种多维向量数组,由一系列数字组成,可以代表任何事物,如文本、音乐、视频等。在这里我们将重点关注文本部分。Embedding之所以重要,是因为它让我们可以进行语义搜索,也就是通过文本的含义进行相似性检索。
为什么Embedding在AI中如此重要?
Embedding在AI中的重要性在于,它可以帮助我们解决LLM的tokens长度限制问题。通过使用Embedding,我们可以在与LLM交互时,仅在上下文窗口中包含相关的文本内容,从而不会超过tokens的长度限制。
如何将Embedding与LLM结合?
我们可以利用Embedding,在和LLM交互时,仅包含相关的文本内容。具体操作方法是,首先将文本内容分块并转换为向量数组,然后将其存储在向量数据库中。在回答问题时,我们可以使用相似性搜索将问题向量与文档向量进行比较,找到最相关的文本块,然后将这些文本块与问题一起输入到LLM中,得到准确的回答。

举例来说
我们可以利用Embedding,在和LLM交互时,仅包含相关的文本内容。以一个巨大的书籍PDF文件为例,假设这是一本讲述人类历史的书籍。我们希望从中提取关于某个重要历史人物的信息,但不想阅读整个文件。
具体操作方法是:
- 将PDF文件的文本内容分块。
- 使用Embedding模型将每个文本块转换为向量数组。
- 将这些向量数组存储在向量数据库中,同时保存向量数组与文本块之间的关系。
当我们需要回答关于该PDF文件的问题时,例如:“作者对xxx人物的看法是什么?”我们可以:
- 使用Embedding模型将问题转换为向量数组。
- 使用相似性搜索(如,chatGPT推荐的余弦相似度)将问题向量与PDF文件的向量进行比较,找到最相关的文本块。
- 将找到的最相关文本块与问题一起输入到LLM(如GPT-3)中,得到准确的回答。
通过这种方法,我们可以将Embedding与LLM结合,实现高效的文本搜索和问答功能。目前比较火的类chatPDF、以及文档问答产品都采用类似的技术。
产品案例
开源fireBase解决方案SupBase二月份时就推出了一款基于chatGPT API的,支持问答的文档系统(https://supabase.com/blog/chatgpt-supabase-docs)
其中就对这个文档系统的技术路径进行了相应的描述:

一些值得参考的资料
- https://openai.com/blog/introducing-text-and-code-embeddings (主要是关于基于embedding的文本与代码搜索的)
- https://github.com/openai/openai-cookbook/blob/main/examples/Question_answering_using_embeddings.ipynb (openAI提供的jupyter基于embedding的QA代码示例)
- https://supabase.com/blog/chatgpt-supabase-docs
【AIGC】Embedding与LLM:token长度限制困局下,长文本LLM应用的暂缓之计的更多相关文章
- Java整型数组的最大长度到底有多长?
Java整型数组的最大长度到底有多长? 今天上网查了一下,各种说法都有,这个问题似乎总困扰我们Java初学者,无奈,只好自己试了一下,以下是我的测试代码,如果有错误,还望不吝赐教! 使用eclipse ...
- 应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) String.prototype.len=function(){return this.replace(/[^\x00-\xff]/g,"aa").length;}
应用:计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) String.prototype.len=function(){return this.replace(/[^\x00-\xff] ...
- Token:共识的下一个100年,区块链技术是无可阻挡的文明进程
Token:共识的下一个100年,区块链技术是无可阻挡的文明进程.很少有人意识到,区块链的应用——Token可能是近100年来最伟大的制度创新,超越股份制,并将是『债券』之后最重要最主流的交易品种,没 ...
- codevs 1862 最长公共子序列(求最长公共子序列长度并统计最长公共子序列的个数)
题目描述 Description 字符序列的子序列是指从给定字符序列中随意地(不一定连续)去掉若干个字符(可能一个也不去掉)后所形成的字符序列.令给定的字符序列X=“x0,x1,…,xm-1”,序列Y ...
- httprunner学习3-extract提取token值参数关联(上个接口返回的token,传给下个接口请求参数)
前言 如何将上个接口的返回token,传给下个接口当做请求参数?这是最常见的一个问题了. 解决这个问题其实很简单,我们只需取出token值,设置为一个中间变量a,下个接口传这个变量a就可以了.那么接下 ...
- python发送requests请求时,使用登录的token值,作为下一个接口的请求头信息
背景介绍: 发送搜索请求时,需要用到登录接口返回值中的token值 代码实现: 登录代码: 搜索接口:
- python中的标识符长度能有多长
在python中,标识符可以还是任意长度.此外,我们在命名标识符时还必须遵守以下规则 1 只能以下划线或者A-Z/a-z中字母开头 2 其余部分可以使用A-Z/a-z/0-9 3 区分大小写 4 关键 ...
- Post请求方式长度參数过长导致參数为空
Post提交方式本身对于參数的长度没有限制,HTTP协议也没有限制. 可是今天在做一个web项目的时候碰到一个问题,当要提交的表单内容达到一定大小时,发现后台代码接收到的參数为空. 查询了一下.发现是 ...
- 算法进阶 (LIS变形) 固定长度截取求最长不下降子序列【动态规划】【树状数组】
先学习下LIS最长上升子序列 看了大佬的文章OTZ:最长上升子序列 (LIS) 详解+例题模板 (全),其中包含普通O(n)算法*和以LIS长度及末尾元素成立数组的普通O(nlogn)算法,当然还 ...
- JS指定音频audio在某个时间点进行播放,获取当前音频audio的长度,音频时长格式转化
前言: 今天接到一个需求,需要获取某个.mp3音频文件的时间长度和指定音频audio在某个时间点进行播放(比如说这个视频有4分钟,我要让它默认从第2秒的时候开始播放),这里当然想到了H5中的audio ...
随机推荐
- 修复一个kubernetes集群
前几天有个朋友把他们的kubernetes集群搞挂了,让我帮忙恢复一下,由于很多现场都没有了,这里提供一下解决思路. 环境问题 该环境有一个master节点,即控制面pod(etcd.schedule ...
- 如何正确的使用CMDB?
为什么说CMDB在企业中很难被使用起来?第一,CMDB的数据集成与准确性维护是一大挑战,因为需要确保来自多个异构IT系统的配置信息能够实时.准确地同步与更新.第二,复杂的IT环境和快速变化的业务需求使 ...
- Vmware Workstation的虚拟机如何通过宿主机的无线网卡和外部通信
今天需要在我的笔记本w10电脑上安装一个linux虚拟机,苦于我的w10是家庭版,没有hyper-v功能,所以安装了 vmware的workstation的软件,然后创建了虚拟机,但是总是搞不定如何让 ...
- UniswapV2Pair细节
UniswapV2Pair合约是Uniswap V2协议中的核心部分,用于管理流动性池.代币交换.流动性代币的铸造和销毁等操作.以下是对UniswapV2Pair合约中所有主要方法及其参数的详细讲解. ...
- mac 搭建 paho.mqtt.cpp 二次开发环境搭建
mac 搭建 c mqtt 二次开发环境搭建 参考教程 # 下载源码 git clone https://github.com/eclipse/paho.mqtt.c.git # 使用make 编译 ...
- 基于Java+SpringBoot+Mysql实现的古诗词平台功能设计与实现六
一.前言介绍: 1.1 项目摘要 随着信息技术的迅猛发展和数字化时代的到来,传统文化与现代科技的融合已成为一种趋势.古诗词作为中华民族的文化瑰宝,具有深厚的历史底蕴和独特的艺术魅力.然而,在现代社会中 ...
- PCI 设备 RTX 驱动开发方法 -5565反射内存
PCI 设备 RTX 驱动开发方法 RTX 下操作外设时, 需要把设备从 Windows 移动到 RTX 下面,具体移植方法可以参考 RTX Help 文档中间 Converting a Window ...
- Abp源码分析之虚拟文件系统Volo.Abp.VirtualFileSystem
前言 Volo.Abp.VirtualFileSystem 是ABP(ASP.NET Boilerplate)框架中的一个重要组件,它提供了一种抽象文件系统的方式,使得应用程序可以轻松地访问和管理文件 ...
- cmu15545-索引并发控制(Concurrent Indexes)
目录 Overview Lock和Latch辨析 设计目标 大致分类 Hash Table Latches Page Latches Slot Latches B+Tree Latches 并发问题 ...
- 【一步步开发AI运动小程序】十九、运动识别中如何解析RGBA帧图片?
引言 最近有不少开发者向我们咨询,像体测.赛事等应用场景中,需要保存运动过程的图像,如何将相机抽取的RGBA帧图像解析成.jpg或.png格式的图像?今天我们就为您介绍相应的解决方案. 一.RGBA图 ...