news 2026/6/21 0:23:21

订一张票讲透Transformer

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
订一张票讲透Transformer

网上有一堆讲Transformer、Attention、Encoder、Decoder的资料,你全程看完,但一个字没听懂,再去搜资料,发现,解释的比前面的资料还难懂。不是你笨,是这东西被讲复杂了。

老王剥开所有公式和黑话,Transformer 干的事其实就一件,把整句话摊平,让每个字看一遍其他所有字,然后一个字一个字猜出回答。

我经常拿订票助手这个场景给课程学员讲这些概念,接下来老王把 Transformer 从头到尾拆给你听。不讲公式,不背定义,只讲产品经理能用上的判断。

01
PART Transformer 到底在订票里干嘛

你打开订票助手,说一句,帮我看下周三下午上海到北京便宜点的高铁,5 点之后到的就行。两秒钟,屏幕上列了三趟车,出发时间、票价、余票全对得上。

中间没有一个工程师告诉它,下周三是日期、上海北京是城市、便宜是价格维度。这套听懂的本事,过去靠规则、关键词、槽位提取,用户说,帮我看南京到上海最早的早班车,还能填对,换个说法就懵。

Transformer 的做法完全不同。整句话进来不分谁是槽位、谁是修饰,全部摊到一个平面上,让每个字自己看一遍其他所有字,自己算出来跟谁关系最近。

把这一点搞清楚,产品经理就不用被那一堆架构图吓住。
Step 一输入是一串汉字,
Step 二模型把它变成它能算的东西,
Step 三算完之后一个字一个字往外蹦回答。剩下所有概念,都是这三步里的细节。

下次再翻到 Encoder、Decoder、Multi-Head、FFN 这些黑话,你心里要清楚它讲的是哪一步。讲 Token 化、讲词向量、讲位置编码,那是第二步在加工输入。讲注意力、讲多层堆叠,那是第二步的核心运算。讲 Softmax、讲温度参数、讲自回归,那是第三步在生成输出。架构图看着花,本质就是这三步。

02
PART Token,它眼里的最小单位

你的 AI 订票产品做完 Demo 老板很满意,上线第一个月账单来了,模型调用费直接干到六位数。不是产品设计有问题,是从来没人帮你算过 Token 这笔账。

大模型不认识汉字,只认识 Token。汉字进来第一步就被切成一段一段的小块,每一块换成一个数字编号,这个最小单位就是 Token。

中文里,一个汉字大约对应 1.5 到 2 个 Token,英文一个单词大约 1 个 Token。意思是,同样的 8K 上下文窗口,中文能塞的内容比英文少差不多一半。这一条,老王做选型表时是单列出来的硬指标,直接影响你给用户的对话能开多长。

Token 还决定了你的成本。订票助手如果给每个用户挂一个 2000 字的 system prompt,光这一项就是 3000 多 Token 起步。日活 100 万次调用,光 System Prompt 一天烧几万到十几万。

还有一个坑产品经理常掉。用户问西藏自治区林芝市米林机场附近的酒店,米林机场如果不是一个完整 Token,会被拆成奇怪的字节组合,后面的检索准确度直接掉一截。给冷门地名、专有名词、品牌名做兼容,得在产品上线前过一遍 Tokenizer。

做 AI 产品时一定要算这笔账,公式很简单:单次 Token 消耗 × 日均调用量 × 单价 = 月成本。这个数字不写进 PRD,十个 AI 项目死九个。

实际算账要注意三个坑。Step 一输入和输出 Token 价格不同,输出比输入贵 2 到 4 倍;Step 二多轮对话历史滚雪球,第十轮的输入是前九轮加起来的总和;Step 三RAG 拼上去输入暴涨,每次检索的文档全部塞进 Prompt。哪一个漏算,账单都会让你看不懂。

03
PART 字怎么变成它能算的东西

订票产品上线后排查问题,发现一个 case。用户问广州到深圳的早班车,模型给出了深圳到广州的车次。研发说不是 bug,是模型自己判断的方向。这事讲不通,广州深圳两个字也没颠倒,问题出在哪。

切完 Token 模型手里就是一串数字。可数字本身没意思,12834 和 12835 看着挨着,实际可能一个是帮我一个是猪肉,毫无关系。

模型下一步干的事,把每个 Token 变成一组坐标,丢进一个几百维的空间。这组坐标叫词向量。语义相近的 Token,坐标挨得近;意思八竿子打不着的,坐标隔得远。

主流模型词向量维度通常是 768、1536、4096 这种量级。维度越高,模型对语义的区分越细,但显存和计算开销也跟着涨。做选型时词向量维度要跟参数总量一起看,单看参数量没意义。

订票场景里,北京、上海、广州、深圳这些城市名,在那个空间里挤成一团;明天、下周三、晚上 5 点这些时间词,挤成另一团;便宜、贵、舒适这些属性词,又是另一团。

模型其实不需要懂北京是首都这种百科信息,它只要知道北京和上海挨得近、跟早上隔得远,就够干活。

但只有坐标还不够,顺序也得告诉它。Transformer 默认看到的是一堆 Token 的集合,不分先后。上海到北京和北京到上海,如果不额外标位置,模型分不出方向。

所以模型在每个 Token 的坐标上,再叠加一个位置标签,叫位置编码。第一个位置贴个 1 的标签,第二个位置贴个 2 的标签。这样北京在第三个位置和在第七个位置,虽然语义一样,加上位置标签之后向量就不一样了。

订票助手能分清楚出发地和目的地,靠的不是它读懂了从这个字,而是从、上海、出发、去、北京这串 Token 各自带着自己的位置标签一起进网络。

回到开头那个 case,方向被识别反,大概率是位置编码在这条 Query 上没起作用。这块产品里有几个坑要避。Step 一冷门词向量位置不准,米林机场这类低频词靠 RAG 补知识比换模型见效快;Step 二多语言混排向量空间不统一,中英文混搭要挑多语言对齐做得好的底座;Step 三位置编码有长度上限,超过训练最长位置标签就开始失真,长文档要么截断要么换长上下文模型。

04
PART

自注意力,它读句子的方式跟你不一样

你做的订票助手第一版上线,长句子稍微复杂一点就翻车。研发说模型对长句子里的关键修饰词识别不准,要换底座。换完之后同一类句子答得明明白白。差距全压在自注意力这套机制上。

到这一步,该讲整个 Transformer 最值钱的概念,自注意力。

回到具体场景。用户说,帮我看下周三下午上海到北京便宜点的、要 5 点之后到的高铁。模型怎么知道便宜点修饰的是高铁价格,不是修饰下周三的便宜程度;怎么知道 5 点之后到限定的是高铁的到站时间,中间隔了那么多字也没断。

人读句子是从左往右一个字一个字读的。模型读句子的方式跟你完全不一样,它让每个字同时看一遍其他所有字,算自己跟谁关系最近。

便宜这个字,会跟句子里每一个其他字都问一遍,你跟我有关系吗。问完发现跟高铁关系最近,跟下周三关系很远,于是它最终的语义里,高铁的成分被加得很重,下周三的成分几乎可以忽略。

这就是为什么 Transformer 能听懂模糊乱序的人话。Step 一5 点之后到跟高铁直接挂钩,中间隔再多字也不会断;Step 二便宜点修饰高铁不是下周三,模型自己能算出来;Step 三说话顺序颠倒也分得清,自注意力跟先后无关。

传统 NLP 在长距离依赖上一直没办法,靠的是 RNN 一步一步往后传,传几步信息就稀释了。Transformer 把整句话拍平,所有位置之间是平权的,再远的两个字也能直接挂上钩。

理解了自注意力,Transformer 的 90% 你就懂了。剩下那些多头、前馈、堆叠,都是把这一招重复用很多遍而已。

翻资料讲到自注意力,绕不开 Query、Key、Value 这三个词,第一次看肯定懵。其实不复杂。每个字进来都生成三份东西,一份是它想问的问题,叫 Query;一份是它告诉别人我是谁的标签,叫 Key;一份是它真正携带的信息,叫 Value。每个字拿自己的 Query 去对所有人的 Key,对得上的就把对方的 Value 拿一些过来。整个自注意力运算,就是几千个字同时在干这件事。

产品经理理解到这一层就够了。后面再碰到多头注意力这个词,意思就是同一句话同时按几十个角度看,有的角度关注时间、有的关注地点、有的关注修饰关系。看完之后把所有角度的结果拼起来。订票助手能在一句话里同时听懂时间、地点、价格、交通方式四个维度的诉求,就是多头注意力分头干活的结果。

自注意力这套机制的代价是算力。句子越长,每个字要跟全句对比的次数越多,计算量按平方增长。100 字的句子注意力算 1 万次对比,1000 字的句子就是 100 万次。老王做长文档场景的成本估算时,输入长度这项要单独拉一条平方曲线,不是按字数线性预算。

05
PART

多层堆叠 + 自回归,它怎么变聪明的怎么往外蹦字

你给订票助手挂了一个 system prompt,明明白白写着用户问便宜就给低价票。结果模型回出来的价格区间跟用户预算完全对不上。Prompt 改了三版没用,问题不在 prompt,是模型把便宜这个词对应到的价格分布跟你想的不一样。

自注意力这一招,模型不是只用一次,是堆叠了几十层反复用。GPT-3 是 96 层。用户那句话进来之后,要从第一层一路跑到第 96 层,每一层都跑一遍。

为什么要堆这么多层。浅层在识别词与词的直接搭配,比如上海跟到跟北京这种近距离结构;中层在拼意图,比如这是个跨城出行需求;深层在做更抽象的推理,比如用户没说但暗含的预算约束和时间约束。

订票助手能听懂便宜点这种模糊需求,不是因为代码里写了便宜对应几百块以下,是因为深层 Transformer 在训练时见过海量便宜对应的真实价格分布,自己学会了把模糊表达转成具体的价格区间偏好。换底座之后便宜的价格区间变了,就是因为新模型训练时见过的便宜分布跟老模型不一样。

跑完 96 层,模型干的最后一件事,叫自回归生成。

它不是一次性把回答整段吐出来,是一个字一个字往外蹦,每蹦一个字整个网络要重跑一遍。

订票助手回答,为您找到下周三下午的高铁,以下三趟车票价较低,这一句的每个字都是模型一个一个蹦出来的。它先吐为,再吐您,再吐找。每吐一个字,前面所有已经生成的字加上用户原始输入一起,变成下一次预测的输入,再跑一遍 96 层网络。

一句五十字的回答,模型要跑五十次完整推理。这就是为什么大模型回答慢、Token 越长越贵、streaming 体验好。Step 一Prompt 越长成本越高,每次推理输入都越长;Step 二输出越长延迟越高,每个字都是一次完整推理;Step 三Streaming 体验好,蹦一个字就显示一个字。

老王做 AI 产品时,延迟和成本这套链路是必须先在脑子里跑通的。跑不通,产品设计就只能跟着模型跑,自己拿不出方案。

06
PART

Temperature,一行参数决定产品形态

你的订票助手回答死板,研发说调一下 Temperature 就好;同公司的种草文案工具回答太乱,研发也说调 Temperature。同一个参数,两边方向相反,调多少合适没人说得清。

模型预测下一个字时,真正吐出的不是一个字,是一张概率表。词表里每个 Token 都对应一个概率值,加起来等于 1。

订票助手在生成为您找到这四个字之后,下一个字可能算出这样的概率分布:下周三 0.43、本周 0.08、明天 0.05、其它一堆。

怎么从这张概率表里挑字,有几种策略。Step 一贪心解码直接选最高,稳定但死板;Step 二Top-K 采样前 K 个候选里随机抽;Step 三Temperature 调节把分布拉平或拉尖,越高越发散。

Temperature 是一行参数,产品形态全靠它。

同一个模型,Temperature 设 0.2 和设 1.0,出来的是两类产品。订票助手要 0.2,稳定准确;小红书种草文案要 0.8,允许蹦出意外的词;起名字工具要 1.0,越发散越好用。

Temperature 是产品经理调参时的高频武器,老王做 PRD 时把它当成必填字段单独写一行默认值,不能丢给算法工程师拍脑袋。这一行参数填错,你的产品调性就是错的。

还有几个常见误用要注意。Step 一不是越低越好,调到 0 用户连问几次答案一样会觉得机械;Step 二不是越高越有创意,1.5 以上经常蹦狗屁不通的词,叫幻觉爆炸;Step 三不同场景用不同值,订票主流程 0.2,闲聊 0.5,旅行建议 0.7。一个数跑全部场景,做出来要么死板要么乱。

07
PART GPT 和 BERT 不是一回事

老板让你做一个客服意图分类模块,预算只够一个小模型。算法工程师问你,要 GPT 路线还是 BERT 路线。你听完一脸懵,不就是大模型吗,还有路线之分。

Transformer 刚被提出来是给机器翻译用的,完整结构包含编码器和解码器两部分。后来工业界发现可以拆开用,就出了 GPT 和 BERT 两条路线。

GPT 擅长接着说话,BERT 擅长读懂判断。

Step 一GPT 路线只用解码器,每个字只能看左边,擅长对话续写创作;Step 二BERT 路线只用编码器,每个字同时看左右,擅长分类抽取匹配;Step 三T5 路线编解码都用,擅长翻译摘要改写。

订票助手这类对话型产品,主路一定是 GPT 路线。如果系统里还嵌了一个用户意图分类模块,负责把用户输入快速归类成订票、查询、退改这几个意图,那个模块底层走 BERT 路线就够,没必要也调 GPT。

成本上 BERT 路线一般比 GPT 路线便宜一截,因为不需要一字一字蹦回答,跑一遍编码器就能拿到分类结果。意图分类、敏感词识别、相似问题召回这类纯判断任务,强行上 GPT 是浪费钱。

产品经理选用什么底层模型,先看任务性质,不是看哪个名字响亮。要生成内容选 GPT,要做理解判断选 BERT,要做翻译摘要选 T5。老王评估开源模型时,先看的就是任务路线和层数宽度的搭配,不是单看参数总量。

08
PART

从一句话到一张票,完整链路串一遍

最后把前面所有部件拼起来。

你说,帮我看下周三下午上海到北京便宜点的高铁。
Step 一切成 Token 再换成数字编号;
Step 二变成坐标点 叠加位置标签;
Step 三进入 96 层 Transformer 反复加工 每一层都跑一遍自注意力加前馈;
Step 四最后一层吐出概率表 按 Temperature 采样挑出第一个字;
Step 五自回归循环 一个字一个字往外蹦,直到模型自己输出结束符。

整句话生成完,订票助手的外围系统调用真实订票 API,根据模型理解到的出发地、目的地、时间、价格诉求,去数据库查符合条件的车次,把结果填回 UI 给你。

中间这一秒钟,Transformer 跑了多少次完整推理,取决于回答有多长。一句 50 字的回答跑 50 次推理,200 字就是 200 次,成本和延迟都按这个倍数往上加。这就是为什么所有 AI 产品的 PRD 里,回答长度都是要单独定义的硬约束,不是可有可无的运营细节。

Transformer 不是黑盒,是一台层次清晰、每一步都讲得明白的机器。它能做出的事,都来自上面这几步的组合。

学AI大模型的正确顺序,千万不要搞错了

🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!

有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!

就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋

📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇

学习路线:

✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经

以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!

我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 2:03:07

COMET框架:多尺度时序异常检测技术解析

1. COMET:多尺度时序异常检测框架解析在工业物联网和智能运维领域,时序异常检测扮演着关键角色。想象一下化工厂的反应釜温度传感器网络,某个传感器的突然飙升可能意味着设备故障,而多个传感器同步的微小偏移则可能预示更严重的系…

作者头像 李华
网站建设 2026/6/10 7:10:21

Gitee 与信创安全:国产代码托管平台的安全合规底座与现实路径

在信创(信息技术应用创新)从"可用"走向"好用"的深水区阶段,代码托管平台不再只是开发者的协作工具,而是承载企业核心知识产权、决定软件供应链安全边界的关键基础设施。当一个组织决定将源码仓库迁离境外平台…

作者头像 李华
网站建设 2026/6/9 2:00:42

湘美书院谈AI教育经验集锦:文科生的大语文能力研究探讨

湘美书院谈 AI 教育经验:文科生大语文能力的培育与思索 AI 时代下大语文能力的重要性再审视 在 AI 高度发达的时代,扎实掌握语文基本技能是个体安身立命的基石,更是驾驭技术、保持独立思考、实现人性光辉的关键。AI 虽能提供海量信息与高效工…

作者头像 李华
网站建设 2026/6/10 9:20:05

3步将PDF变成播客:Open NotebookLM让你的文档开口说话

3步将PDF变成播客:Open NotebookLM让你的文档开口说话 【免费下载链接】open-notebooklm Convert any PDF into a podcast episode! 项目地址: https://gitcode.com/gh_mirrors/op/open-notebooklm 还在为枯燥的技术文档或长篇论文而烦恼吗?想不想…

作者头像 李华
网站建设 2026/6/10 6:13:24

webrtc neteq介绍

NetEq 是 WebRTC 中负责**音频抖动缓冲(Jitter Buffer)和丢包隐藏(Packet Loss Concealment, PLC)**的核心模块。它的主要任务是接收乱序、有延迟或丢失的 RTP 音频包,并输出平滑、连续的 PCM 音频数据供播放。一&…

作者头像 李华