- 博客(24)
- 资源 (6)
- 收藏
- 关注
原创 RAG第五篇:怎么客观衡量你的 RAG 好不好(RAGAS 思路)
RAG 系统搭好后,怎么客观衡量它好不好?本文引入 RAGAS 框架,把 RAG 拆成检索与生成两层、四指标:精确率、召回率、忠实度、答案相关性。用 Go 实现评测器,以 8 篇登月知识库为测试集,对比 Top-1 与 Top-3+Rerank 两配置。结果:单看精确率会误判,召回率暴露 Top-1 信息缺失;检索短板传导为生成短板 ——CR 低则 FF 低。用可解释信号近似 LLM 裁判,本地可复现,助你建立 RAG 评测体系。
2026-08-28 22:28:15
531
原创 RAG第四篇:重排序 Rerank——粗召回之后,为什么还需要一次精排
RAG 检索是两段式:向量检索粗召回,Rerank 精排。Top-K 为何不够准?Bi-Encoder 独立编码、看不到词级交互,正确答案常被排后。讲透 Bi/Cross-Encoder 分工,介绍 BGE-Reranker、Cohere Rerank 及参数(K 50~200,Top5~10);以 "中国载人登月"8 篇知识库 + 12 查询实测:某查询正确答案语义分仅 0.289、被粗召回丢第 4,Rerank 靠词级交互(0.721)救回 Top1,命中率 11/12→12/12;附可运行代码。
2026-08-26 23:59:39
146
原创 RAG第三篇:混合检索 Hybrid Search——为什么 RAG 要用“BM25 + 向量“双路召回
本文讲透 RAG 检索标配方案 —— 混合检索:为什么只用向量检索会漏掉专有名词、只用 BM25 会漏掉同义改写;拆解 BM25 的 IDF 加权、词频饱和、长度归一化三大设计;讲清双路召回 + RRF 排名融合架构;用 "中国载人登月"8 篇知识库对比:纯向量在专有名词查询上 Top1 跑偏、纯 BM25 在近义改写查询上漏掉正确文档、混合 RRF Top3 命中 8/8 最全;最后用 Go 实现词典分词、同义扩充、向量检索器、BM25 检索器与 RRF 融合,可一键运行复现。
2026-08-26 23:18:31
283
原创 RAG第二篇:文本分块策略 Chunking——怎么切,决定检索质量的上限
本文讲透 RAG 的关键前置环节 —— 文本分块(Chunking):为什么 "怎么切" 直接决定检索质量上限;对比固定长度、递归字符、语义分块、按结构四大方法;详解 overlap 重叠窗口的作用与取值;用 64/128/256/512 分块大小对比句子切断率的真实实验,回答 "块切多大合适";最后用 Go 手写含固定长度 + overlap、递归字符、Markdown 结构化分块及实验统计的完整分块器,可一键运行复现。
2026-08-26 16:15:02
338
原创 Ai应用第一篇:搭建自己的AI编码助手
本文围绕政务内网场景下的离线开发环境建设,介绍如何在华为 NPU 环境中部署 Coder,实现无公网依赖、安全可控、可团队协作的代码开发入口。内容涵盖环境准备、离线安装、权限配置、NPU 加速适配、反向代理与常见问题排查,适合企业内网开发平台建设参考。
2026-08-26 15:21:30
401
原创 RAG第一篇:RAG 全景——从原理到实践
本文系统介绍了检索增强生成(RAG)技术,剖析了其核心价值、实现链路及优化方向。全文要点包括:1)RAG通过先检索后生成的方式解决大模型知识过时、幻觉和私有知识缺失三大缺陷;2)详细拆解RAG离线建库和在线问答两阶段全流程;3)对比RAG与微调、长上下文的适用场景,指出RAG改动小、成本低的优势;4)分析RAG的三个演进阶段(基础版-高级版-模块化)和三大失败模式(查不到/查不准/答不对);5)提供Go语言实现的系统骨架代码和20个自查问题,帮助读者全面掌握RAG技术。文章强调RAG是连接大模型与外部知识的
2026-08-26 00:35:09
284
原创 VecDB第十篇:除了HNSW,向量索引还有什么?——IVFFlat与PQ量化原理
本文介绍了两类向量索引技术:IVFFlat和PQ量化,用于解决大规模向量搜索的内存和效率问题。IVFFlat通过K-Means聚类将向量分桶,查询时仅搜索最近桶内向量,显著减少计算量;PQ量化将高维向量分段压缩,用质心编码替代原始向量,内存占用可降至1/32-1/64。二者结合的IVF_PQ兼具分桶筛选和量化压缩优势,适合亿级数据场景。文章对比了HNSW、IVFFlat和IVF_PQ的性能指标,并给出选型建议:小数据用暴力搜索,中等规模首选HNSW,超大数据需采用IVF_PQ。最后提供了参数调优指南,帮助根
2026-08-07 09:22:44
308
原创 VecDB第九篇:为什么百万数据也能秒级检索?——HNSW向量索引原理
本文介绍了HNSW(分层可导航小世界)向量索引的原理与应用。HNSW通过构建分层网络结构实现高效检索,上层稀疏连接用于快速定位,下层稠密连接用于精准查找。文章以8条新闻文本为例,演示了向量化过程和距离计算方法,通过欧氏距离矩阵分析节点间的邻近关系。HNSW借鉴"六度人脉"的小世界网络特性,使得百万级数据检索仅需对数级计算量,相比暴力检索大幅提升效率。这种索引结构适用于文本、图像等向量化数据的快速相似性搜索。
2026-05-06 23:10:11
412
原创 VecDB第八篇:让大模型自己切文档——语义切片
这篇文章探讨了知识切片在RAG流程中的关键作用,分析了传统切片方法(固定长度、段落、句子、滑动窗口、递归切片)的缺陷,包括语义断裂、主题混杂、上下文丢失等问题。作者指出这些方法无法真正理解语义边界,导致检索效果不稳定。文章提出了语义切片的概念,通过计算句子间相似度来识别主题边界,实现更精准的知识组织。这种方法能避免生硬切割,保持语义完整性,从而提升后续向量化和检索的效果。
2026-04-22 21:59:55
329
原创 VecDB第七篇:输入文字,怎么搜出图片?——RAG多模态(用CLIP讲透跨模态检索)
这篇文章深入浅出地介绍了多模态检索中的CLIP模型及其应用。主要内容包括: 多模态检索的核心挑战:将文本和图片编码到同一向量空间进行比较 CLIP模型的原理:通过对比学习将4亿对图文数据映射到统一空间 实际应用演示:如何使用CLIP实现"输入文字搜图片"的功能 技术实现细节:包括向量预计算、相似度匹配和结果排序 文章通过生动的比喻(如"世界语翻译官")和具体示例,解释了CLIP如何让计算机理解跨模态内容的语义关联,并提供了伪代码说明实现逻辑。特别强调了CLIP无需人工
2026-04-20 23:54:52
395
原创 VecDB第六篇:图片也能变成数字吗?——用像素讲透图片向量化
图片向量化:从像素到数字的魔法 本文介绍了图片向量化的核心原理和三种实现方法。在计算机眼中,图片本质是由像素组成的数字矩阵(如RGB值)。通过将像素值展开为一维向量,可以直接用余弦相似度比较图片相似度。文章演示了三种向量化方法:1)直接拼接像素值的简单方法;2)统计颜色分布的直方图法;3)使用深度学习的特征提取法。作者通过Go代码示例,展示了如何将4×4灰度图转为16维向量,并计算不同图片间的相似度。结果显示,结构相似的图片余弦相似度接近0.996,而结构不同的图片相似度仅0.783,验证了该方法的有效性。
2026-04-19 22:34:07
443
1
原创 VecDB第五篇:从问题到答案:一个完整的RAG系统是如何工作的
本文介绍了一个完整的RAG(检索增强生成)系统的工作流程。RAG系统通过将用户问题转化为向量,在向量数据库中检索最相关的知识片段,然后将其与问题一起输入大语言模型生成精确回答。文章以"月球任务发射时间"为例,展示了从问题向量化、相似度计算到最终答案生成的完整过程,并提供了代码实现的关键步骤。相比直接将整个知识库输入模型,RAG通过智能检索显著提高了回答效率和准确性。
2026-04-18 00:22:41
435
原创 VecDB第三篇:一眼看穿相似度:余弦相似度原理详解
余弦相似度原理摘要 余弦相似度通过计算两个向量之间的夹角余弦值来判断相似度。它将文本转换为词频向量,通过向量点积除以向量长度的乘积得到相似度分数。这种方法能有效忽略文本长度差异,专注于语义方向的一致性。余弦值越接近1,表示文本越相似;接近0则越不相关。相比其他方法,余弦相似度能更准确地反映语义相关性,且结果直观易懂(0-1范围),适合处理不同长度的文本比较。其数学公式为cos(θ)=(A·B)/(|A|×|B|),通过计算词频向量的夹角方向而非绝对距离来判断语义相似性。
2026-04-15 23:17:50
404
原创 VecDB第四篇:手把手实现文本向量数据库:从原理到CRUD操作完整指南
本文介绍了三种为AI系统提供知识的方法:提示词工程、传统数据库和向量数据库。作者通过眼科医生案例说明,当知识库增大时,提示词工程会因长度限制失效,传统数据库则无法理解语义。向量数据库通过将文本转化为向量并计算相似度,实现了语义理解和智能匹配。文章详细讲解了如何实现一个简易向量数据库,包括文档插入、ID查询和核心的相似度搜索功能,并提供了余弦相似度计算的代码示例。这种方案完美解决了大知识库场景下的语义理解和存储问题。
2026-04-12 03:27:38
416
原创 VecDB第二篇:为什么AI能“读懂“新闻?——用登月任务讲透文本向量化
本文通过阿尔忒弥斯2号登月任务案例,通俗讲解AI如何通过文本向量化理解人类语言。核心原理是将文字转换为数字向量,包括五个步骤:文本清洗(去除噪音)、分词处理(提取关键词)、词频统计、构建向量(按词汇表顺序排列词频)、向量归一化(L2归一化使向量长度为1)。文章提供了完整的Go语言实现代码,演示如何将"阿尔忒弥斯2号"新闻片段转化为[0.35,0.71,0.35,0,0,0,0,0.35,0.35]的归一化向量。这种技术使AI能通过比较向量相似度理解文本含义,是搜索引擎推荐相关内容的基础。
2026-04-12 01:23:39
437
原创 麒麟系统docker离线安装postgres/nginx/redis
摘要:本文介绍了在麒麟Linux系统(x86_64架构)上安装Docker并部署PostgreSQL的完整流程。首先确认CPU架构并下载对应版本的Docker安装包,然后从华为镜像源获取PostgreSQL 16.10的tar包并导入。在运行容器时遇到"unable to find image"错误,解决方法是通过镜像ID直接启动容器。整个过程包括:系统架构确认、Docker安装、镜像导入、容器运行及问题处理等关键步骤,为在国产操作系统上部署数据库服务提供了实用参考。
2026-03-06 17:19:23
158
原创 Ai应用第一篇:Milvus部署Ubuntu 22+docker+Milvus(Standalone)
Milvus 向量数据库部署实战。含 Ubuntu 22.04 环境准备:换阿里云源、华为云镜像安装 Docker 及 Compose 插件、配置国内镜像加速;再用官方脚本一键启动 Milvus Standalone(v2.6.0)。重点排坑:镜像拉取超时(daemon.json 源失效)如何换源重启;脚本不可用时如何自建完整 standalone_embed.sh(含 start/stop/restart/upgrade/delete 五子命令)。适合想快速在 Ubuntu 上落地向量数据库的开发者。
2025-08-18 19:43:55
1012
原创 windows下的gosseract OCR
gosseract是Go语言构建的Tesseract,采用MIT协议分发。3.点击MinGW-W64-builds,然后点击GitHub。使用gosseract需要提前安装Tesseract.3.安装依赖,将MSYS加入系统path搜索路径。2.安装,记录安装路径。如,C:\msys64。需要设置环境变量CGO_ENABLED=1。4.根据需要选择合适的版本。1.进入MinGW官网。
2025-08-12 11:33:53
435
原创 VecDB第一篇:Go + Ollama 构建的tinyRAG应用, 如何将本地prompt知识库传送到deepseek。Prompt提示工程RAG。
本文介绍了一个基于Go语言和Ollama构建的轻量级RAG系统,专为非技术背景的眼科医生客户设计。系统采用提示词工程方式,将本地知识库(txt文件)与用户问题结合后通过Ollama调用DeepSeek模型生成回答,省去了复杂的数据库设置。项目结构简单,包含知识库加载、Ollama接口调用等核心功能模块,支持通过配置文件调整运行参数。安装只需下载Ollama、DeepSeek模型并编译运行Go代码即可。系统针对老年用户优化了操作方式,仅需将知识库文件放入指定目录即可使用,实现了技术门槛低、部署简单的智能客服解
2025-08-09 00:59:49
628
原创 Golang语言Swagger的Demo
摘要:本文介绍使用Swagger为Gin框架生成API文档的步骤:1)创建demo工程;2)修改import;3)安装swag CLI工具和Gin集成包(go install/swag和get两个依赖包);4)运行swag init生成文档。示例代码展示了main.go中如何配置Swagger路由("/swagger/*any")和API路由("/api/v1/user/:id"),包含Swagger注解规范。最后可通过访问8080端口查看文档效果。(149字)
2025-06-20 06:18:32
298
原创 简单的C语言深度学习算法。
这段C语言代码实现了一个教学用的简单神经网络(2-4-2结构),用于解决XOR异或问题。网络采用ReLU作为隐藏层激活函数,Softmax作为输出层激活函数。主要功能包括:1) 网络初始化,使用随机值设置权重和偏置;2) 前向传播计算,包含ReLU和Softmax激活;3) 反向传播计算梯度;4) 权重更新。代码不使用任何第三方库,完整实现了训练过程(10000轮)和预测功能,最终能正确分类XOR问题的4种输入组合。该实现展示了神经网络的基本原理,包括激活函数、损失计算和梯度下降等核心概念。
2025-06-19 10:31:40
470
原创 ThinkPHP8 中间件:多应用模式实现多语言功能
ThinkPHP8 中的多语言支持。\think\middleware\LoadLangPack.php 好像并不能很好的支持多语言的切换,其中$this->lang->setLangSet($langSet) 和$this->lang->switchLangSet($langset)两个语句并不能实现通过传参的方式切换语言。app\index\middleware\IndexAppLangMiddleware.php 语言切换控制中间件。app\index\config\lang.php 语言配置。
2024-10-02 07:46:58
1515
原创 gn args错误
查看原因是components\bookmarks\managed下的BUILD.gn内容错误。从git库找到正确的内容。
2024-09-17 06:38:07
541
1
@#Lucene_In_Action中文#@
2008-12-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅