FeedLens反馈透镜

替代方案分析

用户要完成的事情是“把一批零散反馈整理成能统计、能排优先级的结构”。完成这件事不一定需要 FeedLens。下面比较几类可行方案,说明各自适合谁,以及本项目选择微调小模型的理由和代价。

说明:本文比较的是方案类型,没有对具体商业产品做功能或价格的实测,因此不点名评价某一款产品。

方案对比

方案 怎么做 优点 局限 适合谁
A. 人工阅读 + 表格 人读每一条,手动填类别和备注 判断最准;零成本起步;能读出弦外之音 耗时随数量线性增长;标准因人而异;难以坚持 每周不到几十条的团队
B. 关键词规则 维护一份“关键词→类别”的表 极快、可解释、无需训练 换一种说法就失效;规则越写越多、互相冲突;做不了摘要 问题类型很固定的场景
C. 调用通用大模型接口 写一段提示词,把反馈发给大模型 理解能力强,几乎不用准备数据,能处理长文本和复杂语境 按量付费;数据要发给第三方;输出格式和判断口径需要靠提示词约束,可能随模型版本变化 量不大、对数据外发不敏感、想最快上线的团队
D. 微调 BERT 类编码器做分类 用标注数据训练分类头 分类任务上通常是小模型里最稳的选择;推理很快 需要真实标注数据;每个标签一个头;不能生成摘要 只要分类、不要摘要,且有标注数据的团队
E. 客户之声 / 工单系统自带的智能分类 购买成套平台 功能完整:多渠道接入、聚类、趋势、权限 采购和接入成本高;分类体系通常要适配平台 反馈量大、有预算的团队
F. 微调小型生成模型(本项目) 在 64M 的 MiniMind 上微调,一次生成四个字段 本地运行、单次调用成本近似为零;一个模型同时输出分类和摘要;口径由训练数据固定 理解能力远弱于大模型;效果完全取决于训练数据;目前只有合成数据 想本地运行、任务窄而稳定的小团队;以及想弄清楚小模型能做到什么程度的人

与规则基线的实测对比

方案 B 不是假想敌,本项目把它实现了出来(feedlens/baseline_rules.py,约 90 行),并和模型放在同一份测试集上比较。结果见 评测报告。

实测结果:两者打平。 在三标签全对率上,微调后的模型与规则在所有测试集上都没有可分辨的差别(同分布 66.8% 对 71.9%,分布外同为 58.1%)。模型只在情感判断和同分布摘要上明确更好。也就是说,在目前只有合成数据的条件下,“用微调小模型替代规则”这个方案没有被证明成立。

这样做有两个用处:

  1. 给模型一个必须跨过的门槛。如果微调后的模型在分布外数据上还不如几十行规则,这个项目的技术方案就不成立。
  2. 帮助判断数据是否太简单。规则在某份测试集上得分很高,说明那份测试集的标签几乎由关键词决定,不足以说明模型的理解能力。

为什么没有选 C(大模型接口)

诚实地说,如果目标只是尽快给团队提供一个可用的反馈整理工具,方案 C 很可能是更好的选择:它不需要训练数据,理解能力更强,上线更快。

本项目选择 F 的理由是:

代价也很明确:

为什么没有选 D(BERT 分类)

如果只做分类,D 在技术上更合适。没有选它是因为:

这是一个取舍而不是结论。合理的下一步是加一个 BERT 类分类器作为对照,看生成式方案在分类指标上损失了多少。这一项记在 项目复盘 的待办里。

可以组合的地方

这些方案并不互斥。一个务实的组合是:

FeedLens 的接口已经同时返回模型结果和规则基线结果,“两者不一致”可以直接作为“需要人工看一眼”的信号。事后分析支持这个想法:两者三个标签完全一致的样本约占一半,这部分的准确率在同分布测试集上是 94.3%,分布外是 86.5%(评测报告 第 5.1 节)。但这是在合成数据上、看到结果之后才做的分析,还需要用真实数据验证。

本页由 docs/03-alternatives.md 生成。