本文通过咖啡厅聊天和读书划重点两个生活场景,生动解释了注意力机制的核心概念,从鸡尾酒会效应到Transformer架构的引入,详细拆解了Query、Key、Value三要素以及自注意力和多头注意力的运作方式,并附上完整运算模拟示例。文章最后阐述了注意力机制为何能成为AI革命的驱动力,它如何解决长距离依赖问题、支持并行计算并提升模型可解释性,为初学者提供了理解大模型底层逻辑的清晰路径。
一、两个场景,帮你秒懂"注意力"
先别碰公式。我们从一个你每天都经历的场景开始——
场景一:在嘈杂的咖啡厅里和朋友聊天。
周围有人在打电话、有人在敲键盘、背景音乐在播放。但神奇的是,你依然能清晰地听到朋友在说什么。为什么?因为你的大脑自动"调高"了朋友声音的"音量",同时"调低"了所有背景噪音。这个现象在心理学中叫"鸡尾酒会效应"——你的听觉系统自带一套注意力筛选机制。
场景二:读一本书并划重点。
用荧光笔标注核心观点,略读过渡段落、跳过大段举例——你不可能逐字记住整本书,但你抓住了骨架。
这两个场景揭示的是同一件事:注意力机制的本质——从海量信息中,自动找出哪些是关键,哪些可以忽略。如果把传统的信息处理方式比作"逐字逐句抄书",那注意力机制就是"划重点"。抄书的人累死还不一定抓住核心,而划重点的人效率高、效果好。
AI 模型也一样。在 Transformer 架构诞生之前,模型处理一句话时,每个词的地位是平等的——不管你是"的"还是"注意力",模型一视同仁。这显然不符合人类理解语言的方式。
2017 年,Google 团队发表了论文《Attention Is All You Need》,彻底改变了这一切。注意力机制让模型学会了"区别对待"每个词——从此 AI 也能像人一样"划重点"了。

▲ 图1:注意力机制 = AI 的"划重点"能力 —— 从"逐字抄书"到"精准高亮"
二、拆解注意力:Query、Key、Value 三兄弟
现在进入核心概念。注意力机制有三个关键角色:Query(查询)、Key(键)、Value(值)。别被英文吓到,我们用两个场景来理解——
类比一:图书馆找书。
你去图书馆找"一本关于机器学习的入门书"——这是你的 Query。书架上每本书都有标签——每个标签就是一个 Key。书的内容本身——书页里的每一个字——就是 Value。你拿着 Query 去跟每个 Key 比对相似度,最匹配的标签对应的那本书,你翻开它的内容——这就是一次"注意力查找"。
类比二:淘宝搜商品(可能更直观)。
你在搜索框输入"蓝牙耳机 降噪 500 元以内"——这是 Query。每个商品的标题和描述——这是 Key。商品本身——这是 Value。淘宝的搜索引擎做的就是:拿你的 Query 去匹配所有商品的 Key,算出相关度,把最匹配的商品推到你面前。
把它写成大白话就是:"你想找什么(Q),看看每个东西的标签是什么(K),然后按匹配程度,从每个东西里取出相应比例的内容(V),最后拼在一起。“注意,这里的关键词是"按比例”——不是只取最匹配的那一个,而是每个 Value 都取一点,匹配度高的取得多,匹配度低的取得少。这种"软性筛选"让注意力机制比"硬性只取一个"更灵活、更鲁棒。

▲ 图2:注意力三要素 —— 用"图书馆找书"秒懂 Query、Key、Value
三、自注意力:让一句话里的词互相"认识"
搞懂了 Q、K、V,我们就可以聊自注意力(Self-Attention)了——这是 Transformer 的灵魂。普通注意力的 Q 来自外部(比如你的搜索词),而自注意力的巧妙之处在于:Q、K、V 全部来自同一句话本身。一句话里的每个词,既当"提问者"(Q),也当"被查找者"(K),还当"信息提供者"(V)。
举个例子:句子 “小明喜欢吃苹果,所以他买了很多”。当模型处理"他"这个字时:"他"生成一个 Query——“我指的是谁?”;句中每个词生成各自的 Key;"他"的 Query 去跟所有人的 Key 做匹配;结果:"小明"的 Key 和"他"的 Query 最相似!于是"小明"的 Value 被大量提取,“他"被理解为指代"小明”。
同一个词在不同上下文中,注意力分布也完全不同。比如:“我把苹果吃了"→"苹果"高度关注"吃”,理解为水果;“苹果发布了新手机"→"苹果"高度关注"发布"和"手机”,理解为公司。同一个"苹果",因为周围的词不同,自注意力让它的含义被动态重塑。这就是为什么大模型能在不同语境中精准理解同一个词的多种含义——词的含义不再是固定的字典定义,而是由上下文"现场计算"出来的。

▲ 图3:自注意力实战 —— "猫追老鼠,它很快"中"它"的注意力权重分布
四、多头注意力:多个人一起"划重点"
如果只用一个注意力头,好比只让一个人给一本书划重点——他可能只关注情节,忽略了人物描写。多头注意力(Multi-Head Attention)就是让多个人同时划重点:头 1 关注"谁对谁做了什么"(主谓宾关系);头 2 关注"上下文指代"(代词指向哪个词);头 3 关注"修饰关系"(形容词修饰哪个名词);头 4 关注"长距离依赖"(段落开头和结尾的呼应)。
每个人都从不同角度理解同一句话,最后把所有人的理解拼在一起——这就是多头注意力的核心思想。为什么要多个头?因为语言是极其复杂的。一句话里同时存在语法结构、语义关系、上下文指代、情感色彩……一个注意力头很难同时捕捉所有维度。多个头各司其职,分头理解、集中汇总,效果远比单打独斗好得多。
在实际的 Transformer 中,标准配置是 8 到 16 个头。翻译成大白话:GPT 读一句话时,有 8 到 16 个人同时在帮你从不同角度理解它。

▲ 图4:多头注意力 —— 4 个头从不同角度理解同一句话,最后拼接融合
五、跟着走一遍:一个完整的注意力运算
为了让你彻底掌握,我们跟一个简单例子走完完整流程。句子:"猫追老鼠,它很快。"问题:模型需要理解"它"指的是什么?
第 1 步:生成 Q、K、V
把每个词通过矩阵变换,分别生成对应的 Query、Key、Value 向量。你可以理解为:给每个词拍三张不同用途的"证件照"——一张用于提问(Q),一张用于被查找(K),一张用于提供内容(V)。
第 2 步:计算注意力分数
用"它"的 Query,去和每个词的 Key 做点积,算出相似度:"猫"→0.8(最高!)、"追"→0.3、"老鼠"→0.5、"它"→0.6、"很快"→0.2、标点符号→接近 0。
第 3 步:Softmax 归一化
原始分数范围不一致,需要用 Softmax 函数把它们压缩到 0~1 之间,且保证所有分数加起来等于 1——这样就变成了一组标准的"概率权重":"猫"→0.35、"老鼠"→0.18、"它"→0.20、"追"→0.08、"很快"→0.12、标点符号→几乎为 0。注意:标点符号权重几乎为零——模型自动学会了忽略它们。
第 4 步:加权求和
用这些权重,对所有词的 Value 做加权求和。"猫"的权重最高(0.35),所以最终输出的向量中,“猫"的信息占比最大——模型由此判断"它"指代的是"猫”。
这就是注意力机制完整的一次运算。真实的 Transformer 中,这样的计算在每一层、每个头上同时发生——一台 GPT 跑一次推理,注意力运算可能执行几万次。但底层逻辑就是这四步。
# -*- coding: utf-8 -*-"""注意力机制(Attention Mechanism)完整模拟===========================================一步一步计算:Q → K → 相似度 → Softmax → 加权求和示例句子:"猫 追 老鼠 , 它 很快 。" —— 理解"它"指代什么
运 行:python attention_sim.py依赖项:pip install numpy"""
import numpy as np
# ──────────────────────────────────────────────# 0. 准备工作# ──────────────────────────────────────────────np.set_printoptions(precision=3, suppress=True)
# 词表(共7个词)vocab = ["猫", "追", "老鼠", ",", "它", "很快", "。"]n = len(vocab)d = 6 # 每个词的向量维度(实际模型用 512~4096,这里用 6 方便手算)
print("=" * 65)
print("🔍 注意力机制完整模拟")
print("=" * 65)
print(f"句子:{''.join(vocab)}")
print(f"问题:'它' 指的是什么?")
print(f"词数 = {n},向量维度 = {d}")
print()
# ──────────────────────────────────────────────
# 1. 模拟词嵌入矩阵 X(每行一个词的向量)
# ──────────────────────────────────────────────
# 实际模型中,词嵌入是训练出来的;这里为了直观,手动设计向量
# 让"猫"和"老鼠"语义相近,"它"介于两者之间
np.random.seed(42)
X = np.random.randn(n, d) * 0.5
# 手动微调,使"猫"、"老鼠"、"它"的向量更相关(方便观察结果)
X[0] = np.array([0.8, 0.3, 0.1, 0.0, 0.2, 0.1]) # 猫
X[1] = np.array([0.1, 0.5, 0.3, 0.2, 0.0, 0.0]) # 追
X[2] = np.array([0.6, 0.2, 0.2, 0.1, 0.3, 0.0]) # 老鼠
X[3] = np.array([0.0, 0.0, 0.0, 0.1, 0.0, 0.0]) # ,
X[4] = np.array([0.7, 0.3, 0.2, 0.1, 0.1, 0.1]) # 它 ← 要查询的词
X[5] = np.array([0.2, 0.0, 0.1, 0.3, 0.5, 0.0]) # 很快
X[6] = np.array([0.0, 0.0, 0.0, 0.0, 0.0, 0.1]) # 。
print("─" * 65)
print("第1步:词嵌入矩阵 X (shape: 词数 × 维度)")
print("─" * 65)
print(f"X = {n} 个词 × {d} 维向量")
for i, word in enumerate(vocab):
print(f" {word:4s} → {X[i]}")
print()
# ──────────────────────────────────────────────
# 2. 生成 Q、K、V 矩阵(通过线性变换)
# ──────────────────────────────────────────────
# 实际模型:Q = X·W_Q,K = X·W_K,V = X·W_V
# 这里简化为 W_Q=W_K=W_V=I(单位矩阵),即 Q=K=V=X
# 重点展示注意力计算本身,而非参数学习
Q = X.copy() # Query:用来"提问"
K = X.copy() # Key:用来"被匹配"
V = X.copy() # Value:用来"提取信息"
print("─" * 65)
print("第2步:Q = K = V = X(简化,实际有独立权重矩阵)")
print("─" * 65)
print("每个词同时扮演三种角色:")
print(' Q (Query) = "我关心什么?"')
print(' K (Key) = "我的标签是什么?"')
print(' V (Value) = "我提供什么信息?"')
print()
# ──────────────────────────────────────────────
# 3. 计算注意力分数 —— "它"的 Query × 所有词的 Key
# ──────────────────────────────────────────────
query_idx = 4 # "它"的索引
q = Q[query_idx] # "它"的 Query,形状 (d,)
# Score(i) = q · k_i (点积)
scores = np.dot(K, q) # 形状 (n,),每个词与"它"的相似度
print("─" * 65)
print(f"第3步:计算'它'(索引{query_idx})的 Query 与每个词的 Key 的点积")
print("─" * 65)
print(f"Score = Q['它'] · K[每个词]")
print()
for i, word in enumerate(vocab):
bar = "█" * max(1, int(abs(scores[i]) * 15))
print(f" {word:4s} → Score = {scores[i]:+.3f} {bar}")
print()
# ──────────────────────────────────────────────
# 4. Softmax 归一化 —— 把分数转为概率权重
# ──────────────────────────────────────────────
# Softmax 让所有权重 ∈ (0, 1) 且总和 = 1
def softmax(x):
"""数值稳定的 Softmax:先减最大值防止溢出"""
x_stable = x - np.max(x)
exp_x = np.exp(x_stable)
return exp_x / np.sum(exp_x)
weights = softmax(scores)
print("─" * 65)
print("第4步:Softmax 归一化 → 注意力权重(总和=1)")
print("─" * 65)
for i, word in enumerate(vocab):
pct = weights[i] * 100
bar = "█" * max(1, int(pct * 1.5))
marker = " ← 最高!" if weights[i] == weights.max() else ""
print(f" {word:4s} → 权重 = {weights[i]:.3f} ({pct:5.1f}%) {bar}{marker}")
print(f"\n 权重总和 = {weights.sum():.4f} ✓")
print()
# ──────────────────────────────────────────────
# 5. 加权求和 —— 最终的注意力输出
# ──────────────────────────────────────────────
# output = Σ(weight_i × V_i)
output = np.sum(weights[:, np.newaxis] * V, axis=0)
print("─" * 65)
print("第5步:加权求和 → 注意力输出向量")
print("─" * 65)
print("Output = Σ(权重_i × Value_i)")
print()
# 显示每个词对最终输出的贡献
for i, word in enumerate(vocab):
contribution = weights[i] * V[i]
print(f" {word:4s} {weights[i]:.3f}× V[{word}] = {contribution}")
print(f"\n {'─'*55}")
print(f" 汇总 → {output}")
print()
# ──────────────────────────────────────────────
# 6. 结果解读
# ──────────────────────────────────────────────
# 计算输出向量与每个原始词向量的余弦相似度
def cosine_sim(a, b):
return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b) + 1e-8)
print("─" * 65)
print("第6步:结果解读 —— 注意力输出最接近哪个词?")
print("─" * 65)
print("计算输出向量与每个原始词向量的余弦相似度:")
print()
sims = []
for i, word in enumerate(vocab):
sim = cosine_sim(output, X[i])
sims.append((word, sim))
sims.sort(key=lambda x: x[1], reverse=True)
for word, sim in sims:
bar = "█" * max(1, int(sim * 20))
conclusion = " ← 模型判断'它'指代这个!" if word == "猫" else ""
print(f" {word:4s} 相似度 = {sim:.4f} {bar}{conclusion}")
print()
print("=" * 65)
print("✅ 结论:注意力机制判断出 '它' 最可能指代 '猫'(相似度
# 打印每一行for i, word in enumerate(vocab): row_str = f" {word:4s} |" for j in range(n): w = full_weights[i, j] # 用不同密度的字符表示权重 if w > 0.4: block = "███" elif w > 0.25: block = "▓▓▓" elif w > 0.15: block = "▒▒▒" elif w > 0.05: block = "░░░" else: block = " " row_str += f" {block} " print(row_str)
print()print("释义:每行是一个词作为 Query 时,它对所有词的注意力分布")print("例如 '它' 这行,'猫' 列的色块最密 → '它' 最关注 '猫'")print()
# ──────────────────────────────────────────────# 8. 额外:缩放点积注意力(Scaled Dot-Product Attention)# ──────────────────────────────────────────────print("─" * 65)print("补充:为什么实际要除以 √d?")print("─" * 65)d_k = dscores_raw = np.dot(K, q)scores_scaled = scores_raw / np.sqrt(d_k)
print(f" 未缩放时分数范围: [{scores_raw.min():.2f}, {scores_raw.max():.2f}]")print(f" 除以 √{d_k} = {np.sqrt(d_k):.2f} 后: [{scores_scaled.min():.2f}, {scores_scaled.max():.2f}]")print(f" 为什么?当 d 很大时,点积值会变得很大,导致 Softmax 梯度消失")print(f" 除以 √d 让方差稳定在 1,保证训练时梯度正常流动")print()
print("🎉 模拟完成!这就是 Transformer 中每一层的核心运算。")
=================================================================🔍 注意力机制完整模拟=================================================================句子:猫追老鼠,它很快。问题:'它' 指的是什么?词数 = 7,向量维度 = 6
─────────────────────────────────────────────────────────────────第1步:词嵌入矩阵 X (shape: 词数 × 维度)─────────────────────────────────────────────────────────────────X = 7 个词 × 6 维向量 猫 → [0.8 0.3 0.1 0. 0.2 0.1] 追 → [0.1 0.5 0.3 0.2 0. 0. ] 老鼠 → [0.6 0.2 0.2 0.1 0.3 0. ] , → [0. 0. 0. 0.1 0. 0. ] 它 → [0.7 0.3 0.2 0.1 0.1 0.1] 很快 → [0.2 0. 0.1 0.3 0.5 0. ] 。 → [0. 0. 0. 0. 0. 0.1]
─────────────────────────────────────────────────────────────────第2步:Q = K = V = X(简化,实际有独立权重矩阵)─────────────────────────────────────────────────────────────────每个词同时扮演三种角色: Q (Query) = "我关心什么?" K (Key) = "我的标签是什么?" V (Value) = "我提供什么信息?"
─────────────────────────────────────────────────────────────────第3步:计算'它'(索引4)的 Query 与每个词的 Key 的点积─────────────────────────────────────────────────────────────────Score = Q['它'] · K[每个词]
猫 → Score = +0.700 ██████████ 追 → Score = +0.300 ████ 老鼠 → Score = +0.560 ████████ , → Score = +0.010 █ 它 → Score = +0.650 █████████ 很快 → Score = +0.240 ███ 。 → Score = +0.010 █
─────────────────────────────────────────────────────────────────第4步:Softmax 归一化 → 注意力权重(总和=1)───────────────────────────────────────────────────────────────── 猫 → 权重 = 0.195 ( 19.5%) █████████████████████████████ ← 最高! 追 → 权重 = 0.131 ( 13.1%) ███████████████████ 老鼠 → 权重 = 0.170 ( 17.0%) █████████████████████████ , → 权重 = 0.098 ( 9.8%) ██████████████ 它 → 权重 = 0.186 ( 18.6%) ███████████████████████████ 很快 → 权重 = 0.123 ( 12.3%) ██████████████████ 。 → 权重 = 0.098 ( 9.8%) ██████████████
权重总和 = 1.0000 ✓
─────────────────────────────────────────────────────────────────第5步:加权求和 → 注意力输出向量─────────────────────────────────────────────────────────────────Output = Σ(权重_i × Value_i)
猫 0.195 × V[猫] = [0.156 0.059 0.02 0. 0.039 0.02 ] 追 0.131 × V[追] = [0.013 0.065 0.039 0.026 0. 0. ] 老鼠 0.170 × V[老鼠] = [0.102 0.034 0.034 0.017 0.051 0. ] , 0.098 × V[,] = [0. 0. 0. 0.01 0. 0. ] 它 0.186 × V[它] = [0.13 0.056 0.037 0.019 0.019 0.019] 很快 0.123 × V[很快] = [0.025 0. 0.012 0.037 0.062 0. ] 。 0.098 × V[。] = [0. 0. 0. 0. 0. 0.01]
─────────────────────────────────────────────────────── 汇总 → [0.425 0.214 0.142 0.108 0.17 0.048]
─────────────────────────────────────────────────────────────────第6步:结果解读 —— 注意力输出最接近哪个词?─────────────────────────────────────────────────────────────────计算输出向量与每个原始词向量的余弦相似度:
老鼠 相似度 = 0.9815 ███████████████████ 它 相似度 = 0.9745 ███████████████████ 猫 相似度 = 0.9561 ███████████████████ ← 模型判断'它'指代这个! 很快 相似度 = 0.6451 ████████████ 追 相似度 = 0.6355 ████████████ , 相似度 = 0.2014 ████ 。 相似度 = 0.0889 █
=================================================================✅ 结论:注意力机制判断出 '它' 最可能指代 '猫'(相似度最高)=================================================================
─────────────────────────────────────────────────────────────────附:注意力权重矩阵(ASCII 热力图)─────────────────────────────────────────────────────────────────行 = Query 词,列 = Key 词,颜色越深 = 权重越高
猫 追 老鼠 , 它 很快 。 ───────────────────────────────────────────────── 猫 | ▒▒▒ ░░░ ▒▒▒ ░░░ ▒▒▒ ░░░ ░░░ 追 | ▒▒▒ ▒▒▒ ░░░ ░░░ ▒▒▒ ░░░ ░░░ 老鼠 | ▒▒▒ ░░░ ▒▒▒ ░░░ ▒▒▒ ░░░ ░░░ , | ░░░ ░░░ ░░░ ░░░ ░░░ ░░░ ░░░ 它 | ▒▒▒ ░░░ ▒▒▒ ░░░ ▒▒▒ ░░░ ░░░ 很快 | ▒▒▒ ░░░ ▒▒▒ ░░░ ░░░ ▒▒▒ ░░░ 。 | ░░░ ░░░ ░░░ ░░░ ░░░ ░░░ ░░░
释义:每行是一个词作为 Query 时,它对所有词的注意力分布例如 '它' 这行,'猫' 列的色块最密 → '它' 最关注 '猫'
─────────────────────────────────────────────────────────────────补充:为什么实际要除以 √d?───────────────────────────────────────────────────────────────── 未缩放时分数范围: [0.01, 0.70] 除以 √6 = 2.45 后: [0.00, 0.29] 为什么?当 d 很大时,点积值会变得很大,导致 Softmax 梯度消失 除以 √d 让方差稳定在 1,保证训练时梯度正常流动
🎉 模拟完成!这就是 Transformer 中每一层的核心运算。
六、为什么注意力机制是一场革命?
在注意力机制之前,处理文本主要靠 RNN(循环神经网络)。它的工作方式像一个"传话游戏":第一个词传给第二个词,第二个词加上自己的理解再传给第三个词……传得越远,原始信息失真越大。所以 RNN 处理长句子时,经常"忘了开头说了什么"。
注意力机制的突破在于:每个词可以直接和序列中任意位置的词建立联系。第一个词和第一千个词之间,不再需要传 999 次话——它们可以直接"对视"。

▲ 图5:RNN(传话游戏)vs 注意力(直接对视)—— 这就是 Transformer 取代 RNN 的根本原因
这带来了三个根本性提升:
解决长距离依赖:无论两个词相隔多远,都能直接"看到"对方。比如一篇 5000 字的文章,开头提到"爱因斯坦",结尾说"他改变了物理学"——注意力让模型轻松连接这两个点。
支持并行计算:RNN 必须一个字接一个字地处理(串行),而注意力机制让所有词可以同时计算(并行),训练速度可以快几十倍。
可解释性:你可以把注意力权重画成热力图,直观地看到模型在"看"什么。这在医疗诊断、金融决策等场景中至关重要——你不能信任一个"不知道为什么这样判断"的黑箱。
正是因为这些优势,Transformer 完全取代了 RNN,成为今天所有大语言模型的基石架构。ChatGPT、Claude、Gemini、Kimi——你叫得出名字的 AI,底层全是这套"注意力机制"在运转。
七、总结
让我们回到最初的咖啡厅场景——注意力机制就像在你大脑里装了一台自动"划重点"的机器。它用 Query 提出"我想知道什么",用 Key 去比对"每个东西的标签",用 Value 按比例提取内容,然后用多头机制让多个"你"同时从不同角度理解信息。
2017 年一篇论文,一个简单而优雅的思想,彻底重塑了人工智能的版图。理解它,你就掌握了当代 AI 最核心的一块拼图。下次当你对着 ChatGPT 打字时,别忘了——在服务器深处,几千个注意力头正在同步运转,帮你"划重点"呢。
最后
2026 年一晃已经过半,AI 大模型的热潮不仅没有降温,反而持续升温!
金融行业用大模型做风控、医疗依靠 AI 解析影像,电商、制造、教育各行各业,都在把 AI 融入日常业务。曾经热闹的 “百模大战”,早就告别单纯比拼模型参数,正式进入落地应用时代。
现在企业疯狂紧缺一类人才:懂业务、懂 AI、能做出可上线项目的大模型开发工程师,岗位缺口大,薪资待遇十分可观。

风口再好,不如手握高薪 offer 实在。行情火热,普通人、程序员该怎样从零入门大模型,抓住这波机会?
今天整理好【2026 最新版】AI 大模型全套免费学习资源,覆盖零基础入门、项目实战、理论知识、大厂面试,从基础一路进阶。所有资料分类归档,没有多余杂料,无套路免费分享给想要入局 AI 赛道的程序员与零基础小白!
👇👇扫码免费领取全部内容👇👇

1、大模型系统化完整学习路线

2、大模型经典书籍&文档

3、AI 大模型最新行业研究报告

4、企业级实战项目 + 完整配套源码

5、大厂大模型面试真题汇总

6、这些资料真的有用吗?
这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理,现任上海殷泊信息科技CEO,其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证,服务航天科工、国家电网等1000+企业,以第一作者在IEEE Transactions发表论文50+篇,获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。
资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的技术人员,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。


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

9809



被折叠的 条评论
为什么被折叠?



