坐标之间的距离怎么计算
大模型的局限性体现在缺少实时性、无法获取私有知识等方面,而RAG可以帮助解决私有知识问题,让私有知识库和AI大模型更好地融合。怎么理解RAG的原理、应用场景和优缺点?一起来看看本文的分享。
![](https://p0.ssl.img.360kuai.com/t0184af6e6c519817d7.jpg)
上文简单介绍了AI大模型非常重要的提示工程,今天我们继续学习检索增强生成(Retrieval-Augmented Generation,RAG)。
RAG可以将私有知识库和AI大模型融合,让大模型“知道”我们的私有知识,变得越来越“懂”我们。
一、AI大模型的局限性
使用过大模型的小伙伴应该知道,虽然大模型看起来无所不能,但是它也经常胡编乱造,没有足够的确定性,这也限制了大模型在各种场景的落地。
大模型的局限性,可以简单归纳为以下两点:
- 没有实时性:AI大模型的知识不是实时的,最新的GPT-4 Turbo也只是把知识库更新到2023年4月,所以无从得知该时间之后发生的事情。
- 无法获取私有知识:大模型的训练数据主要来源于互联网,不可能拿到个人或企业的私有数据,所以无法回答私有问题。
针对实时性问题,一般通过Actions或Function Calling(函数调用,可以理解为接口回调)等方式,让大模型实时调用搜索、地图、甚至企业自己实现的api,获取各种需要的实时信息,减少幻觉,提升确定性。
而RAG可以解决私有知识问题,它通过外挂知识库的方式,让大模型可以根据检索到的内容,回答私有库的相关问题,也就是所谓的检索增强,目的同样是提升确定性。
二、基本概念
RAG的核心目的是通过某种途径把我们的知识告诉给AI大模型,其核心流程就是根据用户提问,从私有知识中检索到“包含答案的内容”,然后把“包含答案的内容”和用户提问一起放到prompt(提示词)中,提交给大模型,此时大模型的回答就会充分考虑到“包含答案的内容”,看起来也就更“懂”我们。
那么具体要如何实现呢?再看一下核心流程,会发现有一个必须解决的问题,就是如何“根据用户提问,从私有知识中检索到包含答案的内容”,用户的提问是自然语言(包含复杂的语义理解),传统的关键字检索(Elastic Search)是无法理解语义的,这时候就需要引入向量检索的概念了。
- 向量:文本的语义关系在底层被处理为向量,向量就是一组浮点数,例如[0.72, 0.42, …],代表该文本在N维空间里的坐标。在空间中距离越近的向量,语义也就越接近。一般使用欧式距离或余弦距离来衡量向量的相似度。
- 向量检索:向量检索实际上是将文本分段转换成了一个个向量,通过余弦距离或欧式距离来计算两个向量之间的相似度,向量相似度越高,表示对应的文本语义相似度越高。
- 向量数据库:专门为向量检索设计的中间件。
我们可以通过向量检索来获得与用户问题语义最相近的私有知识库的内容,即便用户问题中没有包含关键字,也可以通过语义的相关性搜索到“包含答案的内容”。
实现RAG的具体步骤如下:
![](https://p0.ssl.img.360kuai.com/t011e95706b10640650.jpg)
- 加载私有知识库文档,并将文本切分为一个个小片段,需要注意切分的粒度,然后将切分后的文本转换成向量,存入向量数据库。
- 将用户的提问内容也转换成向量,在向量数据库中检索相似的文本内容,检索结果就是“包含答案的内容”。
- 将用户的提问内容和检索到的“包含答案的内容”组装成新的提示词,发给AI大模型。
- AI大模型参考“包含答案的内容”(私有化的知识资料),回答用户的问题。
这样我们就可以收获一位更“懂我”的大模型了。
三、应用场景
RAG可以有效扩展大模型的知识库,以下是一些具体的例子:
- 问答系统:RAG可以用于构建问答系统,用户提出问题,RAG模型从大规模的文档集合中检索相关的文档,然后生成回答。
- 对话系统:在对话系统中,RAG可以用于生成更丰富、更具信息量的回答。
- 文档生成:RAG可以用于生成包含特定信息的文档,例如新闻报道、研究报告等。
四、优缺点
RAG的优点:
- 生成的回答更丰富:由于在生成回答时会考虑检索到的文档,因此生成的回答通常更丰富、更具信息量。
- 能处理开放领域的问题:传统的生成模型通常只能处理特定领域的问题,而RAG模型可以处理开放领域的问题,因为它可以从大规模的文档集合中检索信息。
RAG的缺点:
- 计算成本高:RAG模型需要在大规模的文档集合中进行检索,这会增加计算成本。
- 依赖文档质量:RAG模型的性能在很大程度上依赖于文档的质量,如果文档质量差或切分粒度不合适,可能会影响模型的性能。
- 可能产生不准确的回答:虽然RAG模型可以生成丰富的回答,但是如果检索到的文档包含错误的信息,可能会导致生成的回答不准确。
五、总结
本文我们主要介绍了RAG的基本原理,RAG可以有效扩展大模型的知识库,有效提升回答的确定性,让AI大模型变得更加“懂”我们。
下篇文章,我会介绍如何让AI大模型连接外部世界,让大模型和我们的业务连接的更加紧密,甚至看起来“无所不能”,敬请期待。
本文由 @AI小当家 原创发布于人人都是产品经理,未经许可,禁止转载
题图来自 Unsplash,基于 CC0 协议
该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。
","gnid":"9d1aec7bb41d92443","img_data":[{"flag":2,"img":[{"desc":"","height":"420","title":"","url":"https://p0.ssl.img.360kuai.com/t0184af6e6c519817d7.jpg","width":"900"},{"desc":"","height":"637","title":"","url":"https://p0.ssl.img.360kuai.com/t011e95706b10640650.jpg","width":"920"}]}],"original":0,"pat":"art_src_3,fts0,sts0","powerby":"pika","pub_time":1708485960000,"pure":"","rawurl":"http://zm.news.so.com/308e6fea9227fdca43e493d8f92ceb47","redirect":0,"rptid":"67520c3b1ebc7083","rss_ext":[],"s":"t","src":"人人都是产品经理","tag":[],"title":"检索增强生成(RAG):如何让AI大模型更懂我?
何苏面1737知道两个xy坐标怎么计算距离
农法瑶19443603851 ______ 如果两个点的坐标参照系相同的话,对于同一平面内(即x、y相同Z相同)计算原理就按:两点坐标点X值之差的平方加Y值之差的平方后再开平方.如果不在同一平面内(...
何苏面1737在坐标中如何求两点之间的距离? -
农法瑶19443603851 ______[答案] 设a(x1,y1),b(x2,y2) 距离为(x1-x2)^2+(y1-y2)^2,然后开方.
何苏面1737如何获取两坐标之间的距离 -
农法瑶19443603851 ______ 用两点间坐标公式算,当作直角坐标系使.初中就学过.先看在X轴 上的两点之间的距离,高两点的坐标分别是X1和X2,那么两点间距离是|X1-X2|,同理在Y轴上也是一样,即|Y1-Y2| 那么在平面直角坐标系中,任意两点间距离,可以连接两点,再分别过两点作两坐标轴的平行线,这样就构成了一个直角三角形,通过第一段的叙述可以知道两的直角边分别是|X1-X2|,|Y1-Y2|,则利用勾股定理可知,斜边是 根号下(|X1-X2|的平方 |Y1-Y2|的平方)这个就是两点间距离公式.然后你再根据比例尺的大小算一下就好
何苏面1737怎么计算2个坐标点的距离?比如a坐标在 x轴50,y坐标在100而b坐标在x轴的180,y坐标在220怎么计算这2个坐标点之间的距离啊?看我的用户名就知道我是数... -
农法瑶19443603851 ______[答案] 上初中了吧 学勾股定理了没? 看书应该能明白:两坐标之间的距离为:√[(x1-x2)²+(y1-y2)²] 就上例来说两坐标的距离为:√[(180-50)²+(220-100)²]=10√313
何苏面1737关于已知两点XY坐标怎么算之间的距离在测量地形工作中已经有两个点的X和Y的坐标怎么计算两点之间的坐标.有没有公式的啊? -
农法瑶19443603851 ______[答案] 用一个点的横坐标减去另一个点的横坐标的的差值的平方,同样的用对应点点的纵坐标减去另一个点的纵坐标的的差值的平方,然后两个差值的平方和开根号就是了.
何苏面1737怎么由地图上的坐标算距离啊?地质图上的坐标怎么算距离:如有一区域四个点的坐标为X Y (1) 3815542.70 37470139.50(2) 3815537.00 37471977.10(3) ... -
农法瑶19443603851 ______[答案] 设经度为θ,纬度为φ,地球半径为R,球心角为α,球面距离为A 位于同一半球上的两点分别为1,2 cosα=sinφ1sinφ2+cosφ1cosφ2cos(θ1-θ2) 弧长A=Rarccosα=Rarccos(sinφ1sinφ2+cosφ1cosφ2cos(θ1-θ2))
何苏面1737两个坐标之间的距离怎么算? -
农法瑶19443603851 ______ (x2-x1 的平方 + y2-y1 的平方)开根号
何苏面1737怎么测量两点间的距离我刚到盖楼的工地上班想请教一下知道两点间的坐标怎么算出两点间的距离!公式是什么!我刚刚接触测量! -
农法瑶19443603851 ______[答案] 两点坐标分别为(x1,y1),(x2,y2). 距离d=根号[(x1-x2)^2+(y1-y2)^2] 根据勾股定理
何苏面1737两点间距离计算公式在平面直角坐标系中,两点之间的距离怎么求? -
农法瑶19443603851 ______[答案] 在平面内: 设A(X1,Y1)、B(X2,Y2), 则∣AB∣=√[(X1- X2)^2+(Y1- Y2)^2]
何苏面1737怎样在坐标图上求两点之间的距离 -
农法瑶19443603851 ______[答案] 想知道是什么坐标,有三种坐标 (1) 直角坐标,直接用公式: AB=√(x2-x1)²+(y2-y1)² (2) 球面坐标: AB的球面距离=球心角*球半径 (3) 极坐标: AB=√ρ1²+ρ2²-2ρ1ρ2cos(θ1-θ2)