workflow_knowledge_flywheel
Z3 全文↑ Z2 条目
道-方法 · 道层 skill 全文
本页是 <code>rules/skills/workflow_knowledge_flywheel.md</code> 的逐字投影(仅隐私清洗,零改写)。
时点提示:本页是仓内文件 rules/skills/workflow_knowledge_flywheel.md 的逐字投影(仅做隐私清洗:仓库根绝对路径→相对路径、家目录→~/;除此零改写)。若源文件后续有修订,以仓内真源为准。
知识飞轮设计模式
元数据
- 类型: Workflow
- 适用场景: 知识工程、非结构化信息处理、知识图谱构建
- 创建日期: 2026-02-21
- 来源: 知识图谱项目实践
核心公式
笨数据 + 笨方法 + 笨模型 = 精知识
接受起点数据的不完美,通过可迭代系统逐步提升知识纯度。
为什么选择"笨方法"?
闭源 API 的双重枷锁
- 成本焦虑:按 token 计费导致不敢尝试计算密集型笨方法
- 节奏拖累:批处理请求响应时间以小时计,打断"思考-验证-调整"的流畅节奏
本地部署的解放
转向本地部署开源模型后:
- 边际成本接近零
- 大规模迭代成为可行路径
- 5090 集群 + vLLM:32B 模型 128k 上下文仅需两张显卡
飞轮四步循环
触发 → 调用基础模块 → 产生微小进步 → 精炼
↑ ↓
←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←←1. 触发
识别一个微小、可验证的子问题。
2. 调用基础模块
使用简单、可靠的原子操作:
- 线性扫描(而非复杂索引)
- 语义检索(embedding + cosine)
- 结构化输出(JSON/表格)
3. 产生微小进步
每次循环必须有可衡量的产出:
- 提取一个实体关系
- 澄清一个模糊概念
- 补全一个信息缺口
4. 精炼
将进步固化到知识库,成为下一轮的基础模块。
设计原则
1. 问题分解
将宏大问题分解为无数微小、可验证的子问题。
2. 独立性
每次循环是独立、逻辑清晰的过程,不依赖复杂状态。
3. 高成功率
每个子任务设计为必然成功,避免挫败感。
4. 收敛性
飞轮方向明确,每次迭代都在向目标靠近。
5. 静止点突破策略
数据飞轮"静止点"(极稀有数据)突破方法:
利用 VLM 进行初步收割
通过 Human-in-the-loop 纠偏
形成冷启动种子数据
基础模块示例
线性扫描
# 不要过度设计索引,先用线性扫描跑起来
for chunk in text_chunks:
if is_relevant(chunk, query):
yield extract_info(chunk)语义检索
# embedding + cosine similarity 足够处理大多数场景
def semantic_search(query, corpus, top_k=10):
query_emb = embed(query)
scores = [cosine(query_emb, doc_emb) for doc_emb in corpus_embs]
return top_k_indices(scores)结构化输出
# 强制 JSON 输出,便于后续处理
prompt = """
从以下文本提取人物关系,输出 JSON 格式:
{"relations": [{"person_a": "...", "relation": "...", "person_b": "..."}]}
"""模型选择建议
推荐:可控的本地模型
- Qwen3-32B:知识工程任务中稳定性验证,无需特别 prompt 微调即可稳定输出
- 量化:INT4 量化下 32B 模型 128k 上下文窗口仅需两张显卡
不推荐
- 昂贵闭源 API(除非预算无限)
- 需要复杂 prompt 工程才能输出格式的模型
避免的陷阱
- 过度设计索引:先用笨方法跑起来,再考虑优化
- 追求完美数据:接受起点不完美,靠飞轮迭代
- 复杂 Pipeline:每增加一个环节就增加一个失败点
- 过早优化:先有 1.0,再谈优化
实际案例
示例:结构化知识图谱
- 输入:千万字小说文本
- 输出:可交互查询的结构化知识图谱
- 方法:线性扫描 + 语义检索 + 四步飞轮
- 部署:(你自己的部署地址)
- 成本:第一版闭源 API 成本较高,转向本地部署后边际成本为零
参见
- T9. 数据策略与MDP — MDP 概念、数据飞轮静止点突破、数据主权与沉淀
变更日志
| 日期 | 变更 |
|---|---|
| 2026-02-21 | 从 OBSERVATIONS.md 晋升,整理为独立 skill |