[合集]从零搭建langchain+本地大模型+本地矢量数据库的RAG系统
此系列文章详细的阐述了如何从第一行代码开始搭建一个可以运行完全在本地服务器的RAG(Retrieval Augmented Generation)系统,包含了详细的步骤说明和代码,它是保姆级教程。 它主要包含以下功能: 使用本地大语言模型做语言翻译 使用本地大语言模型做专业领域的知识问答 从系统架构来看,本系统包含了前端、API网关、后台服务三大部分: ...
此系列文章详细的阐述了如何从第一行代码开始搭建一个可以运行完全在本地服务器的RAG(Retrieval Augmented Generation)系统,包含了详细的步骤说明和代码,它是保姆级教程。 它主要包含以下功能: 使用本地大语言模型做语言翻译 使用本地大语言模型做专业领域的知识问答 从系统架构来看,本系统包含了前端、API网关、后台服务三大部分: ...
在之前的文章中,我们系统性的介绍了 嵌入和语义检索 以及 向量相似度。 本文将在语义检索领域探讨更加接近实战的话题:如何如何选择FAISS的索引类型。 Faiss 是一个用于高效相似性搜索和密集向量聚类的库。它使用 C++ 编写,并提供了完整的 Python 封装。 可以在 CPU 上运行,只是一些最有用的算法是在 GPU 上实现的。它的主要功能是: k-NN 检索: 不仅返回最近的邻居,还返回第二近、第三近、……、第 k 近的邻居; 批量处理: 一次搜索多个向量,而不是一次搜索一个。 对于许多索引类型,这比一个接一个地搜索向量更快; 以精度换取速度: 以 10% 的不正确结果为代价,换取 10 倍的速度或使用更少的内存; 范围搜索:返回查询点给定半径内的所有元素; 本地存储: 将索引存储在磁盘上而不是在 RAM 中; … ...
FAISS(Facebook AI Similarity Search)是 Facebook AI 研究院开发的一款高效的向量相似性搜索库,专门用于优化大规模高维向量的近邻搜索任务,广泛应用于语义检索、图像检索、推荐系统等场景。 本文将详细介绍如何使用 FAISS 实现语义检索。具体内容包括: 将内容矢量化并保存为索引 在保存索引的同时,保存每条信息的相关信息metadata 通过矢量库进行语义检索 语义检索是一种基于内容含义(语义)而非表面关键词的信息检索技术,核心目标是让计算机 “理解” 用户查询的真实意图,从而返回含义相关的结果,而非仅匹配字面关键词的内容。 传统检索(如早期搜索引擎)依赖关键词匹配,例如用户搜索 “如何缓解头痛”,仅会返回包含 “缓解”“头痛” 等字面词汇的内容,若某篇文章写 “应对偏头痛的方法”(未出现 “缓解”“头痛”),则会被遗漏。 语义检索则通过语义嵌入(Embedding) 技术解决这一问题: 将文本转化为 “语义向量”:用 AI 模型(如 BERT、BGE-M3 等)把用户的查询、待检索的文档(句子 / 段落)都转化为高维向量(类似 “数字指纹”),向量的相似度直接对应内容语义的相似度。 通过向量相似度匹配结果:计算 “查询向量” 与 “文档向量” 的相似度(如余弦相似度),排序后返回相似度最高的内容,实现 “含义相关即匹配”。 ...