为什么大模型需要向量数据库?

AIGC 时代万物都可以向量化,向量化是 LLM 大模型以及 Agent 应用的基础。

比如:爆火的 Google 大模型 Gemini 1.0 原生支持的多模态,在预训练的时候就是把文本、图片、音频、视频等多模态先进行 token 化,然后构建一维的“语言”序列,再进行向量化,实现了原生多模态的支持。

向量技术是向量数据库的核心,一个企业级的向量数据库,在功能维度需要具备 Embedding 嵌入生成向量数据、向量数据存储、向量数据相似度检索、提供 "CRUD” API 接口等,在性能维度需要提供分布式架构提供无缝的弹性伸缩功能以支持用户访问请求的高吞吐量和低延迟。在可观性维度需要提供自动化部署、立体监控、业务调试、业务测试、业务评估等功能。

向量数据库的优势

向量数据库相对于传统数据库具有几项重要的优势,特别是在处理大规模高维度向量数据时:

  1. 高效的相似度搜索: 向量数据库设计旨在快速执行相似度搜索,这意味着它们能够有效地处理大规模的向量数据集,并且能够在其中快速找到最相似的向量。这对于许多应用场景,如推荐系统、图像识别、自然语言处理等是至关重要的。

  2. 针对向量的优化存储和索引结构: 传统数据库通常使用 B 树或者哈希索引来支持数据检索,但这些索引结构不太适合高维度向量数据的相似度搜索。向量数据库采用了更适合向量数据的存储和索引结构,如向量树、局部敏感哈希(LSH)等,这些结构可以更有效地支持向量数据的相似度搜索。

  3. 内置向量运算支持: 一些向量数据库提供了内置的向量运算功能,如向量加法、减法、乘法、点积等,这些功能可以直接在数据库中进行向量计算,而无需将数据提取到应用程序中进行处理,从而提高了处理效率并降低了网络通信成本。

  4. 实时更新和查询: 向量数据库通常能够支持实时更新和查询,这意味着它们能够快速响应数据的变化,并且能够在实时环境下进行相似度搜索和数据分析。

  5. 容易扩展和部署: 高性能的向量数据库通常支持水平扩展,可以轻松地在集群中添加新节点来处理更多的数据和请求,同时还能保持较高的性能。

总体而言,向量数据库在处理高维度向量数据和执行相似度搜索方面具有明显的优势,能够更好地满足现代数据应用的需求。

向量数据库如何选型

如果你需要快速构建原型系统并对性能有一定要求,Faiss 可能是一个好选择。

Faiss 是 Meta 开源的一个库,用于高效相似性搜索和密集向量聚类。它能处理任意大小的向量集合,甚至是无法全部装入内存的集合。Faiss 还包含了用于评估和参数调优的工具。Faiss 是用 C++ 编写的,但提供了完整的 Python/NumPy 接口。

Faiss 足够简单,性能似乎也足够快,也能够应付小规模的生产场景。当然,还可以通过量化、降维、使用 GPU 等方案进一步提升查询性能。

然而,尽管向量搜索库,比如 Faiss 提供了强大和高效的向量搜索功能,但在实际生产环境中,它们存在一些限制。Faiss 并没有提供处理数据的实时增删、缺乏多语言的支持,无法提供远程调用、不支持标量过滤、也不提供数据的持久化,可扩展性和容灾等问题的解决方案。

正是因为这些原因,向量数据库应运而生,为我们提供了一种更完整、更适合实际应用场景的解决方案。

向量数据库战场目前主要分为四个类别:

  • 基于 PG、Clickhouse 等进行魔改或者插件化实现的向量数据库。这类解决方案以现有的关系数据库或列存数据库作为基础,通过修改或插件扩展的方式添加向量搜索功能,PG Vector是这类解决方案的代表产品。

  • 基于传统倒排搜索添加稠密向量索引支持的向量数据库。这类解决方案以倒排索引搜索引擎作为基础,通过扩展索引机制以支持向量搜索,ElasticSearch是这类解决方案的代表产品。

  • 基于向量检索库实现的轻量级向量数据库。这类解决方案以向量搜索库(如 Faiss)为核心,围绕其构建数据库功能。这些产品通常具有较小的体积和较高的运行效率,Chroma 是这类解决方案的代表产品。

  • 基于原生向量设计的分布式向量云原生数据数据库。这类解决方案从零开始设计和实现向量数据库,整个系统从底层到顶层都针对向量搜索进行了优化,通常提供了更完整和高级的功能,包括分布式计算、容灾备份、数据持久化等,Zilliz Cloud/Milvus 是这类解决方案的代表产品。

不过,“Not All Vector Database are born equal”(并非所有向量数据库都生来平等)。在各类向量数据库中,每种解决方案都有其独特的优点和限制,并且它们各自适合于不同的应用场景。

在所有的向量数据库方案中,我个人对基于 PG、Clickhouse等进行魔改或者插件化实现的向量数据库(如 PG Vector)以及基于原生向量设计的分布式向量云原生数据数据库(例如 Zilliz Cloud/Milvus)这两种截然不同的解决方案特别看好。

还有更多选型落地场景,今晚20点直播中详细剖析,请同学们点击免费预约

总之,掌握好向量数据库的选型和落地实现,对于 IT 人来说是一项非常重要的技能。

基于向量数据库完成 RAG 业务实际工作

第一、基于向量数据库实现 RAG(Retrieval Augmented Generation)应用

RAG 是一种使用企业级私有和实时的数据用来增强 LLM 大模型能力的一种技术,由两个步骤构成:建立向量索引(Indexing)和检索生成(Retrieval and Generation)。

建立向量索引(Indexing)由加载外部知识(Load)、切分大文本为小的单元块(Split)、向量存储(Store)三步组成。

图片

检索生成(Retrieval and Generation)由向量知识库检索最相似的 TopK 记录(Retrieve)和 LLM 大模型生成结果(Generate)两步构成。

图片

总体来讲,分为离线建立向量数据部分和在线相似度增强和检索部分,如下图所示。

图片

第二、使用 OpenAI Assistants 实现 RAG 应用

乍一看,OpenAI Assistants 自带的检索功能十分强大,但如果对行业足够了解,便会发现其仍存在诸多限制。OpenAI Assistants 检索严格限制了数据规模,且缺乏定制化的能力。因此,搭建高效的应用还需要使用自定义的检索器。

所幸,OpenAI 的函数调用能力允许开发者无缝接入自定义的检索器,从而打破对于知识库数据量的限制,更好地适应多样化的用例。

我们可以使用 Milvus 实现 OpenAI Assistants 检索定制化。

Milvus 是一款高度灵活、可扩展的开源向量数据库,毫秒内即可实现十亿级别向量的存储和检索。由于优秀的扩展性和超低的查询延时,Milvus 是定制 OpenAI Assistants 检索的首选,下图为 OpenAI Assistant 函数调用通用的工作原理。

图片

总之,掌握好基于向量数据库的 RAG 业务应用落地实现,对于 IT 人来说是一项非常重要的技能

技术交流&资料

技术要学会分享、交流,不建议闭门造车。一个人可以走的很快、一堆人可以走的更远。

成立了大模型技术交流群,本文完整代码、相关资料、技术交流&答疑,均可加我们的交流群获取,群友已超过2000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友。

方式①、微信搜索公众号:机器学习社区,后台回复:加群
方式②、添加微信号:mlc2060,备注:来自CSDN + 技术交流

通俗易懂讲解大模型系列

  • 做大模型也有1年多了,聊聊这段时间的感悟!

  • 用通俗易懂的方式讲解:大模型算法工程师最全面试题汇总

  • 用通俗易懂的方式讲解:不要再苦苦寻觅了!AI 大模型面试指南(含答案)的最全总结来了!

  • 用通俗易懂的方式讲解:我的大模型岗位面试总结:共24家,9个offer

  • 用通俗易懂的方式讲解:大模型 RAG 在 LangChain 中的应用实战

  • 用通俗易懂的方式讲解:一文讲清大模型 RAG 技术全流程

  • 用通俗易懂的方式讲解:如何提升大模型 Agent 的能力?

  • 用通俗易懂的方式讲解:ChatGPT 开放的多模态的DALL-E 3功能,好玩到停不下来!

  • 用通俗易懂的方式讲解:基于扩散模型(Diffusion),文生图 AnyText 的效果太棒了

  • 用通俗易懂的方式讲解:在 CPU 服务器上部署 ChatGLM3-6B 模型

  • 用通俗易懂的方式讲解:使用 LangChain 和大模型生成海报文案

  • 用通俗易懂的方式讲解:ChatGLM3-6B 部署指南

  • 用通俗易懂的方式讲解:使用 LangChain 封装自定义的 LLM,太棒了

  • 用通俗易懂的方式讲解:基于 Langchain 和 ChatChat 部署本地知识库问答系统

  • 用通俗易懂的方式讲解:在 Ubuntu 22 上安装 CUDA、Nvidia 显卡驱动、PyTorch等大模型基础环境

  • 用通俗易懂的方式讲解:Llama2 部署讲解及试用方式

  • 用通俗易懂的方式讲解:基于 LangChain 和 ChatGLM2 打造自有知识库问答系统

  • 用通俗易懂的方式讲解:一份保姆级的 Stable Diffusion 部署教程,开启你的炼丹之路

  • 用通俗易懂的方式讲解:对 embedding 模型进行微调,我的大模型召回效果提升了太多了

  • 用通俗易懂的方式讲解:LlamaIndex 官方发布高清大图,纵览高级 RAG技术

  • 用通俗易懂的方式讲解:为什么大模型 Advanced RAG 方法对于AI的未来至关重要?

  • 用通俗易懂的方式讲解:使用 LlamaIndex 和 Eleasticsearch 进行大模型 RAG 检索增强生成

  • 用通俗易懂的方式讲解:基于 Langchain 框架,利用 MongoDB 矢量搜索实现大模型 RAG 高级检索方法

  • 用通俗易懂的方式讲解:使用Llama-2、PgVector和LlamaIndex,构建大模型 RAG 全流程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/466219.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python+flask+django医院预约挂号系统6nrhh

医院预约挂号系统主要有管理员、用户和医生三个功能模块。以下将对这三个功能的作用进行详细的剖析。 技术栈 后端:python 前端:vue.jselementui 框架:django/flask Python版本:python3.7 数据库:mysql5.7 数据库工具…

新年福利:《YOLO目标检测》送书活动

博主简介 AI小怪兽,YOLO骨灰级玩家,1)YOLOv5、v7、v8优化创新,轻松涨点和模型轻量化;2)目标检测、语义分割、OCR、分类等技术孵化,赋能智能制造,工业项目落地经验丰富; …

力扣_字符串6—最小覆盖字串

题目 给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 “” 。 示例 : 输入:s “ADOBECODEBANC”, t “ABC” 输出:“BANC” 解释:…

【Linux开发工具】yum命令详解

📙 作者简介 :RO-BERRY 📗 学习方向:致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 📒 日后方向 : 偏向于CPP开发以及大数据方向,欢迎各位关注,谢谢各位的支持 目录 1.概念2.yum的配置信…

HTTP基本概念-HTTP 是什么?

资料来源 : 小林coding 小林官方网站 : 小林coding (xiaolincoding.com) HTTP 是什么? HTTP 是超文本传输协议,也就是HyperText Transfer Protocol。 能否详细解释「超文本传输协议」? HTTP 的名字「超文本协议传输」,它可以拆成三个部分: 超文本传输…

《21天精通IPv4 to IPv6》第15天:IPv6的扩展技术——如何扩展IPv6?

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

【闲谈】开源软件的崛起与影响

随着信息技术的快速发展,开源软件已经成为软件开发的趋势,并产生了深远的影响。开源软件的低成本、可协作性和透明度等特点,使得越来越多的企业和个人选择使用开源软件,促进了软件行业的繁荣。然而,在使用开源软件的过…

arduino uno R3驱动直流减速电机(蓝牙控制)

此篇博客用于记录使用arduino驱动直流减速电机的过程,仅实现简单的功能:PID调速、蓝牙控制 1、直流减速电机简介2、DRV8833电机驱动模块简介3、HC-05蓝牙模块简介电机转动测试4、PID控制5、蓝牙控制电机 1、直流减速电机简介 我在淘宝购买的电机&#x…

2024年2月13日 十二生肖 今日运势

小运播报:2024年2月13日,星期二,农历正月初四 (甲辰年丙寅月丁未日),法定节假日。 红榜生肖:马、兔、猪 需要注意:狗、鼠、牛 喜神方位:正南方 财神方位:…

【C++】STL之string 超详解

目录 1.string概述 2.string使用 1.构造初始化 2.成员函数 1.迭代器 2.容量操作 1.size和length 返回字符串长度 2.resize 调整字符串大小 3.capacity 获得字符串容量 4.reserve 调整容量 5.clear 清除 6.empty 判空 3.string插入、追加 、拼接 1.运算…

【激光SLAM】激光雷达数学模型和运动畸变去除

目录 概念介绍激光雷达传感器介绍测距原理三角测距飞行时间(TOF) 激光雷达数学模型介绍光束模型(beam model)似然场模型(likelihood model) 运动畸变介绍 畸变去除纯估计方法(ICP Variants)ICP方法VICP&…

生态位模拟——草稿笔记

文章目录 前言ENM初识一、所需软件安装1.1. 下载ArcGIS软件:1.2. 下载 MaxEnt软件:1.3. 下载ENMtools: 二、数据准备与处理2.1. 物种分布数据2.2. 环境因子数据2.3. 地图数据2.4. 物种分布点去冗余2.4.1. 使用spThin包中的thin函数2.4.2. 或者…