当前位置: 首页 > news >正文

LLM 学习之「向量数据库」

LLM 学习之「向量数据库」

什么是向量数据库?

向量数据库是一种以向量或数据点的数学表示形式存储数据的数据库。 人工智能和机器学习使非结构化数据能够转换为捕获意义和上下文的数字表示(向量),这得益于自然语言处理和计算机视觉的进步。

矢量相似性搜索 (VSS) 是矢量数据库的关键功能。它是查找与向量数据库中给定查询向量相似的数据点的过程。

常用的 VSS 用途包括推荐系统、图像和视频搜索、自然语言处理和异常检测。例如,如果构建推荐系统,则可以使用 VSS 查找(并建议)与用户以前表现出兴趣的产品类似的产品。

向量数据库

信息有多种形式。有些信息是非结构化的,例如文本文档、富媒体和音频,有些则是结构化的,例如应用程序日志、表格和图表。人工智能和机器学习(AI/ML)的创新使我们能够创建一种机器学习模型,即嵌入模型。嵌入模型将所有类型的数据编码为向量,以捕获资产的含义和上下文。这样我们就能够通过搜索相邻的数据点找到相似的资产。向量搜索方法可提供独特的体验,例如用智能手机拍照,然后搜索相似的图像。

向量数据库能够将向量存储为高维点并进行检索。这些数据库增加了额外的功能,可以高效、快速地查找 N 维空间中的最近邻。

这些功能通常由 k 最近邻(k-NN)索引提供支持,并使用分层可导航小世界(HNSW)和倒排文件索引(IVF)算法等算法构建。

向量数据库提供了其他功能,例如数据管理、容错、身份验证和访问控制以及查询引擎。

为什么向量数据库很重要?

作为开发人员的我们,可以将嵌入生成的向量索引到向量数据库中。这样的话,他们便可通过查询相邻向量来找到相似的内容。前面我们介绍的文章中,有一部分向量的实用,就是将文本内容向量到数据库中,然后用户每次输入问题的时候先经过向量数据库,然后才是 LLM,后面有一篇文章我们构建一个智能客服系统的时候如何提高响应速度重点介绍在LLM 的实用和缓存。

向量数据库提供了一种使嵌入模型有效运行的方法。通过复杂的查询语言,利用资源管理、安全控制、可扩展性、容错能力和高效信息检索等数据库功能,可以提高应用程序开发效率。

向量数据库最终帮助我们开发人员开发出独有的应用程序体验。例如,在手机淘宝中,用户可以在智能手机上拍摄照片以搜索相似的图像。

我们可以使用其他类型的机器学习模型自动从图像和扫描文档等内容中提取元数据。他们可以将元数据与向量一起编入索引,以实现对关键字和向量的混合搜索。我们还可以将语义理解融入相关性排名中,以提升相关内容的搜索结果。

例如 ChatGPT 这样的新模型是对生成式人工智能(AI)的创新,这些模型可以生成文本并管理与人类的复杂对话。有些模型可以在多种模式下运行;例如,有些模型可以根据用户描述的景观生成符合描述内容的图像。

但是,生成式模型容易产生幻觉,这可能会导致聊天机器人对用户造成误导。 向量数据库可以弥补生成式人工智能模型的这一缺陷。向量数据库为生成式人工智能聊天机器人提供外部知识库,确保给它们提供的是我们信赖的数据信息。

向量数据库的使用方式有哪些?

向量数据库通常为视觉、语义和多模态搜索等向量搜索使用案例提供支持。它们与生成式人工智能(AI)文本模型配对,创建了提供对话式搜索体验的智能代理。

开发过程从构建嵌入模型(embedding-model)开始,该模型将类似产品图像的语料库编码为向量。数据导入过程也称为_数据融合_。我们就可以使用该数据库搜索相似产品,方法是对产品图像进行编码并利用向量查询相似的图片以及内容(实际的实用场景比这个复杂)。

在此模型中,k 最近邻(k-NN)索引实现了高效的向量检索,并应用距离函数(如余弦)按相似度对结果进行排序。

哪些开发者需要实用向量数据库?

对于希望创建基于向量搜索操作的开发人员,可以使用向量数据库。

应用程序开发人员可以使用开源模型、自动机器学习(ML)工具和基础模型服务来生成嵌入内容并补充向量数据库。这需要具备基本的机器学习专业知识。

由数据科学家和工程师构成的团队可以创建经过专业调整的嵌入内容,并通过向量数据库运行这些嵌入。这有助于他们加速提供人工智能(AI)解决方案。

向量数据库有哪些优点?

借助向量数据库,开发人员可通过向量搜索进行创新并研发出独有的体验。向量数据库可加速人工智能(AI)应用程序的开发,并简化由人工智能驱动的应用程序工作负载的运作。

向量数据库提供了在裸式 k 最近邻(k-NN)索引之上进行构建的替代方案。这类索引需要大量额外的专业知识和工程才能使用、调整和运行。

良好的向量数据库通过数据管理、容错、关键安全功能和查询引擎等功能为应用程序提供坚实的基础。这些功能使用户能够操作他们的工作负载以简化扩展,保持高可扩展性,并满足安全要求。

查询引擎和 SDK 等工具让应用程序开发工作变得更加轻松。借助这些工具,开发人员可以对元数据执行更高级的查询(例如搜索和筛选),这类查询也属于 k-NN 搜索。他们还可以选择使用混合相关性评分模型,将传统的术语频率模型(例如 BM25)与向量评分相结合,以增强信息检索(RAG)。

学习向量数据库有哪些挑战?

向量数据库面临着许多与其他数据库技术相同的挑战。将继续努力提高可扩展性、近似精度、延迟性能和经济性。

作为一项相对较新的技术,许多向量数据库在核心数据库能力方面需要提升,例如安全性、弹性、运营支持和工作负载支持的多样化。

随着人工智能(AI)应用程序的成熟,这一点将非常重要,未来需要的不仅仅只限于向量搜索功能。

常见向量数据库有哪些?

1、Chroma

img

Chroma 是开源嵌入数据库。通过为LLM提供可插入的知识,事实和技能,使构建LLM应用程序变得容易,可以轻松地管理文本文档,将文本转换为嵌入,并进行相似度搜索。

主要特点:

  • 功能丰富:查询、过滤、密度估计和许多其他功能
  • LangChain (Python和javascript), LlamaIndex都支持
  • Python notebook 中运行的相同API可扩展到生产集群
2、Pinecone

img

Pinecone是一个可以托管向量数据库平台。也就是说有背后的而商业公司,有免费使用方案。Pinecone的主要特点包括:

  • 支持全托管服务
  • 高度可伸缩
  • 实时数据摄取
  • 低延迟的搜索
  • LangChain集成
3、Weaviate

img

Weaviate是一个开源向量数据库。它可以无缝扩展到数十亿个数据对象。Weaviate的一些关键特性是:

  • 速度:Weaviate可以在几毫秒内从数百万个对象中快速搜索出最近的10个邻居。
  • 灵活性:使用Weaviate,可以在导入或上传自己的数据时对数据进行矢量化,可以利用与OpenAI, Cohere, HuggingFace等平台集成的模块。
  • 快速部署:从原型到大规模生产,Weaviate都强调可伸缩性、复制和安全性。
  • 搜索扩展:除了快速矢量搜索,Weaviate还提供推荐、摘要和神经搜索框架集成。
4、Faiss

img

Faiss是一个用于快速搜索相似性和密集向量的聚类的开源库。它包含能够在不同大小的向量集中搜索的算法,甚至可以处理那些超过内存容量的向量集。此Faiss还提供了用于评估和调整参数的辅助代码。

虽然它主要是用c++编写的,但它完全支持Python/NumPy集成。它的一些关键算法也可用于GPU执行。Faiss的主要开发工作由Meta的基础人工智能研究小组承担。

5、Qdrant

img

Qdrant可以作为API服务运行,支持搜索最接近的高维向量。使用Qdrant,可以将嵌入或神经网络编码器转换为应用程序,用于匹配,搜索,推荐等任务。以下是Qdrant的一些关键功能:

  • 通用的API:提供OpenAPI v3规范和各种语言的现成客户端。
  • 速度和精度:使用自定义HNSW算法进行快速准确的搜索。
  • 先进的过滤方法:允许基于相关矢量有效载荷的结果过滤。
  • 不同的数据类型:支持字符串匹配、数字范围、地理位置等。
  • 可伸缩性:具有水平扩展功能的云原生设计。
  • 效率:内置Rust,通过动态查询规划优化资源使用。

总结

人工智能和机器学习领域的不断发展凸显了向量数据库在当今以数据为中心的世界中的不可或缺性。这些数据库具有存储、搜索和分析多维数据向量的独特能力,在推动人工智能驱动的应用程序方面发挥了重要作用。

随着人工智能的不断发展,向量数据库在塑造数据检索、处理和分析的未来方面的作用无疑会越来越大,有望在各个领域提供更复杂、更高效、更个性化的解决方案。

如何学习AI大模型?

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

自己也整理很多AI大模型资料:AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

在这里插入图片描述

👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

在这里插入图片描述

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • FreeSWITCH
  • ZLMediaKit如何结合webrtc实现双向对讲
  • 【MySQL】2.MySQL实际操作
  • [C#数据加密]——MD5、SHA、AES、RSA
  • Chainlit快速实现AI对话应用将聊天数据的持久化到Mongo非关系数据库中
  • CI/CD——CI持续集成实验
  • 解决No module named ‘tensorflow‘
  • linux共有云主机ssh升级(以openEuler22.03为例)
  • 高级java每日一道面试题-2024年8月12日-设计模式篇-请列举出在JDK中几个常用的设计模式?
  • Web Vitals:提升用户体验的关键指标
  • VR虚拟展厅与传统实体展厅相比,有哪些优势?
  • PostgreSQL 练习 ---- psql 新增连接参数
  • SpringBoot中整合Mybatis
  • 自定义实现一个 Redis 客户端
  • coze 卡片使用
  • JavaScript-如何实现克隆(clone)函数
  • (三)从jvm层面了解线程的启动和停止
  • Angular 响应式表单 基础例子
  • CoolViewPager:即刻刷新,自定义边缘效果颜色,双向自动循环,内置垂直切换效果,想要的都在这里...
  • ES学习笔记(12)--Symbol
  • iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码...
  • JavaScript设计模式与开发实践系列之策略模式
  • learning koa2.x
  • node-glob通配符
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • Python打包系统简单入门
  • TCP拥塞控制
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • 从零开始学习部署
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 免费小说阅读小程序
  • 盘点那些不知名却常用的 Git 操作
  • 前端学习笔记之观察者模式
  • 巧用 TypeScript (一)
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 一道闭包题引发的思考
  • hi-nginx-1.3.4编译安装
  • Nginx实现动静分离
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • ​​​【收录 Hello 算法】10.4 哈希优化策略
  • ​创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化
  • ###C语言程序设计-----C语言学习(3)#
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (八十八)VFL语言初步 - 实现布局
  • (二)测试工具
  • (七)Java对象在Hibernate持久化层的状态
  • (七)Knockout 创建自定义绑定
  • (十一)手动添加用户和文件的特殊权限
  • (转载)跟我一起学习VIM - The Life Changing Editor
  • **python多态
  • .Net Web项目创建比较不错的参考文章
  • .NET 动态调用WebService + WSE + UsernameToken