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

大模型的探索与实践-课程笔记(八):RAG 技术原理与本地部署

Take-away Messages

  • RAG 的定位:解决大模型“不了解最新/私有知识”和“严重幻觉”的核心基座型技术。它能让大模型无痛适配用户私有数据。
  • 与 ICL、Finetuning 的对比
    • ICL(上下文学习)适合解决单一特定问题,但当参考文档过长时会失效。
    • Finetuning(微调)成本高昂且更新慢;RAG 能够随时更新知识库,快速部署
  • RAG 三部曲:Retrieval(检索) -> Augmentation(增强) -> Generation(生成)。
  • 检索的底层逻辑:不直接计算庞大的 Attention,而是将文档切片后转化为Embedding(嵌入特征),通过计算余弦相似度找出最相关的片段。

第一部分:RAG (Retrieval-Augmented Generation) 理论基础

1. 为什么需要 RAG?(业务痛点)

  • 传统搜索的局限性:例如查阅学院的保研细则,传统方式需要下载文件 -> Ctrl+F 关键词匹配。这非常脆弱:一旦关键词没对上,或者文件隐藏在后台系统,搜索就会失效。
  • 大模型的局限性
    • 幻觉严重:大模型由于对齐机制的设计,在遇到不懂的问题时极易一本正经地胡说八道(如强行证明哥德巴赫猜想),且普通用户很难察觉。
    • 上下文窗口限制:大模型无法直接吞下海量的超长文档库。

2. RAG 的核心思想与三阶段

RAG 的本质是给大模型提供先验信息,不直接让模型去长文档里跑极消耗算力的 Attention 矩阵,而是先做关键信息摘取。

  • R1 - 检索 (Retrieval)
    • 当用户提问时,从庞大的外部知识库中检索出与用户问题最相关的几个文本片段。
  • A2 - 增强 (Augmentation)
    • 将检索出来的相关内容,与用户的原始提问拼接在一起,扩展上下文(形成一个包含正确答案参考的新 Prompt)。
  • G3 - 生成 (Generation)
    • 把拼接好的短文本送入大模型,大模型基于这些增强后的内容生成最终回答。

3. 深挖核心难点:如何做“检索 (Retrieval)”?

既然不能全靠大模型的 Attention 机制,面对超长文档,如何匹配相关片段?

  1. 文档切片 (Chunking):先把长文本切成一段一段的。
  2. 特征化 (Embedding):利用深度学习的表征学习(Representation Learning),取出神经网络倒数某层的输出,将文本段落转化为特征向量(Embedding Space)。
  3. 计算相关性
    • 主流基础方法:计算用户问题的 Embedding 向量与各个文档切片 Embedding 向量之间的余弦相似度 (Cosine Similarity)。夹角越小,相关性越高。
    • 前沿进阶方法 (LLM as a retrieval predictor):把问题和截取的片段拼在一起直接问小模型:“你觉得这两个相关吗?”。如果相关就留下,不相关就扔掉(计算成本略高,但据最新论文效果更好)。

第二部分:工程实操 —— 本地部署 RAGFlow 搭建个人助手

在本地电脑部署一个支持私有知识库的问答助手。

1. 环境准备:安装 Docker

  • 什么是 Docker?Docker 相当于一个“沙箱”或隔离环境。它把开源软件所需的所有环境和依赖全都打包封死在里面,避免在本地电脑运行时发生各种库冲突。
  • 安装步骤
    1. 前往官网下载 Windows Docker (默认 AMD 64 架构)。
    2. 安装完成后必须重启电脑。
    3. 重启后打开 Docker,按照提示必须安装WSL (适用于 Linux 的 Windows 子系统)
    4. 建议使用稳定邮箱进行账号注册与 2FA 二次验证(国内邮箱可能在终端内引起验证无法跳转拉起的 Bug)。

2. 获取代码 (Clone Repo)

  • 前往 GitHub 搜索工具库ragflow
  • Fork 到自己的仓库,并通过桌面端工具(或命令行) Clone 到本地电脑。

3. 部署与连接

  1. 进入本地克隆好的ragflow文件夹内的docker文件夹。
  2. 在当前路径下打开命令行终端 (cmd / powershell)。
  3. 输入启动指令:docker compose -f docker-compose.yml up -d(该拉取过程可能受网络限制,终端内设置全局代理即可解决)。
  4. 拉取并启动成功后,在本地浏览器输入localhost:80,即可进入 RAGFlow 的图形化虚拟机界面。

4. RAGFlow 配置与使用指南

  • 第一步:配置模型:在系统中添加大模型基座的 API Keys。注意:除了生成模型,必须配置具备 Embedding 能力的模型(用于检索切片)。
  • 第二步:构建知识库:添加私有数据库(如自己平时的 txt 文件、课程规章等)。上传文件后,系统需要一定时间进行“解析 (Parsing)”(即切片和向量化)。解析完成后最好进行手动检索调试。
  • 第三步:创建助手:基于配置好的知识库和大模型创建个人 Assistant,即可实现针对私有文档的智能问答与信息提取。

🛠️ AI 工具与模型专项梳理

工具分类工具/模型名称核心功能与应用领域亮点/启发
开源 RAG 应用RAGFlow一款极其成熟的开源 RAG (检索增强生成) 工具,支持拖拽式、无代码挂载并解析本地超长文档,构建私有知识库问答助手。封装度极高,能够让小白用户在本地快速把私有文件变身 ChatGPT。核心依赖于 Embedding 模型的文本解析能力。
开发环境容器Docker开发者必备的沙箱工具。将程序运行环境连同代码一并打包,实现“一次构建,到处运行”。解决了大模型开源工具“在别人电脑上能跑,在我电脑上满地报错”的底层依赖依赖痛点。
大模型基座Gemini (文中提及)Google 的原生多模态大模型。课上老师提到用它生成连贯视角的漫画表现极佳,其底层解决超长图文上下文(Context)一致性的能力目前处于行业第一梯队。
http://www.jsqmd.com/news/695531/

相关文章:

  • Flutter for OpenHarmony 页面导航与动效库适配小记复盘:让 App 又丝滑又灵动✨
  • 告别专用芯片!手把手教你用Xilinx 7系列FPGA的OSERDESE2原语实现RGB转LVDS(附8套Vivado工程源码)
  • 框架:构建高效系统的基石
  • wps下划线不一致怎么使用空格延长下划线
  • trae cn 的skill编写规则详解
  • Weka实战:Apriori算法在市场篮子分析中的应用
  • 大语言模型在表格数据特征工程中的应用与实践
  • Selenium中的下拉框挑战:解决方案与实例
  • WebPlotDigitizer完整指南:从图表图像中提取数据的终极解决方案
  • 5个高效工作场景揭秘:为什么Windows用户都爱用AlwaysOnTop窗口置顶工具
  • 保姆级教程:在PVE虚拟机上安装黑群晖DSM,直通硬盘避坑指南
  • 基于AppBuilder-SDK构建RAG应用:从原理到产业级实践
  • Keras实战:鸢尾花多分类模型构建与优化
  • 【CUDA 13 AI算子优化黄金法则】:20年NVIDIA架构师亲授——绕过92%开发者踩坑的4大编译陷阱
  • 使用 Docker 搭建 Maven 私服
  • Playwright新标签页处理技巧
  • 日系润滑油巨头加速中国本土化布局 出光润滑油经销商大会释放三大信号
  • Meilisearch MCP服务器:连接AI助手与搜索引擎的实践指南
  • ChatGPT提示工程:原理、技巧与实践指南
  • 从零到一:我的达梦DCA认证通关实战与核心技能拆解
  • 同一个 Claude,有人 2 倍效率,有人 100 倍——差别在一张索引卡片
  • Jenkins 共享库的变量管理
  • 500kg机械臂出口包装:为什么我们最终放弃了木箱?——重型纸箱的承重结构与跌落实测
  • 免费的AI提示词生成网站推荐:为什么我最终只留下了 Crun
  • 彩虹云商城系统源码:全开源免发卡平台,支持二级商品分类与一站式部署
  • 我们如何构建 Elasticsearch simdvec,使向量搜索成为世界上最快之一
  • 从日志收集到数据处理流水线:聊聊Java管道(Pipes)在真实项目里的那些妙用
  • Claude Code插件与技能生态:从AI助手到智能体操作系统的进化
  • 别浪费那块旧硬盘!手把手教你为J1900软路由扩展存储并安装ESXi 6.7
  • 谷歌表格批量重命名文件指南