1. 从"问财"到"问逻辑":为什么通用对话模型做投研总差一口气
很多人第一次用对话式AI查股票,问的都是"XX股票能买吗""明天大盘怎么走"。得到一段四平八稳的回答之后,就下结论说"这玩意儿没用"。问题不在模型,在于提问的方式和使用的定位。通用对话模型不是行情终端,它没有实时报价,也不该被当成荐股工具。它真正擅长的是把非结构化的信息结构化、把散落的逻辑串成链条、把模糊的判断拆成可验证的假设。这三件事,恰恰是个人投资者做研究时最费时间、最容易偷懒跳过的环节。
我在过去一年多的实践里,把这类模型在投研中的角色重新定位了一次:它不是"给你答案的人",而是"逼你把问题想清楚的人"。你问它"这只股票好不好",它只能给你一堆正确的废话;你问它"这家公司过去三年毛利率的变化,可能由哪几个因素驱动,每个因素我该去哪个报表科目里找证据",它立刻就能给你一张可执行的核查清单。差别就在于,前者是让它替你下结论,后者是让它帮你搭框架。
这个系列的第一篇聊的是基础用法,这一篇往深里走一层,讲的是如何把对话模型嵌进一套完整的投研工作流——从信息采集、逻辑建模、假设验证,到风险清单的生成和持仓逻辑的复盘。整套流程不需要写代码,不需要接任何数据接口,一台电脑加一个对话窗口就能跑起来。适合两类人:一是有点财务基础但没时间做深度研究的上班族投资者,二是想建立自己研究框架、又不想被卖方报告牵着走的独立研究者。
需要先把丑话说在前面:这套方法产出的是研究框架和核查清单,不是买卖建议。模型给你的任何数字都要回到原始报表里核对,任何结论都要自己走一遍逻辑。把它当成一个不知疲倦、随叫随到、但需要你严格把关的研究助理,这个定位才是对的。
2. 把对话模型变成研究助理的三层提问结构
2.1 第一层:事实层提问,先让它帮你把公开信息归位
投研的第一步永远是搞清楚"事实是什么"。这一步最枯燥,也最容易出错。财报几十页,附注几百条,人眼扫一遍至少两小时,还容易漏掉关键科目。我的做法是先把已知的公开信息喂给模型,让它做归位和交叉验证。
具体操作上,我会把一家公司的核心财务数据整理成一段结构化文本,比如营收、毛利率、净利率、经营性现金流、应收账款周转天数、存货周转天数、资产负债率这几项,连续三到五年的数据。然后这样提问:
以下是我整理的某公司近五年核心财务数据。请帮我做三件事:第一,指出哪些指标的变动方向出现了背离,比如营收增长但现金流下滑;第二,针对每一处背离,列出三个最可能的会计或经营层面的原因;第三,针对每个原因,告诉我应该去财报的哪个部分找证据。
这个提问方式的关键在于把"分析"拆成了"找异常—列假设—指路径"三步。模型不需要知道这家公司具体是谁,它只需要基于财务常识做逻辑推演。实测下来,它列出的背离点往往比我肉眼扫出来的多,尤其是"净利润增长但经营性现金流连续两年为负"这类经典信号,人容易因为看到利润数字好看就忽略掉。
这里有个经验:喂数据的时候一定要带上时间维度。只给一年的数据,模型只能做静态分析;给三到五年,它才能识别趋势和拐点。另外,数据最好用表格形式贴进去,比纯文字描述准确率高很多。我试过用纯文字描述"营收从十亿涨到十五亿",模型有时候会把增长率算错;换成表格里写清楚年份和数值,它算得比我快还准。
2.2 第二层:逻辑层提问,让它帮你把因果链拆开
事实归位之后,下一步是建立因果逻辑。这一步是个人投资者和机构研究员差距最大的地方——机构有完整的逻辑框架,个人往往凭感觉。对话模型在这里的价值,是逼你把"我觉得"变成"因为A所以B,如果A不成立则B也不成立"。
我常用的提问模板是这样的:
我观察到这家公司过去两年营收增速从30%降到10%,但同期销售费用率从8%升到了15%。请帮我构建一个因果链条,解释这两个变化之间可能的关联。要求:每个环节都要有可观测的指标来验证,如果某个环节无法验证,请明确标注"假设"。
这个提问的精妙之处在于最后那句"如果无法验证请标注假设"。模型在没有约束的时候,会编出一些听起来很顺但没法验证的因果链;加上这个约束之后,它会主动区分"有数据支撑的推论"和"纯逻辑假设"。这个区分对投研太重要了——前者可以直接写进研究笔记,后者只能作为待验证的线索。
举个实际跑出来的例子。模型给出的链条是:销售费用率上升可能是因为公司加大了新渠道投放,新渠道初期转化率低导致费用效率下降,费用效率下降又反过来拖累了营收增速。验证路径是:去财报的"销售费用明细"里看广告费和渠道费用的占比变化,去管理层讨论里看有没有提到新渠道拓展,去第三方数据平台看这个品类的线上流量成本走势。三条路径里,前两条财报里能直接找到,第三条需要外部数据。模型会明确告诉你哪些是假设、哪些有据可查。
2.3 第三层:决策层提问,让它帮你生成风险清单而不是收益预测
到了决策层,绝大多数人问的是"能不能买"。这个问题模型答不好,也不该由它答。我换了一个问法:
假设我已经决定关注这家公司,请帮我列出十个可能导致这个决策失败的风险点,按发生概率和影响程度排序。每个风险点要说明:触发条件是什么、有什么前置信号、我应该在什么时间窗口内重新评估。
这个提问把模型从"预测者"变成了"风险官"。它不会告诉你股价会涨会跌,但会给你一张风险地图。实测下来,它列出的风险点里,有三到四条是我自己没想到的,比如"核心供应商集中度过高导致议价能力弱""股权激励行权条件过低导致管理层动力不足"这类偏公司治理层面的问题。这些点不会直接体现在财务数字里,但会在关键时刻影响股价。
注意:模型列出的风险点必须自己再过一遍。它有时候会把行业普遍现象当成公司特有风险,也会漏掉一些需要行业know-how才能识别的风险。我的做法是把模型列出的清单和自己在行业里的认知做交叉,两边都提到的风险权重调高,只有模型提到的作为补充观察项。
这三层提问结构跑下来,大概需要三到五轮对话,耗时四十分钟到一个小时。比起漫无目的地刷研报和股吧,这个时间花得值——你得到的是一份属于自己的、逻辑自洽的研究框架,而不是别人嚼过的结论。
3. 用对话模型做财报文本挖掘:从管理层讨论里读出弦外之音
3.1 管理层讨论与分析部分的文本特征识别
财报里最有信息量的部分,往往不是数字,而是"管理层讨论与分析"(MD&A)那几页文字。这部分是管理层自己写的,措辞的微妙变化往往比数字更早反映经营层面的转向。但人读这部分容易陷入两个极端:要么逐字逐句读得太慢,要么扫一眼觉得都是套话直接跳过。
对话模型在这块的能力被严重低估了。我的做法是把连续几年的MD&A部分贴进去,然后问一个很具体的问题:
以下是某公司连续三年的管理层讨论与分析部分。请对比这三段文字,找出措辞上发生明显变化的地方,特别是:对同一件事的描述从积极转向中性或谨慎的、新增的风险提示、被删除的正面表述。逐条列出变化点,并标注变化发生的年份。
这个提问的关键词是"措辞变化"和"被删除的表述"。模型对文本差异的敏感度比人高,尤其是那些隔了一年、藏在段落中间的语气变化,人眼很容易滑过去。我实测过一个案例:某公司第一年MD&A里写"行业需求旺盛,公司产能利用率维持高位",第二年改成了"行业需求保持稳定,公司根据市场情况灵活调整产能"。模型准确识别出了"旺盛"到"稳定"、"维持高位"到"灵活调整"这两处措辞降级,而这两处变化在当年的财报数字上还没有明显体现——营收还在增长,只是增速放缓了两个百分点。等到第三年数字明显恶化的时候,回头再看第二年的措辞变化,信号其实已经给出来了。
3.2 风险提示部分的"新增"与"删除"追踪
比MD&A更值得追踪的是"风险因素"章节。这部分每年都会更新,新增的风险点往往对应着管理层新近意识到的问题,删除的风险点则可能意味着问题已经解决或者管理层认为不再重要。但人读这部分有个天然缺陷:你很难记住去年写了什么,除非专门做对比表。
我的操作流程是这样的:把最近三到五年的风险因素章节完整贴给模型,然后提问:
请对比这几年的风险因素章节,列出:第一,每年新增的风险点;第二,每年删除的风险点;第三,同一风险点的描述强度变化(比如从"可能"变成"将会",从"一定程度"变成"显著")。按年份整理成表格。
模型输出的表格可以直接贴进研究笔记。我印象最深的一次,是某公司连续三年都在风险因素里写"原材料价格波动风险",但第三年的描述从"可能对毛利率产生一定影响"变成了"已经对毛利率产生显著影响"。这个措辞变化比财报里的毛利率数字早了半年——等到毛利率真的下滑的时候,风险因素里其实已经预告了。
提示:风险因素章节的文本分析最好和财务数据交叉验证。如果模型识别出某个风险点的描述在加强,但对应的财务指标还没恶化,这往往是最值得深入研究的时点——要么是管理层过度谨慎,要么是数字滞后于现实。
3.3 电话会议纪要的问答环节拆解
除了财报文本,电话会议纪要的问答环节也是富矿。但一场电话会议动辄几十个问题,全部读完要一两个小时。我的做法是让模型先做一轮筛选:
以下是一场电话会议纪要的问答部分。请帮我做三件事:第一,把所有问题按主题分类(比如增长前景、成本控制、竞争格局、监管政策);第二,标出管理层回答中使用了"不确定""需要观察""视情况而定"等模糊措辞的问题;第三,找出分析师追问超过两次的问题。
这个筛选逻辑背后的假设是:管理层用模糊措辞回答的问题,往往是他们自己也没把握或者不想明说的地方;分析师反复追问的问题,往往是市场最关心但公司最不想正面回应的地方。这两个集合的交集,就是最值得深挖的点。
我跑过的一个案例里,模型标出了三个"模糊回答"和两个"被追问两次以上"的问题,交集是一个关于新业务盈利时间表的问题。管理层的回答是"需要看市场情况,目前很难给出具体指引",而分析师追问了三次。这个信号在当时的股价上完全没有体现,但三个月后公司下调了新业务的收入预期。模型不会告诉你"赶紧卖",但它帮你把注意力引到了最该关注的地方。
4. 构建可复用的投研提示词模板库
4.1 财务数据异常检测模板
把重复性的分析工作模板化,是提高效率的关键。我把自己常用的提问方式整理成了几个固定模板,每次只需要替换数据部分。第一个是财务数据异常检测模板:
以下是一家公司连续[年份数]年的核心财务数据:[粘贴表格]。请执行以下分析:
- 计算每一项指标的同比变化率和[年份数]年复合增长率;
- 识别任意两项指标之间出现的背离(比如营收增长但应收账款增长更快、净利润增长但经营现金流下滑);
- 对每一处背离,列出至少三个可能的解释,并标注每个解释需要去哪里找验证数据;
- 按重要性对背离点排序,排序依据是:该背离是否可能影响公司的持续经营能力。
这个模板我用了不下五十次,每次跑出来的结果结构都很稳定。关键在第四条的排序依据——把"是否影响持续经营能力"作为最高优先级,可以过滤掉很多无关紧要的波动。比如存货周转天数从45天变成48天,可能只是季节性因素;但经营性现金流连续两年低于净利润,就是需要认真对待的信号。
4.2 行业对比分析模板
第二个模板是行业对比分析。个人投资者往往只盯着一家公司看,缺少横向参照。模型可以帮你快速建立对比框架:
我需要对比[A公司]和[B公司]在[某行业]中的竞争位置。以下是我整理的两家公司核心数据:[粘贴数据]。请从以下维度做对比:毛利率差异及其可能原因、费用率结构差异、增长质量差异(营收增长与现金流增长的匹配度)、资本开支强度差异。每个维度给出一个结论,并说明这个结论的置信度(高/中/低),置信度低的要说明缺什么数据。
这个模板里"置信度"这个设计很关键。模型在没有足够数据的时候会硬编结论,加上置信度标注之后,它会主动说"这个结论置信度低,因为缺少XX数据"。这比给你一个看似确定但实际不靠谱的结论要好得多。
4.3 假设验证清单生成模板
第三个模板是假设验证清单。当你对一家公司有了初步判断之后,最危险的事情就是只找支持自己判断的证据。这个模板的作用是强制自己找反方证据:
我目前对[某公司]的判断是:[写出你的判断]。请帮我做三件事:第一,列出五个可能推翻这个判断的证据方向;第二,针对每个方向,告诉我具体应该查什么数据或信息;第三,如果这些证据中有两个以上被证实,我的判断应该做什么调整。
这个模板我一般在自己已经形成较强观点的时候用,专门用来给自己泼冷水。实测下来,它每次都能找出至少两个我没想到的反方角度。比如我曾经看好一家公司的成本控制能力,模型提醒我去查"成本下降是否以牺牲产品质量或员工稳定性为代价",这个角度我完全没想过。后来去查员工流失率和客户投诉数据,虽然没有推翻我的判断,但让我对这家公司的成本优势有了更全面的理解。
5. 模型输出的验证与纠偏:哪些话能信,哪些话要打问号
5.1 数字类输出的核对流程
模型在数字上犯错的方式很隐蔽——它不会给你一个明显离谱的数字,而是给你一个看起来合理但实际算错的数字。比如把同比增长率算成环比、把百分比小数点挪错一位、把不同口径的数据混在一起算。我的核对流程是三步:
第一步,所有模型算出来的比率,自己用计算器再算一遍。这一步花不了两分钟,但能拦住大部分低级错误。第二步,检查口径一致性。模型有时候会把"营业收入"和"营业总收入"混用,把"归母净利润"和"净利润"混用,这两个口径在多数公司里差别不大,但在有大量少数股东权益的公司里差别可能很大。第三步,把模型输出的数字和原始财报做一次抽样比对,至少抽三个关键数字回到财报里找原文。
注意:模型在处理跨年数据的时候特别容易出错,尤其是当财年不是自然年、或者公司发生过并购导致口径变化的时候。我的经验是,凡是涉及三年以上的趋势分析,模型给的每一个数字都要核对,不能偷懒。
5.2 逻辑类输出的合理性判断
逻辑类的输出比数字类更难验证,因为它没有标准答案。我的判断标准有三条:第一,因果链条的每一环是否都有可观测的指标对应。如果模型说"A导致B",但B没有对应的财务科目或经营数据可以观测,这个链条就是悬空的。第二,是否存在反向因果的可能。模型说"A导致B",但有没有可能是"B导致A"或者"C同时导致A和B"?第三,结论是否过于确定。好的分析会给出条件和边界,比如"在XX条件下,A可能导致B";差的分析会直接说"A会导致B"。
我踩过的一个坑是:模型曾经给我构建了一个很漂亮的因果链,解释某公司毛利率下降是因为产品结构变化。逻辑上完全说得通,但我后来发现,同期这家公司的主要原材料价格其实在下降,如果产品结构变化是唯一原因,毛利率降幅不应该那么大。回头再看模型的输出,它其实在最后加了一句"以上分析假设原材料价格保持稳定",但我当时只看了前面的因果链,忽略了那个假设条件。从那以后,我养成了一个习惯:模型输出的每一段分析,先看它的假设条件,再看它的推理过程。
5.3 模型"幻觉"的典型模式与拦截方法
模型在投研场景下的"幻觉"有几个典型模式,识别出来之后拦截起来并不难。第一种是编造不存在的财务科目。比如它可能会说"去查一下'递延收入'这个科目",但这家公司的财报里根本没有这个科目。拦截方法是:模型提到的每一个科目,都去财报目录里搜一下,搜不到的直接忽略。第二种是把行业惯例当成公司事实。比如它说"这家公司的销售费用率在行业里偏高",但它其实不知道这家公司的具体销售费用率,只是基于行业一般情况在推测。拦截方法是:凡是涉及"高于/低于行业平均"的判断,都要求模型给出具体数字和来源。第三种是把时间线搞混。比如把2022年的政策影响说成是2023年的,或者把某季度的事件说成是全年的。拦截方法是:模型提到的每一个时间点,都回到原始材料里核对。
我自己的做法是,在提问的时候加一句约束:"如果你不确定某个信息,请直接说'不确定',不要猜测。"这句话能拦掉相当一部分幻觉。模型在明确被允许说"不知道"的时候,编造的倾向会明显降低。
6. 把对话模型嵌进日常投研流程的实操节奏
6.1 每周研究节奏的安排
把模型用起来的关键不是单次提问多精妙,而是把它变成日常节奏的一部分。我自己的节奏是这样的:周一到周三做信息采集和事实归位,把关注列表里公司的公告、财报、行业数据整理成结构化文本,喂给模型做第一轮异常检测。周四做逻辑建模,针对模型标出的异常点,用第二层提问构建因果链,生成验证清单。周五做验证和复盘,把一周里查到的证据和模型之前的假设做对照,更新研究笔记。周末不做新的分析,只做一件事:把本周所有模型输出的内容过一遍,标记出哪些被证实、哪些被推翻、哪些还悬着。
这个节奏的好处是把"用模型"变成了一个有时间边界的事情,不会陷入无休止的对话。模型再好用,也不能替代你去看原始材料、去思考、去下判断。它只是把那些重复性的、结构化的、需要快速处理大量文本的工作接了过去。
6.2 研究笔记的结构化沉淀
模型输出的内容如果不沉淀,下次用的时候又要重新问一遍。我的做法是建一个结构化的研究笔记,每个公司一个文件,里面分四个区块:事实区(核心财务数据、关键经营指标)、逻辑区(因果链条、假设条件)、证据区(验证结果、数据来源)、风险区(风险清单、触发条件)。模型每次输出的内容,我手动摘录到对应的区块里。摘录的过程本身就是一次过滤——很多模型说的话,在摘录的时候你会发现其实没什么信息量,自然就筛掉了。
这个笔记结构还有一个好处:当新信息进来的时候,你可以快速定位到它影响的是哪个区块。比如公司发了一个新公告,你只需要去看它影响的是事实区的哪个数字、逻辑区的哪个假设、风险区的哪个触发条件。不需要从头把整个研究重做一遍。
6.3 模型输出的版本管理与回溯
最后一个实操细节是版本管理。模型每次输出的内容,我都会在笔记里标注日期和提问方式。这样做的好处是,过一段时间回头看,你能清楚地知道当时的判断是基于什么信息、什么逻辑做出来的。投研里最危险的事情之一就是"事后合理化"——股价涨了觉得自己的逻辑对,股价跌了觉得是市场错了。有了版本记录,你可以回溯到当时的原始判断,看看究竟是逻辑错了、信息错了、还是运气不好。
我自己的做法是给每次模型输出打一个简单的标签:"已验证""待验证""已推翻"。每周复盘的时候更新标签。时间长了,你会发现自己哪些判断经常对、哪些经常错,这个自我认知比任何模型输出都值钱。
7. 几个我踩过的坑和对应的解法
第一个坑是过度依赖模型的总结而忽略原始材料。有一段时间我图省事,只看模型对财报的总结,不去翻原文。结果有一次模型漏掉了一个很重要的附注信息——一笔关联交易的定价方式发生了变化。这个信息在附注的角落里,模型总结的时候没提到,我也没去翻。后来股价因为这个事情波动的时候,我才回头去查,发现原文里其实写得很清楚。从那以后,我给自己定了一条规矩:模型总结什么,我就去原文里核对什么,至少核对关键结论对应的原文段落。
第二个坑是提问太宽泛导致输出太泛。刚开始用的时候,我喜欢问"帮我分析一下这家公司",得到的回答全是正确的废话。后来我把问题拆细,一次只问一个维度,比如"只分析应收账款的变化",输出质量立刻上来了。模型和人一样,你给它一个模糊的任务,它只能给你一个模糊的结果;你给它一个具体的、有边界的问题,它才能给出有信息量的回答。
第三个坑是把模型的语气当成确定性的信号。模型有时候会用很确定的语气说一件其实它并不确定的事情。比如它说"这家公司的毛利率下降主要是由于原材料涨价",语气很肯定,但实际上它并没有原材料价格的数据,只是基于一般逻辑在推测。识别这种"语气与确定性不匹配"的情况,需要你对自己问的问题有基本的判断——如果你自己都不知道答案,模型用再确定的语气说,你也应该保持怀疑。
第四个坑是忘记模型的知识截止日期。模型对最近发生的事件可能不了解,但它不会主动说"我不知道最近发生了什么",而是会用旧信息来回答新问题。我的解法是:凡是涉及最近六个月的事件,都在提问里把已知信息贴进去,不要让模型去"回忆"它可能根本不知道的事情。
8. 关于这套方法适用边界的个人体会
这套方法跑了一年多,我最大的体会是:对话模型在投研里的价值,和你的提问能力成正比,和你的判断能力也成正比。提问能力决定了你能从模型里挖出多少信息,判断能力决定了你能从挖出的信息里筛出多少真正有用的东西。两者缺一不可。
它不适合的场景也很明确:需要实时数据的场景(模型没有实时行情)、需要精确计算的场景(模型算数会错)、需要承担决策责任的场景(模型不会为你的盈亏负责)。它适合的场景同样明确:处理大量非结构化文本、构建逻辑框架、生成核查清单、做反方论证。把这四个场景用足,它就是一个非常得力的研究助理。
最后分享一个我最近在用的提问方式,专门用来对抗自己的确认偏误:
我目前对[某公司]的看法是[写出看法]。请扮演一个专门做空这家公司的研究员,用最刻薄的角度找出这个看法里的漏洞。不要客气,直接指出哪里逻辑不成立、哪里数据不支持、哪里是我想当然。
这个提问每次都能让我出一身冷汗,但也每次都能让我对自己的判断更有底气——如果连最刻薄的反方角度都推不翻我的逻辑,那这个判断至少值得下注;如果被推翻了,那正好,省了一笔学费。