8.3 自建与采购的决策表


8.3 自建与采购的决策表

本节摘要:把 8.1/8.2 的观察变成自己团队的决策。四条轴先画清楚:数据边界(私有代码能否出域——一票否决轴)、定制深度(chunk 策略、重排判据、评测闭环是不是你的核心竞争力)、规模与延迟(仓库体量、查询 QPS、交互式还是后台式)、维护预算(谁长期伺候这套系统)。三条路线各有账本:全自建(本书管线:首建 12 人周,持续 0.10.2 FTE,经验值——大头不是首建而是评测与回归);开源拼装(Zoekt 扛字面保真 + 自建只做语义层:省掉最重的精确路基建,多运维一个外部组件);采购 SaaS(Greptile/Sourcegraph/Copilot 企业版:按 seat 计费、当天可用,定制需求会撞墙、数据要出域)。最常见的终态是混合:字面路用 Zoekt、语义路自建、评测无论如何自建。末尾一个反直觉提醒:"先买后自建"常比"先自建后买"贵——采购快速验证需求,自建兑现定制,顺序该由数据边界决定,而不是由"造轮子羞耻症"或"不是发明 here 综合征"决定。

学习目标

阅读完本节,你应当能够:

  1. 沿四轴给自己的团队/项目定位;
  2. 说出三条路线(自建/拼装/采购)各自的账本与隐性成本;
  3. 论证混合终态(Zoekt 字面路 + 自建语义路 + 自建评测)的合理性;
  4. 用 TCO 草图向决策者讲清"便宜"与"贵"的真实构成。

一、四条决策轴

关键问题 影响
数据边界 代码能否发送到第三方?合规/安全有无硬约束? 一票否决:不能出域则 SaaS 直接出局
定制深度 chunk 策略/重排判据/查询改写是否需要随业务频繁调? 定制深则 SaaS 撞墙;第 5~7 章的旋钮都是定制点
规模与延迟 仓库行数级?查询是交互式(亚秒)还是后台式(分钟可忍)? 决定 4.1 的选型与 4.3 的策略;规模决定基建投入
维护预算 谁长期伺候?(嵌入模型升级、索引运维、评测回归) 自建的最大隐性成本在此,不在首建

定位方法(半小时的工作量):

  1. 数据边界先问死:合规/安全有没有硬约束?有 → SaaS 出局,只剩自建/拼装;
  2. 定制深度列清单:未来半年你会想调 chunk 策略、重排判据、查询改写吗?调得越频繁,越靠近自建;
  3. 规模与延迟量级:仓库行数、查询 QPS、交互式还是后台式——决定基建投入的档位;
  4. 维护预算找主人:谁长期伺候?没有主人,自建的衰减曲线比 SaaS 的涨价曲线更陡。

二、三条路线的账本

维度 全自建(本书管线) 开源拼装(Zoekt + 自建语义层) 采购 SaaS
数据边界 完全在内 完全在内 代码出域(视厂商部署选项)
首建成本 1~2 人周(跟着第 7 章走) 约 1 人周(Zoekt 托管字面路) 近零(接入即用)
持续成本 0.1~0.2 FTE(经验值) 0.1 FTE + 一个外部组件的运维 按 seat 计费
定制自由 全开:5~7 章每个旋钮都能拧 语义路全开,字面路受 Zoekt 能力边界 厂商路线图决定
质量上限 取决于你的评测与调优(第 9 章) 字面路接近工业级现成 厂商工程团队的水平
新鲜度 自己做增量(7.2) Zoekt 自带增量分片 厂商负责(如 Copilot 秒级)
适合 检索是产品核心竞争力 要快又要保真的中间态 检索是工具、不是战场

(成本数字为经验值示意,供量级判断;认真决策时用自己的团队速率替换。)

TCO 草图的讲法:三年口径下,SaaS 的 seat 费线性涨、自建的人力费前高后平(首建期过后是维护期)——交叉点通常出现在第 6~18 个月(经验值,seat 单价与人力成本差异极大)。但比交叉点更重要的是账本里容易被漏记的两笔:①自建的评测与回归(第 9 章)——没有它,质量会无声退化,等于定期返工;②SaaS 的迁移成本——上下文长度、返回格式、权限模型绑得越深,走的时候越疼。

时间轴上的示意(量级参考,认真决策用自己团队的速率替换):

时点 全自建 开源拼装 采购 SaaS
首月 1~2 人周首建 约 1 人周 接入即用
第 6 月 0.1~0.2 FTE 维护 + 一次评测回归 0.1 FTE + 组件运维 seat 费线性涨
第 18 月 累计成本逼近交叉点(经验值) 同左 多数规模下已过交叉点(经验值)

三、混合终态:最常见的合理形态

查询 ──┬── 意图/语义查询 ──► 自建语义路(第 2~5 章:嵌入+向量+融合) │ │ ├── 字面/正则/子串 ──► Zoekt(开源,保真 grep 语义,自带增量分片) │ │ └────── 两路融合(5.1 RRF / 级联置顶)──► 结果 │ 评测集 + 指标仪表盘(第 9 章)◄──┘ 无论哪条路都自建、都别外包

三段各自的理由:

  1. 语义路自建:它是差异化与定制的全部空间(chunk、改写、重排全在这条路上);
  2. 字面路用 Zoekt:保真是苦工活,开源方案成熟,自造无荣誉;
  3. 评测自建:评测代表你的利益,只能自己拿在手里——9.2 的查询日志与金标是内部资产,且是验收任何外部方案的尺子。

决策顺序的口诀:数据边界一票否决 → 定制深度定阵营 → 规模延迟定档位 → 预算定时机。顺序错了会买到不合规的产品(先看功能后看合规),或为不存在的规模自建重炮(先看档位后看边界)。

💡 采购的另一重价值常被低估:快速校准预期。先用 SaaS 跑两周,看看"工业级语义检索"在你仓库上的真实体感——这比任何横评都准,还顺手产出了评测集的种子(不满意的结果就是坏例矿)。校准完再决定要不要自建,自建的目标也从"做个检索"变成"做到/超过那个体感"。

⚠️ 两个反直觉提醒:①"先买后自建"通常比"先自建后买"便宜——采购验证需求(两周)远快于自建试错(两月),除非数据边界一票否决;②不要拿本书教学管线直接上生产——7.2 的增量是文件级、检索是 numpy 暴力、错误处理面向教学。生产化的检查单:4.1 的换库触发条件、4.2 的 chunk 级差分、6.3 的工具鉴权与限流、第 9 章的回归护栏。

本节要点回顾

  1. 四轴定位:数据边界(一票否决)、定制深度、规模延迟、维护预算;
  2. 三路线账本:自建的贵在持续而非首建;SaaS 的贵在定制撞墙与迁移成本;
  3. 混合终态:字面路 Zoekt、语义路自建、评测永远自建;
  4. 采购可当"预期校准器",用它产评测种子再决定自建;教学管线上生产前过检查单。

路线选完,无论哪条,下一步都一样:装上仪表盘。下一章讲评测——指标怎么算、评测集怎么造、迭代循环怎么转。


作者与出处
原作者: 灏天文库
整理: 灏天文库整理
本站整理收录,版权归原作者/开源协议所有;欢迎通过原文链接访问源仓库。
发布者: 作者: 灏天文库 转发
评论区 (0)
U