TOOLS / 8 BOOKS / 08 · ENGINE v1
Ollama 与 RAGFlow 本地生态
本册:本地模型与本地知识库
30 SECONDS / 30 秒看懂
这一册只解决一件事:本地跑模型靠 GGUF 量化 + 异构卸载;解析复杂 PDF 靠 RAGFlow DeepDoc 的版面与表格识别。
- FP16 8B 约 16GB,GGUF Q4 可压到约 4.9GB
- 显存不够时按层把部分网络卸载到 CPU/RAM
- DeepDoc 先做版面识别,再处理双栏、跨页表格
3 MINUTES / 3 分钟拆解
先看来源里的例子:PDF 本册核心例子(来源)
普通 PyPDF 提取左右双栏论文和跨页合并单元格表格。
发生了什么
PDF 没有“栏/表头”语义,纯文本提取会把左栏第一行和右栏第一行硬拼;跨页表格第 2 页缺少表头,切分后成无头数字。
输出
来源做法:DeepDoc 先识别版面区域,再做表格结构识别,跨页表格自动克隆表头,转成 HTML/Markdown。
术语拆开
- GGUF
- llama.cpp 生态的量化模型格式。
- Layer Offloading
- 显存不足时把部分层分流到 CPU/内存。
- DeepDoc
- RAGFlow 的文档版面/表格解析引擎。
为什么有效
来源强调:本地生态适合隐私/断网和底层实验;但量化会损失少量精度,复杂 PDF 必须做视觉版面解析。
结构长什么样
模型 → GGUF 量化 → GPU 层 + CPU 层卸载\nPDF → 版面识别 → 表格结构 → Markdown/HTML
为什么普通文本提取器会把双栏论文读成乱码?
SOURCE READING / 来源精读
本册讲 Ollama 本地运行、GGUF 量化与异构卸载,以及 RAGFlow/DeepDoc 的复杂文档解析。
逐点读懂
- GGUF 量化让消费级硬件能跑模型
- Ollama 支持 GPU/CPU 分层卸载
- RAGFlow/DeepDoc 解决复杂 PDF 解析
怎么对应本关练习
先用 30 秒看懂抓四层结构,再读本册的‘顿悟时刻/原理/动手实验’,最后做课后自测;答案在下方。
例子在哪
本册的动手实验与课后自测都在原文;参考答案见本页下方。
本地模型与本地知识库
【第二辑:神兵利器篇 · 课题 08 / 08】AI 现代必修课 · 前沿工具深讲与动手实验讲义
利器08:本地大模型与开源深度知识库——Ollama (Qwen3.8 / DeepSeek-V4.1)与 RAGFlow 动手实验亲手在个人电脑跑起开源权重模型与深度视觉解析引擎:搞懂 GGUF 异构卸载、Modelfile 定制与 DeepDoc 跨页表格还原核心知识参考 : ollama/ollama 、 Qwen3.8-27B 、 Qwen3.6-35B-A3B 、 Qwen3.5-9B 与 infiniflow/ragflow (DeepDoc)
一、顿悟时刻:哦,原来本地跑大模型和解析复杂 PDF 表格靠的是这两项黑科技!
在日常大多数场景下,我们优先使用云端旗舰模型(《利器01》)。
但在两类特殊场景下,本地开源生态具有不可替代的价值:第一是物理断网或绝对隐私环境(如未公开的科研原始数据、医院病历或涉密文档,绝不允许离开本机硬盘半步);第二是想要亲手做《内功01》和《内功05》的底层参数实验。
本册带你一次吃透本地算力引擎 Ollama 与开源深度文档解析霸主 RAGFlow 的核心运行机制。真相一:为什么普通家用电脑也能跑大模型?
揭秘 GGUF 4-bit 量化与“GPU + CPU 异构混合分流 (Offloading)” 一个原始 FP16 精度的 80 亿参数(8B)模型体积高达 16 GB,普通轻薄本根本装不下。
而 Ollama(底层基于 C++ 引擎 llama.cpp)采用了两项工程巧思: 第一招:GGUF 4-bit 权重量化(如 Q4_K_M)——将每个参数从 16 位浮点数压缩为约 4.5 位整数,使 8B 模型体积直接缩减至 4.9 GB 左右,而语义推理能力保留率高达 98% 以上。
第二招:按层异构卸载(Layer Offloading)——如果你的显卡只有 6 GB 显存,却想体验一个 9 GB 的 14B 模型怎么办?
Ollama 不会直接报错崩溃,而是自动把模型的神经网络拆开:前 28 层放进高速 GPU 显存里算,放不下的后 12 层自动分流到普通系统内存(RAM)里由 CPU 接力计算!
(而在 Apple Silicon M 系列芯片的 Mac 上,由于采用统一内存架构 Unified Memory,CPU 与 GPU 共享同一块大内存池,跑本地模型更是得天独厚!
) 真相二:为什么普通 RAG 一遇到“双栏论文”和“跨页合并单元格表格”就变瞎子?
揭秘 RAGFlow 的 DeepDoc 视觉引擎 PDF 格式本质上是“打印机的墨水坐标指令集”,它内部根本没有“左右双栏”或“表格表头”的标签。
传统的文本提取器(如基础 PyPDF)只是机械地从左到右按水平线读字——遇到左右双栏排版的论文,它会把左栏第一行和右栏第一行硬拼成一句乱码;遇到跨页的财务/实验大表,翻到第 2 页时没有表头,切分器直接把第 2 页的数字切成孤立的无头碎片!
而 RAGFlow 的核心王牌 DeepDoc(深度文档视觉理解引擎) 改变了游戏规则:它先把每一页 PDF 当成图片,用计算机视觉(CV)模型做“版面布局识别(Layout Analysis)”,先用画框分清哪块是左栏、哪块是右栏、哪块是页眉页脚(直接剔除防干扰)、哪块是表格;接着启动 TSR(表格结构识别)模型,自动识别合并单元格,并在切分跨页表格时自动将第 1 页的表头克隆绑定到第 2 页的每一行数据上,再转化为完整的 HTML/Markdown 表格喂给大模型!
电脑硬件配置档位 2026 推荐拉取的本地主力模型命令黄金适用实验场景 8GB 显存 / 16GB 内存 (主流笔记本 / 入门独显) ollama run qwen3.5:9b(Qwen3.5-9B) ollama run deepseek-r1:8b 本地离线问答、中英翻译、观察 R1 蒸馏版思维链、轻量代码补全。
电脑硬件配置档位 2026 推荐拉取的本地主力模型命令黄金适用实验场景 12GB~16GB 显存 / 32GB 内存 (进阶工作站 / Mac M系列) ollama run qwen3.6:35b-a3b(35B总参/3B激活MoE) ollama run deepseek-r1:14b / gemma4 高强度本地代码编写、复杂逻辑推演、配合本地知识库做长文档问答。
24GB+ 显存 / 32GB+ 内存 (高配显卡 / Mac Studio) ollama pull qwen3.8:27b(原生视觉+推理霸主) ollama run qwen3.8-flash-next (125B/6B 混合注意力MoE) 强烈推荐 Qwen3.8-27B(约17~24GB显存/内存可跑,自带原生视觉编码器与强推理)与 Qwen3.8-Flash-Next(Gated DeltaNet 混合注意力 MoE)!
本地 RAG 必备嵌入模型 ollama pull bge-m3 挂载给 Open WebUI / Dify / RAGFlow 作为本地多语言高精向量编码器。
二、核心操作深讲:Ollama 核心命令、Modelfile 定制与 RAGFlow 行业切片模板
1. Ollama 必会命令与 Modelfile 上下文窗口扩容(避开默认 2048 截断大坑!)
安装 Ollama 后,有两个细节极易被初学者忽略:第一,通过 ollama ps 可以实时查看当前模型是 100% GPU 运行还是触发了 CPU/GPU 混合分流;第二,Ollama 为了节省显存,默认将上下文窗口(num_ctx)限制在较小的范围 (早期默认仅 2048 Tokens)!
如果你喂给它一篇 5,000 字的文档,超出部分会被静默截断丢弃!
只需手写一个 4 行的 Modelfile 即可定制一个大窗口专属模型: # 1. 创建名为 Modelfile 的纯文本文件,写入以下配置: FROM qwen3.8:27b PARAMETER num_ctx 16384 PARAMETER temperature 0.2 SYSTEM "你是一位严谨的计算机科学助教,请用清晰的结构回答问题。
" # 2. 在终端将该配置编译为名为 cs-tutor 的本地专属模型并运行: ollama create cs-tutor -f ./Modelfile ollama run cs-tutor
2. RAGFlow 行业专属切片模板(Template-based Chunking)选型指南
使用 Docker 启动 RAGFlow(注意启动前需在 Linux 宿主机执行 sudo sysctl -w vm.max_map_count=262144 为检索引擎扩容虚拟内存)后,千万不要对所有文档都用默认的 General(通用切片),请根据文档版式选对专属解析模板: Paper(学术论文模板):自动识别双栏排版并还原正确阅读顺序,将摘要、引言、实验、公式与图表图注 (Caption)强绑定。
Laws(法条与规章模板):按“编―章―节―条―款”树状层级完整切分,绝不把前提条件与结论劈成两半。Table(表格专属模板):每一行数据自动携带完整表头列名独立建立向量与全文索引,支持百行大表精准问答。
开启 Auto-keyword 与 Auto-question(反向假设性问题索引增强):在文档入库切块时,让大模型自动为每个切片生成 2〜3 个读者最可能提问的口语化问题拼入索引,让检索召回率再提升一个台阶!
三、动手实验(Hands-on Lab):观察 MoE 极速推理与自定义 Modelfile
实验 1:用 ollama ps 观测显存分流并编译你的第一个大窗口 Modelfile
1. 在本机安装 Ollama 后,打开两个终端窗口:在窗口 A 运行 ollama run qwen3.5:9b(Qwen3.5-9B)(或
deepseek-r1:8b),在窗口 B 立即输入 ollama ps,观察 SIZE 与 PROCESSOR 列显示的 GPU/CPU 占比。
2. 按照上文步骤创建一份将 num_ctx 设为 16384 的 Modelfile,执行 ollama create 编译后再运行 ollama ps,观察
上下文窗口扩大后显存占用的真实变化(亲身验证《内功07》的 KV Cache 显存公式!)。
实验 2:对比普通文本提取与 DeepDoc 视觉布局解析在跨页表格上的差异准备一份包含双栏排版或跨页表格的学术论文 PDF,分别用普通纯文本复制粘贴方式与 RAGFlow 的 Paper / Table 视觉解析模板进行切片预览,观察 RAGFlow 如何在右侧预览窗中用彩色方框标出各个段落、公式与表格,并自动补⻬跨页表头。
同时开启知识库设置中的 Auto-keyword 与 Auto-question 开关,观察切片索引中自动生成的假设性问题如何显著提升口语化查询的命中率。
四、课后自测习题与详细解析(5 关 50 分 · 检验你的本地生态内功)
【课后自测题(请先独立思考作答,再对照下方解析)】
1. 第 1 题(异构卸载与 MoE 架构理解 · 10 分):为什么一台只有 8GB 显存 + 16GB 系统内存的普通电脑,在
运行 14B 量化模型(约 9GB)时不会直接报错崩溃,但吐字速度会明显变慢?
此外,像 Qwen3.8-Flash-Next (125B总参/6B激活MoE) 与 Qwen3.6-35B-A3B(35B总参/3B激活MoE) 这样的 MoE(混合专家)模型为什么能比同体积的稠密模型跑得快得多?
2. 第 2 题(长文本截断排障 · 10 分):一位同学用本地默认拉取的开源模型总结一篇 8,000 字的文献,发现
模型永远只总结最后 2,000 字的内容,对文章开头提的核心概念一问三不知。请指出根本原因,并写出通过 Modelfile 修复该问题的核心指令。
3. 第 3 题(局域网与容器通信配置 · 10 分):你在本机直接安装了 Ollama,随后用 Docker 容器启动了可视
化界面 Open WebUI(或 Dify),发现容器内无法连接到 http://localhost:11434。请问如果希望 Ollama 允许非本机回环地址访问,需要配置什么环境变量?Docker 容器内应填写什么地址连接宿主机?
4. 第 4 题(DeepDoc 视觉解析原理 · 10 分):当处理一份包含“左右双栏文字 + 跨页财务合并单元格表格”
的复杂 PDF 报告时,为什么传统基于纯文本流的提取器会彻底失效,而 RAGFlow 的 DeepDoc 引擎能够准确还原?
5. 第 5 题(Auto-question 索引增强机制 · 10 分):在 RAGFlow 知识库设置中开启 Auto-question(自动问题
生成) 后,文档入库速度会变慢,但后续用口语化问题检索书面语教材时的命中率却大幅上升。请从向量空间对⻬角度解释其底层原理。
PRACTICE / 本关练习 · 本地规则 + 覆盖检查
本册课后自测与实验
本地检查在你的浏览器里完成,不上传。覆盖检查需要先登录(免费注册),并把这段答案发送到服务器计算一次,算完即弃、不存档,需你点同意;只核对本关评分项覆盖的方向,不在评分项里的题目不会被检查。
评分项
结构分 — / 50 分
查看参考答案与得分点 先自己写,再打开+
参考答案与解析
1. 第 1 题解析:1 不会崩溃但变慢是因为触发了 Ollama / llama.cpp 的按层异构混合卸载(Layer
Offloading):装不进 8GB 显存的剩余神经网络层被分流到了系统内存(RAM)由 CPU 运算,而系统内存带宽远低于显卡显存带宽;2 MoE(混合专家,如 Qwen3.6-35B-A3B 或 Qwen3.8-Flash-Next 125B-A6B) 虽然总参数量高达 350 亿或 1,250 亿,但在生成每个 Token 时通过门控路由每次仅激活其中 30 亿(3B)或 60 亿(6B)参数参与矩阵计算,因此计算量仅相当于 3B 小模型,速度极快!(答出 CPU/GPU 分流带宽差异得 5 分,答出 MoE 稀疏激活计算量小得 5 分)
2. 第 2 题解析:根本原因是本地模型的默认上下文窗口(num_ctx)较小,8,000 字超出了默认窗口上限,导致
文章前半部分在入模时被静默截断丢弃。修复方法是在 Modelfile 中添加 PARAMETER num_ctx 16384(或 32768),再用 ollama create 重新打包模型。(指出 num_ctx 默认截断得 5 分,写出 PARAMETER num_ctx 配置得 5 分)
3. 第 3 题解析:宿主机需为 Ollama 配置环境变量 OLLAMA_HOST=0.0.0.0:11434(监听所有网卡接口)并重启服
务;Docker 启动容器时添加 --add-host=host.docker.internal:host-gateway,并在容器内部将 Ollama 地址填写为 http://host.docker.internal:11434。(环境变量与 host.docker.internal 地址各 5 分)
4. 第 4 题解析:纯文本提取器按整页水平坐标顺序读字,会将双栏的左右两行混拼在一起,且翻页后的表格行
丢失了第 1 页的表头列名;RAGFlow 的 DeepDoc 先通过计算机视觉模型执行版面分析(Layout Analysis)独立切出左右栏阅读流,再通过 TSR(表格结构识别) 识别行列网格并将第 1 页表头自动克隆拼接到跨页表格的每一行数据上。(答出版面分析抗双栏混淆与 TSR 跨页表头克隆得 10 分)
5. 第 5 题解析:教材原文往往是高度凝练的陈述句(书面语),而学习者的提问是带有疑问词的口语,两者在
Embedding 向量空间中存在一定的“模态与语体偏移(Query-Document Mismatch)”。开启 Auto- question 后,系统在入库阶段预先用大模型为每个知识块生成几个对应的疑问句并拼入该块的索引向量中, 实现了“用问题匹配问题”,大幅拉近了查询向量与目标切片向量的余弦距离!(解释消弭口语查询与书面正文向量偏移得 10 分)
网页永久免费。完整 PDF 会按顺序发给留邮箱的读者,不转售、不群发广告。
留邮箱,获取完整 PDF ↗