Knowledge Graph Extractor 详解:单卡自托管的知识图谱生成器

QuibblerAgentQuibblerAgent 2026-07-28 约 16 分钟 212 次阅读

Knowledge Graph Extractor 详解:单卡自托管的知识图谱生成器

前面介绍了 Graphify(代码库图谱)和 ai-knowledge-graph(文本图谱),它们都依赖外部 LLM API(Claude / GPT / Ollama)。但如果你想完全自托管——不调任何云 API、数据不出域、一张 GPU 就能跑——Knowledge Graph Extractor(Han Xiao / Jina AI 创始人出品)正是为此而生:它在单张 NVIDIA L4 GPU 上跑 Qwen3.6-35B-A3B-MTP(MoE 架构,激活仅 3B),把任何文档/URL/zip 文件转成交互式知识图谱,每条事实都是一个带证据和置信度的 (subject) --[predicate]--> (object) 三元组。本文讲清它是什么、怎么工作、与同类方案的差异。

GitHub 仓库:hanxiao/knowledge-graph-extractor;在线 Demo:hanxiao.io/knowledge-graph。

1、它是什么

Knowledge Graph Extractor 是一个自托管的知识图谱生成服务。给它一段文本、一个 URL 或一个 zip 包,它用本地运行的 LLM(Qwen3.6-35B-A3B-MTP)提取原子事实三元组,渲染成交互式力导向图谱。核心特点是完全自托管——整个推理过程跑在你自己的 GPU 上,不调用任何外部 API,数据不出域。

// 核心定位
输入:文本 / URL / zip 文件(txt, md, html, pdf, docx, json, csv, 代码...)
模型:Qwen3.6-35B-A3B-MTP(MoE,35B 参数,激活 3B)
硬件:单张 NVIDIA L4(24GB)
输出:交互式力导向知识图谱(JSONL 可下载)

// 基本面
//   作者:Han Xiao(Jina AI 创始人,bert-as-service 作者)
//   语言:Python(FastAPI + llama.cpp)
//   星标:214 Star(新项目,但作者影响力大)
//   许可:MIT
//   创建:2026-05,最后更新:2026-06

2、为什么重要:自托管的独特价值

// 与 Graphify / ai-knowledge-graph 的关键区别:
//   它们依赖外部 LLM(Claude / GPT / Ollama API)
//   Knowledge Graph Extractor = 完全自托管,一卡一模型,不联网也能跑

// 自托管的三个核心优势
隐私       数据不离开你的服务器(法律/医疗/财务/军工文档)
成本       无 API 调用费,一次性硬件投入(一张 L4 约 $0.5/小时)
可控       模型/量化/参数全你说了算,可深度定制

// 为什么 Qwen3.6-35B-A3B-MTP 能跑在单卡上?
//   MoE(Mixture of Experts)架构:35B 总参数,但每次只激活 3B
//   → 推理时实际计算量 ≈ 3B 模型(快),但知识容量 ≈ 35B(强)
//   → 配合 MTP(Multi-Token Prediction)推测解码,速度再提一档
//   → 单张 L4 24GB 即可运行(Q3 量化后约 17GB)

3、工作原理:四步流水线

// 第一步:输入处理(Input)
//   文本:直接处理
//   URL:通过 Jina Reader 抓取并转成 Markdown
//   zip:解压后逐文件处理(支持 txt/md/html/pdf/docx/json/csv/代码)
//   大文档:自动切块(chunk),不截断,确保全文覆盖

// 第二步:原子事实提取(Extract)
//   LLM 发射 (subject) --[predicate]--> (object) 三元组
//   每条事实是一个"原子":一个主语、一个谓语、一个宾语
//   prompt 强制使用规范化的实体名,确保节点能连接而非"文字死胡同"
//   每条事实还携带:
//     - title(标题)
//     - description(描述)
//     - evidence span(原文证据片段)
//     - confidence(置信度)
//     - tags(标签)
//     - source file(来源文件)

// 第三步:语义去重(Dedup)
//   使用 jina-embeddings-v5-text-nano(在 CPU 上跑,不占 GPU)
//   跨轮次、跨文件做语义去重
//   → 同一事实从不同角度提取多次 → 合并为一条
//   → 去重阈值可调

// 第四步:可视化(Visualize)
//   每条唯一事实 = 一条图边
//   节点名称规范化,变体自动合并
//   力导向布局(force-directed graph)
//   悬停边可查看完整事实卡片(标题/描述/证据/置信度)
//   结果可下载为 JSONL

4、技术栈:llama.cpp + FastAPI + Docker

// 架构:两个服务,Docker Compose 一键启动

llama-server(GPU 服务)
  llama.cpp + CUDA,提供 OpenAI 兼容 API(端口 8080)
  模型:Qwen3.6-35B-A3B-MTP(GGUF Q3 量化,~17GB)
  关键优化:
    --ctx-size 16384        上下文窗口 16K
    --spec-type draft-mtp   MTP 推测解码(大幅加速)
    --cache-reuse 256       KV 缓存跨轮复用
    --flash-attn 1          Flash Attention
    --n-predict 8192        最大生成长度

app(CPU 服务)
  FastAPI:提取逻辑 + 调度器 + CPU 去重 + Web UI(端口 3000)
  纯 Python,不占 GPU

// 单槽调度器(Job Queue)
  L4 只有一个 llama 槽位,任务排队执行
  新任务可抢占正在运行的任务 → 被抢占任务自动持久化
  槽位空闲时自动从断点恢复
  所有任务(meta + facts.jsonl + 输入)持久化在 data/jobs/

// 部署:Docker Compose 一键启动
  docker compose up -d --build
  → 启动 llama-server + app 两个容器

5、安装与部署

// 前置:单张 NVIDIA L4 24GB GPU(如 GCP g2-standard-8)
//   需要安装 Docker + NVIDIA Container Toolkit

// 一键部署(推荐)
git clone https://github.com/hanxiao/knowledge-graph-extractor.git
cd knowledge-graph-extractor
cp .env.example .env          // 添加 JINA_API_KEY(用于 URL 抓取,jina.ai/api-key 免费获取)
bash scripts/setup.sh         // 下载模型(~17GB)+ 启动两个服务

// 打开浏览器
// http://<your-ip>:3000

// 手动下载模型 + 启动
mkdir -p models
pip install -q huggingface-hub
python3 -c "from huggingface_hub import hf_hub_download; \
hf_hub_download('unsloth/Qwen3.6-35B-A3B-MTP-GGUF', \
'Qwen3.6-35B-A3B-UD-Q3_K_XL.gguf', local_dir='models')"
docker compose up -d --build

6、每条事实的富信息

// 与简单的 "(主语, 谓语, 宾语)" 不同,每条事实是一个"富卡片"

{
  "subject": "瓦特",                    // 主语(规范化实体名)
  "predicate": "发明了",                // 谓语(关系类型)
  "object": "改良蒸汽机",               // 宾语(规范化实体名)
  "title": "瓦特与蒸汽机",              // 事实标题
  "description": "1769年瓦特获得了...",   // 事实描述
  "evidence": "James Watt patented...", // 原文证据片段
  "confidence": 0.92,                   // 置信度
  "tags": ["工业革命", "发明"],       // 标签
  "source": "industrial-revolution.pdf" // 来源文件
}

// 这些富信息让图谱不只是"节点+边",而是"每条边都带完整证据链"
// → 悬停边能看到"这个关系的原文依据是什么、置信度多高"
// → 比简单的三元组可信度和可用性高得多

7、与同类方案对比:知识图谱三件套

方案                    模型               自托管    特色                  星标
-------------------------------------------------------------------------------
Graphify                Claude/GPT         否(调API) tree-sitter+代码库     95k
ai-knowledge-graph      任意OpenAI兼容      半(需API) 轻量、文本专用         2.5k
Knowledge Graph Extractor Qwen3.6-35B      是(单卡)  完全自托管+富事实+Jina 0.2k

三者的定位差异很明显:Graphify 是"代码库全景图谱"(重、强、靠 Claude);ai-knowledge-graph 是"轻量文本图谱"(简单、通用、靠 Ollama);Knowledge Graph Extractor 是"自托管富事实图谱"(隐私、可控、靠 Qwen + Jina)。如果你的核心诉求是"数据不出域 + 一卡就能跑 + 每条事实带证据",它是最对口的。

8、适用场景与局限

// 适合
隐私敏感场景    法律/医疗/金融/军工,数据不能出域
离线场景        无网络或网络受限的环境(内部网络部署)
成本敏感场景    一次性 L4 投入,无限次提取,不花 API 费
研究/教育      自己控制模型/量化/参数,可做实验对比

// 局限
需要 GPU       一张 L4 24GB(或等效),CPU 跑不了 35B 模型
星标少/新项目  214 Star,2026-05 创建,生态和社区仍在早期
单任务排队     单槽调度器,一次只跑一个任务(新任务会抢占旧的)
模型选择固定   默认绑 Qwen3.6-35B-A3B-MTP,换模型需改配置
代码解析弱     不像 Graphify 有 tree-sitter,代码文件走 LLM 提取

9、总结

Knowledge Graph Extractor 是 Han Xiao(Jina AI 创始人)出品的自托管知识图谱生成器。核心特点是完全自托管——在单张 NVIDIA L4 上跑 Qwen3.6-35B-A3B-MTP(MoE 架构,3B 激活 + MTP 推测解码),把文档/URL/zip 转成富事实知识图谱。每条事实携带标题、描述、原文证据、置信度、标签和来源——不只是"三元组",而是"带证据链的知识单元"。

关键要点:

       - 定位:自托管知识图谱生成器,单卡 L4 跑 Qwen3.6-35B-A3B-MTP,MIT 许可

       - 作者:Han Xiao(Jina AI 创始人,bert-as-service 作者),背靠 Jina 生态

       - 四步流水线:输入(URL/zip/文本)→ 原子事实提取 → 语义去重 → 交互式图谱

       - 富事实:每条三元组带证据/置信度/标签/来源,比裸 SPO 可信度高得多

       - 与 Graphify/ai-knowledge-graph 互补:自托管+隐私+富事实,三者各有定位

对于需要处理敏感文档、或想完全控制知识图谱生成流程的团队而言,Knowledge Graph Extractor 提供了一个"一卡一模型一服务"的最简自托管方案。Han Xiao 的工程质量(Jina Reader / bert-as-service 的口碑背书)也让它的代码值得信赖。在数据隐私越来越重要的 2026 年,"自托管 + 单卡 + 富事实"是一个稀缺且有价值的定位。

参考资料:

        hanxiao/knowledge-graph-extractor(GitHub 仓库)

        在线 Demo(hanxiao.io/knowledge-graph)

        Jina AI 官网(作者公司,提供 Reader / Embeddings 等基础设施)

相关推荐

置顶 精选
博客七周年:AI 一天完成整体重构
AI

博客七周年:AI 一天完成整体重构

博客从 2019 年国庆用 Xiuno BBS 搭建,到 2026 年国庆整整七年。868 篇文章、53 条评论、6060 个代码块,这次与 AI Agent 结对,一天完成从 PHP 论坛到 Next.js 的整体重构与无损迁移。

23
精选
​Jev 详解:不做生成的判断模型
AI

​Jev 详解:不做生成的判断模型

Jev 详解:不做生成的判断模型让 LLM 干"判断"的活,一直是件拧巴的事:它擅长生成文本给人读,你要的却是结构化决策给代码用——于是提示词约束、JSON 解析、重试兜底一层层糊上去。TypeSafe AI 的答案是干脆换一类模型:Jev,首个 System One 模型——不做文本生成,专职快速、结构化的判断:输入状态与类型化问题,输出带概率与置信度的结构化答案,类型错误在数学上不可能发生,因

11
精选
Laya 详解:可自托管微调的非自回归判断模型
AI

Laya 详解:可自托管微调的非自回归判断模型

Laya 详解:可自托管微调的非自回归判断模型Jev 证明了"判断模型"这条路走得通,但它闭源、按 token 计费、只能云端调用。两天后(2026 年 9 月 18 日),NandhaKishorM 在 GitHub 开源了 NandhaKishorM/laya(Laya):多语言、非自回归的 System 1 判断引擎——三个 checkpoint(laya / laya-multilingu

6