[合集]本地大模型编程实战

此系列文章讲述了:如何在普通电脑上自己写代码完成常见的基于大语言模型能力的任务。 ...

一月 23, 2025 · 1 分钟 · 火云

[合集]Langchain本地RAG系统从零搭建

此系列文章详细的阐述了如何从第一行代码开始搭建一个可以运行完全在本地服务器的RAG(Retrieval Augmented Generation)系统,包含了详细的步骤说明和代码,它是保姆级教程。 它主要包含以下功能: 使用本地大语言模型做语言翻译 使用本地大语言模型做专业领域的知识问答 从系统架构来看,本系统包含了前端、API网关、后台服务三大部分: ...

十月 10, 2024 · 1 分钟 · 火云

程序员应该熟悉的概念(6)Fine-tuning和RAG

大语言模型/LLM 通常是由海量通用知识(如语法、常识、逻辑)训练的,在面对具体场景(如医疗问诊、法律文书生成)时,能力往往不足。 Fine-tuning/微调 正是为解决这一问题而生的核心技术,其本质是在预训练模型的基础上,用特定领域 / 任务的小数据集进一步训练,让模型 适配具体需求,最终输出更精准、更贴合场景的结果。 ...

九月 28, 2025 · 1 分钟 · 火云

本地大模型编程实战(37)使用知识图谱增强RAG(3)

本文将简单介绍如何使用 AutoSchemaKG 提升 RAG(Retrieval Augmented Generation,检索增强生成) 的问答效果。实现的主要思路是: 解析知识图谱文件:用 NetworkX 解析 GraphML 知识图谱文件; 嵌入:用 FAISS (Facebook AI Similarity Search) 矢量化节点(实体、事件、概念),并将边的 “源节点 + 关系 + 目标节点” 拼接为字符串之后再做嵌入; 语义检索: 检索 “源节点 + 关系 + 目标节点” 的矢量库,找出最相似的文档,再用 大语言模型(LLM)对结果进一步筛选,筛选出节点; 检索相似的 passage(文本段落); 将上述包含分数的结果合并,将分数作为初始权重,通过 NetworkX 的 Pagerank 方法在 知识图谱 中通过节点间的关联关系传播权重,权重更新后,选择权重最高的 passage(文本段落) 为结果。 PageRank 核心原理(知识图谱场景): 给节点赋予初始权重(与查询相关的节点权重高) 每个节点将自身权重按 “出边数量” 平均分配给相邻节点(例如,节点 A 有 2 条出边,就将自身权重的 1/2 分别传给两个邻居) 迭代传播,直到权重分布稳定(误差小于 tol),最终每个节点的 pr[node] 即为 “综合相关度分数”。 通过权重传播,与查询节点间接关联的节点(例如 “苹果手机”→“苹果公司”→“芯片供应商”)也能获得较高分数,挖掘出 “字面不直接匹配但语义相关” 的内容。 传统的 RAG(Retrieval Augmented Generation,检索增强生成) 一般是直接查询返回相似的 passage(文本段落),没有上述通过知识图谱调整权重的过程。 ...

九月 8, 2025 · 2 分钟 · 火云

本地大模型编程实战(36)使用知识图谱增强RAG(2)生成知识图谱

本文将简单介绍如何把文本生成 知识图谱(Knowledge Graph)。具体来说,是使用开源项目 AutoSchemaKG 生成 GraphML 。 GraphML 是 XML(Extensible Markup Language) 格式的文件,可以使用 NetworkX 等框架轻松处理这种格式的文件。下图是一个典型的 GraphML : ...

九月 7, 2025 · 2 分钟 · 火云

本地大模型编程实战(35)使用知识图谱增强RAG(1)知识图谱简介

知识图谱(Knowledge Graph)本质上是一种结构化的语义知识库,它以 “实体 - 关系 - 实体” 的三元组形式,将现实世界中的概念、实体及其关联关系进行建模和存储,核心目标是让机器能够像人一样理解和运用知识。下图就是一个典型的知识图谱: 知识图谱的主要特点是建立了“知识”之间的关联,所以它的强项是 推理 ,HugeGraph 、NetworkX 支持 PageRank(在后面RAG中会用到)、k-短路、LPA(标签传播算法)、Jaccard 相似度 等算法。有了这些支持,它在 搜索引擎 、智能问答RAG(Retrieval Augmented Generation,检索增强生成) 等领域都有广泛的应用,可以明显提升这些领域应用的智能化水平。 ...

九月 6, 2025 · 2 分钟 · 火云

本地大模型编程实战(21)支持多参数检索的RAG(Retrieval Augmented Generation,检索增强生成)(5)

在实现 RAG(Retrieval Augmented Generation,检索增强生成) 系统的时候,在检索(retrieve)知识库时通常一个参数。 本文将演练更复杂一点的情况:通过两个参数进行知识库的检索。为此会在 langgraph链 中增加一个 analyze_query 节点,它用来基于用户问题推理检索的参数。 本次构建的 LangGraph 链结构如下图: 使用 qwen2.5 、 deepseek 以及 llama3.1 做实验,用 shaw/dmeta-embedding-zh 做中文嵌入和检索。 ...

二月 18, 2025 · 3 分钟 · 火云

本地大模型编程实战(20)用langgraph和智能体实现RAG(Retrieval Augmented Generation,检索增强生成)(4)

上一篇文章我们演练了一个 用 langgraph 实现的 RAG(Retrieval Augmented Generation,检索增强生成) 系统。本文将要在此基础上,增加自动记录聊天历史的功能,另外,我们还将使用一个 Agent(智能体) 来实现几乎同样的功能,我们来一起体会一下用 langgraph 和 Agent(智能体) 实现 RAG系统 的区别。 本次构建的 LangGraph 链结构如下图: 如上图,query_or_respond 是一个条件节点,它通过能否根据用户的问题生成 工具调用(tool_calls) ,来判断是否需要检索矢量知识库:如果 工具调用 为空,则直接由大语言模型处理;否则通过 工具调用 调用 tools 进行检索。 实现类似功能的智能体结构如下图: 我们可以直观的发现:用 Agent(智能体) 实现更加简单。 使用 qwen2.5 、 deepseek 以及 llama3.1 做实验,用 shaw/dmeta-embedding-zh 做中文嵌入和检索。 ...

二月 17, 2025 · 4 分钟 · 火云

本地大模型编程实战(19)用langgraph实现RAG(Retrieval Augmented Generation,检索增强生成)(3)

上一篇文章我们演练了一个 用 langgraph 实现的 RAG(Retrieval Augmented Generation,检索增强生成) 系统。本文将要创建的系统将更加智能:如果在知识库中未找到靠谱的文档,则用 LLM(大语言模型) 自身的能力弥补。 另外,检索和生成部分增加了更多的细节控制。本次构建的 LangGraph 链如下图: 如上图,query_or_respond 是一个条件节点,它通过能否根据用户的问题生成 工具调用(tool_calls) ,来判断是否需要检索矢量知识库:如果 工具调用 为空,则直接由大语言模型处理;否则通过 工具调用 调用 tools 进行检索。 使用 qwen2.5 、 deepseek 以及 llama3.1 做实验,用 shaw/dmeta-embedding-zh 做中文嵌入和检索。 ...

二月 16, 2025 · 4 分钟 · 火云

本地大模型编程实战(18)用langgraph实现RAG(Retrieval Augmented Generation,检索增强生成)(2)

本文将使用 langgraph 实现一个简单的 RAG(Retrieval Augmented Generation,检索增强生成) 系统。 使用 qwen2.5 、 deepseek-r1 以及 llama3.1 做实验,用 shaw/dmeta-embedding-zh 做中文嵌入和检索。 ...

二月 15, 2025 · 2 分钟 · 火云