首页/新闻资讯/正文详情

Transformer 到 GPT:自注意力如何取代循环,2017 到 2020 到底解决了什么

发布时间:2026/11/5 1:55:41 来源:云帆数科 栏目:资讯中心
Transformer 到 GPT:自注意力如何取代循环,2017 到 2020 到底解决了什么
Hi我擅长AI 大模型应用落地、意识解码与 AI 开发工具链。 创业路上用技术换时间一起把 AI 变成生产力 Transformer 到 GPT自注意力如何取代循环2017 到 2020 到底解决了什么AI 编年史 · 第 05 篇- 模块二【方法演进】· 自注意力 · 复杂度对比 · 三次关键选择 · 可运行代码骨架 专栏信息《AI 编年史一条能查到底的时间线》专栏专栏定位面向技术读者与自学者用 158 条带原始来源的条目把 AI 从 1912 年到 2026 年的关键转折讲清楚本系列共 10 篇分为四大模块 模块一【源头考据】(3 篇)年代盘点、起源1912/1936、感知机之争 模块二【方法演进】(3 篇)反向传播到 AlexNet、Transformer 到 GPT、人机博弈️ 模块三【工程实践】(1 篇)五席评审管线与八步门禁 模块四【读者工具】(3 篇)学习路线、面试 20 问、教学素材本文是模块二第 2 篇也是全系列技术密度最高的一篇。它会给出可运行的代码骨架、复杂度对比表以及三条最常见的误解。‍ 作者与项目作者简介翁勇刚 WENG YONGGANGAI 编年史aihist维护者新概念龙虾-WeClaw 开发团队负责人理念“再早的历史也能查到它的源头” 站点地址https://aihist.net 作者 CSDNhttps://blog.csdn.net/yweng18 收录标准JSONhttps://aihist.net/api/v1/standard 同作者技术专栏WeClaw 实战指南CSDN 专栏 发现错误每个条目页页脚有纠错入口 摘要本文结构概览先定位问题——循环结构RNN/LSTM有两个硬伤无法并行、长依赖衰减再讲自注意力如何用每个位置直接看所有位置绕开这两个硬伤并给出公式、代码与复杂度对比然后梳理从 Transformer2017到 GPT-32020之间的三次关键选择decoder-only、生成式预训练、规模与上下文学习接着辟三个常见误解注意力不是 Transformer 发明的、注意力权重不等于解释、模型不懂顺序除非你告诉它最后给一份工程清单位置编码、pre-LN、KV Cache、训练稳定性。背景2017 年 6 月的《Attention Is All You Need》是这个领域被引用最多的论文之一但知道它很重要和知道它解决了什么是两件事。这篇补的是后者。核心问题自注意力到底替换掉了什么为什么这个替换让大模型成为可能解决方案把替换拆成两个正交的收益并行度训练吞吐与路径长度信息传递距离。前者决定能不能规模化训练后者决定能不能学长依赖。两者都指向同一件事规模变得可行。关键成果按生产库条目实测2013 年 word2vec 把词映射到稠密向量空间成为此后 NLP 预训练的标准输入表示2014 年 seq2seq 用两个循环网络完成变长到变长的映射是翻译与对话的架构基础2017 年 Transformer 完全以自注意力替代循环结构实现高度并行训练2018 年 GPT-1 验证生成式预训练 下游微调路线同年 BERT 用双向预训练刷新多项基准2019 年 GPT-2 15 亿参数分阶段开放引发安全争论2020 年 GPT-3 1750 亿参数展示少样本上下文学习提示词成为主要交互方式适合读者有 PyTorch 基础的工程师、准备大模型相关面试的人、想读懂论文原文的读者阅读时长约 22 分钟关键词Transformer、自注意力、GPT、BERT、KV Cache、上下文学习一、先说结论自注意力替换掉的是循环它换来的有两条而且两条都指向规模化并行度RNN 必须按时间步串行计算第 t 步依赖第 t-1 步自注意力把整个序列一次性做矩阵乘训练可以完全并行。路径长度RNN 里第 1 个词到第 1000 个词要走 999 步自注意力里它们只隔一层。信息传递距离从 O(T) 降到 O(1)。一句话RNN 的问题是训不快、记不远自注意力同时解决了这两个问题代价是 O(T²) 的计算量。而这个代价恰好可以被 GPU 的并行能力和后来的工程优化吸收——所以它赢了。二、问题循环结构的两个硬伤在 2017 年之前序列建模的主流是 RNN 与 LSTM。LSTM1997用门控机制缓解了梯度消失成为近二十年的主力结构。但它有两个绕不过去的问题。硬伤一串行h1 f(x1, h0) h2 f(x2, h1) h3 f(x3, h2) ... hT f(xT, hT-1)第 t 步必须等第 t-1 步算完。这意味着一个长度为 T 的序列训练时至少要 T 个串行步骤。GPU 有几千个核但在这里只能用上一小部分——因为没东西可并行。硬伤二长依赖衰减信息从第 1 个位置传到第 T 个位置要经过 T-1 次变换。即使有门控梯度在长链路上仍然会衰减或爆炸。LSTM 缓解了这个问题但没有消除它。这两条合起来就是RNN 训不快、也记不远。三、自注意力怎么工作3.1 一句话版本每个位置都生成三个向量——Query我要找什么、Key我提供什么、Value我实际带的信息然后用我的 Query 去和所有位置的 Key 做点积得到一组权重再用这组权重加权求和所有位置的 Value。用生活化的比喻这是一次全场广播 各自选择。每个人喊出自己能提供什么Key每个人也问出自己想要什么Query匹配度高的就多听一点最后按匹配度把听到的内容加权汇总Value。3.2 公式Attention(Q, K, V) softmax(QKᵀ / √d_k) · V三个细节值得说清为什么除以 √d_k点积的方差随维度线性增长维度大时 softmax 会饱和成 one-hot梯度消失。除以 √d_k 是把方差拉回 1。为什么多头单头只能学一种关注模式。多头把 d_model 切成 h 份每份独立做注意力等于让模型同时学 h 种不同的关联语法、指代、位置……。为什么加残差与 LayerNorm和 ResNet2015同一个理由——让梯度有直通路。3.3 位置从哪来位置编码自注意力本身不知道顺序所以位置必须被编码进去。最常见的两种做法做法一正弦位置编码原论文用法PE(pos, 2i) sin(pos / 10000^(2i/d)) PE(pos, 2i1) cos(pos / 10000^(2i/d))用不同频率的正弦、余弦函数组合每个位置得到一个唯一的向量。它的好处是任意两个位置的编码之间存在只依赖距离的线性关系模型可以据此外推。做法二RoPE旋转位置编码不把位置加到词向量上而是把位置信息编进 Q、K 的旋转角。这样两两做点积时结果只依赖相对距离而不是绝对位置。这是目前长上下文模型的主流选择。两者的差别不在有没有位置而在位置是加进去的还是转进去的。后者在长度外推上更自然也更符合我们真正关心的是相对关系这个直觉。3.4 代码骨架以下是最小可运行的实现PyTorch含因果掩码可以直接跑importmathimporttorchimporttorch.nnasnnimporttorch.nn.functionalasFclassSelfAttention(nn.Module):多头自注意力。causalTrue 时用于 decoder-only 语言模型。def__init__(self,d_model:int,n_heads:int,dropout:float0.0):super().__init__()assertd_model%n_heads0,d_model 必须能被 n_heads 整除self.n_headsn_heads self.d_headd_model//n_heads# 一次投影出 Q、K、V比三个 Linear 少一次 kernel launchself.qkvnn.Linear(d_model,3*d_model,biasFalse)self.outnn.Linear(d_model,d_model,biasFalse)self.dropnn.Dropout(dropout)defforward(self,x:torch.Tensor,causal:boolTrue)-torch.Tensor:B,T,Cx.shape q,k,vself.qkv(x).chunk(3,dim-1)# 各 (B, T, C)# (B, T, C) - (B, H, T, Dh)q,k,v[t.view(B,T,self.n_heads,self.d_head).transpose(1,2)fortin(q,k,v)]scoresq k.transpose(-2,-1)/math.sqrt(self.d_head)# (B, H, T, T)ifcausal:# 上三角为 True屏蔽掉看未来masktorch.ones(T,T,dtypetorch.bool,devicex.device).triu(1)scoresscores.masked_fill(mask,float(-inf))attnF.softmax(scores,dim-1)attnself.drop(attn)yattn v# (B, H, T, Dh)yy.transpose(1,2).contiguous().view(B,T,C)returnself.out(y)classBlock(nn.Module):Transformer blockpre-LN 残差 FFN。def__init__(self,d_model:int,n_heads:int,mlp_ratio:int4,dropout:float0.0):super().__init__()self.ln1nn.LayerNorm(d_model)self.attnSelfAttention(d_model,n_heads,dropout)self.ln2nn.LayerNorm(d_model)self.mlpnn.Sequential(nn.Linear(d_model,mlp_ratio*d_model),nn.GELU(),nn.Linear(mlp_ratio*d_model,d_model),nn.Dropout(dropout),)defforward(self,x:torch.Tensor)-torch.Tensor:xxself.attn(self.ln1(x))# 先 norm 再进子层pre-LN 更稳xxself.mlp(self.ln2(x))returnxif__name____main__:torch.manual_seed(0)xtorch.randn(2,8,64)# batch2, seq8, d_model64blockBlock(d_model64,n_heads4)yblock(x)print(y.shape)# torch.Size([2, 8, 64])# 因果性自检改动最后一个 token前面位置的输出不应变化x2x.clone()x2[:,-1,:]1.0y2block(x2)print(前缀一致:,torch.allclose(y[:,:-1],y2[:,:-1],atol1e-5))最后那个自检很值得留因果掩码写错是新手最常见的 bug它不会报错只会让模型偷看答案——训练 loss 好看推理崩。3.5 复杂度对比结构每层计算量最长路径能否并行训练RNN / LSTMO(T · d²)O(T)否按时间步串行自注意力O(T² · d)O(1)是整段矩阵乘卷积固定核O(k · T · d²)O(T / k)是这张表解释了一切T 小的时候比如 512O(T²·d) 远小于 O(T·d²)注意力更便宜T 很大时比如 100 万O(T²·d) 爆炸这就是为什么后来出现各种稀疏注意力、线性注意力、以及长上下文优化2026 年 GLM-5.2 用 IndexShare 等机制降低长上下文注意力开销就是这一类工作。算一笔具体的账T512、d768注意力分数矩阵是 512×512。看起来很小但要乘以头数——8 头就是 8 张 512×512 的矩阵逐层累加。T 翻到 8192每张矩阵大 256 倍显存立刻吃紧。这也是为什么长上下文从来不只是把 T 改大它要同时解决算力、显存、以及位置外推三件事。四、从 Transformer 到 GPT三次关键选择Transformer 只是一个结构。真正把它变成大模型的是三次选择每次都在放弃一些东西。4.1 第一次选择只用 decoder原始 Transformer 是编码器—解码器结构为翻译设计编码器读源语言解码器生成目标语言。GPT 路线只保留 decoder任务是预测下一个 token输入今天 天气 真 目标 天气 真 好这个选择的代价失去了双向看完整句子的能力BERT 走的是另一条路。收益一个目标函数就够用且天然支持生成。把三条路线摆在一起看取舍就很清楚结构代表看的方向擅长不擅长encoder–decoder原版 Transformer、T5编码看全句解码看左半翻译、摘要这类输入到输出的转换单向开放式生成不是它的主场encoder-onlyBERT双向看全句分类、抽取、相似度不能直接生成decoder-onlyGPT 系列只看左边生成、上下文学习、统一成一个目标函数对全局结构的建模靠层数堆2026 年回看decoder-only 赢的原因不是它在单项上最强而是它只需要一个目标函数。一个目标函数意味着所有任务都能改写成给定前文预测下一个 token于是数据、训练、推理三套工程只需要做一遍。工程上的统一最后压过了结构上的精致。4.2 第二次选择预训练 微调2018 年 GPT-1 验证了生成式预训练 下游微调——先用海量无标注文本预训练再在具体任务上微调。这个范式的价值是标注成本被摊薄了。一个预训练模型可以服务几十个下游任务。4.3 第三次选择规模本身就是方法2020 年 GPT-3 发布1750 亿参数展示少样本上下文学习。这次选择最激进不微调只在提示里给几个例子。把下面的中文翻译成英文 苹果 - apple 香蕉 - banana 西瓜 -模型没有为这个任务训练过但它在上下文里学会了任务形式。这一步之后“提示词成为与大模型交互的主要方式也把产品形态从API 微调改成了对话框”。补一条后来的修正2022 年 Chinchilla 缩放定律指出在固定算力下参数量与训练数据量应同比例扩展纠正了此前越大越好的参数扩张倾向。它是这条路线的一次自我校准——规模有效但要按配比来。五、三条常见误解误解一注意力机制是 Transformer 发明的不是。在 seq2seq2014里注意力已经被用来解决编码器把整句压成一个向量的瓶颈——解码时动态地看编码器的不同位置。Transformer 的贡献是把注意力变成唯一的结构去掉了循环。误解二注意力权重高就代表那个词重要不完全。注意力权重是信息路由的概率分布它表示这一层、这个头、这个位置拿了多少信息不等于这个输入对最终输出贡献大。多头之间存在冗余后面的层还会重新组合而且 LayerNorm 与残差会把信号混合。要把注意力当解释至少需要跨层、跨头、跨样本的统计单看一张热力图不够。误解三模型天然理解顺序不是。自注意力对输入是置换等变的——打乱顺序输出跟着打乱模型本身察觉不到谁在前。所以必须显式注入位置信息位置编码、RoPE 等。这也解释了一个常见困惑为什么位置编码方式会影响长上下文表现。六、工程清单如果要自己训或微调这五条最容易踩位置编码要跟长度匹配。训练长度 2K、推理长度 32K位置编码不扩展就会崩。pre-LN 比 post-LN 稳。post-LN 在深层时梯度容易爆需要 warmuppre-LN 对 warmup 不敏感。KV Cache 是推理的必需品。自回归生成时历史 token 的 K、V 不会变缓存起来可把每步复杂度从 O(T²) 降到 O(T)。因果掩码要写自检。就是第 3.4 节最后那段断言五秒钟能省两天。数值稳定性softmax 前减最大值、混合精度要注意 LayerNorm 用 fp32——这些都是训崩过才会记住的细节。6.1 KV Cache 到底省了什么又贵在哪先说它省什么。自回归生成是逐个 token 出的第 t 步需要前 t 个 token 的 K、V。而这些 K、V 在之前每一步已经算过了不缓存就得重算。做法第 t 步的计算量说明不缓存重算前 t 个位置每步 O(t²·d)总 O(T³)缓存只算新 token 的 K、V每步 O(t·d)总 O(T²)再说它贵在哪。缓存要把每层、每个 token 的 K 和 V 都存在显存里显存 2K 和 V × T × d_model × 层数 × 字节数代入一组真实量级的数T 8192、d_model 4096、32 层、fp162 字节2 × 8192 × 4096 × 32 × 2 ≈ 4.3 GB4 GB 只为一个请求的上下文。并发十个就是 43 GB。这就是长上下文很贵的直接原因——不是算不动是存不下。6.2 顺手算一下注意力有多少参数一个不带 bias 的多头注意力参数来自两处qkv 投影d × 3d 3d² 输出投影d × d d² 合计4d²d 4096 时单层约 6700 万参数32 层光注意力就约 21 亿。再加上 FFN通常 4d² 量级就能理解为什么千亿参数模型里大部分参数在 FFN 而不在注意力。这个账算一遍你对参数量的直觉会准很多。6.3 训练不稳定的三种表现以及各自的判断信号这一节不是理论是排查手册。训大模型时最先崩的往往不是架构是数值。表现典型信号常见原因先改哪个loss 突然尖峰后又回落第 N 步 loss 从 2.x 跳到 8.x几十步内恢复个别 batch 梯度过大梯度裁剪按范数裁到 1.0loss 直接变成 NaN一旦出现就再也不恢复fp16 上溢softmax 前没减最大值、LayerNorm 用 fp16混合精度里把 softmax、LayerNorm 强制 fp32前期正常深层不收敛浅层梯度正常靠输出端几层几乎不更新post-LN 深层梯度爆炸换 pre-LN并保留 warmup三条经验都是从训崩过换来的先看是不是数值问题再怀疑架构。九成的模型不收敛最后落在精度、初始化或学习率上而不是结构写错。梯度裁剪不是可选项。它的作用不是优化是给单步更新装一个上限防止一个坏 batch 把权重推到不可恢复的区域。warmup 要配 pre-LN 一起看。post-LN 必须靠 warmup 压住早期梯度换成 pre-LN 后对 warmup 不敏感但直接去掉 warmup 仍可能在最初几百步发散。补一句诚实的边界上面的信号只对从零训练成立。微调一个已经收敛的基座模型时loss 曲线通常很平这时候要看的是下游指标不是 loss。七、总结三个关键点自注意力换掉的是循环换来的是并行度与短路径。代价是 O(T²)而这个代价被 GPU 与工程优化吸收了。Transformer 只是结构GPT 是选择。decoder-only、生成式预训练、规模与上下文学习这三次选择决定了今天的形态。三条误解都源自把机制当解释。注意力是路由不是原因位置编码是假设不是自明。一个公式大模型可行 并行训练吞吐 × 短路径长依赖 × 规模容量 ÷ O(T²)成本下一篇《从深蓝到 AlphaGo六十年人机博弈人类到底输在哪一步》——模块二收尾讲清搜索 学习这条线怎么走到第 37 手。思考题如果 GPU 的显存再大 100 倍O(T²) 还是问题吗如果不是今天的长上下文优化还有意义吗因果掩码如果写错允许看未来训练 loss 会怎样变化为什么这个 bug 特别危险附录 A本文引用的条目年份条目来源类型可信度2013word2vecarXiv 预印本likely2014seq2seqarXiv 预印本likely2015ResNet 残差学习arXiv 预印本likely2017TransformerarXiv 预印本likely2018GPT-1官方发布页likely2018BERTarXiv 预印本likely2019GPT-2官方发布页likely2020GPT-3arXiv 官方发布页likely2022Chinchilla 缩放定律arXiv 预印本likely附注上表 9 条在档案里同样是likely全部来自官方发布页或 arXiv 这单一家族。对技术篇来说这不算弱点——论文和官方发布页本身就是最硬的材料但它意味着我没有第二条独立来源去交叉验证时间点。附录 B参考资料本文归因入口唯一外链https://aihist.net/go/csdn05上一篇《从反向传播到 AlexNet1986 到 2012中间那二十六年发生了什么》下一篇《从深蓝到 AlphaGo六十年人机博弈人类到底输在哪一步》代码说明文中代码为教学用最小实现未做性能优化无 FlashAttention、无 KV Cache生产环境请用成熟实现版权声明本文为 CSDN 博主「翁勇刚」的原创文章遵循 CC 4.0 BY-SA 版权协议转载请附上原文出处链接及本声明。

相关推荐

Redis监控与告警体系化实践
Redis监控与告警体系化实践

1. 为什么 Redis 监控不能只看「有没有挂」 Redis 是典型的「平时很稳、出事很急」的组件。它单线程处理命令、内存敏感、连接数敏感、持久化与主从复制又各自有独立的阻塞点,一旦出问题往往表现为延迟毛刺、内存打满、连接耗尽、主从延迟、缓存击穿,而不… · 2026/11/5 1:55:41

Terminal-RSI 论文分析
Terminal-RSI 论文分析

论文 “Terminal-RSI: Recursive Self-Improving Terminal Agents via Recursive Self-Rewrite and Policy-Refine”(arXiv:2610.22192,腾讯混元 Frontier / NUS 等) 要解决的问题 终端 Agent(如 SWE-bench、Terminal-Bench 这类任务)要在可执行环境里多轮操作,最后通过… · 2026/11/5 1:54:41

关于 AI 初稿润色的一点试用随感
关于 AI 初稿润色的一点试用随感

关于 AI 初稿润色的一点试用随感 借助 AI 生成初稿之后,文字往往带着比较明显的机器感,读起来略显生硬。若想改成更贴合日常表达的样子,逐句手动调整,常常要耗费不少精力。 这段时间摸索文本润色的办法时,我试了一款网… · 2026/11/5 1:54:41

Kafka低延迟优化实战:从原理到工程实践
Kafka低延迟优化实战:从原理到工程实践

1. Kafka低延迟优化实战指南在实时数据处理领域,Kafka作为分布式消息系统的标杆,其延迟表现直接影响着金融交易、实时监控等关键业务的响应速度。我曾负责过某证券公司的行情推送系统改造,当时将Kafka端到端延迟从200ms优化到15ms的经历让我深… · 2026/11/5 2:42:02

Ubuntu 22.04部署MySQL:从安装到优化全指南
Ubuntu 22.04部署MySQL:从安装到优化全指南

1. 为什么选择在Ubuntu 22.04上部署MySQLMySQL作为最流行的开源关系型数据库之一,在Web应用、企业系统和数据分析等领域有着广泛应用。Ubuntu 22.04 LTS作为长期支持版本,提供了稳定的软件包和五年的安全更新,是部署生产环境MySQL的理想选择。… · 2026/11/5 2:42:02

无人机集群协同路径规划:多段Dubins路径与威胁规避策略
无人机集群协同路径规划:多段Dubins路径与威胁规避策略

1. 项目背景与核心挑战无人机集群在复杂威胁环境下的协同路径规划是当前智能无人系统领域的前沿课题。当多架无人机需要在包含雷达探测区、防空火力圈、地形障碍等多样化威胁的空间中执行协同任务时,传统的单机路径规划方法往往难以满足以下需求:时空协同… · 2026/11/5 2:42:02

Solon AI v3.9架构升级:分布式调度与多模态交互优化
Solon AI v3.9架构升级:分布式调度与多模态交互优化

1. Solon AI v3.9 版本升级解析上周五深夜,团队终于把Solon AI v3.9的最后一个测试用例跑通。这个被内部称为"技能大爆炸"的版本,可能是我们今年最具突破性的更新。相比v3.8,新版本在技能组合、上下文理解和多模态交互这三个维度实… · 2026/11/5 2:42:02

QNX串口程序实战:termios原始模式、环形缓冲与帧状态机
QNX串口程序实战:termios原始模式、环形缓冲与帧状态机

简介:这是一份面向QNX嵌入式开发初学者与串口通信学习者的源码实例包,围绕实时操作系统下的串口编程展开,可用于理解设备节点访问、参数配置与数据收发流程,适合需要快速搭建串口实验并对照源码排查配置问题的自学者。压缩包为rar… · 2026/11/5 2:42:02

可自部署10分钟临时邮箱:SMTP收信、TTL清理与验证码提取
可自部署10分钟临时邮箱:SMTP收信、TTL清理与验证码提取

简介:面向开发者与Web学习者的10分钟临时邮箱源码包,围绕短时有效邮箱地址的生成、收信与到期失效流程,适合用于注册验证、下载试用等不愿暴露真实邮箱的场景,也可作为PHP邮件系统与Web服务设计的实践项目。压缩包共492个文件&… · 2026/11/5 2:41:02

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

多智能体协作系统架构设计与实践优化
多智能体协作系统架构设计与实践优化

1. 多智能体协作系统的时代背景2017年Transformer架构的诞生彻底改变了人工智能的发展轨迹。当行业还沉浸在单一大模型带来的性能突破时,Anthropic的研究团队已经将目光投向了更前沿的领域——如何让多个智能体通过协作产生超越单体能力的系统智能。这就像交响乐团中… · 2026/11/5 0:00:39

大模型系统性入门实战指南:从原理到部署微调的全链路路线
大模型系统性入门实战指南:从原理到部署微调的全链路路线

提到大模型的系统性入门,我先说个结论:这事真不难,难的是资料太散、路线太多,今天这个框架明天那个工具,新人很容易在“收藏夹吃灰”和“教程看到一半放弃”之间反复横跳。市面上关于大模型的内容少说有几十万篇&#… · 2026/11/5 0:00:39

鸿蒙文件系统沙箱机制解析与开发实践
鸿蒙文件系统沙箱机制解析与开发实践

1. 鸿蒙文件系统沙箱机制深度解析作为一名从Android转向鸿蒙开发的工程师,我深刻体会到文件系统访问是迁移过程中最先遇到的"拦路虎"。在Android上运行良好的文件读写代码,在鸿蒙真机环境却频频出现文件写入后神秘消失或直接抛出权限拒绝错误的… · 2026/11/5 0:00:39

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 3:16:49

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 6:59:29

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/4 7:02:38

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码