既然 AI 能写诗,我就让它写出“成都味儿”的文案,这事儿听起来挺文艺,但内核是成本绞杀战。今天刚算完账,上个月光给 OpenAI 的 API 喂数据清洗和风格微调的请求,就干掉了小一万。这钱花得我肉疼,关键是,清洗“成都老茶馆”、“建设路小吃”这种带强烈地域符号的 UGC 内容,用 GPT-4 就像用高射炮打蚊子,大量重复的、结构化的脏数据清洗,根本用不着那么高的智能。
成本倒逼技术转向。我开始死磕本地部署的微型 LLM。目标很明确:用一台 32G 内存的旧服务器,跑起来一个能理解“巴适”、“摆龙门阵”、“耙耳朵”这些词在上下文里真实情绪(是调侃还是赞美)的模型,并且用它来批量清洗十万条大众点评和微博抓下来的原始文本。我选了 TinyLlama-1.1B,不是因为它多强,而是因为它足够小,在我这破机器上,用 Ollama 跑起来,吞吐量还能看。
真正的魔鬼在数据预处理。十万条数据里,夹杂着表情包符号、乱码、拼音缩写、甚至其他方言。第一步是用正则和简单规则干掉 80% 的明显噪声,比如“[表情]”、“用户123456”这种。但剩下的两万条,才是难点。比如“这家蹄花儿简直不摆了[强][强]”,和“这个老板儿有点不摆哦”,两个“不摆”,情绪截然相反。我最初试图用关键词词典来分类,结果惨不忍睹。
我拆解了流程。先让 TinyLlama 做零样本分类:给定一条文本,让它判断是否包含“成都地域相关表述”。这一步准确率还行,能到 85%。但关键在第二步:情感和风格提取。我不能再让它做分类了,分类的标签是我定的,会漏掉很多微妙的东西。我改成了“描述性生成”指令:“请用一句话描述这句话所体现的成都生活氛围和说话人的情绪,要求口语化,不要出现‘积极’、‘消极’这种概括词。” 比如对上面两句,它分别输出:“食客对软烂入味的猪蹄表示极度满意,用方言加强赞叹。” 和 “食客对老板的服务态度表示不满,略带调侃地使用方言。” 你看,它自己提炼出了“对食物的赞叹”和“对服务的不满”,这比我自己定“正面/负面”标签有用多了。
清洗后的结构化数据,成了我微调更专业文案模型的燃料。但瓶颈来了:速度。即便是 TinyLlama,串行处理两万条也要几十个小时。我上了多进程,把数据切片,在服务器上同时跑四个 Ollama 实例,每个加载同一个模型。内存是瓶颈,但勉强撑住了。处理速度提升了三倍,电费比 API 费用便宜太多。
边缘计算的思路在这里被用到了极致。我把最耗时的、模式固定的清洗任务固化到这台本地机器上,7×24 小时慢慢跑。它不联网,不怕数据泄露,成本就是那点电费。只有遇到它实在处理不了、或者需要最新网络语境的少数案例,我才手动拎出来,丢给 GPT-4 去处理。这样,95% 的成本被摁住了。
搞完这一套,我对着日志文件发呆。2021 年我还在为招不到靠谱的数据标注员发愁,现在,我指挥着一个不要工资、不会抱怨、但需要我精心设计流程和提示词的“数字员工”。技术栈的彻底换代,不是学会用 ChatGPT 聊天,而是把它,以及它的开源平替们,变成流水线上一个个可靠的、成本可控的组件。所谓“成都味儿”,最终是数据清洗管道里,一个个正则表达式和精心调教的提示词共同筛出来的结果。诗和远方,都得先过成本这一关。














