Navigate to WaytoAGI Wiki →
Home/Question List/Question Detail

向量数据库

Answer

向量数据库是大语言模型从工具走向生产力实践中热门的 RAG 方式所必备的基础设施。

RAG 能够从海量文本数据中检索相关信息并生成高质量文本输出,而向量数据库在其中发挥着重要作用。

目前市面上的向量数据库众多,操作方式无统一标准。本文将基于 LangChain 提供的 VectorStore 类中的统一操作方法,以 chroma 向量数据库作为示例,从最为基础的 CRUD 入手介绍其使用方法。

向量数据库的工作原理如下: 如果是文本,会通过模型转换成向量对象,对象存入数据库中再去使用。传统数据库以表格形式存储简单数据,向量数据库处理的是复杂的向量数据,并使用独特方法进行搜索。常规数据库搜索精确匹配数据,向量数据库则使用特定相似性度量寻找最接近匹配,使用特殊的近似近邻(ANN)搜索技术,包括散列搜索和基于图的搜索等方法。

要理解向量数据库的工作原理及其与传统关系数据库(如 SQL)的不同,必须先理解嵌入的概念。非结构化数据(如文本、图像和音频)缺乏预定义格式,给传统数据库带来挑战。为在人工智能和机器学习应用中利用这些数据,需使用嵌入技术将其转换为数字表示,嵌入就像给每个项目赋予独特代码,以捕捉其含义或本质。

Content generated by AI large model, please carefully verify (powered by aily)

References

开发:LangChain-RAG必备:向量数据库如何CRUD

RAG是目前大语言模型从工具走向生产力实践的最热门的方式,它可以实现从海量的文本数据中检索相关的信息,并用于生成高质量的文本输出。而聊到RAG,我们就很难避开使用RAG的基础设施-向量数据库。今天我将带领大家,以最为基础的CRUD入手来看看向量数据库应该如何使用。考虑到目前市面上的向量数据库众多,每个数据库的操作方式也无统一标准。「本文将基于LangChain提供的VectorStore类中的统一操作方法,以chroma向量数据库作为示例进行演示。」

开发:LangChain-RAG必备:向量数据库如何CRUD

RAG是目前大语言模型从工具走向生产力实践的最热门的方式,它可以实现从海量的文本数据中检索相关的信息,并用于生成高质量的文本输出。而聊到RAG,我们就很难避开使用RAG的基础设施-向量数据库。今天我将带领大家,以最为基础的CRUD入手来看看向量数据库应该如何使用。考虑到目前市面上的向量数据库众多,每个数据库的操作方式也无统一标准。「本文将基于LangChain提供的VectorStore类中的统一操作方法,以chroma向量数据库作为示例进行演示。」

大雨:简单易懂的向量数据库解析:你需要了解的一切

上图简单展示了向量数据库的存储过程,如果是文本,通过模型转换成向量对象,对象存入数据库中。再去使用它。传统数据库以表格形式存储单词和数字等简单数据。而向量数据库处理的是称为向量的复杂数据,并使用独特的方法进行搜索。常规数据库搜索精确匹配的数据,而向量数据库则使用特定的相似性度量来寻找最接近的匹配。向量数据库使用特殊的搜索技术,即近似近邻(ANN)搜索,其中包括散列搜索和基于图的搜索等方法。要真正理解向量数据库的工作原理,以及它与SQL等传统关系数据库的不同之处,我们必须首先理解嵌入的概念。文本、图像和音频等非结构化数据缺乏预定义格式,给传统数据库带来了挑战。为了在人工智能和机器学习应用中利用这些数据,需要使用嵌入技术将其转换为数字表示。嵌入就像给每个项目(无论是文字、图像还是其他东西)赋予一个独特的代码,以捕捉其含义或本质。这种代码可以帮助计算机以更高效、更有意义的方式理解和比较这些项目。把它想象成把一本复杂的书变成一个简短的摘要,但仍能抓住要点。

Others are asking
机器学习的子领域包括: 监督学习,常用算法如线性回归、决策树、支持向量机(SVM)。 无监督学习,如聚类、降维等算法。 强化学习,那深度学习是哪一种啊
深度学习是机器学习的一个子领域。 在机器学习中,深度学习是一种利用深度神经网络来学习数据特征和模式的方法。 深度学习的特点包括: 1. 具有复杂的网络结构,如前馈网络、卷积神经网络(CNN)、循环神经网络(RNN)等。 2. 能够自动从大量数据中提取高级特征。 深度学习在图像识别、语音识别、自然语言处理等领域取得了显著的成果。
2025-01-21
向量数据库和矢量数据库的区别
向量数据库和传统数据库(可视为您所提到的“矢量数据库”)主要有以下区别: 1. 查找方式: 传统数据库需要精确的关键词或类别进行查找,如同在普通图书馆中需知道书的具体位置或分类。 向量数据库可以通过自然语言描述所需内容,系统能理解意图并找到最相关的内容。 2. 组织方式: 传统数据库中信息被严格分类和组织,类似图书馆里的书架和编号系统。 向量数据库中信息根据内在特征和相似性自然聚集,如同魔法图书馆里书籍自动根据内容相似性浮动聚集。 3. 灵活性: 传统数据库若要更换组织方式,可能需重新安排整个架构。 向量数据库中,新加入的数据会自动找到合适位置,无需重新组织整个系统。 4. 发现新内容: 传统数据库较难偶然发现相关但之前未知的内容。 向量数据库在搜索时可能发现许多相关但之前不知道的内容,因其理解内容本质而非仅依赖标签。 此外,向量数据库以多维向量形式保存信息,代表某些特征或质量,能根据数据的向量接近度或相似度快速、精确地定位和检索数据,从而实现根据语义或上下文相关性进行搜索。而传统数据库通常以表格形式存储简单数据,搜索依赖精确匹配或设定标准。 为了在人工智能和机器学习应用中利用非结构化数据(如文本、图像和音频等),需要使用嵌入技术将其转换为数字表示,嵌入过程通常通过特殊神经网络实现,使计算机能更有效地辨别数据中的模式和关系。
2025-01-10
Embedding 嵌入向量生成模型
Embedding(嵌入)是一个浮点数的向量(列表),两个向量之间的距离度量它们的相关性,小距离表示高相关性,大距离表示低相关性。 Embedding 是一种在机器学习和深度学习中广泛应用的技术,特别是在自然语言处理(NLP)和其他涉及高维离散数据的领域。它指将原本高维且通常离散的输入数据(如单词、短语、用户 ID、商品 ID 等)映射到一个低维连续向量空间中的过程,这些低维向量称为嵌入向量。 例如,“国王”和“王后”在嵌入向量的空间里位置挨得很近,而“苹果”与前两者差别较大,其嵌入向量位置较远。Embedding 不仅限于单词,还可扩展到句子、文档、实体或其他类型的对象。通过训练诸如 Word2Vec、GloVe 或 BERT 等模型,可从大规模文本数据中学习出这样的嵌入向量,这些嵌入向量可看作是输入数据在潜在语义空间中的表示,能改善下游任务(如文本分类、情感分析、问答系统、机器翻译等)的表现。 除文本数据外,嵌入技术还应用于社交网络分析、推荐系统、图像识别(如位置嵌入)、图神经网络(如节点嵌入)等多种场景,实现将复杂对象的有效编码和降维表示。 Embeddings 有多种分类及对应模型: 句子和文档嵌入:Doc2Vec 能为整个文档生成统一的向量表示;Average Word Embeddings 是将一段文本中所有单词的嵌入取平均作为整体的文本表示;Transformers Sentence Embeddings 如 BERT 的标记对应的向量,或者专门针对句子级别的模型如 SentenceBERT。 实体/概念嵌入:Knowledge Graph Embeddings 如 TransE、DistMult、ComplEx 等,用于将知识图谱中的实体和关系嵌入到低维向量空间中。 其他类型:图像 Embeddings 使用卷积神经网络(CNN)进行图像特征提取,得到的特征向量即为图像嵌入;音频 Embeddings 在语音识别和声纹识别中,将声音信号转化为有意义的向量表示;用户/物品 Embeddings 在推荐系统中,将用户行为或物品属性映射到低维空间以进行协同过滤或基于内容的推荐;还有图 Embeddings 用于学习图结构的表示学习方法,将图中的节点和边映射到低维向量空间中,通过 DeepWalk、Node2Vec、GraphSAGE 等算法来实现,在图分析、社交网络分析、推荐系统等领域广泛应用,用于发现社区结构、节点相似性、信息传播等图属性。 在将大型文档转换为可检索内容的过程中,嵌入向量生成这一步将文本块转换为实值向量并存储在数据库中。但检索 PDF 文档的过程充满挑战,可能出现文本提取不准确和 PDF 文档内表格行列关系混乱等问题。在检索增强生成(RAG)框架中,回答一个问题需要用户提出问询,系统从私有知识库中检索相关内容,将相关内容与用户查询合并为上下文,最后请求大语言模型生成答案,准确检索相关信息对 RAG 模型的效力至关重要。
2024-12-11
向量检索在大语言模型中的应用主要是为了解决什么问题
向量检索在大语言模型中的应用主要是为了解决以下问题: 1. 由于大模型的输入窗口有限,通过文本分割器将文档分割成较小的对象,方便后续的检索和生成,在较短的文本中更容易找到相关信息。 2. 利用文本嵌入器将文本转换为高维向量,通过衡量文本之间的相似度实现检索功能。 3. 借助向量存储器存储和查询嵌入,通常使用索引技术如 Faiss 或 Annoy 加速嵌入的检索。 4. 检索器根据文本查询返回相关的文档对象,常见的实现如向量存储器检索器使用向量存储器的相似度搜索功能进行检索。
2024-12-05
ollama嵌入向量在模型后有什么用
嵌入向量在模型后的作用主要体现在以下方面: 1. 用于文档内容的表示和检索:将文档分成块,计算嵌入向量并存储在向量存储中,在测试时通过查询向量存储获取可能与任务相关的块,填充到提示中进行生成。 2. 提升模型的检索能力:在大语言模型应用程序中,向量存储成为检索相关上下文的主要方式,嵌入向量有助于更高效地获取相关信息。 3. 支持多语言和不同粒度的检索任务:例如像 bgem3 这样的向量模型,支持超过 100 种语言的语义表示及检索任务,能实现句子、段落、篇章、文档等不同粒度的检索。 在实际应用中,如在 LangChain 中,本地向量存储使用量较大,而在计算文本片段的嵌入时,OpenAI 占据主导地位,开源提供商如 Hugging Face 等也被较多使用。
2024-11-12
数据如何向量化
数据向量化是为了实现高效的文档检索,将原始的文本数据转化为数值向量的过程。其目的是将文本数据映射到低维向量空间,使语义相似的文本距离较近,不相似的较远。但这一过程会导致一定程度的信息损失,因为文本的复杂性和多样性难以用有限向量完全表达,可能忽略细节和特征,影响文档检索准确性。 在语义搜索中,根据用户问题从文档集合中检索语义最相关的文档,主流方法是基于数据向量化结果,利用向量空间中的距离或相似度度量语义相似度,但存在局限性,如不能完全反映真实语义相似度,向量空间中的噪声和异常值会干扰结果,导致准确率无法 100%保证。 在计算机科学和数据分析中,向量常被用作表示数据点的方式,是一个数值列表或数组,每个数值代表数据点的一个特征。多维数据运算常以矩阵形式进行,矩阵乘法是基本操作。归一化是数据预处理的关键技术,用于调整数值数据范围,常用方法有最小最大缩放和 Z 得分标准化。 在向量数据库中,当用户输入查询时,如“激动人心的科幻冒险”,会转换成一个向量,例如,表示对不同元素的偏好程度。向量数据库存放的是词在不同维度上的相对位置,数据的存储和检索与传统 Excel 和关系数据库有很大不同。关于文字如何转换成向量,实际的向量结构会很复杂。
2024-10-12
coze工作流中数据库如何应用?主要是返回数据
在 Coze 工作流中,数据库的应用如下: 工作流由多个节点构成,节点是基本单元。Coze 平台支持的节点类型包括数据库节点。 数据库节点的输入:用户可以定义多个输入参数。 数据库节点的输出:如果数据库是查询作用,则输出会包含查询出来的内容。通过 SQL 语句告诉数据库要执行的动作,这里的 SQL 语句可以让 AI 自动生成并进行适当改动。 注意事项:Coze 平台的逻辑是数据库与 bot 绑定,使用数据库功能时,需要在 bot 中设置相同名称和数据结构的数据库进行绑定。 测试工作流:编辑完成的工作流无法直接提交,需要进行测试。点击右上角的“test run”,设定测试参数,查看测试结果,完成后发布。 相关参考文档和示例: 海外参考文档:https://www.coze.com/docs/zh_cn/use_workflow.html 国内参考文档:https://www.coze.cn/docs/guides/use_workflow 国内版本示例: 搜索新闻:https://www.coze.cn/docs/guides/workflow_search_news 使用 LLM 处理问题:https://www.coze.cn/docs/guides/workflow_use_llm 生成随机数:https://www.coze.cn/docs/guides/workflow_use_code 搜索并获取第一个链接的内容:https://www.coze.cn/docs/guides/workflow_get_content 识别用户意图:https://www.coze.cn/docs/guides/workflow_user_intent 在【拔刀刘】自动总结公众号内容,定时推送到微信的案例中,循环体内部的数据库节点用来在数据库中查询是否已经推送过该篇文章,输入项为上一步中的 url 和开始节点的 key(重命名为 suid)。查询数据库需要文章 url 和用户的 suid 两个值来判断这名用户的这篇文章是否推送过。记得设置输出项“combined_output”。同时,Coze 平台中使用数据库功能需要在 bot 中设置相同名称和数据结构的数据库进行绑定,具体设置方法参见“相关资源”。
2025-01-08
AI智能数据库查询助手
以下是关于您提出的“AI 智能数据库查询助手”的相关信息: 能联网检索的 AI: 存在能联网检索的 AI,它们通过连接互联网实时搜索、筛选并整合所需数据,为用户提供更精准和个性化的信息。例如: ChatGPT Plus 用户现在可以开启 web browsing 功能,实现联网功能。 Perplexity 结合了 ChatGPT 式的问答和普通搜索引擎的功能,允许用户指定希望聊天机器人在制定响应时搜索的源类型。 Bing Copilot 作为 AI 助手,旨在简化您的在线查询和浏览活动。 还有如 You.com 和 Neeva AI 等搜索引擎,提供基于人工智能的定制搜索体验,并保持用户数据的私密性。 AI 新产品|网站精选推荐: AIHelperBot 自动生成 SQL Queries,支持数据库一键链接或导入。当前收费$5 每月,可免费试用 7 天。链接:https://skybox.blockadelabs.com/ ChartGPT by CadLabs 由 CadLabs 开发工具,基于 GPT3.5,可以根据数据生成图表并回答问题。链接:https://chartgpt.cadlabs.org/ Embedding Store 功能如其名,是一站式 Embedding Marketplace,支持公开、私有及第三方数据,用于发现、评估和访问相关的嵌入(embeddings),产品还未上线。链接:https://www.embedding.store/ AI 在医疗药品零售领域的应用: AI 在医疗药品零售领域有着多方面的应用前景: 药品推荐系统:利用机器学习算法分析用户购买记录、症状描述等数据,为用户推荐合适的非处方药品和保健品,提升销售转化率。 药品库存管理:通过分析历史销售数据、天气、疫情等因素,AI 系统可以预测未来某段时间内的药品需求量,优化药店的库存管理策略,降低成本。 药品识别与查询:借助计算机视觉技术,用户可以用手机拍摄药品图像,AI 系统自动识别药名并提供说明、用法、禁忌等信息查询服务。 客户服务智能助手:基于自然语言处理技术,AI 虚拟助手可以回答顾客关于购药、用药、保健等常见问题,减轻人工客服的工作压力。 药店运营分析:AI 可以分析药店的销售、顾客流量、库存等大数据,发现潜在的运营问题和优化空间,为决策提供参考。 药品质量监控:通过机器视觉、图像识别等技术,AI 能够自动检测药品的包装、标签、颜色等是否合格,及时发现问题。 药品防伪追溯:利用区块链等技术,AI 可以实现全流程的药品溯源,确保药品供应链的安全性和真实可信度。 总之,AI 技术在药品零售领域可以提升购药体验、优化库存管理、降低运营成本、保障药品质量安全,是一个值得重视的发展方向。 请注意,以上内容由 AI 大模型生成,请仔细甄别。
2025-01-07
如何部署本地的智能数据库
以下是关于如何部署本地智能数据库的详细步骤: 1. 引言: 作者是致力于使用 AI 工具将自己打造为超级个体的程序员,目前沉浸于 AI Agent 研究。 本文将分享如何部署本地大模型以及搭建个人知识库,让您了解相关流程和技术。 2. 本地知识库进阶: 若要更灵活掌控知识库,可使用额外软件 AnythingLLM,它包含所有 Open WebUI 的能力,并额外支持选择文本嵌入模型和向量数据库。 安装地址:https://useanything.com/download 。 安装完成后进入配置页面,主要分为三步: 第一步:选择大模型。 第二步:选择文本嵌入模型。 第三步:选择向量数据库。 AnythingLLM 中有 Workspace 的概念,可创建独有 Workspace 与其他项目数据隔离。 构建本地知识库的步骤: 首先创建一个工作空间。 上传文档并在工作空间中进行文本嵌入。 选择对话模式,包括 Chat 模式(大模型根据训练数据和上传文档综合给出答案)和 Query 模式(大模型仅依靠文档中的数据给出答案)。 完成配置后即可进行测试对话。 3. 写在最后: 作者推崇“看十遍不如实操一遍,实操十遍不如分享一遍”。 若对 AI Agent 技术感兴趣,可联系作者或加入其免费知识星球(备注 AGI 知识库)。
2024-12-02
我想知道如果我上传给Coze数据库,我的数据安全有保障吗
关于您上传数据到 Coze 数据库的数据安全保障问题,以下是相关信息: 合规说明方面: 不存在产出违法违规内容,包括色情暴力、政治敏感和违法犯罪等。 不存在爬取行为,遵循 robot.txt 爬虫协议,未使用匿名代理。 不存在版权争议问题,未爬取强版权资源、付费内容等。 不存在跨境数据传输,未使用海外 API 和海外模型。 有安全合规声明,作者声明作品没有侵权,作品安全可用且公开可接受。 Coze 数据库的功能特点: 知识库功能不仅支持上传和存储外部知识内容,还提供多样化的检索能力,能解决大模型可能出现的幻觉问题和专业领域知识的不足,显著提升回复准确性。支持从多种数据源上传文本和表格数据,自动将知识内容切分成多个片段进行存储,并允许用户自定义内容分片规则,提供多种检索方式,适应各种使用场景。 数据库具备记忆能力,可以存储和检索用户的交互历史,以提供更加个性化的服务。支持实时更新,确保信息最新。能存储用户的交互历史,包括提问、回答和反馈,用于理解用户需求和优化对话流程,可进行个性化服务和错误纠正与学习。 综上所述,从目前的信息来看,您上传给 Coze 数据库的数据在一定程度上是有安全保障的。但具体情况还需参考 Coze 数据库的最新政策和规定。
2024-11-14
大模型如何接入企业数据库
大模型接入企业数据库的相关内容如下: 原理介绍: 从文档处理角度来看,实现流程包括配置要求。 配置要求: ChatGLM6B 模型硬件需求: 模型文件下载至本地需要 15GB 存储空间。 量化等级不同,最低 GPU 显存(推理)和最低 GPU 显存(高效参数微调)要求不同: FP16(无量化):分别为 13GB 和 14GB。 INT8:分别为 8GB 和 9GB。 INT4:分别为 6GB 和 7GB。 MOSS 模型硬件需求: 模型文件下载至本地需要 70GB 存储空间。 量化等级不同,最低 GPU 显存(推理)和最低 GPU 显存(高效参数微调)要求不同: FP16(无量化):分别为 68GB 和 。 INT8:分别为 20GB 和 。 Embedding 模型硬件需求:默认选用的 Embedding 模型约占用显存 3GB,也可修改为在 CPU 中运行。 项目启动: Web 启动:运行 web.py,若显存不足则调整 configs/model_config.py 文件中 LLM_MODEL 参数更换模型,若连接无法连接修改 web.py 文件末尾 lauch 中 0.0.0.0 为 127.0.0.1,点击 URL 进入 UI 界面。 API 模式启动。 命令行模式启动。 上传知识库: 左侧知识库问答中选择新建知识库,可传输 txt、pdf 等。可以调整 prompt,匹配不同的知识库,让 LLM 扮演不同的角色。例如上传公司财报,充当财务分析师;上传客服聊天记录,充当智能客服;上传经典 Case,充当律师助手;上传医院百科全书,充当在线问诊医生等等,MOSS 同理。 使用数据表: 通过在工作流中添加数据库节点对数据表进行操作。在工作流中可通过 NL2SQL 方式和代码方式进行调用,支持完整读写模式。参考以下操作,在工作流中添加并配置工作流节点。在工作流中配置数据库节点前,确保已经搭建了一个 Bot,并在这个 Bot 中创建好了数据表。 1. 单击页面顶部的工作流页签,然后单击创建工作流。 2. 输入工作流名称和工作流的使用描述,然后单击确认。工作流名称和描述可以帮助大语言模型理解什么场景下需要调用该工作流。 1. 在基础节点页签下,将数据库节点拖入到工作流配置画布区域。 2. 根据以下信息配置数据库节点。 输入:添加 SQL 执行中需要的参数,可以是一个变量,也可以是一个固定值。 SQL:输入要执行的 SQL 语句,可以直接使用输入参数中的变量。可单击自动生成使用大模型生成 SQL。在弹出的页面中,选择这个数据库工作流生效的 Bot 和数据表,然后使用自然语言描述要执行的操作,单击自动生成生成 SQL 语句,最后单击使用。 注意:不支持 Select语法,不支持多表 Join 操作,最多返回 100 行数据。
2024-10-11