ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

大模型三层架构:输入层、输出处理层才是AI应用创新的主战场

大模型三层架构:输入层、输出处理层才是AI应用创新的主战场

1. 先跳出一层:为什么90%的人都在错误地理解大模型

先说个我自己的经历。早年做推荐系统,接触过各种"智能"模块,老觉得里面一定藏着什么高深莫测的核心。后来真正上手大模型相关的应用,把架构一层层拆开,才发现一个反直觉的事实:大模型真正的护城河,往往不在模型那个"大脑"里,而在你喂进去的东西和拿出来的东西怎么处理。

市面上隔三差五冒出来的AI新花样——AI绘图、AI写代码、AI做PPT、AI当客服、AI读财报、AI自己调用工具完成一个复杂任务——乍看像模型能力又进化了,但如果你把它们的实现拆到底,会发现绝大部分创新都发生在两个端口:「输入什么」和「输出怎么处理」。模型本体那块"千亿参数的大脑",反而像沉稳的发动机,几年都不怎么动过结构。

这就是我想给你拆解的大模型三层架构:输入层、模型内核层、输出处理层。理解了这三层,你再看任何AI产品、任何"新花样",都能一眼看穿它是靠哪一层做出差异化的,甚至能自己判断哪些功能只是换皮,哪些才是真的技术壁垒。这篇文章不聊太多数学公式,尽量用做工程的人能懂的方式,把这套三层架构掰开揉碎讲清楚。

适合谁来读呢?两类人。一类是刚接触大模型应用开发,看到网上铺天盖地的Prompt技巧、Agent框架、RAG方案觉得眼花缭乱,想找个框架理清头绪的;另一类是产品经理或技术决策者,需要判断一个AI功能到底是真有用还是花架子。这套三层视角能在五分钟内帮你定位问题出在哪一层。

2. 第一层:输入层——你给模型的东西,决定了它的上限

2.1 提示词只是输入层的最浅一层

很多教程都在教"如何写更好的提示词",但提示词只是输入层最表面的一部分。输入层的完整使命是把人类意图转化成模型能理解的token序列,同时尽可能多地携带有用信息。这个转化过程里的每一步,都是博弈。

所谓token,你可以理解为模型处理文本的最小碎片。一个中文词可能被切成一到两个token,模型看不懂"字",只看得懂token。输入层就是负责把文字、图片、声音、甚至文件内容,统统编码成token,按特定顺序拼装起来。这个过程叫做上下文组装。

大多数人只关注"我在对话框里写了什么",但专业的AI应用,往往会在你按下回车之前,往输入里塞进很多你看不见的东西:系统设定、历史对话记录、检索到的背景资料、外部工具返回的结果、甚至对用户情绪的推测。这些东西全部拼在一起,才是真正的"输入"。

我自己做过一个客服类的Demo,用户只是问一句"你们这个套餐能退吗",背后的输入层实际上拼装了一段:系统角色设定为"售后政策专家,语气温和但有原则",再插入刚才查到的三条退费政策条款,最后才是用户那句原话。你看,真正进入模型的"输入",和你以为的输入完全不是一回事。

2.2 上下文窗口、多模态与工具调用前的"输入包装"

输入层的三个核心技术点,分别是上下文窗口管理、多模态编码、以及工具调用时的输入包装。

上下文窗口决定了模型一次能"看"多少token,通常几千到几万不等。窗口越大,能塞进去的资料越多,但成本也越高,响应也越慢。于是有人发明了各种压缩手段:把历史对话摘要化、检索出最相关的片段而不是全部塞入、用外部向量数据库做召回。这些都是输入层的创新,模型本身一个字没改,效果却能天差地别。

多模态编码是另一个输入层重头戏。模型本身只懂token,但图片怎么变成token?通常用视觉编码器把图片切成一块块patch,再映射成token序列;声音也是先转成声学特征,再映射成token。这一步发生在输入层。早期版本不行,就是视觉编码映射做得不够好,后来升级了编码器,模型参数没大动,能力却肉眼可见地提升了。这更印证了标题那句话,很多"新花样"确实只是"输入什么"的改进。

工具调用时的输入包装更值得展开。当大模型需要调用一个搜索引擎或执行一段代码时,输入层要做的事情非常复杂。一方面要把用户需求转换成"调用工具的参数格式",比如从"北京今天冷吗"中提取出城市=北京、任务=查天气;另一方面要预留一个"工具结果回填区",让模型在第二轮推理时能看到工具返回的数据,然后继续生成最终答案。这套机制本质上是输入层的编排工程,甚至有人专门为它发明了"Agent"这个词,听起来玄,其实还是在解决"怎么把信息正确喂给模型"。

2.3 输入层被忽视的真实成本

我见过太多团队,把大模型的成本控制当成纯工程优化问题,其实没有意识到:大模型的绝大多数成本,都是输入层的token成本。

每调用一次API,输入token和输出token都按量计费。你以为简简单单一次对话很便宜,但如果每次对话都把5万字的历史记录塞进去,成本瞬间翻几十倍。更可怕的是输入层一旦设计得不好,会出现"无效信息挤占窗口"的现象。比如FAQ里大量重复的内容被同时塞进去,模型不仅看不完,还会被噪声干扰,产生幻觉。所以专业的输入层设计者,会把注意力花在"什么东西值得进入上下文"上。我的经验是:跟当前问题不相关的信息,宁可截断也不要塞。宁可让模型说"我不知道",也好过提供一个过时的答案。

这时你会发现,很多AI产品的核心竞争力,落在"怎么筛选信息"上。同一款模型,A产品能精准回答,B产品胡言乱语,差别往往不在模型,而在输入层的检索和组装策略。理解这一点,你就不会再把"大模型不聪明"挂在嘴上了。

3. 第二层:模型内核——不动的好东西,动了反而坏事

3.1 参数、注意力与"固化的千亿大脑"

模型内核层,就是那个被反复训练的、拥有成百上千亿参数的网络。从宏观角度看,它做的事情只有一件:根据输入token序列,预测下一个token的概率分布。这个过程在推理时几乎谈不上"思考",不过是在做极其复杂的高维矩阵计算。

很多人问我,模型内核里到底发生了啥?我用一句话总结:它把输入序列的每个token加权融合,让每个位置都能"注意到"序列中的重要片段,然后根据这些注意力的加权结果,预测下一个最可能的token。注意力机制是关键,模型的大部分能力,比如理解指代、进行逻辑衔接,都依赖注意力权重。然而这套东西在你使用的时候是固定不变的——已经训练好的参数就放在那里,你做任何输入输出,最终的数学模型都只是前向传播,不会因为你的问题而调整内部权重。

这带来一个很多非技术人士不理解的点:模型内核更像一个固化的知识库和推理近似器,而不是一个随对话动态更新的活体大脑。它不会记住你上次说过什么,除非输入层把上次对话拼接进来;它不会突然学到新知识,除非微调更新权重,而这不是在普通交互过程中发生的。

3.2 为什么说内核层几乎不动

观察近几年大模型的发展,你会发现一个现象:模型架构层面的创新,远比输入输出层的创新少。主流模型依然沿用了Transformer结构,核心训练目标依然是最小化预测误差。各家真正的区别,主要在于规模、数据、训练策略,这些动辄以"千卡月"计算的东西,和普通使用者几乎无关。

对于做应用的开发者来说,内核层几乎等同于一个商业黑盒。你用API调用模型,不会看到中间层,也不会修改它的权重。如果想要一个更专业的模型,常见做法是微调——但这依然发生在训练阶段,需要准备数据集,之后模型就被"冻结"了。所以我说,如果你想在一款AI应用上做出差异化,不要把精力花在改内核上,因为你根本动不了它。这就像你买了一台高性能发动机,你能做的是怎么给油、怎么挂挡,而不是拆开发动机改燃烧室。

当然,也有例外。有些开源模型允许你修改注意力机制或注入额外的模块,但这类研究性质的工作,投入产出比极低,不适合绝大多数商业应用场景。在内核层投入,往往是"各家大厂烧钱卷参数"的战场,不是小团队的创新空间。

3.3 推理时计算与思维链:内核层的唯一变数

真正会动的内核层变数,是推理时计算。同一个模型,你可以让它直接回答,也可以让它先"想几步再回答",这两种情况下生成的token路径完全不同。

有一种方法叫思维链,其做法简单说就是:不止让模型输出最终答案,还要让它把思考过程一步步写出来。这一步从模型内核来看,不过是被迫生成了更多中间token,从而有更多的计算机会去优化注意力分配,结果就是复杂问题的准确率大幅提升。你并没有换模型,只是在推理时给了它"多算几步"的机会,这是一个输出策略问题,但确实作用于内核层的前向传播过程。

另一个变数是"推理时扩展计算量",比如让模型对同一个问题生成多个候选答案,再让另一个模型或同一个模型自我评估打分,选出最优答案。这种方法叫做Best-of-N或自一致性采样,本质上是把计算量花在"多试几次、多比几次"上。内核层的权重没有变,但使用方式变了,效果也能提升一个档次。

所以你可以把内核层理解为一块高配的显卡,它能做出多惊艳的画面,取决于你怎么"调参"和怎么让它多算几轮。但显卡本身,并不是随便能换的。

4. 第三层:输出处理层——所有新花样的真正主战场

4.1 从文本生成到可执行动作的结构化输出

输入层解决"喂什么"的问题,内核层负责"算出来",那第三层输出处理层负责什么呢?一句话:把模型的原始token流,变成人类能用、机器可跑的东西。

绝大多数人第一次接触输出层,是看到模型返回了一段JSON,或者一个Markdown格式的回答。你以为这只是格式化,其实背后隐藏着一大堆逻辑。模型的原始输出是token概率,任何一个采样点都有可能生成无关的字符。为了让输出符合预设结构,输出层要做的事情包括:约束解码、格式校验、重试机制、以及与外部系统的动作绑定。

举个我自己做过的例子。我希望大模型能从用户一句话里抽出"出发城市、到达城市、日期",并转成一个订票接口的请求。如果直接让模型自由发挥,它可能给出各种格式。于是输出层先配置了一个JSON Schema约束,要求模型输出的key必须是from_city、to_city、date,value必须是非空字符串。然后还做了二次校验:解析结果,如果日期格式不对,自动让模型重新生成一次。这就是输出处理层在做的事。看上去很不起眼,但所有能"落地执行"的AI功能,都依赖这一层。

更进一步,输出层还能决定"模型生成的东西要不要以工具动作的形式执行"。比如模型输出了一段调用天气API的伪代码,输出层负责解析这段伪代码,实际调用API,然后把结果再塞回输入层形成循环。你看到的Agent自动完成订票、查天气、发邮件,就是依靠输出层的解析+执行+回填机制。这套循环和内核层一点关系都没有,完全属于工程上的新花样。

4.2 解码策略:温度、Top-p 与"随机说谎"

输出处理的另一个核心是解码策略,即决定模型在预测下一个token时怎么从概率分布里"选一个"出来。这直接影响输出的多样性、创造性和稳定性。

默认情况下,模型会选概率最高的token,这叫贪心解码。但这样容易导致输出无聊,甚至陷入重复。于是有了温度参数temperature:温度越高,概率分布越平缓,低概率token被选中的机会变大,输出变得更多样;温度越低,越倾向高概率token,输出更保守、更可预测。还有Top-p采样:从概率最高的token开始累加,直到累计概率达到一个阈值p,只在候选集中随机选择,而不是完全按概率分布来。这些调整都发生在输出层,模型内核的计算完全没变。

但这里有个很多人踩过的坑:调高温度确实会增加创造性,但也会增加"随机说谎"的概率。大模型本来就会编造信息,温度一高,编得更离谱。所以在做事实性问答、代码生成、数据抽取这类任务时,我会把温度调得非常低,甚至直接关掉采样,采用贪心解码。而在写文案、做创意头脑风暴时,再提高温度并搭配多次采样,挑一个最顺眼的。这些都是输出层的决策,和"模型聪明不聪明"无关。

4.3 模型路由、后处理与多模型协同

再延伸一点,输出处理层还经常承担路由的任务。市面上那么多模型,各有擅长,输出层可以判断当前任务适合用哪个模型。比如简单分类走便宜快的小模型,复杂推理走强性能的大模型,这一步叫模型路由。本质上还是围着"输出怎么处理"做文章。

多模型协同也很有意思。让一个模型生成初稿,另一个模型挑毛病,再让一个模型汇总修改。举一个实战场景:用模型A写一段营销文案,输出层把文案交给模型B,让模型B从措辞吸引力角度打分并给出修改建议,然后输出层把原稿和建议一道交给模型C,让它综合成最终版本。三个模型各自的参数都没有调整,只是输出层做了巧妙的串联,效果就远超单模型的输出。

后处理同样不简单。生成内容里的敏感词过滤、格式规范化、去重、引用标注、合规审核,这些环节全都集合在输出处理层。你以为大模型直接输出了"正确答案",实际上答案在给你看之前,已经过了好几道质检。这种"模型+后置规则"的做法,也是工业级AI应用的必修课。

5. 用三层视角审一遍市面上的AI玩法,立刻看出门道

5.1 所有AI新花样都可归类

一旦你习惯用三层架构看问题,再看任何AI功能,都会本能地去判断:它改了输入层,还是改了输出层,还是两个都改了?

举几个例子。

AI绘画类工具,本质上是输入层把文字转成一个"图文混合表征",再经过一个类似的扩散模型内核,输出层再用解码器把表征还原成图片。它的每一次进化,要么是输入编码更强了(理解更复杂的提示词),要么是输出解码器更精细了(生成更高分辨率的图)。

AI代码补全,输入层会读取你当前文件上下文、光标位置附近的代码,甚至仓库里的其他文件,输出层则会根据语法约束生成补全候选。如果你深入研究,会发现越来越多的成本花在"如何把整个项目的上下文高效塞进输入层",而不是重新训练一个代码模型。

AI智能客服,大部分的差异化集中在输入层的知识库检索和输出层的多轮对话状态管理上。用户感知到"这个客服很懂我",往往不是因为模型内核多聪明,而是输入层把用户历史、订单状态、商品详情都组装进了上下文,输出层再按话术模板规范了语气。

你可以打开任何一个AI产品的宣传页,但凡吹"行业领先的智能",都可以问一句:这是改了什么层达到的?大概率不是改了内核,而是改了输入输出。

5.2 怎么用这套框架判断一个AI产品值不值得用

在选型的时候,我用三层法判断产品的可替代性。如果一款产品只是把公开的模型API包了一层,输入输出处理都很同质化,那它本质上没有壁垒,换一个API照样做。但如果它在输入层有独特的数据接入能力,比如能理解你公司内部几十种表格格式,或者在输出层有严格的动作执行链路,比如能安全地操作ERP系统,那这个产品就值得投入。

举个例子,两个AI财报分析产品都用同一个底层模型。A产品只允许你上传一份PDF财报,然后给出长篇分析;B产品会在输入层自动拆分财报中的表格、脚注、管理层讨论,还从过往财报里检索可比数据,在输出层强制要求结论给出对应的页码引用。显然后者的实用性强得多。不是说B的模型更聪明,而是B在输入和输出处理上做得细致。

所以我的经验是:评估AI能力不要只跑几个测试用例,要去看它对输入数据的处理能力和对输出内容的约束能力。这些才是大部分时候决定体验的关键。

5.3 常见误区:把输出处理当成模型能力

最后说一个最常见的认知偏差。很多人跟AI对话,发现回答结构严谨、逻辑清晰,就觉得"模型真聪明"。但你要留心,这个结构的严谨,可能是输出层用模板强制塑造的。比如一些AI写作工具经常输出"首先、其次、最后"的排比段落,其实是提示词和后处理里加了指令,而不是模型自发想出来的。

反过来,如果某次回答格式混乱、内容空洞,也不一定是模型变笨了,可能是输入层的上下文信息不够,或者输出层的解码温度设得太高。我遇到过很多次"为什么模型今天答题质量这么差"的疑惑,最后排查下来,要么是某次任务类型忘了切换低温度,要么是在输入层多了一段冲突的指令。很少有情况是模型本身突然退化了。

把输出处理误认为是模型能力,容易让你在生产环境里做出错误判断。我建议团队里每个用大模型的人都建立三层归因的习惯:效果不好,先问是输入信息不足,还是输出约束不够,最后才怀疑内核问题。这套归因方法至少能省下80%的排查时间。

6. 我拆完这套架构后的两个实际建议

啰嗦了这么多,最后想分享两个我自己在实战中沉淀的建议,纯经验,不算总结,就当是收尾的闲谈。

第一个建议,永远把输入层当作第一工程对象。很多人开发AI应用,上来就调Prompt、调模型参数,却忽略了一个最基础的问题:"模型需要的信息是否都在输入里?"我的习惯是先画一遍信息流:用户可能说哪些话、需要哪些背景、系统里有哪些数据可用——然后把这些信息想尽办法结构化了塞进输入。凡是信息到了位,Prompt简单一点,输出效果也不会差。信息不够,再花哨的Prompt都是空中楼阁。

第二个建议,输出层要多花心思做结构化和校验。与其期待模型每次都能完美生成,不如从心底里认定"模型一定会出错"。输出层应该有一整套兜底机制:用正则或Schema约束格式、用重试机制应对非必要错误、用后置规则处理内容的准确性、用兜底话术应对模型输出空内容。你把模型当成一个能力很强但偶尔会掉链子的实习生,把所有环节都加上检查与重做,生产系统才可能稳定。

这套三层架构,是我自己一边做项目一边画出来的认知地图。每次遇到新出的AI功能,我都会下意识地把它搁到某一个层里看一遍,思路立刻清晰。希望你看完也能建立自己的"层感":下次再看到"AI新花样",别忙着惊叹“模型又进化了”,先问一句——它到底是赢在输入什么,还是赢在输出怎么处理?大概率你会得到比大多数评论更清醒的答案。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进