挑战
可持续发展研究需要数十家上市公司跨越十年(2015–2024)的 CSR/ESG 报告——但这些报告隐藏在频繁改版的投资者关系网站、Cookie 弹窗、相似的公司名称和扫描版 PDF 之后。人工收集无法规模化;而简单的爬虫则会自信满满地抓取到错误公司的报告。
作为布里斯托大学可持续发展项目的研究助理,我构建了这套系统,它还有一个额外的约束:完全本地运行,零 API 成本。
方案
两个本地模型,分工协作。 通过 Ollama 提供服务:DeepSeek-R1 8B 负责文本推理和搜索查询生成;Qwen2.5-VL 3B 负责视觉处理。扫描件或图片密集型 PDF 会进入纯视觉管线——页面被渲染成图像并由 VLM 读取——从而打破了经典的扫描文档处理僵局。
信任,但要验证——精度达 99%。 公司身份由 LLM 驱动的模糊匹配进行验证,该匹配经过调优,要求极高的严格度(需达到 99%+ 的相似度),将错配率降至 0.1% 以下。来自可信报告平台的 PDF 会跳过完整的过滤链,在常规路径上实现了 80–90% 的速度提升。
一个像研究员一样工作的爬虫。 Playwright 驱动的导航能处理 Cookie 横幅,并跟踪最多五跳的多层级页面;GPU 加速的查重(CuPy)保持语料库的洁净;每一个决策都被记录下来以供审计。
影响
这套系统将原本需要耗费研究生大量时间的问题——定位并验证 49 家公司的 150 份报告——工业化成了一个在单张消费级 GPU 上运行的、受监督的批处理流程。在方法论上,它证明了精心的工程设计能让小型本地模型完成值得信赖的数据收集工作,而这通常是丢给昂贵的托管 API 去做的。
技术栈: Python · Ollama · DeepSeek-R1 8B · Qwen2.5-VL 3B · Playwright · PyMuPDF · CuPy