第四章:数据标注与预处理——给金融大模型“喂”对数据
说实话,做金融大模型问答机器人,最让我头疼的往往不是模型本身,而是数据。模型选错了可以换,参数调不好可以试,但数据要是脏了、偏了、标注错了,那后面所有工作都是白费力气。我见过太多团队花三个月调模型,最后发现是训练数据里有一半的实体标错了——那种感觉,就像你跑完马拉松发现跑错了路线。
这一章,我们就来聊聊数据标注和预处理。说白了,就是怎么把原始金融文本,变成模型能理解的、高质量的“教材”。
4.1 文本标注工具:Label Studio 实战
工欲善其事,必先利其器。我个人习惯用 Label Studio,开源、灵活、支持多用户协作。你想想看,金融数据动辄几十万条,靠Excel手动标?那得标到猴年马月去。
安装很简单,一行命令搞定:
pip install label-studio
label-studio start
启动后浏览器打开 http://localhost:8080,注册一个账号就能用了。我建议你第一次用的时候,先创建一个“命名实体识别”项目,把标注模板配好。
4.2 命名实体识别(NER)标注——金融领域的“找茬”游戏
NER 标注,说白了就是让标注员把文本里的关键信息圈出来。金融领域常见的实体类型包括:
- 机构名:比如“中国人民银行”、“高盛集团”
- 人名:比如“易纲”、“巴菲特”
- 金融术语:比如“LPR”、“CPI”、“市盈率”
- 时间/日期:比如“2024年一季度”、“截至昨日”
- 数值/比率:比如“3.85%”、“5000亿”
我在项目中遇到过最坑的情况是:标注员把“中国银行”标成了“机构名”,但上下文里它其实是“中国银行间市场”的一部分。嗯,这里要注意——实体边界一定要清晰。我建议用 BIO 标注法(B-begin, I-inside, O-outside),比如:
中 B-ORG
国 I-ORG
银 I-ORG
行 I-ORG
间 O
市 O
场 O
这样模型才能学会“中国银行”是一个完整实体,而不是拆成“中国”和“银行”。
4.3 情感分析标注——判断市场情绪
金融文本的情感分析,跟普通影评不一样。你说“股市暴跌”是负面,但“暴跌后抄底机会”可能偏正面。所以,我一般把情感分为三类:
| 情感类别 | 示例 | 说明 |
|---|---|---|
| 正面 | “业绩超预期,股价大涨” | 利好、乐观、增长 |
| 负面 | “违约风险上升,评级下调” | 利空、悲观、下跌 |
| 中性 | “央行维持利率不变” | 无明确情绪倾向 |
标注的时候,我建议用 细粒度情感。比如“正面”还可以拆成“强烈正面”和“温和正面”。为什么?因为金融新闻里“小幅上涨”和“暴涨”虽然都是正面,但市场反应完全不同。模型如果分不清,回答就会很模糊。
举个例子,用户问“今天茅台怎么样?”,模型如果只识别出“正面”,可能会回答“茅台表现不错”。但如果你标注了“强烈正面”,模型就能说“茅台大涨5%,创历史新高”。你看,信息量完全不一样。
4.4 数据增强技术——让有限的数据“变”出更多花样
金融数据标注成本高,一条带实体和情感的标注数据,可能花掉几块钱。那数据不够怎么办?我常用的方法有几种:
- 同义词替换:把“上涨”换成“攀升”、“走高”。注意别把金融术语换错了,“降准”不能换成“降低准备金率”吗?可以,但“降息”不能换成“降低利息”,因为语境不同。
- 回译:把中文翻译成英文,再翻译回中文。比如“股市回暖” -> “Stock market recovery” -> “股市复苏”。句子结构变了,但意思保留。
- 随机插入/删除:在句子中间随机插入一个无关词(比如“嗯”、“那个”),或者删除一个不重要的词。这能模拟真实用户提问时的口语化表达。
4.5 数据集划分——训练/验证/测试
数据准备好了,怎么分?我见过有人随机切分,结果训练集里全是“牛市”相关的句子,测试集里全是“熊市”。模型在训练集上学得挺好,一测试就崩。为什么会这样?因为金融数据有时间序列特性。
我建议按时间划分:
- 训练集:2020年1月 - 2023年6月的数据
- 验证集:2023年7月 - 2023年9月的数据
- 测试集:2023年10月 - 2023年12月的数据
这样模型学的是历史规律,测试的是对未来数据的泛化能力。如果你非要随机切分,那至少保证每个类别在三个集合里的比例一致。比如“正面”样本占60%,那训练、验证、测试里都要接近60%。
比例上,我一般用 8:1:1 或者 7:2:1。数据量大的话(比如10万条以上),验证集和测试集各留5%就够了。
知识体系总览
下面这张图,是我自己总结的本章知识结构。你可以把它当作一个“地图”,随时回来对照。
好了,这一章的内容就到这里。数据标注和预处理,听起来枯燥,但它是整个金融大模型问答机器人的地基。地基没打好,上面盖多高的楼都白搭。希望你能从我的经验里少走一些弯路,把数据这块硬骨头啃下来。