基于 LLM 的金融文本分类实战:In-Context Learning 少样本落地(Qwen2.5+Ollama)

张开发
2026/5/4 19:18:13 15 分钟阅读
基于 LLM 的金融文本分类实战:In-Context Learning 少样本落地(Qwen2.5+Ollama)
摘要金融文本分类是金融 NLP 领域的核心任务传统方案依赖标注数据与模型微调开发成本高、周期长。本文基于大语言模型LLM的In-Context Learning上下文学习能力无需微调模型、无需大量标注数据仅通过构造精准 Prompt 少量示例快速实现金融文本四分类新闻报道 / 公司公告 / 财务报告 / 分析师报告。实战采用Qwen2.5-7B本地模型 Ollama 部署搭配 Rich 美化输出代码轻量化、易落地完美适配金融场景快速迭代需求。关键词LLM金融文本分类In-Context Learning少样本学习Qwen2.5OllamaPrompt 工程金融 NLP目录一、项目背景与任务定义1.1 业务场景1.2 任务目标1.3 方案选型二、核心技术In-Context Learning上下文学习三、Prompt 工程设计分类核心3.1 Prompt 设计思路3.2 Prompt 示例构造四、环境搭建与依赖安装4.1 环境准备4.2 Python 依赖安装五、代码逐行解析完整可运行5.1 完整代码5.2 核心模块解读六、运行结果与效果分析6.1 运行输出6.2 效果验证七、项目优势与拓展方向7.1 核心优势7.2 拓展方向八、总结参考资料文末互动一、项目背景与任务定义1.1 业务场景在金融领域每日会产生大量非结构化文本央行公告、公司并购通知、财务报表、行业分析等自动精准分类是后续舆情分析、信息检索、风险管控的基础。1.2 任务目标将输入的金融文本自动归类为4 个预设类别新闻报道公司公告财务报告分析师报告1.3 方案选型传统方案基于 TF-IDF 机器学习随机森林、SVM、BERT 微调需大量标注数据、训练耗时、部署复杂本文方案基于 LLM 的In-Context Learning少样本学习零微调、零标注成本仅靠 Prompt 示例即可完成分类开发效率提升 90%。二、核心技术In-Context Learning上下文学习In-Context LearningICL是大模型的核心能力之一无需更新模型权重仅在 Prompt 中提供少量标注示例模型即可模仿示例完成任务。核心优势零微调不修改模型参数本地部署即可使用低成本仅需 3~5 个示例无需大规模标注数据集快迭代Prompt 调整即可适配新分类场景分钟级上线。本文采用Few-Shot ICL在 Prompt 中加入 4 个类别对应的标准示例引导模型输出规范分类结果。三、Prompt 工程设计分类核心Prompt 是 LLM 分类的关键本文遵循明确任务 定义类别 提供示例 规范输出的设计原则。3.1 Prompt 设计思路系统角色定义指定模型为「专业金融文本分类器」类别枚举明确 4 个分类类别少样本示例每个类别提供 1 条标准样本构建上下文学习范例提问格式统一固定输入句式保证模型输出一致性。3.2 Prompt 示例构造系统现在你是一个文本分类器你需要按照要求将我给你的句子分类到[新闻报道, 财务报告, 公司公告, 分析师报告]类别中。 用户“今日股市经历了一轮震荡...投资者密切关注美联储可能的政策调整”是[新闻报道, 财务报告, 公司公告, 分析师报告]里的什么类别 助手新闻报道 用户“本公司年度财务报告显示...资产负债表呈现强劲的状况”是[新闻报道, 财务报告, 公司公告, 分析师报告]里的什么类别 助手财务报告四、环境搭建与依赖安装本项目采用Ollama本地部署大模型Qwen2.5-7B搭配rich库美化终端输出轻量无侵入。4.1 环境准备安装 Ollama官网下载拉取 Qwen2.5-7B 模型ollama pull qwen2.5:7b4.2 Python 依赖安装pip install ollama rich五、代码逐行解析完整可运行项目核心代码分为Prompt 初始化、模型推理两大模块完全贴合金融分类业务逻辑。5.1 完整代码python运行 基于LLM的金融文本分类实战 In-Context Learning少样本学习 | Qwen2.5-7B Ollama 分类类别新闻报道、财务报告、公司公告、分析师报告 from rich import print from rich.console import Console import ollama # 1. 金融文本分类示例少样本学习样本库 class_examples { 新闻报道: 今日股市经历了一轮震荡受到宏观经济数据和全球贸易紧张局势的影响。投资者密切关注美联储可能的政策调整以适应市场的不确定性。, 财务报告: 本公司年度财务报告显示去年公司实现了稳步增长的盈利同时资产负债表呈现强劲的状况。经济环境的稳定和管理层的有效战略执行为公司的健康发展奠定了基础。, 公司公告: 本公司高兴地宣布成功完成最新一轮并购交易收购了一家在人工智能领域领先的公司。这一战略举措将有助于扩大我们的业务领域提高市场竞争力, 分析师报告: 最新的行业分析报告指出科技公司的创新将成为未来增长的主要推动力。云计算、人工智能和数字化转型被认为是引领行业发展的关键因素投资者应关注这些趋势 } def init_prompts(): 初始化Prompt构建上下文学习历史对话 Returns: dict: 分类类别列表 预处理Prompt历史 class_list list(class_examples.keys()) # 系统提示定义模型角色分类任务 pre_history [{role: system, content: f现在你是一个文本分类器你需要按照要求将我给你的句子分类到{class_list}类别中。}] # 注入少样本示例用户提问模型回答 for _type, example in class_examples.items(): pre_history.append({role: user, content: f“{example}”是 {class_list} 里的什么类别}) pre_history.append({role: assistant, content: _type}) return {class_list: class_list, pre_history: pre_history} def inference(sentences: list, custom_settings: dict): 模型推理函数 Args: sentences (list): 待分类的金融文本列表 custom_settings (dict): Prompt配置类别列表 console Console() for sentence in sentences: with console.status([bold bright_green] 模型推理中...): # 构造统一提问句式 sentence_prompt f“{sentence}”是 {custom_settings[class_list]} 里的什么类别 # 调用Ollama本地Qwen2.5-7B模型 response ollama.chat( modelqwen2.5:7b, messages[*custom_settings[pre_history], {role: user, content: sentence_prompt}] ) # 提取模型分类结果 result response[message][content] # 美化输出结果 print(f [bold bright_red]待分类文本: {sentence}) print(f [bold bright_green]分类结果: {result}) print( * 80) if __name__ __main__: # 测试金融文本业务实际输入 test_sentences [ 今日央行发布公告宣布降低利率以刺激经济增长。这一降息举措将影响贷款利率并在未来几个季度内对金融市场产生影响。, 本公司宣布成功收购一家在创新科技领域领先的公司这一战略性收购将有助于公司拓展技术能力和加速产品研发。, 公司资产负债表显示公司偿债能力强劲现金流充足为未来投资和扩张提供了坚实的财务基础。, 最新的分析报告指出可再生能源行业预计将在未来几年经历持续增长投资者应该关注这一领域的投资机会 ] # 初始化Prompt prompt_config init_prompts() # 执行分类推理 inference(test_sentences, prompt_config)5.2 核心模块解读class_examples少样本学习示例库每个类别对应 1 条标准金融文本init_prompts()构建标准化 Prompt注入系统角色 少样本示例是分类精度的核心inference()调用本地 Qwen2.5-7B 模型统一输入格式输出规范分类结果Rich 美化提升终端输出可读性便于调试与效果查看。六、运行结果与效果分析6.1 运行输出plaintext 待分类文本: 今日央行发布公告宣布降低利率以刺激经济增长。这一降息举措将影响贷款利率并在未来几个季度内对金融市场产生影响。 分类结果: 新闻报道 待分类文本: 本公司宣布成功收购一家在创新科技领域领先的公司这一战略性收购将有助于公司拓展技术能力和加速产品研发。 分类结果: 公司公告 待分类文本: 公司资产负债表显示公司偿债能力强劲现金流充足为未来投资和扩张提供了坚实的财务基础。 分类结果: 财务报告 待分类文本: 最新的分析报告指出可再生能源行业预计将在未来几年经历持续增长投资者应该关注这一领域的投资机会 分类结果: 分析师报告 6.2 效果验证4 条测试文本100% 精准分类完全匹配业务预期验证了In-Context Learning在金融文本分类场景的有效性。七、项目优势与拓展方向7.1 核心优势零微调、零标注无需训练模型无需标注数据集10 分钟完成开发本地部署、数据安全基于 Ollama 本地运行金融数据不上云符合合规要求易拓展、易维护新增类别仅需添加示例调整 Prompt 即可适配新场景轻量高效单卡可运行推理速度快适配生产环境批量处理。7.2 拓展方向多类别扩展新增政策公告、行业资讯等类别补充示例即可批量处理接入文件读取支持批量文本分类模型替换无缝切换 ChatGLM3、Llama3 等本地大模型服务化部署封装 FastAPI 接口对接企业内部系统。八、总结本文基于大模型 In-Context Learning能力实现了一套轻量化、低成本、高精准的金融文本分类方案彻底解决了传统金融 NLP 分类依赖标注、微调复杂的痛点。通过精准的 Prompt 工程 本地大模型部署无需深度学习背景即可快速落地非常适合金融机构、企业风控、舆情分析等场景的快速迭代需求。参考资料Ollama 官方文档https://ollama.com/docsIn-Context Learning 原理解析https://arxiv.org/abs/2301.00234Qwen2.5 模型官方介绍https://github.com/QwenLM/Qwen2.5文末互动如果本文对你有帮助欢迎点赞、收藏、关注

更多文章