向量数据库Pinecone,治疗ChatGPT幻觉的药方?

大白话了解新鲜事,今天讲讲以Pinecone为代表的向量数据库。向量数据库Pinecone一夜爆火,4月27日B轮拿到了1亿美元的融资,估值达到7.5亿美元,一个2021年刚刚推出的数据库产品,火爆背后的原因是什么?
01 背景
自从AutoGPT,以及ChatGPT的Retrieval plugin推出之后(二者都推荐使用Pinecone),Pinecone的热度就快速上升,那么向量数据库和ChatGPT有什么关系?
「人们常常把大语言模型比喻成大脑,但这是一个被切除了颞叶的大脑,缺乏记忆,并且常常出现幻觉。」解决这些问题,我们常常需要借助向量数据库,这是它近期出现热度的原因。
失忆:ChatGPT没有记忆能力,有的人可能要说它明明记得我前面说过的话,这其实是因为你每一次prompt的时候,客户端会把「当前会话」所有的聊天记录作为一个大的prompt发给ChatGPT。因此,当你点击ChatGPT左侧的“New chat”新建会话后,ChatGPT就会忘了你说过的所有内容。
幻觉:大型语言模型会产生幻觉(Hallucination),指的是它会返回语法正确但语义上不正确的回答,这种胡说八道的情况,相信只要用过几次ChatGPT的小伙伴应该都遇到过。幻觉出现的原因是眼下的大语言模型还做不到真正理解语义(指像人类一样理解),它更多的是一种数学上的抽象推理,就像Meta的首席科学家Yann LeCun的所说,「大型语言模型正在编造东西,努力生成合理的文本字符串,而不理解它们的含义。」
02 向量
一个物体在平面上的位置可以用一个二维向量表示,如[3, 4],其中3表示横向的距离,4表示纵向的距离。又或者,一个飞机在三维空间中的位置可以用一个三维向量表示,如[2, 3, 4]。更高维的向量以此类推。不严格地说,向量就是一个数组,数组的长度就是向量的维度。
也可以具象化的理解向量,以上面的飞机为例,向量就是从三维坐标系原点出发指向飞机所在位置的一段箭头。

这样帮助我们后面更容易理解什么是向量之间的「相似度」——即两个箭头靠近的程度。怎么计算呢?最简单的就是“余弦相似度”——两个箭头之间的夹角越小,则两个向量相似度越高。
03 向量化
怎么将单词转化为向量表示呢?你可以硬编码,例如如果你的世界里只有苹果和梨,我们可以将苹果硬编码为二维向量[1, 0],将梨硬编码为[0, 1]

当然世界并不是只有苹果和梨,还有许多其他东西,这样向量化的维度太高(数组太长)、太稀疏(0值太多)、而且缺乏语义。现在人们都是用模型来生成向量(即embeddings),可以压缩维度,还能保留语义。保留语义的意思是,语义越相近的文本(如「ocean」和「sea」),embedding生成的向量相似度也越高。
Huggingface上有不少开源的embeddings模型,OpenAI也提供了text-embedding-ada-002模型来将文本向量化,有兴趣的可以看看。
04 向量数据库
向量数据库是一种专门用于存储和处理向量数据的数据库系统,它能够高效地进行向量相似度查询,这个「向量相似度」我们上面介绍过了。
向量数据库如何帮助大语言模型缓解记忆缺失和幻觉的问题呢?
原理很简单,针对幻觉问题,可以将所需领域的专业知识存入向量数据库,当要prompt时,系统自动的从向量数据库中根据「相似度」查找最相关的专业知识,把这些知识和你的prompt一同提交给ChatGPT,这样就可以有效减少幻觉的出现。记忆的问题也类似,可以选择把部分你和ChatGPT的聊天记录存入向量数据库,ChatGPT Retrieval plugin提供了这样的接口。

目前这种OP stack模式(OpenAI + Pinecone)已经逐渐在业界流行,连带着包括Weaviate、Milvus这类竞品的热度也在上涨,前几天翻看Redis官网的时候发现他们家也推出了向量数据库产品Redis VSS。
靠着紧抱AI大腿,向量数据库热度将会持续。另外公有云厂商如阿里云、AWS、GCP等,预计也会加大自己的向量数据库的开发投入。而互联网大厂作为各种AI模型的研发方和落地方,未来同样免不了加大对自研向量数据库的投入。所以,有兴趣的小伙伴可以深入学习一下,看看这个领域里还有什么花样可以玩。
(对了,如果有小伙伴还没试用过ChatGPT,我搭了一个小跳板,关注公众号“后厂村思维导图馆”,私信留言索要,同时,也可留言索要各类高清无水印思维导图,记得留下邮箱哦)
向量数据库Pinecone,治疗ChatGPT幻觉的药方?的更多相关文章
- ChatGPT 开源了第一款插件,都来学习一下源码吧!
3 月 23 日,OpenAI 又投出了一枚重磅炸弹:为 ChatGPT 推出插件系统! 此举意味着 ChatGPT 将迎来"APP Store"时刻,也就是围绕它的能力,形成一个 ...
- REDO 的内容:改变向量
REDO 的内容 ---改变向量 redo的内容并不是sql语句,他是放的一些改变,叫改变向量. 数据库恢复的时候并不是执行sql语句,而是一个物理的过程,是一个数据块的覆盖.是改变数据块的大小. 可 ...
- 用ChatGPT,绘制一个账号系统的C4架构图
hi,我是熵减,见字如面. 昨天我们用ChatGPT来设计一个账号系统,并尝试输出:模型表,类关系图,序列图,状态图等常用的架构设计中常用的元素. 今天,我们继续向更高层级延伸一下,看ChatGPT能 ...
- 读破万卷,神交古人,突破ChatGPT4096的Token限制,建立自己的垂直领域资料人工智能助理
ChatGPT的泛用性极高,上知天文,下通地理,参考古今,博稽中外,几乎无所不知,无所不晓.但如果涉及垂直领域的专业知识点,ChatGPT难免也会有语焉不详,闪烁其词的毛病,本次我们将特定领域的学习材 ...
- chinacloud大数据新闻
2015年大数据发展八大趋势 (0 篇回复) “数据很丰满,信息很骨感”:Sight Machine想用大数据的方法,打碎两者间的屏障 (0 篇回复) 百度携大数据"圈地" ...
- JSP应用开发 -------- 电纸书(未完待续)
http://www.educity.cn/jiaocheng/j9415.html JSP程序员常用的技术 第1章 JSP及其相关技术导航 [本章专家知识导学] JSP是一种编程语言,也是一种动 ...
- Oracle重做日志REDO
什么是重做? 重做日志包含所有数据产生的历史改变记录. 重做日志目的是保证数据的安全,如果数据因特殊原因没有写到磁盘上,可以通过重做日志来恢复. 重做日志文件通常用于 恢复(实例恢复和介质恢复) 日志 ...
- Faiss源码剖析:类结构分析
摘要:在下文中,我将尝试通过Faiss源码中各种类结构的设计来梳理Faiss中的各种概念以及它们之间的关系. 本文分享自华为云社区<Faiss源码剖析(一):类结构分析>,原文作者:HW0 ...
- 叮,GitHub 到账 550 美元「GitHub 热点速览 v.22.26」
作者:HelloGitHub-小鱼干 如果你关注 GitHub 官方动态,你会发现它们最近频频点赞世界各地开发者晒出的 GitHub $550 sponsor 截图,有什么比"白嫖" ...
- AI听曲识歌!哼曲、口哨吹,都能秒识! ⛵
作者:韩信子@ShowMeAI 深度学习实战系列:https://www.showmeai.tech/tutorials/42 自然语言处理实战系列:https://www.showmeai.tech ...
随机推荐
- GO语言学习笔记-反射篇 Study for Go ! Chapter nine - Reflect
持续更新 Go 语言学习进度中 ...... GO语言学习笔记-类型篇 Study for Go! Chapter one - Type - slowlydance2me - 博客园 (cnblogs ...
- Windows和Linux时间相差8个小时
安装linux系统比如deepin.ubuntu之后和Windows两个系统时间相差八个小时的解决方案: 在linux系统下依次输入下方命令: sudo apt install ntpdate sud ...
- 一次对pool的误用导致的.net频繁gc的诊断分析
(最近有读者朋友表示,希望能加一些示意图来描述分析过程中用到的原理知识.好的,之后我会注意,谢谢这位读者) 背景 有位朋友找我,希望我能帮看一下他的一个service.从他的描述看,并没有资源方面的泄 ...
- cron语句
名称 是否必须 允许值 特殊字符 秒 是 0-59 , - * / 分 是 0-59 , - * / 时 是 0-23 , - * / 日 是 1-31 , - * ? / L W C 月 是 1-1 ...
- Java -- 增强for循环(foreach)
增强for循环 相对于经典for循环, foreach可以减少代码量,但不是所有情况下foreach都可以代替for循环 当需要修改元素的值或和下标相关的操作需要使用标准for循环 foreach格式 ...
- 存储论——经济订货批量的R实现
存储论又称库存理论,是运筹学中发展较早的分支.早在 1915 年,哈李斯(F.Harris)针对银行货币的储备问题进行了详细的研究,建立了一个确定性的存贮费用模型,并求得了最佳批量公式.1934 年威 ...
- kubernetes 启用 PHP + Nginx 网页环境
kubernetes 启用 PHP + Nginx 网页环境 传统安装方式进行安装步骤较多,使用kubernetes可以实现快速启用环境,在测试或者线上都可以做到快速 启用 编写 yaml 文件 [r ...
- 一文彻底搞懂Raft算法,看这篇就够了!!!
最近需要设计一个分布式系统,需要一个中间件来存储共享的信息,来保证多个系统之间的数据一致性,调研了两个主流框架Zookeeper和ETCD,发现都能满足我们的系统需求.其中ETCD是K8s中采用的分布 ...
- Nordic nRF52系列/nRF5340硬件设计(一)选型及原理图设计
Nordic 的BLE系列芯片从第一代的nRF51系列,到第二代的nRF52系列,发展到目前最新的第三代的nRF5340.目前市场中使用最多的nRF52系列一共有七款芯片,它们是:nRF52805.n ...
- 机器学习(五):混合高斯聚类(求聚类标签)+PCA降维(3维降2维)习题
使用混合高斯模型 GMM,计算如下数据点的聚类过程: \(Data = np.array([1,2,6,7])\) 均值初值为: \(\mu_1, \mu_2 = 1, 5\) 权重初值为: \(w_ ...