一、先说结论:我为什么在业务里“逆向”选择传统NLP?
过去两年我一直在做电商场景的文本分析:评论情感、售后纠纷分类、还有商品描述合规检查。跟风试了BERT、RoBERTa,甚至用了A100跑过蒸馏版模型。结果很讽刺:有四个业务线上,传统baseline(jieba+TF-IDF+Logistic Regression)比“ft. BERT”效果更好,而且稳定得多。最典型的是售后纠纷分类——3000条人工标注,类目有23个。BERT-base 微调后 F1 能达到0.861,但是学习率换到3e-5、轮数改为15轮,突然掉到0.792,非常敏感。而线性SVM在同样难分的测试集上拿到0.873,并且超参就只调了C值(大概在0.6~1.4之间)。这不是反智,而是我们对“特征”的理解被预训练模型掩盖了。
二、为什么传统方法还能赢?
原因是“信息密度低但精”。传统特征每一维都是解释性的:比如“退货”“假一赔三”这种关键词权重非常高,人可以直接审核错误case。而BERT高维分布式表示在稀有类别上极易过拟合——哪怕我用Focal Loss也没完全缓解。当时计算过:每个类别平均只有130条样本,BERT有768维输出,线性层就等于在768*23个参数上拟合130条规则,完全没有统计保证。而TF-IDF字典维度约32000,经过L2归一化,配合SVM的hinge loss,很少会全维度参数活跃。
三、注意力机制暴露的问题
我曾加载过bert-base-uncased在英文合同数据集上做审查,观察最后一层的attention weight,发现74%左右的下游正贡献集中在[CLS]和标点(逗号、句号)。这跟论文里“可解释注意力”说辞出入很大。合同里的关键定义句往往是一句话内的一长串条件,BERT没有给其中核心名词以期望的关注。相反,真正起作用的是位置编码和偏移。业内很多人也发现了,但大多不想展开。
四、那么LLM呢?
GPT系列的few-shot给力,但不是万能的。我测试过商业API(暂不点名),在电子病历去隐私化任务上,提示词怎么改都会漏掉“社保号”格式,只因为示例里没有类似“医保卡号”。传统基于规则的PHI识别器,加上几个字典,准确率直接98.7%。当然,大模型在开放域问答和多轮摘要上确实颠覆认知——我承认。所以我们不必非此即彼。工程上最好的安排是:用规则/传统模型兜底,用BERT做粗排,用LLM做最后的语境重排——异步,不要一个模型包办。
五、如果一定要给建议
那就是:NLP落地的核心是数据成本曲线。先画一个“样本量—F1”的曲线,如果1000条以内传统方法高,那就别浪费预训练算力。如果单类样本过5000,再把BERT拿出来。我的真实参数:当训练数据达到12000条后,BERT F1斜率开始明显超过SVM,在27000条时能领先2个百分点。但每次全量微调在单张3090上要跑7小时。为了2个点,你要付出额外GPU成本、监控、失败重试的时间,值吗?自己权衡。不要因为“别人都用”所以你也用。算法没有本质高低,应用场景才是度量衡。