用大模型搭建股票分析系统:FDE落地实践 用大模型搭建股票分析系统听起来像是个很重的AI工程但如果用FDE前沿部署工程师的思路来落地事情会变得清楚很多先把分析需求拆成小任务再选合适的模型接入行情、财务和新闻数据最后完成部署与验证。我最近在本地环境里跑通了一套这样的系统用AI编程工具辅助写了大部分代码整个流程从数据读取、提示词生成、模型调用到批量报告输出都能稳定工作。这篇内容适合两类人看一类是想学习大模型部署与AI编程落地的人另一类是手头有股票数据、想做自动复盘或每日简报的分析者。下面按实际部署顺序展开也会把容易踩的坑和排查顺序写清楚。1. FDE不是“部署”两个字那么简单先想清楚系统要解决什么1.1 从问题出发而不是从模型出发很多人看到“用大模型打造股票分析系统”这句话第一反应是找一个效果最强的模型然后把股票代码丢给它问“这只股票怎么样”。这个思路一般会失败因为模型不知道你关心的数据在哪也不会自己去做数据清洗更不会主动告诉你哪些数字是真实的。FDE在AI编程领域被反复提及说的不是单纯的“部署”动作而是一种工作方式由懂业务又懂模型落地的人把业务问题翻译成模型能处理的任务再负责部署上线和结果验证。放到股票分析场景里要回答的问题其实是这几类每日行情复盘收盘后生成当天走势摘要财务体检基于最新财报数据整理营收、利润、负债、现金流变化新闻情绪追踪汇总近期公告和新闻给出偏正面或偏负面的判断技术指标解读结合均线、MACD、RSI等指标说明当前技术面状态定期简报把上面几项合并成一份日报或周报。这些任务都有一个共同点输入是结构化的数据和文本输出是固定的结构化结论。任务清晰之后系统边界就出来了接下来选模型、写代码才有的放矢。我一般会建议先用一张纸把这些任务列出来不要打开编辑器就写。拿股票分析系统来说最容易犯的错就是把所有分析需求混在一个提示词里。比如让模型既看行情又看财务还看新闻最后还要给结论。结果模型往往顾此失彼输出里既有数据错误又有套话。如果按FDE的方式来做顺序应该是先明确业务痛点再定义输入输出最后才是技术选型。股票分析系统的业务痛点不是“模型不知道涨跌”而是“人没有时间去阅读大量行情、财报和新闻”。所以系统的核心价值是辅助阅读、辅助整理、辅助提示风险不是替代投资决策。1.2 为什么股票分析适合作为FDE落地案例股票分析系统是一个非常适合用来练习大模型落地的场景因为它链路完整需要处理数据、调用模型、解析结果、保存输出还要考虑批量任务和异常重试几乎覆盖了日常AI应用开发的主要环节。同时它的反馈很直观。一个摘要任务如果数字对不上马上能发现一个批量任务如果中途卡住日志也会很快暴露问题。这种“错误边界清晰”的特点非常适合第一次接触FDE和模型部署的人。更重要的是股票分析系统的数据维度很丰富。同样是文本新闻标题、财报摘要、研报段落的风险程度不同同样是数字行情数据和财务数据的更新频率不同。模型需要学会区分这些内容的优先级这正好能训练你设计提示词和数据结构的能力。我一般建议用这个案例来验证一套完整的部署流程先跑单条任务再扩展到批量最后封装成接口。整个过程不需要分布式不需要专门的数据平台个人电脑或者一台普通云服务器就能起步。等到你真的需要处理几百只股票、接实时行情的时候再考虑升级架构也不迟。2. 先把环境定下来模型、数据和运行条件2.1 硬件与软件条件如何估算部署大模型之前先判断一条原则不一定非要本地部署。本地部署的好处是数据不出内网、可以离线运行、成本可控缺点是硬件门槛和运维成本会明显增加。如果你只是想验证效果直接使用云API也能完成同一套流程。如果是本地部署我建议先按这个范围估算使用场景参考配置适合做什么最小原型CPU 8核16GB内存无独立GPU跑7B量级的量化模型单条分析能接受慢速批量分析CPU 16核32GB内存8GB~12GB显存的GPU处理几十只股票的日度简报能用中小模型服务化部署32GB以上内存24GB及以上显存或直接使用云API面向接口调用需要稳定延迟和并发控制这里给的是通用经验不是硬性标准。你的机器配置接近哪一档就先把批量数、并发数和模型体积降一档能跑通再逐步上调。依赖环境方面Python 3.10以上、pandas、requests、openai SDK都是常见组合。模型管理工具可以使用Ollama这类本地服务复杂场景也可以考虑vLLM、Dify、Docker等容器化方案但第一版不需要全上。有一点要注意CPU环境也能跑小模型但速度会慢很多。如果你的机器只有CPU建议把模型参数量控制在7B以下并且使用量化版本。量化版本在效果上有轻微损耗但内存占用和推理速度会明显改善。2.2 模型选择本地权重、云API还是混合模式模型选择没有唯一的正确答案主要看数据敏感度、预算和运维能力。三种方式对比如下方案优点需要付出的成本本地开源模型数据不出内网可离线可微调硬件投入模型部署与调优成本云API接入快效果稳定不用管理GPU数据出网按调用量计费受网络影响混合模式敏感数据本地处理通用任务走API架构复杂需要维护两套接入方式如果你只是学习先用本地的7B级别量化模型跑通流程或者使用一个带免费额度的云API都是合理的。像DeepSeek系列这类开源权重模型通过Ollama等工具部署起来很方便具体能跑多大版本取决于你的显存和内存。不要一上来就追求最大参数先把流程跑通更重要。模型下载是另一个容易被低估的环节。很多人以为下载模型就是把权重文件放到本地目录实际上还要考虑文件校验、版本匹配、依赖库兼容等问题。第一次部署时建议选择已经封装好的工具比如Ollama它会自动处理大部分环境问题。2.3 股票分析需要准备哪些数据数据质量基本决定了输出质量。股票分析系统通常需要三类数据行情数据交易日期、开盘价、收盘价、最高价、最低价、成交量、成交额等财务数据报告期、营业收入、净利润、同比增速、毛利率、负债率、现金流等文本数据公司公告、新闻标题、新闻正文、研报摘要、产品信息等。这些数据可以从行情接口、数据库、文件或网页里获取。关键不是来源而是“加工成模型能读懂的结构”。如果数据在关系数据库里不要把表名和字段名直接塞给模型而是先转成自然语言摘要。例如公司某科技公司 报告期2024年第三季度 营业收入100亿元同比增长12% 净利润20亿元同比增长8% 资产负债率40% 经营活动现金流正这样模型看到的是一个完整上下文而不是一行需要猜含义的数据库记录。处理行情数据时常见的坑是日期格式不统一。有的源用“2024-01-05”有的用“20240105”还有的用时间戳。模型对这类不一致非常敏感可能把日期顺序搞错或者把不同年份的数据混在一起。我建议在入库阶段就统一成YYYY-MM-DD格式并在读取时校验数据范围。3. 把“分析股票”拆成小任务提示词才不会失控3.1 不要直接问“这只股票怎么样”“这只股票怎么样”是一个开放性问题。模型没有边界自然就会给出泛泛而谈的结论甚至会把不同时间点的数据混在一起编。更好的做法是拆分。我常用的任务拆分表是这样的任务输入输出行情摘要最近一段时间日K线数据一段走势描述包含区间涨跌幅和成交量变化财务摘要最近几个季度财务指标财务质量归纳包含关键变化和风险点新闻情绪标题和正文片段情绪标签、关键事件列表风险检查财务数据新闻摘要风险清单不包含买卖建议综合简报前几个任务的结果Markdown格式日报或周报每个任务独立调用一次模型输出都尽量约定为JSON或固定格式方便程序解析。独立任务还有一个好处某个任务输出异常时不会影响其他任务排查范围也小。为什么一定要把任务拆开因为大模型在单次调用里的“注意力”是有限的。如果你要求它在一个回复里完成行情总结、财报分析、新闻解读、情绪判断、风险提示它很可能每个部分都只写一两句浅尝辄止。拆开之后每个任务都只关注一个维度输出质量会明显提升。3.2 提示词模板的关键结构股票分析这种场景提示词不需要写成复杂的长篇指令但结构要稳定。我一般按五段式来组织角色设定数据上下文任务指令输出格式禁止事项。一个示例模板你是一名股票研究助理。请基于下面的结构化数据生成财务分析简报。 数据 公司某科技公司 报告期2024年第三季度 营业收入100亿元同比增长12% 净利润20亿元同比增长8% 资产负债率40% 任务 1. 用3句话概括财务质量。 2. 列出2个需要关注的风险点。 3. 输出JSON字段为summary、risks、rating。 禁止事项 - 不要给出买入或卖出建议。 - 不要编造数据所有数字只能来自上方数据。为什么这样设计因为“角色数据任务格式禁止”能把模型的自由度限制住。数据放在任务之前模型在生成时会更倾向于引用上下文而不是自由发挥。输出格式固定解析时就不容易出错。禁止事项的存在能减少合规风险。观察输出时还要注意一个细节模型有时会用“根据我的分析”“可以看出”这类连接词把回复拉得很长。这不是错误但会浪费token。如果你希望输出更紧凑可以在提示词里明确要求“不要使用铺垫语直接输出结果”。3.3 提示词参数和流水线代码大模型推理参数也很关键。股票分析偏理性、偏可复现温度不要调高。参数建议值原因temperature0.1~0.3降低随机性多次输出更稳定max_tokens500~1500给足输出空间但不要过长top_p0.8~1.0配合温度使用保守为主stop按需设置防止模型输出多余内容这里的参数是通用经验。不同模型对温度的感受不一样有些模型在temperature等于0.2时已经非常稳定有些则还需要调低top_p。实际使用时要先跑两三次看输出方差是否能接受。流水线代码并不复杂核心逻辑是读取数据 - 生成上下文 - 调用模型 - 解析结果 - 保存。下面是一段简化示例使用