Perplexity开源决策模型登顶HF榜单:核心设计与落地避坑指南
1. 这个榜单第一到底意味着什么Perplexity 把一套决策模型开源出来并且在 Hugging Face 的榜单上拿到了第一。这个消息在圈子里传开的时候我第一反应不是又一个模型刷榜而是终于有人把决策这件事当成一个正经的建模对象来做了。过去两年大家卷的都是对话、写作、代码生成、图像理解这些能力。模型能不能聊天、能不能写代码、能不能看图说话这些是主流评测关注的点。但决策这个东西一直处在一个很尴尬的位置——它既不像纯语言任务那样有标准答案也不像分类任务那样有明确的标签。决策的本质是在不确定条件下从多个候选方案里选一个相对最优的而且这个最优往往还要考虑长期收益、风险控制、资源约束这些维度。Perplexity 这次做的事情是把决策过程拆解成可建模、可训练、可评测的形式然后把这套东西完整开源出来。它登顶 HF 榜单这件事说明这套方法论在社区评测体系下得到了认可。但更重要的是它给所有做 AI 应用的人提了一个醒决策能力是可以被单独拎出来优化的不需要跟对话能力绑在一起。这篇文章我会从几个角度来拆这套决策模型的核心设计思路是什么为什么它能在榜单上跑出来实际落地的时候有哪些坑以及如果你手头有决策类场景怎么参考它的思路来做自己的方案。不管你是做推荐系统、做智能客服、做自动化流程编排还是单纯对决策建模感兴趣这篇内容应该都能给你一些可以直接抄的东西。2. 决策模型的核心设计思路拆解2.1 为什么决策建模一直是个难题决策这件事难就难在它的评价标准不唯一。你让一个模型去选今天中午吃什么它可以选火锅、选沙拉、选快餐每个选择都有道理你很难说哪个是正确答案。但如果你给它加上约束条件——预算 30 块以内、步行 10 分钟能到、不要辣——那候选空间就收窄了评价标准也变得可操作了。Perplexity 这套模型的核心洞察就在这里决策不是凭空产生的它是在约束条件下对候选方案进行排序的过程。所以建模的重点不是让模型学会做决策而是让模型学会在给定约束下对候选方案进行合理排序并且能够解释为什么这么排。这个思路听起来简单但落地的时候有几个关键难点。第一约束条件怎么表示是写成自然语言还是结构化成参数第二候选方案从哪来是模型自己生成还是外部系统提供第三排序的依据是什么是打分还是 pairwise 比较还是 listwise 排序第四怎么保证决策的稳定性同样的输入模型不能这次选 A下次选 B。这套模型在设计上对这几个问题都给了回答而且回答的方式比较务实没有追求端到端的大一统而是把决策拆成了几个可独立优化的模块。2.2 约束条件的表示与编码方式约束条件的表示直接决定了模型能处理多复杂的决策场景。我见过很多方案要么把约束全部塞进 prompt 里让模型自己理解要么把约束硬编码成规则引擎。前者灵活但不可控后者可控但不灵活。这套模型采取的是一个中间路线把约束分成硬约束和软约束两类硬约束用结构化编码软约束用自然语言描述。硬约束是那些绝对不能违反的条件比如预算上限、时间窗口、库存数量这些用结构化字段表示模型在生成候选和排序的时候会显式检查。软约束是那些最好满足但不强制的条件比如用户偏好辣一点、尽量选评分高的这些用自然语言描述模型在排序的时候会作为加权因子考虑。这个设计的好处是硬约束保证了决策的可行性软约束保证了决策的合理性。两者分开处理避免了为了满足一个软约束而违反硬约束这种低级错误。在实际操作中硬约束的编码方式一般是键值对或者 JSON 结构比如{ budget_max: 30, walk_time_max: 10, exclude_tags: [spicy] }软约束则用自然语言描述比如用户最近在控制热量摄入倾向于选择低卡选项。模型在排序的时候会把软约束转成一个偏好向量跟候选方案的特征向量做点积得到一个偏好分数再跟其他因子加权求和。注意硬约束和软约束的划分不是绝对的。同一个条件在不同场景下可能属于不同类别。比如不要辣在普通点餐场景下是硬约束但在随便吃点的场景下可能只是软约束。所以这套模型允许在运行时动态调整约束的类别这个灵活性很关键。2.3 候选方案的生成与筛选机制候选方案从哪来这个问题决定了决策模型的能力边界。如果候选方案是外部系统提供的那模型只负责排序能力上限就是排序质量。如果候选方案是模型自己生成的那模型还要负责想得到合理的选项能力上限更高但风险也更大——模型可能生成一些看起来合理但实际上不可行的方案。这套模型采取的是混合策略先由外部系统或规则引擎生成一批候选然后模型在此基础上做扩展和筛选。扩展的意思是模型会根据当前约束和上下文生成一些外部系统没想到但可能更优的候选。筛选的意思是模型会对所有候选做可行性检查把违反硬约束的剔除掉。这个策略的好处是兼顾了召回率和准确率。外部系统保证了候选的基本覆盖模型扩展提高了找到更优解的概率可行性检查保证了最终输出的方案都是可执行的。在实际操作中候选生成这一步有几个细节需要注意。第一候选数量不能太少否则模型没有选择空间也不能太多否则排序成本太高。一般建议初始候选在 10 到 50 个之间具体取决于场景复杂度。第二候选的特征表示要统一不然后面排序的时候没法比较。第三要保留候选的来源信息方便后续做归因分析。2.4 排序与打分的核心逻辑排序是决策模型的核心环节。这套模型用的是listwise 排序 pairwise 校准的组合方式。listwise 排序的意思是模型一次性看到所有候选然后输出一个完整的排序列表。pairwise 校准的意思是在 listwise 排序之后模型会对相邻的候选做两两比较确保排序的局部一致性。为什么这么设计因为纯 listwise 排序虽然效率高但在候选数量多的时候容易出现中间塌陷——就是排序列表的头部和尾部比较准中间部分比较乱。pairwise 校准可以修正这个问题代价是增加一些计算量。打分的逻辑是这样的每个候选会得到一个综合分数这个分数由三部分组成——硬约束满足度、软约束偏好分、上下文相关性分。硬约束满足度是个布尔值要么 0 要么 1违反硬约束的直接淘汰。软约束偏好分是个连续值通过偏好向量和候选特征向量的相似度计算。上下文相关性分也是个连续值通过模型对当前场景的理解来打分。三部分加权求和得到最终分数权重可以根据场景调整。比如在风险敏感的场景下硬约束的权重可以设得更高在个性化推荐场景下软约束的权重可以设得更高。实操心得权重不要设成固定值最好做成可配置的。我试过在同一个系统里不同业务线用不同的权重配置效果比统一权重好很多。另外权重的调整要有依据不能拍脑袋最好用 A/B 测试或者离线评估来验证。3. 榜单评测背后的技术细节3.1 HF 榜单的评测维度与这套模型的应对策略Hugging Face 的榜单评测一般会从几个维度来打分准确性、鲁棒性、效率、可解释性。准确性看的是模型输出跟标准答案的匹配程度鲁棒性看的是模型在扰动输入下的表现稳定性效率看的是推理速度和资源消耗可解释性看的是模型能不能给出合理的决策理由。这套模型在这几个维度上的表现我分析下来有几个关键点。准确性方面它靠的是 listwise 排序加 pairwise 校准的组合在候选数量适中的时候准确率很高。鲁棒性方面它靠的是硬约束和软约束的分离设计硬约束保证了基本可行性软约束的加权机制让模型对输入扰动不那么敏感。效率方面它没有追求端到端的大模型推理而是把决策拆成多个小模块每个模块可以独立优化整体推理成本可控。可解释性方面它天然支持归因分析因为每个候选的分数都可以拆解成硬约束满足度、软约束偏好分、上下文相关性分三部分。这几个维度里我觉得最值得说的是鲁棒性。决策场景跟对话场景不一样对话场景下模型说错一句话可能只是体验问题决策场景下模型选错一个方案可能是真金白银的损失。所以鲁棒性在决策模型里的权重应该比在对话模型里更高。3.2 训练数据的构造与清洗决策模型的训练数据构造比对话模型要麻烦得多。对话模型的训练数据可以从网上爬、从日志里捞决策模型的训练数据往往需要人工标注因为哪个决策更好这件事很多时候只有领域专家才能判断。这套模型的训练数据构造我推测用的是专家标注 规则生成 在线反馈的三源混合策略。专家标注提供高质量的种子数据规则生成提供大规模的合成数据在线反馈提供真实场景下的偏好信号。三源数据按一定比例混合既保证了数据质量又保证了数据规模。数据清洗这块有几个关键点。第一要去掉那些约束条件不明确的样本因为约束不明确的话决策本身就没有标准答案。第二要去掉那些候选方案质量差异过大的样本因为这种样本训练出来的模型容易走极端。第三要保留那些有争议的样本因为争议样本往往包含了更丰富的偏好信息对模型学习细粒度排序很有帮助。注意训练数据的分布要跟实际场景的分布匹配。我见过一些方案训练数据全是简单场景上线之后遇到复杂场景就崩了。所以数据构造的时候要有意识地覆盖不同复杂度、不同约束组合的场景。3.3 推理效率的优化手段决策模型的推理效率直接决定了它能不能落地到实时场景。这套模型在效率优化上做了几件事。第一候选预筛选。在模型推理之前先用轻量级的规则引擎把明显不可行的候选过滤掉减少模型需要处理的候选数量。这个步骤可以砍掉 50% 到 80% 的候选效果非常明显。第二分数缓存。对于重复出现的候选和约束组合把分数缓存起来下次直接查缓存不用重新计算。这个在候选空间有限、约束组合重复率高的场景下特别有效。第三模型蒸馏。把大模型的能力蒸馏到小模型上用大模型做离线训练和校准用小模型做在线推理。这样既保证了效果又控制了延迟。第四批处理。把多个决策请求打包成一个批次一起送进模型推理提高 GPU 利用率。这个在离线场景下效果很好在线场景下要看延迟要求。这几个手段组合起来这套模型在保持效果的同时把推理延迟控制在了可接受的范围内。具体数字我没有实测数据但从榜单评测的效率维度得分来看应该是在同类方案里属于中上水平。3.4 可解释性的实现方式可解释性在决策场景里特别重要因为决策往往需要向用户或者审核方解释为什么选这个。这套模型的可解释性实现主要靠的是分数拆解 关键因子提取。分数拆解的意思是每个候选的最终分数可以拆成硬约束满足度、软约束偏好分、上下文相关性分三部分用户可以清楚地看到每个部分贡献了多少分。关键因子提取的意思是模型会从约束条件和候选特征里找出对最终决策影响最大的几个因子用自然语言描述出来。比如模型选了一个餐厅解释可能是这样的推荐这家餐厅因为它在预算范围内硬约束满足步行时间 8 分钟硬约束满足用户偏好辣度匹配度 0.85软约束高分且近期评价中提到了上菜快上下文相关。这种解释方式的好处是它既给出了量化依据又给出了自然语言描述不同背景的人都能看懂。而且解释是自动生成的不需要额外的人工标注。4. 实际落地中的关键环节与避坑指南4.1 场景适配什么样的业务适合用这套方案这套决策模型不是万能的它有自己适合的场景。我总结下来适合的场景一般有这几个特征候选方案可枚举、约束条件可描述、决策结果可评估。候选方案可枚举意思是决策空间不是无限大的总有一个相对明确的候选集合。比如选餐厅、选路线、选商品、选排班方案这些都是候选可枚举的。反过来像写一篇文章这种创作类任务候选空间是无限的就不太适合用这套方案。约束条件可描述意思是决策的约束可以用结构化字段或者自然语言描述出来。比如预算、时间、数量、偏好这些都可以描述。反过来像选一个最有创意的方案这种约束很难量化就不太适合。决策结果可评估意思是决策做完之后能有一个相对客观的标准来判断好坏。比如选餐厅可以用用户满意度来评估选路线可以用时间成本来评估。反过来像选一个最有战略价值的方案这种评估周期长、标准模糊就不太适合。如果你的业务场景符合这三个特征那这套方案的思路大概率可以借鉴。如果不符合那可能需要考虑其他方案或者对场景做一定的抽象和简化。4.2 数据准备从零开始构建决策数据集从零开始构建决策数据集是个体力活但有几个技巧可以省力。第一从日志里挖。很多业务系统里已经有大量的决策记录比如用户的历史选择、客服的历史推荐、系统的历史调度。这些记录本身就是决策数据只需要补充约束条件和结果反馈就能变成训练样本。第二用规则生成。对于约束条件明确、候选空间有限的场景可以用规则引擎批量生成决策样本。比如随机生成约束组合然后用规则引擎算出最优解作为训练标签。这种合成数据的质量取决于规则引擎的质量如果规则引擎本身靠谱合成数据就靠谱。第三让专家标注。对于规则引擎覆盖不了的复杂场景找领域专家做标注。标注的时候不要只标选哪个还要标为什么选这个和为什么不选其他这些信息对训练模型理解偏好很有帮助。第四用在线反馈做增量。模型上线之后收集用户的点击、选择、反馈数据用来做增量训练。这个步骤是持续进行的不是一次性的。实操心得数据集的规模不是越大越好关键是覆盖度。我见过一个方案训练数据有几十万条但全是简单场景上线之后遇到复杂场景就崩了。后来补了几千条复杂场景的数据效果提升比之前加几万条简单数据还明显。所以数据构造的时候要有意识地覆盖不同复杂度、不同约束组合、不同候选分布的场景。4.3 模型训练参数调优与收敛判断模型训练这块有几个参数比较关键。学习率、批次大小、排序损失函数的温度系数、硬约束和软约束的权重比例。学习率和批次大小是常规参数按经验设置就行。排序损失函数的温度系数控制的是模型对排序差异的敏感度。温度系数高模型对细微的排序差异更敏感适合候选质量差异小的场景温度系数低模型对排序差异不那么敏感适合候选质量差异大的场景。硬约束和软约束的权重比例这个参数比较特殊。硬约束的权重设得太高模型会变得保守只选那些绝对安全的方案可能错过一些更优但稍有风险的方案。硬约束的权重设得太低模型可能会选一些违反硬约束的方案导致决策不可行。一般建议硬约束的权重在 0.6 到 0.8 之间具体看场景的风险容忍度。收敛判断这块不要只看训练损失还要看验证集上的排序指标。我一般会同时监控三个指标NDCG归一化折损累计增益、MRR平均倒数排名、以及硬约束违反率。NDCG 和 MRR 看排序质量硬约束违反率看可行性。三个指标都稳定了才算收敛。4.4 上线部署延迟、并发与降级策略上线部署这块决策模型跟其他模型一样要关注延迟、并发和降级。延迟方面决策模型的延迟一般比对话模型低因为它的输出是排序列表不是长文本。但候选数量多的时候延迟也会上去。优化手段前面说过预筛选、缓存、蒸馏、批处理这几个组合起来用。并发方面决策模型往往是高频调用的比如推荐系统里每个请求都要调一次。所以并发能力要够。一般建议用异步推理加队列的方式避免请求堆积。降级策略这块决策模型比对话模型更需要。因为决策模型一旦挂了业务可能直接停摆。降级策略一般分几级一级降级是切换到备用模型二级降级是切换到规则引擎三级降级是返回默认方案。每级降级都要有明确的触发条件和恢复条件。注意降级策略要提前测试不能等真的挂了才试。我见过一些团队降级策略写是写了但从来没测过真到用的时候发现降级逻辑有 bug反而造成了更大的故障。4.5 效果评估离线指标与在线指标的结合效果评估这块离线指标和在线指标要结合看。离线指标看的是模型本身的排序质量在线指标看的是决策对业务的实际影响。离线指标一般用 NDCG、MRR、MAP平均精度均值这些排序指标再加上硬约束违反率、决策多样性这些辅助指标。在线指标一般用点击率、转化率、用户满意度、决策采纳率这些业务指标。离线指标好在线指标不一定好。因为离线评估用的是历史数据历史数据里的偏好分布可能跟当前不一样。所以离线指标只能作为参考最终还是要看在线指标。在线评估一般用 A/B 测试把流量分成实验组和对照组实验组用新模型对照组用旧模型或规则引擎跑一段时间看业务指标有没有显著提升。A/B 测试要注意样本量够不够、测试周期够不够长、有没有季节性因素干扰。5. 常见问题与排查技巧实录5.1 决策结果不稳定怎么办决策结果不稳定同样的输入这次选 A 下次选 B这是决策模型最常见的问题之一。原因一般有几个模型随机性太高、约束条件不明确、候选方案有并列。模型随机性太高一般是温度参数设得太高。决策模型的温度参数建议设低一点0.1 到 0.3 之间保证输出的确定性。如果业务允许一定的多样性可以适当调高但不要超过 0.5。约束条件不明确这个要从数据侧解决。检查一下训练数据里有没有约束模糊的样本有的话要么补充约束信息要么把这类样本剔除。候选方案有并列这个要靠 pairwise 校准来解决。如果两个候选的分数非常接近模型可能会随机选一个。可以在排序之后加一个 tie-breaker 规则比如按候选 ID 排序或者按某个稳定的特征排序。5.2 硬约束被违反怎么排查硬约束被违反说明模型的可行性检查没做到位。排查思路是这样的先看是训练数据里就有违反硬约束的样本还是模型推理的时候没检查。如果是训练数据的问题那要清洗数据把违反硬约束的样本去掉或者修正。如果是推理的问题那要检查可行性检查模块的逻辑看看是不是有边界情况没覆盖到。还有一种可能是硬约束的表示方式有问题。比如硬约束是预算不超过 30但模型理解成了预算接近 30 更好那就会选一些刚好 30 或者略超 30 的方案。这种情况要调整硬约束的编码方式明确告诉模型这是上限不是目标。5.3 排序质量不达预期怎么优化排序质量不达预期一般从几个方向优化。第一检查训练数据的质量看看有没有标注错误或者偏好不一致的样本。第二调整损失函数的温度系数看看是不是敏感度设得不对。第三增加候选的特征维度让模型有更多信息可以做判断。第四引入外部知识比如领域规则或者专家经验作为额外的排序因子。我自己的经验是排序质量的问题八成出在数据上两成出在模型上。所以遇到排序质量问题先查数据再查模型。5.4 推理延迟过高怎么降推理延迟过高按优先级排查候选数量是不是太多、模型是不是太大、有没有用缓存、批处理是不是没开。候选数量太多的话加预筛选规则把明显不可行的候选先过滤掉。模型太大的话做蒸馏或者量化。缓存没开的话把重复的候选和约束组合缓存起来。批处理没开的话把多个请求打包一起推理。还有一个容易被忽略的点是特征计算。候选的特征如果计算很慢也会拖累整体延迟。这种情况要把特征计算提前做好或者用预计算的特征。5.5 常见问题速查表问题现象可能原因排查方向解决手段决策结果不稳定温度参数过高、约束模糊、候选并列检查温度参数、检查约束表示、检查候选分数分布降低温度、补充约束信息、加 tie-breaker硬约束被违反训练数据脏、可行性检查缺失、约束编码歧义检查训练数据、检查可行性模块、检查约束编码清洗数据、补全检查逻辑、修正编码方式排序质量差数据标注错误、温度系数不当、特征不足检查标注一致性、调整温度系数、增加特征维度修正标注、调参、引入外部知识推理延迟高候选过多、模型过大、无缓存、无批处理检查候选数量、检查模型大小、检查缓存命中率预筛选、蒸馏量化、开缓存、开批处理在线效果差离线在线分布不一致、A/B 测试设计有问题对比离线在线数据分布、检查 A/B 测试配置重新构造训练数据、修正 A/B 测试实操心得排查问题的时候先看数据再看模型最后看工程。大部分问题出在数据上少部分出在模型上工程问题一般比较明显容易定位。6. 从这套方案延伸出的几个思考6.1 决策模型与 Agent 系统的结合决策模型跟 Agent 系统结合是个很自然的方向。Agent 系统需要做大量的决策——选哪个工具、走哪条路径、什么时候终止这些都可以用决策模型来优化。结合的方式一般有两种。一种是决策模型作为 Agent 的一个模块Agent 在需要决策的时候调用决策模型拿到排序结果之后继续执行。另一种是决策模型作为 Agent 的控制器Agent 的每一步动作都由决策模型来选。第一种方式比较轻量适合决策点不多的场景。第二种方式比较重但控制力更强适合决策点密集、对决策质量要求高的场景。6.2 决策模型的持续学习机制决策模型的持续学习比对话模型更重要因为决策的偏好分布会随时间变化。今天用户喜欢辣明天可能就喜欢清淡了。所以决策模型需要有一个持续学习的机制能够从在线反馈里不断更新。持续学习的实现方式一般是用在线反馈做增量训练定期更新模型。更新的频率取决于偏好变化的快慢快的话可以每天更新慢的话可以每周或每月更新。更新的时候要注意不要用全部新数据覆盖旧模型而是用新数据做微调保留旧模型的大部分能力。否则容易出现灾难性遗忘新偏好学会了旧偏好忘了。6.3 多目标决策的处理思路实际业务里的决策往往是多目标的。比如选餐厅既要考虑预算又要考虑口味还要考虑距离。这些目标之间可能有冲突预算低的可能距离远口味好的可能预算高。多目标决策的处理一般有两种思路。一种是把多个目标加权求和变成一个单目标然后用单目标决策模型来解。另一种是维护一个帕累托前沿把非支配解都保留下来让用户或者上层系统来做最终选择。第一种思路简单但权重的设定很关键权重设不好决策就会偏。第二种思路更合理但实现复杂度高而且帕累托前沿可能很大需要额外的筛选机制。这套模型对多目标决策的支持我推测是用的加权求和思路因为它的分数拆解机制天然支持多因子加权。但具体怎么设权重可能需要根据业务场景来定。6.4 决策模型的可信度与风险控制决策模型的可信度是落地的时候必须考虑的问题。因为决策一旦做错后果可能比对话模型说错话严重得多。风险控制的手段一般有几个。第一硬约束兜底保证决策的基本可行性。第二人工审核对于高风险决策模型给出建议之后由人工来最终确认。第三灰度发布新模型先在小流量上跑验证没问题再全量。第四回滚机制一旦发现决策质量下降能快速回滚到旧版本。这几个手段组合起来可以把决策风险控制在可接受的范围内。但要注意风险控制本身也有成本不能为了控制风险把决策效率拖得太低。平衡点在哪里要根据业务的风险容忍度来定。6.5 开源决策模型的生态影响Perplexity 把这套决策模型开源出来对整个生态的影响是积极的。一方面它降低了决策建模的门槛让更多团队可以基于这套方案做自己的决策系统。另一方面它提供了一个基准让后来的方案有了对比和参考的对象。开源决策模型的生态目前还处在早期阶段。对话模型的开源生态已经很成熟了有大量的基座模型、微调方案、评测基准。决策模型的开源生态还在建设中这套模型算是一个重要的里程碑。后续的发展方向我猜测会有几个。第一会出现更多针对特定场景的决策模型比如电商决策、调度决策、金融决策。第二会出现决策模型的评测基准和数据集让不同方案可以公平对比。第三会出现决策模型的工具链包括数据构造、训练、部署、监控的全流程工具。这个方向值得持续关注尤其是如果你在做跟决策相关的业务早点跟进这套方案可能会比同行快一步。7. 我个人的一些实操体会这套决策模型我前前后后研究了一段时间也试着在自己的场景里做了一些验证。有几个体会比较深。第一决策建模的核心不是模型是约束的表示。模型结构再复杂如果约束表示不清楚决策质量也上不去。反过来约束表示清楚了即使用简单的模型决策质量也不会太差。所以如果你要做决策模型先把约束的表示方式想清楚再考虑模型选型。第二硬约束和软约束的分离设计非常关键。我试过把硬约束和软约束混在一起处理结果模型经常为了满足软约束而违反硬约束决策的可行性很差。后来改成分离设计硬约束用结构化编码软约束用自然语言描述可行性问题就基本解决了。第三可解释性不是锦上添花是刚需。决策模型上线之后业务方一定会问为什么选这个如果你给不出合理的解释业务方就不敢用。所以可解释性要在设计阶段就考虑进去不能等上线了再补。第四持续学习机制要提前规划。决策偏好会变模型不更新就会过时。但持续学习不是简单地把新数据喂进去就行还要考虑灾难性遗忘、数据分布漂移、更新频率这些问题。这些都要提前规划不能等模型效果下降了再临时抱佛脚。第五风险控制要跟业务方一起定。决策模型的风险容忍度不是技术团队能单独决定的要跟业务方一起商量。哪些决策可以自动做哪些决策要人工审核哪些决策要留回滚余地这些都要业务方参与。最后再分享一个小技巧如果你刚开始做决策模型不要一上来就追求端到端的大模型方案。先用规则引擎加简单排序模型跑通流程验证业务价值然后再逐步替换成更复杂的模型。这样风险可控而且每一步的收益都能看清楚。我见过一些团队一上来就搞大模型结果调了几个月效果还不如规则引擎项目就黄了。决策模型这个东西务实比先进重要。