项目背景
一句话
FeedLens(反馈透镜)把一条零散的中文用户反馈,整理成 类别、情感、紧急度、一句话摘要 四个字段。背后是一个在开源小模型 MiniMind 上微调得到的 64M 参数模型 FeedLens-MiniMind,可以在普通笔记本的 CPU 上运行。
我想解决的问题
小团队的用户反馈通常散落在应用商店评论、客服留言和用户群里。它们有三个共同点:
- 量不大但持续不断。每天几十到几百条,不值得上一整套数据平台,但靠人读又会漏。
- 没有结构。同一个问题有十几种说法,无法直接统计“这周闪退的反馈多了还是少了”。
- 紧急的和不紧急的混在一起。一条“被重复扣费”夹在二十条“希望加深色模式”中间,很容易被晚看到。
所以真正需要的是在人工阅读之前先做一遍预整理:归类、标出情绪、排出紧急度、给一句能直接贴进工单标题的摘要。
说明:以上是我基于公开可见的应用评论区和个人使用经验形成的问题假设,还没有做过正式的用户访谈。验证这个假设的访谈提纲和测试任务见 用户研究工具包。
为什么用小模型来做
这个任务有几个特点,使它适合作为小模型的落地场景:
| 任务特点 | 对小模型意味着什么 |
|---|---|
| 输入短(一条反馈通常几十个字) | 不需要长上下文能力 |
| 输出短且格式固定(四行,约 30 个 token) | 生成步数少,出错空间小,容易做格式校验 |
| 标签集合封闭(9 个类别、3 档情感、3 档紧急度) | 可以用准确率、F1 精确评测,不依赖主观打分 |
| 需求稳定、调用频繁 | 值得为它专门训练一个模型,而不是每次调用通用大模型 |
| 反馈里可能含手机号、订单号 | 能本地运行是实际价值,而不只是省钱 |
反过来,如果任务需要长文本理解、开放式推理或世界知识,64M 的模型做不了,我也没有把那些放进范围。
为什么基于 MiniMind
- 完全透明:结构、分词器、训练脚本都是几百行可读的 PyTorch,能逐行讲清楚模型在做什么。
- 足够小:官方
minimind-3只有约 64M 参数,权重文件 138MB,在 Apple M5 上全参数微调一轮只要几分钟。 - 有可用的起点权重:官方发布了预训练和对话微调后的权重,可以直接在其上做任务微调。
- 许可清晰:Apache-2.0。
本项目记录并固定使用的上游版本是提交 f659b55(2026-09-23)。
目标与非目标
目标(v0.1)
- 训练出一个有独立名称、版本和说明卡的任务模型,并说明它与开源基础的关系
- 建立一套可复现的数据、训练、评测流程,任何数字都能追溯到脚本和原始输出
- 做一个能实际输入、实际推理、实际看到结果的网页应用
- 用文档讲清楚每个关键决策的理由和代价
非目标
- 不追求通用对话能力,不与大模型比较开放任务
- 不声称在真实用户反馈上的效果——目前没有真实数据
- 不做多语言、长文本、多标签
预先写下的验收标准
下面这些标准是在看到微调模型的测试结果之前写下的,用来避免事后挑有利的指标讲。是否达成见 评测报告。
| 编号 | 标准 | 依据 |
|---|---|---|
| A1 | 同分布测试集上,格式合规率 ≥ 99% | 输出要能被程序直接消费 |
| A2 | 同分布测试集上,三标签全对率 ≥ 90% | 明显高于规则基线才值得用模型 |
| A3 | 分布外测试集上,三标签全对率高于关键词规则基线 | 否则说明模型只是背下了模板 |
| A4 | 同分布测试集上,摘要 ROUGE-L ≥ 0.80 | 摘要要能直接当工单标题 |
| A5 | CPU 单条请求 P95 延迟 < 500 ms | 网页交互不需要等待提示 |
实际结果:A1、A5 达成;A2、A3、A4 没有达成。发布模型在同分布测试集上的三标签全对率是 66.8%,在分布外测试集上与规则基线同为 58.1%,摘要 ROUGE-L 为 0.622。详细数字和原因分析见 评测报告。
相关文档
本页由 docs/01-background.md 生成。