查看原文
其他

ChatGPT也有推荐的向量数据库?一文看清向量数据库与大模型藕断丝连的故事

TMT产品技术 Hadoop大数据应用 2024-04-14



最近,向量数据库由于与AI大模型的协同作用而以惊人的速度“火”了起来。其中的缘由很值得探究。


举一个简单的例子来说明。“最成功”的大语言模型ChatGPT是在2021年底在离线的数据上进行训练的,这意味着它一直是停留在过去,正在操作的是过去2年的世界“快照”!


虽然对于许多用例来说,这些模型仍然够用,但是如果您想询问有关当前天气情况之类的问题时,ChatGPT该如何应对呢?


幸运的是有一个解决方法:您可以用BYOD(“自带数据”)来提供给模型,以回答这些问题所需的具体信息。


但是却遇到了一个新问题:当你的数据集很大时,你如何弄清楚要传入哪些数据?而太大的数据,也无法快速“喂给”模型。


这就是向量数据库的用武之地!向量数据库为大模型语言模型(LLM)提供一个有力的工具!


1.向量数据库能解决LLM遇到的2大挑战



大语言模型面临的一大挑战就是如何保障回答的问题准确可靠,解决诸如生成不准确或不相关的信息,缺乏事实一致性或常识,重复或自相矛盾,有偏见或冒犯性等问题。


为了克服这些挑战,LLM优先选择向量数据库来存储与其想要的领域或行业相关的不同主题、关键字、事实、观点、来源的信息


然后,您可以使用大语言模型和AI插件传递来自向量数据库的信息,以生成符合您的意图和风格的信息量更大、更引人入胜的内容。


例如如果你想写一篇关于人工智能最新趋势的博客文章,您可以使用向量数据库来存储有关该主题的最新信息,并将信息与问题一起传递给LLM,以便生成利用最新信息的博客文章。


目前,大语言模型面临的另一个挑战就是突破令牌限制。当GPT-3发布时,提示和输出的总限制为2048个令牌。在GPT-3.5中,此限制增加到4096个令牌。现在,GPT-4有两种变体,一个限制为8192个令牌,另一个限制为32768个令牌,大约50页文本。


像ChatGPT这样的大语言模型擅长处理输入和生成新的、有用的输出。而问题在于这些模型的背景是有限的,一次只能装进几千个字。你必须通过对模型进行训练来微调模型,或者需要为特定提示提取相关文本。


例如:如果你想回答“烤牛排的最佳方法是什么?”这个问题,你不能只是一下子给 ChatGPT喂上一整本食谱。这些模型一次只能理解3000-6000个单词,所以你必须选择给它提供最有用的内容。


解决方案就是将上下文存储在向量数据库中,并使用相似性搜索查询查找相关上下文。



2.向量数据库火爆的3大原因



其实,使大型语言模型(LLM)能够基于条件生成更相关和更连贯的文本,只是向量数据库存储信息的一个用例。当然,向量数据库在不同领域和应用中都有许多用例,涉及自然语言处理(NLP)、计算机视觉(CV)、推荐系统(RS)以及其他需要语义理解和数据匹配的领域。


具体而言,向量数据库是一种将数据存储为高维向量的数据库,高维向量是要素或属性的数学表示。每个向量都有一定数量的维度,范围从几十到几千不等,具体取决于数据的复杂性和粒度。


向量通常是通过对原始数据如文本、图像、音频、视频等应用某种转换或嵌入函数来生成的,嵌入函数可以基于各种方法,如机器学习模型、词嵌入、特征提取算法等。


向量数据库的一大优点是允许根据向量距离或相似性快速准确地搜索和检索数据。这意味着,用户可以使用向量数据库根据语义或上下文含义查找最相似或最相关的数据,而不是使用基于完全匹配或预定义条件查询数据库的传统方法。


当然,您可以使用向量数据库执行这样的操作:根据视觉内容和样式查找与给定图像相似的图像,根据主题和情绪查找与给定文档相似的文档,根据产品和评级查找与给定产品相似的产品等。


若要在向量数据库中执行相似性搜索和检索,需要使用表示所需信息或条件的查询向量。查询向量可以派生于与存储向量相同类型的数据(如使用图像作为图像数据库的查询),也可以来自不同类型的数据(如使用文本作为图像数据库的查询)。然后,您需要使用相似性度量来计算两个向量在向量空间中的接近或距离。相似性度量可以基于各种指标,如余弦相似性、欧几里得距离、汉明距离、杰卡指数等。


相似性搜索和检索的结果通常是与查询向量具有最高相似度分数的向量的排名列表。然后,您可以从原始源或索引访问与每个向量关联的相应原始数据。


那么,为什么需要向量数据库?答案很简单:性能。向量数据库针对存储和执行大量向量数据的操作进行了优化,通常处理每个查询有数亿个向量,并且比传统数据库快得多。


为什么最近的生成式AI大模型能促进向量数据库的火爆?专家分析有几方面原因。

首先,生成式AI大模型需要大量的数据进行训练,以获取丰富的语义和上下文信息,由此导致数据量的爆发式增长。向量数据库作为数据的管理者,能够帮助高效地管理数据。


其次,生成式AI大模型生成的文本往往需要进行相似性搜索和匹配,以提供相对准确的回复、推荐或匹配结果。传统基于关键词的搜索方法往往无法满足复杂的语义和上下文要求,而向量数据库可以弥补这一缺口。


再次,生成式AI大模型不仅限于处理文本数据,还可以处理图像、语音等多模态数据。向量数据库作为一种能够存储和处理多种数据类型的系统,能够有效地支持多模态数据的存储、索引和查询。



可以说,向量数据库的发展与生成式AI大模型高度依存。只要生成式AI大模型在未来的几年内持续高速发展,向量数据库也一定能够获得足够多的需求,并在大数据等应用中得到应用。


3.向量数据库布局的3大走向



专家对目前市场上的向量数据库进行了一个简单分类。


关系数据库(SQL),如 PostgreSQL、MySQL和MariaDB等使用行和列来存储数据,类似于Excel电子表格,并且支持带有 pgvector 等扩展名的Vector。


最近,AWS RDS PostgreSQL新增了pgvector,阿里云PostgreSQL 14/15也发布支持了pgvector插件,同时,阿里云AnalyticDB(ADB) PostgreSQL也发布了结合大模型构建专业领域Chatbot的实践。甚至传出“AnalvticDB正式成为 OpenAl官方推荐的向量数据库”的新闻。


这些数据库不像专用的向量数据库那样容易扩展,但是由于它们在AWS RDS等服务中的受欢迎程度,因此更易于部署和管理,也更容易应用。


文档数据库(通常为“NoSQL”),如MongoDB和CouchDB等。从技术上讲,Redis也位于这个领域。它们倾向于将数据存储在类似JSON的结构中,称为“文档”,今天在人工智能世界中被广泛使用。不过Redis确实具有向量支持功能,并且在内存用例中非常流行。


专门的向量数据库,不是可用于构建应用程序的后端,而是仅提供快速查找包含类似文档的多个文档的功能文本。


这意味着大多数应用程序将使用SQL数据库和专门向量数据库的组合提供文档搜索,并将数据馈送到AI模型,如 OpenAI的ChatGPT和其他大型语言模型。


除了Zilliz、Pinecone、Weaviate等开源向量数据库外,目前国内自研的向量数据库尤其受到用户的欢迎。星环科技推出的分布式向量数据库Transwarp Hippo,支持存储、索引以及管理海量的向量式数据集,提供向量相似度检索、高密度向量聚类等能力,有效地解决了大模型在知识时效性低、输入能力有限、准确度低等方面面临的问题,让大模型更高效率地存储和读取知识库,降低训练和推理成本,激发更多的AI应用场景。


具备高可用、高性能、易拓展等特点的Hippo,可以很好地满足企业针对海量向量数据的高实时性等场景,可以应用于文本检索、语音/视频/图像检索、个性化推荐、智能搜索、智能问答等场景。


参考资料


·https://learn.microsoft.com/en-us/semantic-kernel/memories/vector-db


·https://www.ruxu.dev/articles/ai/vector-stores/


·https://lunabrain.com/blog/riding-the-ai-wave-with-vector-databases-how-they-work-and-why-vcs-love-them/


·https://mp.weixin.qq.com/s/gGptu_zoT4lJbZ9-4fQzzg


·https://mp.weixin.qq.com/s/JsQBTh9ATdLN7yRkTHvDhg




春华秋实!

扫码关注

大数据应用

从现在开始

End




继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存