【亲测有效】DeepSeek极简入门与应用_15.[第1章 认识DeepSeek] 更高效的架构设计:DeepSeek如何把训练成本压到极致

炸裂!DeepSeek用"穷鬼套餐"干翻硅谷天价训练:MoE+MLA+FP8+数据工程四板斧,如何把550万美元炼成AI界的"九转金丹"?本文将彻底拆解DeepSeek-V3/R1的极致成本压缩术——从架构设计的每一个螺丝钉到数据工程的每一滴油,带你理解国产大模型如何用工程智慧打破"算力即正义"的霸权叙事,让个人开发者和小团队也能看见AGI的曙光。
目录导航
- 一、MoE架构:用"专家会诊"代替"全能医生",稀疏激活省出金山银山
- 二、MLA注意力:KV缓存的"压缩神器",让长上下文不再烧钱
- 三、FP8混合精度:在数值悬崖边跳舞,把显存压榨到极致
- 四、DualPipe流水线:通信与计算的"时间魔术",硬件利用率拉满
- 五、数据工程:质量即正义,14.8T tokens的"精酿"哲学
- 六、训练策略三板斧:从PT到SFT再到RL的"渐进式打磨"
- 七、写在最后
嗨,大家好呀,我是你的老朋友精通代码大仙。接下来我们一起学习 《DeepSeek极简入门与应用》,震撼你的学习轨迹!学习:caigenzhishi 推荐朋友B占UP:个人快速成长/精进学习
“钱不是万能的,但没钱是万万不能的。”
这句老话放在AI大模型领域,简直是血淋淋的现实。你是不是也这样——刷到OpenAI、Google、Meta动辄几亿美元的训练成本,再看看自己那几张消费级显卡,心里拔凉拔凉的?觉得AGI这玩意儿,注定是硅谷巨头的"富人游戏"?
别急,2024年底DeepSeek-V3的发布,就像一记响亮的耳光扇在"算力霸权"的脸上。557万美元,2048张H800,训练出比肩GPT-4o的671B参数模型。这不是神话,是工程智慧的胜利。
今天,咱们就扒开DeepSeek的"省钱秘籍",看看这帮"技术抠门精"是怎么把每一分钱都花在刀刃上的。
一、MoE架构:用"专家会诊"代替"全能医生",稀疏激活省出金山银山
点题:什么是MoE?为什么它能省钱?
MoE,Mixture of Experts,混合专家模型。简单说,就是把一个"啥都懂但啥都不精"的大胖子,拆成一堆"各有所长"的专家小组。
DeepSeek-V3总参数671B,但每次推理只激活37B。就像医院里的专家会诊——病人来了,系统只叫相关科室的专家,而不是全院医生一起上。
DeepSeek的MoE设计有多细?
- 256个专家:比传统MoE的8-16个多一个数量级
- 共享专家:4个始终激活的"通才",处理通用知识
- 路由专家:每次选6个(1个共享+5个路由),极致稀疏
- 负载均衡损失:防止专家"旱的旱死,涝的涝死"
痛点分析:新手对MoE的典型误解
误区一:“参数多=能力强,我堆参数就完事了”
很多新手看到671B参数就高潮,以为这是 brute force 的胜利。错!如果全量激活,H800集群根本扛不住,训练成本直接飙到10亿美元级别。
误区二:“MoE就是简单的模型并联”
我曾见过一个开源项目,把几个7B模型硬拼在一起,号称"MoE大模型"。结果?路由网络随机乱指,专家之间互不配合,效果比单模型还差。
# 错误示范:伪MoE实现
class FakeMoE(nn.Module):
def __init__(self):
self.experts = [load_model(f"expert_{i}") for i in range(8)]
def forward(self, x):
# 随机选专家?这是抽奖不是路由!
expert_idx = random.randint(0, 7)
return self.experts[expert_idx](x) # 灾难!
误区三:“稀疏激活=随便稀疏,反正能省算力”
路由策略没设计好,会导致"专家崩溃"——所有输入都涌向少数几个专家,其他专家变成僵尸。省下的算力,换来的是模型能力断崖式下跌。
解决方案:DeepSeek的MoE工程精髓
第一,细粒度专家划分
256个专家,每个专注特定知识领域。数学问题走数学专家,代码走代码专家,诗歌走文学专家。这种"专科化"让专家真正"专"起来。
# DeepSeek MoE路由示意(简化版)
class DeepSeekMoERouter(nn.Module):
def __init__(self, dim, n_experts=256, top_k=6):
self.gate = nn.Linear(dim, n_experts) # 可学习路由
self.top_k = top_k
self.n_shared = 4 # 始终激活的共享专家
def forward(self, hidden_states):
# 计算每个专家的"匹配分数"
router_logits = self.gate(hidden_states) # [batch, seq, n_experts]
# Top-K选择 + 负载均衡约束
weights, selected_experts = torch.topk(
torch.softmax(router_logits, dim=-1),
self.top_k,
dim=-1
)
# 辅助损失:确保专家利用率均衡
aux_loss = self.compute_load_balance_loss(router_logits)
return selected_experts, weights, aux_loss
第二,共享专家机制
4个共享专家始终激活,处理通用语言理解。这避免了"每个专家都从零学汉语语法"的浪费,让路由专家专注"特长"。
第三,设备限制路由
训练时,专家分布在不同GPU上。DeepSeek设计了"设备限制路由"——优先选择本地GPU上的专家,减少跨节点通信。这是工程上的神来之笔。
这样做的好处?
- 训练成本:同等效果下,MoE比Dense省5-10倍算力
- 推理速度:激活参数少,延迟显著降低
- 扩展性:增加专家数量,几乎不增加推理成本
小结
MoE不是"参数堆砌",而是"精准调度"。DeepSeek用256个细粒度专家+共享机制+负载均衡,把稀疏激活做成了艺术。记住:好的MoE,路由网络才是灵魂。
二、MLA注意力:KV缓存的"压缩神器",让长上下文不再烧钱
点题:KV缓存为什么是大模型的"内存黑洞"?
Transformer的自注意力机制,需要缓存Key和Value矩阵用于后续Token计算。序列越长,KV缓存越恐怖。
标准MHA(多头注意力)的KV缓存量: 2 × n l a y e r s × n h e a d s × d h e a d × s e q _ l e n 2 \times n_{layers} \times n_{heads} \times d_{head} \times seq\_len 2×nlayers×nheads×dhead×seq_len
对于DeepSeek-V3这种64层、128个注意力头的模型,处理128K上下文,KV缓存能把H800的80GB显存吃干抹净。
MLA(Multi-head Latent Attention)的破局思路:不直接存Key和Value,而是存一个低维的"潜向量",用时再投影扩展。
MLA的核心公式:
c t = W D K V h t (低维潜向量,仅缓存此) \mathbf{c}_t = W^{DKV} \mathbf{h}_t \quad \text{(低维潜向量,仅缓存此)} ct=WDKVht(低维潜向量,仅缓存此)
k t = W U K c t , v t = W U V c t (用时解压) \mathbf{k}_t = W^{UK} \mathbf{c}_t, \quad \mathbf{v}_t = W^{UV} \mathbf{c}_t \quad \text{(用时解压)} kt=WUKct,vt=WUVct(用时解压)
潜向量维度只有512,而标准K/V是7168维。压缩比高达14倍!
痛点分析:新手在长上下文上的踩坑实录
痛点一:“我直接上FlashAttention就完事了”
FlashAttention确实能省显存,但它解决的是"计算时的内存访问效率",不是"KV缓存总量"。序列长到一定程度,该爆还是爆。
我见过一个团队,用Llama-3-70B做文档问答,32K上下文,8张A100直接OOM。他们以为是FlashAttention没配好,折腾一周才发现——KV缓存本身就把显存吃完了。
痛点二:“MQA/GQA不也能省缓存吗?效果差我忍了”
MQA(多查询注意力)和GQA(分组查询注意力)确实通过共享K/V头来减少缓存。但代价是注意力表达能力下降,模型变"笨"。
# MQA:所有头共享同一组K/V——极简但极弱
# GQA:n个头共享1组K/V——折中方案
# MLA:每个头有独立的低维潜向量——压缩但不压缩能力
痛点三:“我直接把KV缓存量化到INT8”
量化确实能省空间,但注意力计算对精度敏感。INT8量化在长序列上,注意力分数的累积误差会导致生成内容"胡言乱语"。
解决方案:MLA的工程实现细节
第一,低秩联合压缩
DeepSeek发现,Key和Value可以共享同一个低维表示。通过精心设计的投影矩阵,解压后的K/V仍能保持足够的表达能力。
# MLA核心实现示意
class MLAAttention(nn.Module):
def __init__(self, dim, n_heads, latent_dim=512):
self.n_heads = n_heads
self.head_dim = dim // n_heads
# 压缩投影:dim -> latent_dim
self.W_DKV = nn.Linear(dim, latent_dim) # 唯一缓存的!
# 解压投影:latent_dim -> dim
self.W_UK = nn.Linear(latent_dim, dim) # K解压
self.W_UV = nn.Linear(latent_dim, dim) # V解压
# Q也有低秩压缩,用于解耦训练推理
self.W_DQ = nn.Linear(dim, latent_dim)
self.W_UQ = nn.Linear(latent_dim, dim)
def forward(self, x, past_kv=None):
# 训练时:直接计算,不用缓存
# 推理时:只存潜向量
c_t = self.W_DKV(x) # [batch, seq, 512]
if past_kv is not None:
c_t = torch.cat([past_kv, c_t], dim=1)
# 用时解压
k = self.W_UK(c_t) # [batch, seq, dim]
v = self.W_UV(c_t) # [batch, seq, dim]
q = self.W_UQ(self.W_DQ(x))
# 标准注意力计算
return self.scaled_dot_product_attention(q, k, v), c_t
第二,解耦旋转位置编码
RoPE(旋转位置编码)和MLA有冲突——RoPE直接作用于Q/K,而MLA的K是解压出来的。DeepSeek的解决方案:对Q做RoPE,对K的解压前潜向量做特殊处理,实现"位置感知的低秩解压"。
第三,推理优化的极致
MLA让KV缓存从"内存杀手"变成"可以接受的开销"。这意味着:
- 同样显存,支持8倍长的上下文
- 同样上下文, batch size 提升8倍
- 或者,用更便宜的显卡跑同样的服务
小结
MLA是"数学优雅+工程实用"的典范。它用低秩压缩的思想,在不牺牲模型能力的前提下,把KV缓存压到原来的1/14。长上下文不再是富人的玩具,这是DeepSeek成本优势的关键支柱。
三、FP8混合精度:在数值悬崖边跳舞,把显存压榨到极致
点题:为什么FP8是"刀尖上的芭蕾"?
训练大模型,精度选择是门艺术:
- FP32:稳如老狗,但显存和算力都扛不住
- FP16/BF16:主流选择,但671B模型 still 贵得吓人
- FP8:显存减半、算力翻倍,但数值范围极小,容易"崩"
FP8的表示范围:E4M3格式,最大≈448,最小正规格数≈0.0156。对比BF16的最大≈57344,这简直是"螺蛳壳里做道场"。
DeepSeek的FP8策略:混合精度,分层处理
| 组件 | 精度 | 原因 |
|---|---|---|
| 主权重 | BF16 | 保证数值稳定性,避免累积误差 |
| 前向激活 | FP8 | 计算密集,收益最大 |
| 反向梯度 | FP8 | 同样计算密集 |
| 优化器一阶矩 | BF16 | Adam的momentum需要精度 |
| 优化器二阶矩 | FP32 | 方差估计,精度敏感 |
| 归一化层 | BF16 | LayerNorm对数值敏感 |
痛点分析:FP8训练的"翻车现场"
翻车一:“我全用FP8,模型直接NaN”
新手最容易犯的错:以为FP8就是"全部换成FP8"。结果梯度一更新,权重变成NaN,训练崩溃。
根本原因:FP8的动态范围太小。一次不稳定的梯度更新,权重就"飞出界"了。
翻车二:“量化校准没做好,精度掉得离谱”
FP8需要per-tensor或per-channel的缩放因子(scaling factor)。如果校准数据没代表性,或者更新策略太激进,模型能力断崖式下跌。
我见过一个案例:某团队FP8训练后,模型数学能力从60%掉到15%。查了一周,发现是embedding层的scaling factor设错了。
翻车三:“分布式场景下的精度不一致”
多卡训练时,每张卡的FP8计算有微小差异。AllReduce聚合后,这种差异被放大,导致模型发散。
解决方案:DeepSeek的FP8工程体系
第一,细粒度量化策略
不是简单的per-tensor,而是:
- 权重:per-channel(每个输出通道独立缩放)
- 激活:per-token(每个token独立缩放)+ per-tile(小块优化)
# DeepSeek FP8 GEMM示意(概念版)
def fp8_gemm_deepsseek(A_fp8, A_scale, B_fp8, B_scale, out_dtype):
"""
A: 激活 [M, K], per-token缩放
B: 权重 [N, K], per-channel缩放
"""
# 反量化到更高精度计算(实际用FP8 Tensor Core)
A_dequant = A_fp8.float() * A_scale.unsqueeze(-1) # [M, K]
B_dequant = B_fp8.float() * B_scale.unsqueeze(0) # [N, K]
# 矩阵乘
C = torch.matmul(A_dequant, B_dequant.t())
# 输出缩放(防止溢出)
return C.to(out_dtype)
第二,延迟缩放(Delayed Scaling)
不实时更新scaling factor,而是基于历史统计的滑动平均。这避免了频繁更新带来的抖动。
第三,梯度裁剪与损失缩放
- 梯度L2范数裁剪:防止FP8表示不了的超大梯度
- 动态损失缩放(Loss Scaling):放大损失,让梯度落在FP8的有效范围内
第四,硬件协同优化
DeepSeek和英伟达深度合作,针对H800的FP8 Tensor Core做了定制优化:
- 矩阵分块策略匹配硬件SRAM容量
- 流水线编排最大化Tensor Core利用率
- 通信与计算重叠(后面细讲)
小结
FP8不是"用就完事了",而是一套精密的工程体系。DeepSeek用混合精度+细粒度量化+稳定性保障,在FP8的悬崖边跳出了优雅的舞蹈。显存省一半,算力快一倍,这是成本压缩的又一利器。
四、DualPipe流水线:通信与计算的"时间魔术",硬件利用率拉满
点题:分布式训练的"隐形杀手"——通信开销
大模型训练,单机肯定不够。多机分布式,通信就成了噩梦。
传统流水线并行(Pipeline Parallelism)的问题:
- 气泡(Bubble):前向等后向,GPU空转
- 通信瓶颈:激活值传输占大量时间
- 负载不均:不同stage计算量不同
DualPipe的核心思想:双向流水线,前向和反向交错执行,把通信完全隐藏在计算里。
痛点分析:分布式训练的"经典翻车"
翻车一:“我用Megatron-LM默认配置,GPU利用率只有30%”
默认的流水线调度,气泡巨大。8个stage的流水线,理论上有50%的时间在等。新手不知道调优,以为"分布式=快",结果越分布越慢。
翻车二:“NVLink带宽够高,我直接传激活值”
H800的NVLink是900GB/s,但跨节点走InfiniBand只有400GB/s。671B模型的激活值, naive 传输能把网络塞爆。
翻车三:“专家并行(EP)负载不均,有GPU在摸鱼”
MoE的专家分布在不同GPU上,如果路由不均衡,某些GPU过载,某些GPU空闲。整体吞吐量被最慢的节点拖死。
解决方案:DualPipe的精妙设计
第一,双向流水线调度
传统流水线是"单向水流":数据从GPU0流到GPU N,反向再从GPU N流回GPU0。
DualPipe改成"双向对开":GPU0同时处理micro-batch 0的前向和micro-batch 1的反向。这样,通信和计算完全重叠。
第二,计算-通信重叠的极致优化
# DualPipe核心逻辑示意(概念版)
class DualPipeSchedule:
def __init__(self, n_stages, n_microbatches):
self.n_stages = n_stages
self.n_micro = n_microbatches
def step(self, stage_id, micro_id, is_forward):
# 当前计算
compute_op = self.get_compute(stage_id, micro_id, is_forward)
# 同时启动通信(非阻塞)
if is_forward:
send_op = self.send_activation_to_next(stage_id, micro_id)
recv_op = self.recv_gradient_from_next(stage_id, micro_id)
else:
send_op = self.send_gradient_to_prev(stage_id, micro_id)
recv_op = self.recv_activation_from_prev(stage_id, micro_id)
# 计算与通信并行
with torch.cuda.stream(self.compute_stream):
result = compute_op()
with torch.cuda.stream(self.comm_stream):
send_op.wait()
recv_op.wait()
return result
第三,专家并行的负载均衡
DeepSeek设计了"冗余专家"策略:热门专家多复制几份,分散到不同GPU。路由时优先本地,次选远程,最后选冗余副本。
第四,显存优化的"黑科技"
- 重计算(Recomputation):不存中间激活,反向时重算。用算力换显存。
- 序列并行(Sequence Parallelism):长序列拆分到多个GPU,降低单卡显存压力。
- ZeRO-1优化器状态分片:Adam的状态分散存储,单卡只存1/N。
小结
DualPipe把"等待"变成了"并行",把"瓶颈"变成了"流水"。这是工程艺术的巅峰——不是硬件更强,而是让硬件一直在干活。DeepSeek的H800利用率据说接近理论峰值,这才是557万美元能训出671B模型的底层支撑。
五、数据工程:质量即正义,14.8T tokens的"精酿"哲学
点题:数据是大模型的"饲料",但喂垃圾只能产垃圾
业界有个误区:“数据越多越好,大力出奇迹”。
DeepSeek用14.8T tokens(对比Llama 3的15T,Qwen 2的7T)证明了:质量 > 数量,精选 > 堆砌。
关键数据策略:
- 代码占比40%:Python、C++、Java等,带执行反馈
- 数学推理20%:竞赛题、定理证明,带思维链
- 严格去重:MinHash+SimHash,文档级和段落级双重去重
- 质量评分:基于perplexity和规则的多维度打分
痛点分析:数据处理的"脏活累活"
痛点一:“我爬了100T网页,模型怎么越训越蠢?”
原始网页充斥着广告、导航栏、重复内容、低质量机器生成文本。直接喂给模型,相当于让人吃垃圾食品长大。
我见过一个开源项目,用Common Crawl原始数据训模型,结果模型学会了生成"点击这里""下一页"这种导航文本。
痛点二:“去重就是MD5去重?太天真了”
简单的MD5只能去完全重复。但网页内容大量存在"改几个字就算新文章"的近似重复。MinHash能捕捉这种相似性,但调参复杂,新手往往搞不定。
痛点三:“代码数据就是GitHub dump?”
原始GitHub代码:
- 大量自动生成的配置、依赖文件
- 半成品、buggy代码
- 没有上下文的无意义片段
直接训练,模型学会的是"像程序员",不是"成为程序员"。
解决方案:DeepSeek的数据炼金术
第一,多层次过滤管道
第二,代码数据的特殊处理
- 执行过滤:用沙箱运行代码,保留能通过的
- 静态分析:AST解析,保留结构完整的
- 配对数据:代码-注释、代码-测试用例、代码-执行结果
# 代码质量评分示意(概念)
def score_code_quality(code_snippet):
scores = {
'syntax_valid': check_syntax(code_snippet), # 语法正确
'can_execute': try_execute(code_snippet), # 可执行
'has_docstring': check_docstring(code_snippet), # 有文档
'test_coverage': run_tests(code_snippet), # 测试通过
'complexity': calculate_cyclomatic(code_snippet) # 复杂度适中
}
return weighted_sum(scores)
第三,合成数据的"冷启动"
DeepSeek-R1的推理能力,很大程度上来自高质量的合成数据:
- 用已有模型生成带思维链的解答
- 规则验证答案正确性
- 人工审核+迭代优化
这比直接买标注数据便宜两个数量级。
第四,动态数据配比
训练过程中动态调整各类数据的比例:
- 前期:多语言+百科,建立基础能力
- 中期:增加代码+数学,提升推理
- 后期:高质量指令数据,对齐人类偏好
小结
数据工程是"隐形的基础设施"。DeepSeek用14.8T高质量token,打败了别人100T的"垃圾山"。记住:模型吃的是数据,长的是数据的味道。精酿,永远比工业啤酒更贵,但也更好。
六、训练策略三板斧:从PT到SFT再到RL的"渐进式打磨"
点题:训练不是"一锤子买卖",而是"精雕细琢"
DeepSeek-R1的完整训练流程:
关键创新:GRPO(Group Relative Policy Optimization)
传统PPO需要训练一个critic模型,显存和计算开销巨大。GRPO用"组内相对奖励"代替critic:
优势 = r i − mean ( r group ) std ( r group ) \text{优势} = \frac{r_i - \text{mean}(r_{\text{group}})}{\text{std}(r_{\text{group}})} 优势=std(rgroup)ri−mean(rgroup)
一组答案(比如8个),看哪个比平均水平好,直接优化。省掉了critic模型,稳定还更好。
痛点分析:RL训练的"地狱难度"
痛点一:“PPO调参地狱,reward model一崩全崩”
PPO的critic模型和policy模型一起训练,任何一个不稳定,整个系统崩溃。学习率、clip范围、GAE参数…调参空间巨大。
我见过一个团队,调PPO调了三个月,reward model过拟合到只认识训练时的几种回答格式。
痛点二:“reward hacking,模型学会骗奖励”
规则奖励容易被钻空子。比如数学题,模型发现"把答案放在最后"就能拿高分,于是生成大量无意义中间步骤,最后蒙一个答案。
痛点三:“冷启动的鸡生蛋问题”
没有好的SFT数据,RL训不出来。但没有好的模型,又生成不了好的SFT数据。怎么破?
解决方案:DeepSeek的"渐进式突围"
第一,冷启动的"破冰"
DeepSeek-R1-Zero证明:纯RL,不用任何SFT,模型也能自发涌现推理能力。但问题是——输出格式混乱,可读性差。
所以R1版本加入了少量(数千条)人工精心编写的CoT数据作为"种子",让模型先学会"人话",再RL优化。
第二,GRPO的简洁之美
# GRPO核心逻辑(极度简化)
def grpo_step(policy_model, prompts, group_size=8):
# 对每个prompt,生成一组答案
responses = [policy.generate(prompt) for _ in range(group_size)]
# 规则奖励(如:答案正确+1,格式正确+0.5)
rewards = [rule_reward(r) for r in responses]
# 组内归一化,得到优势
mean_r, std_r = np.mean(rewards), np.std(rewards)
advantages = [(r - mean_r) / (std_r + 1e-8) for r in rewards]
# 策略梯度更新(带KL惩罚)
loss = 0
for response, adv in zip(responses, advantages):
new_logprob = policy_model.log_prob(response)
old_logprob = old_policy.log_prob(response).detach()
ratio = torch.exp(new_logprob - old_logprob)
clipped_ratio = torch.clamp(ratio, 0.9, 1.1)
loss -= torch.min(ratio * adv, clipped_ratio * adv)
# KL散度惩罚,防止模型跑偏
loss += kl_coef * kl_divergence(policy_model, reference_model)
return loss
第三,多阶段训练的"组合拳"
| 阶段 | 目标 | 数据 | 方法 |
|---|---|---|---|
| 预训练 | 知识+基础能力 | 14.8T高质量tokens | next token prediction |
| 冷启动SFT | 学会推理格式 | 数千条人工CoT | 标准SFT |
| 推理RL | 提升推理能力 | 数学/代码/逻辑题 | GRPO + 规则奖励 |
| 拒绝采样SFT | 扩充高质量数据 | 60万条模型生成+验证 | 筛选正确+格式好的 |
| 全场景RL | 对齐人类偏好 | 通用指令+安全数据 | GRPO + 人类反馈 |
第四,蒸馏的"知识传递"
DeepSeek把R1的推理能力蒸馏到小模型(Qwen、Llama架构),用80万条R1生成的数据SFT。结果惊人——32B的蒸馏模型,逼近原始R1的70%能力。
这让个人开发者也能用上"推理增强"的模型。
小结
训练是"系统工程",不是"单点突破"。DeepSeek用渐进式策略,每一步解决特定问题,逐步逼近目标。GRPO的简洁、多阶段的稳健、蒸馏的普惠,构成了完整的训练方法论。
七、写在最后
看完DeepSeek的"省钱秘籍",你有什么感受?
我的感受是:工程智慧可以战胜算力霸权。
557万美元,不是"偷工减料"的结果,而是"每一分钱花在刀刃上"的极致。MoE的精准调度、MLA的压缩艺术、FP8的精度舞蹈、DualPipe的时间魔术、数据工程的精酿哲学、训练策略的渐进打磨——每一个环节都追求最优,合在一起就是奇迹。
这对我们普通开发者意味着什么?
第一,AGI不是富人的专属游戏。工程优化的大门向所有人敞开。你不需要10000张H100,理解这些原理,用更聪明的策略,消费级显卡也能做出有价值的东西。
第二,国产技术正在崛起。DeepSeek不是"跟随者",是"创新者"。MLA、GRPO、DualPipe,这些都是原创贡献。技术无国界,但工程师有祖国。
第三,持续学习是唯一的护城河。今天的最优解,明天可能就被颠覆。保持好奇,保持动手,保持对底层原理的追问。
编程之路不易,但每一步成长都算数。DeepSeek的故事告诉我们:限制你的不是资源,而是想象力。
保持好奇,持续学习,你也能成为代码高手。咱们下篇见!
学习:caogenzhishi 推荐朋友B占UP:个人快速成长/精进学习资料
+备注:“资料代找获取”,全网计算机学习资料代找:例如:
《课程:2026 年多模态大模型实战训练营》
《课程:AI 大模型工程师系统课程 (22 章完整版 持续更新)》
《课程:AI 大模型系统实战课第四期 (2026 年开课 持续更新)》
《课程:2026 年 AGI 大模型系统课 23 期》
《课程:2026 年 AGI 大模型系统课 21 期》
《课程:AI 大模型实战课 8 期 (2026 年 2 月最新完结版)》
《课程:AI 大模型系统实战课三期》
《课程:AI 大模型系统课程 (2026 年 2 月开课 持续更新)》
《课程:AI 大模型全阶课程 (2025 年 12 月开课 2026 年 6 月结课)》
《课程:AI 大模型工程师全阶课程 (2025 年 10 月开课 2026 年 4 月结课)》
《课程:2026 年最新大模型 Agent 开发系统课 (持续更新)》
《课程:LLM 多模态视觉大模型系统课》
《课程:大模型 AI 应用开发企业级项目实战课 (2026 年 1 月开课)》
《课程:大模型智能体线上速成班 V2.0》
《课程:Java+AI 大模型智能应用开发全阶课》
《课程:Python+AI 大模型实战视频教程》
《书籍:软件工程 3.0: 大模型驱动的研发新范式.pdf》
《课程:人工智能大模型系统课 (2026 年 1 月底完结版)》
《课程:AI 大模型零基础到商业实战全栈课第五期》
《课程:Vue3.5+Electron + 大模型跨平台 AI 桌面聊天应用实战 (2025)》
《课程:AI 大模型实战训练营 从入门到实战轻松上手》
《课程:2026 年 AI 大模型 RAG 与 Agent 智能体项目实战开发课》
《课程:大模型训练营配套补充资料》
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)