模型选型:把"选哪个模型"变成一道能算的题
同一批任务,旗舰档月成本 762 元、轻量档 24 元——差一个数量级,而任务未必需要旗舰档
先说这一节不做什么:
- ✗ 不做模型能力横评。榜单三个月就过期,而且未必和你的任务相关
- ✗ 不给"某某模型最好"的结论
它做的是:把选型拆成四个可以自己算、自己核对的维度,并给一个离线可跑的预算计算器——换了模型、换了价格,重跑一遍就行。
先看最容易被低估的那一维(月成本,量级示意):
任务 每日份数 输入tok 输出tok 旗舰档 主力档 轻量档 国产主力档
公告结构化抽取 200 8000 500 762元 152元 24元 48元
研报要点提炼 50 40000 1200 835元 167元 27元 54元
财报全文问答(长上下文) 20 150000 2000 1,162元 232元 38元 76元
旗舰档与轻量档差一个数量级——而任务未必需要旗舰档。
⚠️ 内置价格档位只是量级示意,必须以你调用当天的官方文档为准。这一节教的是算法,不是价目表。
选货车不是比谁马力大,是先量货物:每天拉多少趟、单件多大、路多宽。
马力最大的那台,可能连你家小区门口都进不去。
模型选型同理:先量任务,再看模型。
一、维度一:月成本
计算口径:月成本 = 份数 × 22 天 × (1 + 重试率) × (输入 tok × 单价 + 输出 tok × 单价)
重试率不能省。按 p7.2 的校验管线,10% 左右的输出会因为不合 Schema 而重试——这部分成本是真实发生的。
| 任务 | 旗舰档 | 主力档 | 轻量档 | 国产主力档 |
|---|---|---|---|---|
| 公告结构化抽取(200/天) | 762 元 | 152 元 | 24 元 | 48 元 |
| 研报要点提炼(50/天) | 835 元 | 167 元 | 27 元 | 54 元 |
| 每日新闻情绪打标(800/天) | 436 元 | 87 元 | 14 元 | 28 元 |
| 财报全文问答(20/天) | 1,162 元 | 232 元 | 38 元 | 76 元 |
先算钱,再谈能力。 一个每月 24 元能做的事,用 762 元的档位做,需要一个能说清楚的理由。
二、维度二:上下文预算(它决定架构,不只是决定钱)
可用上下文按标称值的 70% 估——要留给系统提示词、少样本示例、输出与安全余量。
| 任务 | 单份输入 tok | 旗舰/主力档可塞 | 轻量/国产档可塞 |
|---|---|---|---|
| 公告结构化抽取 | 8,000 | 17 份 | 11 份 |
| 研报要点提炼 | 40,000 | 3 份 | 2 份 |
| 每日新闻情绪打标 | 1,200 | 116 份 | 74 份 |
| 财报全文问答 | 150,000 | 0 份 | 0 份 |
最后一行是关键:单份就塞不下。
150,000 token 的财报,连 200k 标称上下文的 70%(140k)都塞不进——这不是"换个更贵的模型"能解决的。
塞不下 → 你需要的是检索/分块架构,而不是更贵的模型。
塞得下但很挤 → 长上下文会显著变慢变贵,分块往往更划算。
上下文长度是最容易被当成"越大越好"的一维。实际上它决定的是架构: 一次塞完 / 分块摘要 / 检索增强,是三种完全不同的系统。
🔧 动手做:把"用哪个模型"算成一道题(5 分钟)
跑 python model_budget.py。同一批任务(公告结构化抽取 200 份/天),它按旗舰/主力/轻量各档算月成本。
你会看到(实测):同一批任务,旗舰档月成本 762 元、轻量档 24 元——差一个数量级,而这个任务未必需要旗舰档。
想明白:"用哪个模型"不是凭感觉选最强的,是一道能算的题:任务需要多强的能力 × 调用量 × 单价。大多数结构化、抽取类任务,轻量档就够,却有人默认全用最贵的,月成本平白高 30 倍。而且模型半年一换——所以这门课不教"选哪个模型",教怎么把选型变成可计算、可复算的题。
三、维度三与四:工具调用与结构化输出
| 维度 | 要问的问题 | 不满足的后果 |
|---|---|---|
| 结构化输出 | 能否强制返回符合 JSON Schema 的结果 | 你要写解析器 + 重试,失败率与成本都上升(p7.2) |
| 工具调用 | 能否按你的函数签名发起调用并接收结果 | 取数/计算只能靠提示词描述,不可靠且难审计 |
| 确定性 | 同样输入能否复现同样输出(温度=0 也未必) | 结果不可复现,与 p1.5/p5.9 的落盘纪律冲突 |
| 速率与并发 | 限频、并发上限、超时重试策略 | 上线当天被限流,批处理任务全部堆积 |
"确定性"这一条值得单独强调:p5.9 那次 yfinance 的复现性事故说明,数据源不稳定就足以让结论漂移。
LLM 的输出天然比数据源更不稳定。所以凡是进入研究流程的 LLM 输出,必须落盘存证——记录模型名、版本、温度、提示词哈希与原始返回。
四、量化场景里 LLM 的正确位置
| ✅ 适合 | 例子 | 说明 |
|---|---|---|
| 非结构化 → 结构化 | 公告/研报/纪要抽成字段 | 适合,且可校验(p7.2) |
| 文本归类与打标 | 事件类型、情绪极性 | 适合,但要人工抽检 |
| 代码与流程辅助 | 写脚本、审代码、查口径 | 适合(p7.5) |
| 解释与复盘 | 把回测结果讲清楚 | 适合,但结论仍需自己核 |
| ❌ 不适合 | 例子 | 说明 |
|---|---|---|
| 直接预测涨跌 | 让模型给出买卖信号 | 无法验证、无法归因、无法复现 |
| 替代回测 | 让模型"估算"策略表现 | 它不会算,只会写得像 |
| 生成"历史数据" | 补缺失值、编造样本 | 直接污染数据源(p1.6) |
一句话:LLM 在量化里的位置是"把文字变成表格",不是"把文字变成信号"。
五、选型清单(照着填,不用背型号)
- 任务是什么?每天多少份、单份多少 token?
- 用计算器算出月成本——先算钱,再谈能力
- 单份输入能否塞进标称上下文的 70%?塞不下就上检索/分块
- 是否需要强制结构化输出?不支持就要多写校验与重试(p7.2)
- 是否需要工具调用?
- 限频与并发上限是多少?批处理会不会被限流?
- 同一输入能否复现?不能复现的结果如何落盘存证(p1.5)?
- 数据出境与合规:公告是公开的,而你的持仓与策略不是。
第 ⑧ 条最容易被忽略。
把自己的持仓、参数、净值曲线发给第三方模型,等于把最不该外传的东西外传了。
公开文本可以送出去,私有状态不行。
一条可操作的分界:送出去的东西,必须是本来就公开的(公告原文、研报原文、新闻)。凡是"只有你知道"的东西——持仓、规格书、参数、实盘记录——不进提示词。
📌 免责:本课为技术教学,内置价格与上下文档位仅为量级示意(以官方文档为准),不推荐任何模型或服务商;不构成投资建议。
四件事:
- 本节不做模型横评——榜单三个月过期,且未必与你的任务相关。它给的是四维选型框架 + 离线可跑的预算计算器
- 先算钱:同一批任务旗舰档 762 元 / 轻量档 24 元,差一个数量级;计算里必须含重试率(约 10%,见 p7.2)
- 上下文决定架构,不只是决定钱:150k token 的财报在所有档位上可塞份数都是 0——塞不下要上检索/分块,不是换更贵的模型
- LLM 在量化里的位置是"把文字变成表格",不是"把文字变成信号"。直接预测涨跌、替代回测、生成"历史数据"三件事一律不做
外加一条最容易被忽略的合规线:送进提示词的东西必须本来就公开。公告、研报、新闻可以;持仓、规格书、参数、实盘记录不行。
下一节把"可校验"落到实处:JSON Schema 约束、强制原文引用、失败重试与成本控制——一套即使换了模型也不用重写的校验管线。
🔎 来源与核验· 2 条,点开核对
