Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >大型语言模型(LLMS)、可检索式增强生成(RAG)和AI缺失的存储层

大型语言模型(LLMS)、可检索式增强生成(RAG)和AI缺失的存储层

作者头像
山行AI
发布于 2024-01-12 07:04:21
发布于 2024-01-12 07:04:21
64400
代码可运行
举报
文章被收录于专栏:山行AI山行AI
运行总次数:0
代码可运行

人工智能迅速发展的背景下,尤其是语言模型机器(LLMs)已成为许多应用的真正支柱,从自然语言处理机器翻译到虚拟助手和内容生成。GPT-3及其继任者的出现标志着AI发展的一个重要里程碑,开启了一个时代,在这个时代中,机器不仅能理解,还能以惊人的熟练度生成类似人类的文本。然而,在这场AI革命的表面之下,隐藏着一个关键的缺失元素,这个元素有潜力解锁更大的AI能力:存储层。

关于LLMs的客观真理

让我们用一个LLM概述来设定背景。以下是过去几年中的一些亮点。

LLMs是有史以来最先进的AI系统

LLMs及其衍生作品有潜力改革许多行业和研究领域。例如,它们可用于创建更自然和吸引人的用户界面,开发新的教育工具,提高机器翻译的准确性。它们还可用于生成新的想法和见解,创造新的艺术和文学形式,这为语言和语言学领域开辟了新方向。

这些模型在基准测试上比以往任何时候都快地超越了人类水平:

Kiela等。2021[1]

这些系统自信地说谎

尽管LLMs非常先进,在大多数情况下几乎不可能区分生成的文本和人类的回应,但这些系统遭受各种级别的幻觉。另一种说法是,这些系统自信地说谎,由于在生成方面的人类级熟练程度,这些谎言相当令人信服。

考虑与ChatGPT的这次互动

最初发表于 hackernews[2] 乍一看,这些结果似乎令人印象深刻,但一旦你关注链接,它们都指向404。这在各个层面上都是危险的:

•首先,因为这些链接看起来令人信服,有人可能会在不核查的情况下就将它们当做引用•最好的情况是你检查了第一个链接,并意识到它指向404,你会检查其他链接。•但最糟糕的情况是如果只有第一个链接真的存在,而你只检查了那个。这会让你相信所有链接都是有效的

这只是幻觉的一个例子,还有许多其他更微妙的例子,比如简单地编造事情。

最强大的LLMs依然是一个黑盒子

我个人不喜欢将“黑盒子”这个词用于所有深度学习,因为大多数模型都可以被轻易地解剖和修改。事实上,在大多数情况下,原始发布模型的修改版本更受欢迎且更有用。可解释性历来是个挑战,但这还不足以将这些模型称为黑盒子。但LLMs则不同。最强大的LLMs是闭源的,只能通过API请求访问。此外,由于培训成本高昂和专有数据集,没有足够的资源或工程专业知识来复制结果。这些确实符合黑盒子的定义。

最初发表在 cohere blog[3]

基于响应与基于表征的系统

在基于提示的方法中,你依赖LLMs直接从你(或你的用户)的查询中生成响应。使用LLMs生成响应非常强大,而且开始使用也很简单。但很快就会变得可怕,当你意识到你没有(也不能)控制这些系统的任何生命周期方面。结合上面讨论的客观真理,这很快就会成为一场灾难。

使用LLMs进行表征

如果我们不是端到端使用LLMs,而是仅仅使用它来表征我们的知识库怎么样?显而易见的方法是使用这些强大的模型来嵌入我们的数据库。你可以拥有一个捕获语义含义的非结构化数据的数值表示。

这些向量捕捉高维空间中实体之间的关系。例如,这里是一个词嵌入的例子,其中意义相近的词在空间中彼此靠近。

检索增强生成(RAG)

我们已经有了构建RAG系统所需的所有部件。在RAG设置中,我们不是使用LLMs从提示中生成响应,而是使用检索器检索相关表征,并通过提示LLM拼接它们以形成响应。

现在,你可以提供确切的引用,来自于用于生成响应的知识库文档。这使得可能追溯响应到其源头。

领域变化

我们到目前为止通过RAG实现的成就是我们减少了依赖LLM代表我们回答问题。相反,我们现在有了一个模块化的系统,它有不同的部分,每个部分独立运作:

•知识库•嵌入模型•检索器•响应生成器(LLM)

这导致领域的变化,我们从依赖黑箱AI转向由数十年研究支持的模块化组件

“只要它还不太行,那就是人工智能,一旦它开始运作,那就是计算机科学。”

自从我将近十年前听到这句话以来,它就一直萦绕在我心头。我认为这是埃里克·施密特说的,但我没能找到那确切的演讲。

总的想法是,现在我们已经以这样的方式改变了问题的领域:检索器成为系统的核心部件,我们现在可以利用计算机科学子领域的研究工作,如信息检索、排名等。

听起来我需要花费$$$?

成本取决于很多因素。现在让我们将注意力转移到部署的ML系统面临的共同问题,以及这种生成AI方法旨在解决它们的方式。

可解释性 — 没有一种方法可以自信地解释深度神经网络,但这是一个活跃的研究领域。解释LLMs更为困难。但在RAG设置中,你可以分阶段构建响应,从而洞察决策的原因。•模块化 — 与端到端API可访问模型相比,模块化系统有很多优势。在我们的案例中,我们对什么进入我们的知识库以及它是如何随时间更新的,我们的检索器和排名算法的配置,以及我们用这些信息生成最终响应的模型有细粒度的控制。•(重新)训练成本 — LLMs(包括本地模型)的最大问题是庞大的数据和基础设施需求。这使得它们几乎不可能在新数据进来时重新训练。

例如,让我们考虑一个最近发生的事件,即在培训结束后(或更具体地说是数据集创建日期截止后)发生的事件。这里有一些问题,涉及几天前到几个月前发生的事件,问给ChatGPT。

(缺少8月23日chandrayaan-3的软着陆)

(缺少2022年世界杯结果)

信息在业务的一个子领域内的变化速率可能会更高,使得LLM很快就过时了。

如果同一个系统依赖于RAG系统,它只需要更新知识库,即通过嵌入模型运行新的事件/信息,其余部分将由检索器处理。另一方面,LLM将需要在直接响应式系统中对新数据进行再训练。

所以,这种方法不仅为您提供了更精细的控制和模块化,而且在新信息进来时更新也便宜得多。

微调Vs RAG

关于在特定领域数据上细调模型和使用RAG的通用模型哪个更好的辩论是没有意义的。当然,理想情况下,你想要两者兼得。在领域上细调的模型将提供更好的“通用”响应和上下文词汇。但你需要RAG模型来更好地控制和解释响应。

AI原生数据库的需求

此时很明显,需要一个维护良好的知识库。虽然有许多传统解决方案,我们需要重新思考AI解决方案。以下是主要要求:

•AI需要大量数据•模型正在变得多模态。数据需要跟上•扩展不应破坏银行。

多模态是下一个前沿,大多数LLM提供者要么计划支持多模态特性,要么他们已经在测试它们。

在考虑我们不需要在ML中发明又一个子领域的同时,利用现有工具和接口将是理想的选择。

LanceDB:AI原生、多模态、嵌入式向量数据库

LanceDB是一个开源的向量搜索数据库,具有持久存储功能,极大地简化了嵌入的检索、过滤和管理。

np.array — 原始的向量DB

关于是否需要向量DB以及np.array是否满足所有向量搜索操作的需求,目前有一个持续的辩论。

让我们看一个使用np.array存储向量和查找相似向量的例子

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import numpy as np  
import pandas as pd  

embeddings = []  
ids = []  
for i, item in enumerate(data):  
 embeddings.append(embedding_model(item)) ids.append(i)  
df = pd.DataFrame({"id": ids, "embedding": embeddings})  
df.to_pickle("./dummy.pkl")  

...  
df = pd.read_pickle("./dummy.pkl")  
embeddings, ids = df["embedding"].to_numpy(), df["id"]  
sim = cosine_sim(embeddings[0], embeddings[1])  
...  

这对于快速原型开发很有用但这如何扩展到数百万条目?数十亿条目呢?在大规模时将所有嵌入加载到内存中是否高效?多模态数据又如何?

理想的AI原生向量数据库解决方案应该是容易设置的,并且应该与现有API集成以便快速原型制作,但应该能够在不需要额外改变的情况下扩展。

LanceDB就是以这种方式设计的。作为无服务器,它不需要设置 — 只需导入并开始使用。持久存储在HDD中,允许计算存储分离,这样你就可以在不加载整个数据集到内存的情况下运行操作。与Python和Javascript生态系统的原生集成,允许从同一个代码库扩展从原型到生产应用。

计算存储分离

计算存储分离是一种设计模式,它在系统中解耦了计算资源和存储资源。这意味着计算资源不位于与存储资源相同的物理硬件上。计算存储分离有几个好处,包括可扩展性、性能和成本效益。

LanceDB — 嵌入式向量DB

以下是如何将上述示例与LanceDB集成的方式

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
db = lancedb.connect("db")  
embeddings = []  
ids = []  

for i, item in enumerate(data):  
 embeddings.append(embedding_model(item)) ids.append(i)  
df = pd.DataFrame({"id": ids, "embedding": embeddings})  
tbl = db.create_table("tbl", data=df)  
...  

tbl = db.open_table("tbl")  
sim = tbl.search(embedding_model(data)).metric("cosine").to_pandas()  

这就是你需要做的,为任何规模的向量嵌入工作流程增强动力。LanceDB建立在Lance文件格式之上,这是一种用Rust实现的现代列式数据格式,专为ML和LLMs设计。

我们创建了一些基准测试,提供了lance格式性能的近似度量 — 达到了使用Lance相比Parquet的最高2000倍性能提升[4]

Lance中随机访问的基准测试[5]

在即将发布的博客中,我们将讨论LanceDB的工作原理,更多关于lance文件格式、lanceDB和我们构建AI存储层的愿景的技术细节。

访问LanceDB[6]或vectordb-recipes[7],给我们一个🌟

本文由山行翻译整理自:https://blog.lancedb.com/llms-rag-the-missing-storage-layer-for-ai-28ded35fa984,核心目的是向大家分享更多AI相关的知识,让更多的人能够对AI有一个清晰的认识。如果对您有帮助,请帮忙点赞、关注、收藏,谢谢~

References

[1] Kiela等。2021: https://aclanthology.org/2021.naacl-main.324/ [2] hackernews: https://news.ycombinator.com/item?id=33841672 [3] cohere blog: https://docs.cohere.com/docs/prompt-engineering [4] 最高2000倍性能提升: https://blog.eto.ai/benchmarking-random-access-in-lance-ed690757a826 [5] Lance中随机访问的基准测试: https://blog.lancedb.com/benchmarking-random-access-in-lance-ed690757a826?source=post_page-----28ded35fa984-------------------------------- [6] LanceDB: https://github.com/lancedb/lancedb [7] vectordb-recipes: https://github.com/lancedb/vectordb-recipes

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-01-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 山行AI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
面向AI的开发:从大模型(LLM)、检索增强生成(RAG)到智能体(Agent)的应用
在今年的敏捷团队建设中,我通过Suite执行器实现了一键自动化单元测试。Juint除了Suite执行器还有哪些执行器呢?由此我的Runner探索之旅开始了!
京东技术
2024/06/11
1.8K0
面向AI的开发:从大模型(LLM)、检索增强生成(RAG)到智能体(Agent)的应用
LLMs 诸神之战:LangChain ,以【奥德赛】之名
毫无疑问,大语言模型(LLM)掀起了新一轮的技术浪潮,成为全球各科技公司争相布局的领域。诚然,技术浪潮源起于 ChatGPT,不过要提及 LLMs 的技术发展的高潮,谷歌、微软等巨头在其中的作用不可忽视,它们早早地踏入 AI 的技术角斗场中,频频出招,势要在战斗中一争高下,摘取搜索之王的桂冠。
Zilliz RDS
2023/08/26
3130
LLMs 诸神之战:LangChain ,以【奥德赛】之名
多模态RAG应用之实现文本检索视频内容
现如今无论是谷歌百度搜索知识学习,还是淘宝京东购物都离不开文字关键词的搜索。但现在很多平台或者应用有大量的视频,还有某些跟视频打交道的应用比如视频编辑器,视频自动化处理工具等,这些工具如果只有简单的文本搜索就远远不够用了,搜索体验肯定会大打折扣;由此引出我们今天的主题:
郑子铭
2025/01/07
2040
多模态RAG应用之实现文本检索视频内容
3分钟!教会你用Doris+DeepSeek搭建RAG知识库(喂饭级教程)
❝清晨,我泡上一杯98年的咖啡,打开电脑,收到一条来自Doris用户的消息: "请问有 将doris数据库数据作为deepseek大模型的知识库的方法吗" "好滴,安排!" 于是,和这位Doris用户聊了聊,发现这类需求随着DeepSeek的爆火被无限放大了,但也确实是一个‌引申的机遇与挑战。 也罢,今天就来一探究竟,一起学习学习如何基于Doris+DeepSeek打造你的专属AI助手!
一臻数据
2025/02/26
9961
3分钟!教会你用Doris+DeepSeek搭建RAG知识库(喂饭级教程)
RAG科普文!检索增强生成的技术全景解析
增强生成 (RAG) 是塑造应用生成式 AI 格局的关键技术。Lewis 等人在其开创性论文中提出了一个新概念面向知识密集型 NLP 任务的检索增强生成之后,RAG 迅速成为基石,提高了大型语言模型 (LLM) 输出的可靠性和可信度。
致Great
2025/02/15
9200
RAG科普文!检索增强生成的技术全景解析
从零开始优化 RAG 流程的终极指南,解决检索增强生成的核心挑战
首先,我们将 RAG 工作流程分为三个部分,以增强我们对 RAG 的理解,并优化每个部分以提高整体性能:
致Great
2025/02/22
1.1K0
从零开始优化 RAG 流程的终极指南,解决检索增强生成的核心挑战
使用 LlamaIndex、Elasticsearch 和 Mistral 进行检索增强生成(RAG)
在这篇文章中,我们将探讨如何使用Elasticsearch作为向量数据库,结合RAG技术(检索增强生成)来实现问答体验。我们会使用LlamaIndex和一个本地运行的Mistral LLM模型。
点火三周
2024/04/15
2.2K0
使用 LlamaIndex、Elasticsearch 和 Mistral 进行检索增强生成(RAG)
检索增强生成(RAG)
检索增强生成(Retrieval-Augmented Generation, RAG)是一种结合了检索机制和生成模型的先进技术,旨在提高自然语言处理系统的准确性和上下文相关性。本文将详细介绍如何从零开始构建一个RAG系统,包括数据处理、检索、生成以及部署等各个环节。
@小森
2025/01/03
4270
同济大学发布最新检索增强(RAG)的LLM生成技术综述
摘要主要介绍了大型语言模型(LLMs)在实际应用中面临的挑战,比如幻觉、知识更新缓慢和答案缺乏透明度等问题,并提出了检索增强生成(Retrieval-Augmented Generation,RAG)作为一种解决方案。RAG通过从外部知识库检索相关信息来辅助大型语言模型回答问题,已经被证明能显著提高回答的准确性,减少模型产生的幻觉,尤其是在知识密集型任务中。
唐国梁Tommy
2023/12/21
17.1K0
同济大学发布最新检索增强(RAG)的LLM生成技术综述
使用高级SQL向量查询增强您的 RAG 应用程序
通过使用 MyScale 和 LangChain 创建 AI 助手来克服 RAG 的限制,以提高数据检索过程的准确性和效率。
云云众生s
2024/06/13
1910
使用高级SQL向量查询增强您的 RAG 应用程序
使用LOTR合并检索提高RAG性能
RAG结合了两个关键元素:检索和生成。它首先使用语义搜索等高级技术来浏览大量数据,包括文本、图像、音频和视频。RAG的本质在于它能够检索相关信息,然后作为下一阶段的基础。生成组件利用大型语言模型的能力,解释这些数据块,制作连贯的、类似人类的响应。与传统的生成模型相比,这个过程确保RAG系统可以提供更细致和准确的输出。
deephub
2024/01/04
4470
使用LOTR合并检索提高RAG性能
RAG:AI大模型联合向量数据库和 Llama-index,助力检索增强生成技术
在大模型爆发的时代,快速准确地从大量数据中检索出有价值的信息变得至关重要。检索增强生成(RAG)技术,结合了传统的信息检索和最新的大语言模型(LLM),不仅能够回答复杂的查询,还能在此基础上生成信息丰富的内容。
汀丶人工智能
2024/05/07
1.4K0
RAG:AI大模型联合向量数据库和 Llama-index,助力检索增强生成技术
LLM RAG系列
本文介绍了RAG以及RAG pipeline的整个流程,包括请求转换、路由和请求构造、索引和检索、生成和评估等,其中引用了大量有价值的论文。
charlieroro
2024/04/02
8560
LLM RAG系列
检索增强生成(RAG)实践:基于LlamaIndex和Qwen1.5搭建智能问答系统
LLM 会产生误导性的 “幻觉”,依赖的信息可能过时,处理特定知识时效率不高,缺乏专业领域的深度洞察,同时在推理能力上也有所欠缺。
汀丶人工智能
2024/05/07
4.2K0
检索增强生成(RAG)实践:基于LlamaIndex和Qwen1.5搭建智能问答系统
使用CLIP和LLM构建多模态RAG系统
在本文中我们将探讨使用开源大型语言多模态模型(Large Language Multi-Modal)构建检索增强生成(RAG)系统。本文的重点是在不依赖LangChain或LLlama index的情况下实现这一目标,这样可以避免更多的框架依赖。
deephub
2024/01/17
1.9K0
使用CLIP和LLM构建多模态RAG系统
什么是检索增强生成(又名 RAG-Retrieval-Augmented Generation)及相关引用文档
检索增强生成是一种利用来自特定相关数据源的信息来增强生成式 AI 模型的准确性和可靠性的技术。
晓兵
2025/03/23
2170
什么是检索增强生成(又名 RAG-Retrieval-Augmented Generation)及相关引用文档
langchain中的召回增强生成(RAG)一览
RAG是一种通过额外的、通常是私有或实时的数据来增强LLM知识的技术。LLM能够推理各种广泛的主题,但它们的知识仅限于它们训练时的公共数据,到达其特定时间节点为止。如果你想构建可以推理私人数据或在模型截止日期之后引入的数据的人工智能应用程序,你需要用特定信息增强模型的知识。将适当的信息带入并插入到模型提示中的过程被称为“检索增强生成”(RAG)。
山行AI
2023/12/12
4.7K0
langchain中的召回增强生成(RAG)一览
AI大模型全栈工程师课程笔记 - RAG 检索增强生成
课程学习自 知乎知学堂 https://www.zhihu.com/education/learning
Michael阿明
2023/12/09
1.6K0
AI大模型全栈工程师课程笔记 - RAG 检索增强生成
RAG——使用检索增强生成构建特定行业的大型语言模型
在人工智能兴起的当下,AI正在不断地重塑着很多行业。我辈人工智能从业者,在探索AI应用的同时,也在不断地下钻技术本质。由于笔者之前梳理过比较多的AI应用,在查看检索增强生成技术(Retrieval-Augmented Generation)技术论文时,发现了一个事实,那就是几乎各大AI应用都有用到这种检索增强技术。
山行AI
2023/06/14
7.1K1
RAG——使用检索增强生成构建特定行业的大型语言模型
AI大模型企业应用实战-“消灭”LLM幻觉的利器 - RAG介绍
LLM是预训练模型,已有一些知识储备,我们提的问题跟他的知识储备不相符时,就会产生幻觉,也就是看上去正确的回答。
JavaEdge
2024/08/17
2250
推荐阅读
相关推荐
面向AI的开发:从大模型(LLM)、检索增强生成(RAG)到智能体(Agent)的应用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验