1. 项目概述:LLM在财务数据提取与计算中的应用实践
在金融分析领域,快速准确地从企业年报中提取关键财务指标是分析师的基础工作。传统方法依赖人工查找或简单的文本匹配,效率低下且容易出错。最近我在处理苹果公司2023财年10-K年报(约90页,7万token)时,尝试利用大语言模型(LLM)实现自动化数值提取和计算,效果显著。这个案例展示了LLM处理结构化财务数据的潜力,特别在以下场景:
- 直接从非结构化文本中定位特定数值(如总营收、研发费用)
- 执行基于提取值的数学运算(如百分比计算)
- 生成机器可读的结构化输出(JSON格式)
测试中对比了两种技术方案:当文档长度在模型上下文窗口内(如128K token模型)时,单次传入可获得精确结果;对于超长文档,采用分块+向量检索的RAG方法也能保持较高准确率。本文将详细解析实现过程,分享调优技巧,并探讨提升数值可靠性的实用方法。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与数据获取
2.1 开发环境配置
选择Qwen3.5系列模型作为基础,因其对长上下文和数值处理表现良好。为避免网络问题,预先配置国内镜像源:
python复制import os
os.environ['HF_ENDPOINT'] = "https://hf-mirror.com"
os.environ['OPENAI_API_KEY'] = "sk-xxxxxx" # 替换为实际API密钥
os.environ['OPENAI_BASE_URL'] = "https://llm_provider.com/v1"
model_name = "qwen3-xxxx" # 实际模型名称
提示:如果处理中文财报,建议选择在中文金融语料上微调过的模型,如Qwen-Finance或ChatGLM-Finance,它们对财务术语的理解更准确。
2.2 数据源处理
从SEC EDGAR下载苹果公司2023年10-K年报(HTML格式),保存为本地文本文件:
- 访问SEC EDGAR
- 全选网页内容复制到文本编辑器
- 保存为
aapl-20230930.txt
使用tiktoken库计算文档token量,判断是否需要分块处理:
python复制import tiktoken
def num_tokens_from_string(text: str, encoding_name: str = "cl100k_base") -> int:
encoding = tiktoken.get_encoding(encoding_name)
return len(encoding.encode(text))
with open("./aapl-20230930.txt") as f:
full_text = f.read()
tokens = num_tokens_from_string(full_text)
print(f"文档token数: {tokens}") # 示例输出: 45185
当token数超过模型上下文窗口(如128K)的80%时,建议启用分块策略,保留部分空间给提示词和输出。
