ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

如何用FinBERT识别前瞻性声明?年报FLS分类实战指南,3500条标注数据背后的技巧

如何用FinBERT识别前瞻性声明?年报FLS分类实战指南,3500条标注数据背后的技巧 如何用FinBERT识别前瞻性声明年报FLS分类实战指南3500条标注数据背后的技巧【免费下载链接】FinBERTA Pretrained BERT Model for Financial Communications. https://arxiv.org/abs/2006.08097项目地址: https://gitcode.com/gh_mirrors/finbe/FinBERTFinBERT 是一个专为金融沟通场景打造的开源预训练语言模型在 49 亿 token 的金融文本10-K/10-Q 年报、财报电话会、分析师报告上完成预训练。这篇文章聚焦它的FLSForward-Looking Statement前瞻性声明分类能力用官方在 3,500 条年报句子标注数据上微调出的 FinBERT-FLS教你快速识别年报中的前瞻性声明并分享微调自己的分类器背后的实用技巧。什么是前瞻性声明为什么年报 FLS 分类很重要前瞻性声明是企业管理层对未来事件或业绩的判断、预期和意见例如我们预计新产线将在明年提升产能。它传递了管理层信念对投资者分析非常关键但识别起来有两个难点有些句子看似具体实为套话我们将持续评估未来情况有些句子包含数字却是历史事实管理费用同比下降 24%并不是预期。FinBERT-FLS 就是把这种一眼看着像、细看却不同的判断交给了一个三分类模型。FinBERT 模型家族FLS 模型是哪一个项目提供四个模型各司其职模型任务微调数据FinBERT-Pretrained金融域预训练底座4.9B token 金融语料FinBERT-Sentiment情感分析正/负/中性10,000 条分析师报告标注句FinBERT-ESGESG 分类环境/社会/治理/无2,000 条标注句FinBERT-FLS前瞻性声明分类3,500 条年报 MDA 标注句FinBERT-FLS 的标注数据来自 Russell 3000 公司年报中管理层讨论与分析MDA章节的句子规模不大但领域纯度极高——这正是小数据 强预训练路线的典型示范。快速上手3 行代码跑通 FLS 三分类项目 FinBERT-demo.ipynb 中给出了完整的 FLS 分类演示核心逻辑非常简洁from transformers import BertTokenizer, BertForSequenceClassification, pipeline finbert BertForSequenceClassification.from_pretrained(yiyanghkust/finbert-fls, num_labels3) tokenizer BertTokenizer.from_pretrained(yiyanghkust/finbert-fls) nlp pipeline(text-classification, modelfinbert, tokenizertokenizer)把句子喂给 pipeline就能拿到分类结果。用演示中的 3 个例子感受一下效果输入句子模型输出置信度we expect the age of our fleet to enhance availability and reliability...Specific FLS0.77general and administrative expenses declined 24 percent from 1994...Not FLS0.99we will continue to assess the need for a valuation allowance...Non-specific FLS0.98注意第 1 条只有 0.77 的置信度。预期 具体对象船队、维修停机 让模型敢判 Specific但边界样本上模型也会犹豫——这是后面技巧篇要讲的重点。读懂三个标签3500 条标注数据划的界线FLS 分类不是简单的是/否二分类而是三级Specific FLS具体前瞻性声明对未来有明确、可验证的描述如预计机队老化将提升可用性Non-specific FLS模糊前瞻性声明方向是未来但内容空泛如我们将持续评估……Not FLS非前瞻性声明历史事实、数据陈述或政策说明。这个三级设计来自标注规范本身——研究者刻意把套话式前瞻单独成类。如果你的下游目标是量化管理层乐观程度Non-specific FLS 恰恰是最值得关注的部分它数量多、语气强但信息含量低。用自己的年报数据微调 FinBERT-FLS5 步流程如果你有自标注的句子级数据集CSV两列sentence、label完全可以复刻官方流程微调出行业版 FLS 模型。项目在 finetune.ipynb 中给出了端到端教程以情感分析为例流程与 FLS 完全一致第 1 步数据切分。按 8:1:1 划分训练/验证/测试集并用stratifydf[label]保持类别均衡。第 2 步加载预训练底座。从yiyanghkust/finbert-pretrain加载权重指定num_labels3接三分类头。第 3 步文本编码。官方使用max_length128做截断和填充——年报句子通常不长128 足够且更快。第 4 步训练超参。这是官方跑通并达到约 88% 测试准确率的一组参数可以直接作为起点args TrainingArguments( learning_rate2e-5, # BERT 类微调的经典小学习率 per_device_train_batch_size32, num_train_epochs5, weight_decay0.01, load_best_model_at_endTrue, # 关键按验证集挑最佳 checkpoint metric_for_best_modelaccuracy, )第 5 步按验证集保存。训练中每个 epoch 评估一次自动保留验证准确率最高的 checkpoint——从官方日志看最佳点出现在第 2 轮0.874第 5 轮反而回落到 0.862。3500 条数据背后的 5 个实战技巧技巧 1早停是免费的准确率。官方日志里验证准确率在第 2 个 epoch 达到峰值后开始下滑。开启load_best_model_at_end比多训几轮更可靠。技巧 2标签顺序要对齐。分类头的标签顺序由id2label决定Specific FLS / Non-specific FLS / Not FLS。自训模型时若自定义了标签映射推理端务必保持一致否则三类会张冠李戴。技巧 3先读标注数据再调模型。Specific 与 Non-specific 的界线本质是标注规范问题。动手微调前建议先翻几十条标注样本理解什么程度的未来描述算具体再决定自己的标注规范——比调任何超参都有效。技巧 4句子级输入别整段丢。BERT 输入上限是 512 token但年报段落往往超长。按句子切分演示数据即句子级既能保证语义完整又能和 3,500 条标注数据的粒度对齐迁移效果最好。技巧 5锁定环境版本。项目在 requirements.txt 中固定了transformers4.18.0、torch1.7.1等版本。复现结果时保持版本一致能省去大量为什么我不一样的排查时间大批量推理建议上 GPU。项目结构速览文件内容README.md模型家族说明与背景含论文引用信息FinBERT-demo.ipynb三大任务的推理演示含 FLS 分类完整示例finetune.ipynb基于 Huggingface 的端到端微调教程requirements.txt依赖版本清单archive/datasets.py旧版pytorch_pretrained_bert 时代数据加载代码可参考其文本截断/填充逻辑archive/train_bert.py旧版预训练/微调脚本总结FinBERT 的价值在于用 49 亿 token 金融语料打底再靠 3,500 条精准标注句子就把年报里哪句话是管理层预期这个专业问题变成了三行代码的调用。对新手而言建议按跑通 demo → 读懂三个标签 → 拿自标注数据微调三步走而 3,500 条数据背后的真正启示是——领域预训练 小而精的标注数据往往胜过通用大模型 海量噪声数据。【免费下载链接】FinBERTA Pretrained BERT Model for Financial Communications. https://arxiv.org/abs/2006.08097项目地址: https://gitcode.com/gh_mirrors/finbe/FinBERT创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表