大模型面试高频题:Transformer、MoE、RLHF、DPO 核心原理拆解

一、前言:大模型面试,究竟在考什么?

如果你正在准备大模型算法工程师、LLM 应用开发工程师或 AI 相关岗位的面试,那么 Transformer、MoE、RLHF 和 DPO 这四个知识点基本绕不开。

很多同学学习大模型时,往往停留在会调用 API、会运行模型、会使用微调框架的阶段。但在技术面试中,面试官更关心的是:

  • Transformer 为什么使用 Attention?为什么要除以 √dₖ?

  • MoE 为什么能够增加模型参数量,却不必同比增加每个 Token 的计算量?

  • RLHF 为什么需要奖励模型?PPO 在其中发挥什么作用?

  • DPO 不需要单独训练奖励模型吗?它与 RLHF 究竟是什么关系?

本文按照「核心思想 → 原理拆解 → 公式理解 → 代码实战 → 面试问答」的顺序,带你系统梳理这四大技术。

二、Transformer:大模型的核心架构

2.1 Transformer 整体架构

Transformer 最初由论文《Attention Is All You Need》提出。与传统循环神经网络不同,Transformer 使用注意力机制建模序列中不同位置之间的关系,能够并行处理序列中的多个 Token。

一个典型的 Decoder-only Transformer 大致由以下部分构成:

复制代码
输入文本
   ↓
Tokenizer 分词
   ↓
Token Embedding + Position Information
   ↓
┌─────────────────────────┐
│     Transformer Block   │
│                         │
│  Causal Self-Attention   │
│            ↓            │
│      Add & Norm         │
│            ↓            │
│   Feed-Forward Network  │
│            ↓            │
│      Add & Norm         │
└─────────────────────────┘
   ↓
重复 N 层
   ↓
LM Head
   ↓
预测下一个 Token

需要注意:现代大语言模型通常采用 Decoder-only 架构,但并非所有 Transformer 模型都如此。Encoder-only 模型常用于理解任务,Encoder-Decoder 模型则常用于序列到序列任务。

2.2 Self-Attention 的核心原理

Self-Attention 的作用是让每个 Token 根据上下文,动态计算其他 Token 对自身的重要程度。

例如:

我把苹果放进冰箱,因为它需要保鲜。

模型需要结合上下文判断"它"指代什么。注意力机制可以为不同位置的信息分配不同权重,从而帮助模型构建上下文表示。

其核心计算公式为:

Attention(Q,K,V)= Softmax\\left(\\frac{QK\^T}{\\sqrt{d_k}}+M\\right)V

其中:

  • (Q):Query,表示当前 Token 想查询什么信息。

  • (K):Key,表示每个 Token 提供什么匹配信息。

  • (V):Value,表示实际需要聚合的内容。

  • (d_k):Key 向量的维度。

  • (M):注意力掩码。在因果注意力中,未来位置会被屏蔽。

为什么要除以 √dₖ?

假设 Query 和 Key 的各维度相互独立,且均值为 0、方差为 1,那么点积 (QK^T) 的方差会随着维度 (d_k) 增长。

如果直接将较大的点积输入 Softmax,输出可能变得过于尖锐,导致梯度变小、训练不稳定。

除以 (\sqrt{d_k}),可以在上述假设下将点积的方差缩放到约 1,从而改善训练稳定性。

这是大模型面试中非常经典的一道题。

2.3 Multi-Head Attention 为什么有效?

单个注意力头只能通过一组投影矩阵学习一种注意力模式。多头注意力将特征投影到多个子空间,让不同注意力头学习不同类型的关系。

复制代码
输入 X
  ↓
线性映射
  ↓
┌────────┬────────┬────────┐
│ Head 1 │ Head 2 │ Head 3 │
└────────┴────────┴────────┘
  ↓        ↓        ↓
  └────────┼────────┘
           ↓
        拼接 Concat
           ↓
       输出投影 Wₒ
           ↓
         输出

标准多头注意力可写为:

MultiHead(Q,K,V)= Concat(head_1,\\ldots,head_h)W_O

其中:

head_i=Attention(QW_i\^Q,KW_i\^K,VW_i\^V)

需要注意,多头注意力并不是简单地把同一份注意力结果重复多次,而是通过不同的可学习投影,让各个头形成不同的表示。

2.4 为什么大语言模型需要 Causal Mask?

大语言模型通常通过预测下一个 Token 进行自回归训练。

例如,输入:

复制代码
今天 天气 很

模型学习预测下一个 Token,例如"好"。

训练时不能让前面的位置直接看到未来 Token,否则模型会通过答案泄漏获得不合理的信息。

因果掩码的示意如下:

复制代码
        Token 1  Token 2  Token 3
Token 1    ✓        ×        ×
Token 2    ✓        ✓        ×
Token 3    ✓        ✓        ✓

其中,✓ 表示允许关注,× 表示禁止关注。

这也解释了为什么训练阶段可以并行计算多个位置的预测,而生成阶段通常仍需要按照 Token 顺序逐步生成。

2.5 Transformer 高频面试题

问题 1:Attention 为什么要除以 √dₖ?

参考答案:随着向量维度增加,Query 和 Key 的点积方差通常会增大,使 Softmax 输出过于尖锐,影响梯度传播。缩放因子用于稳定点积的数值范围。

问题 2:Transformer 为什么比传统 RNN 更适合并行训练?

参考答案:RNN 的隐藏状态依赖前一时刻的计算,存在明显的时间步依赖;Transformer 在训练时可以并行计算序列各位置的注意力和前馈网络。不过,标准全注意力的计算与存储成本会随序列长度呈平方级增长。

问题 3:Transformer 的主要计算瓶颈是什么?

参考答案:对于标准全注意力,注意力矩阵的计算和存储随序列长度 (L) 以 (O(L^2)) 增长;模型中的线性投影和前馈网络也可能占据大量计算。实际瓶颈取决于序列长度、隐藏维度、硬件和实现方式。

问题 4:为什么大模型普遍使用 LayerNorm 或 RMSNorm?

参考答案:归一化能够改善激活值的数值分布,帮助稳定深层网络训练。RMSNorm 省去了均值中心化步骤,计算相对简单,因此被许多现代大模型采用。

三、MoE:为什么参数更多,计算量却不一定同比增加?

3.1 什么是 MoE?

MoE,全称 Mixture of Experts,即混合专家模型。

传统稠密模型中,每个 Token 通常都会经过相同的前馈网络;MoE 则将前馈网络拆分为多个专家网络,并通过路由器选择其中少数专家处理当前 Token。

它的核心思想是:

让模型拥有更多参数,但让每个 Token 只激活其中一部分参数。

典型结构如下:

复制代码
输入 Token
    ↓
  Router
    ↓
┌─────┬─────┬─────┬─────┐
│专家1│专家2│专家3│专家4│
└─────┴─────┴─────┴─────┘
    ↑             ↑
   被选中的少数专家
    ↓
  加权合并输出

在常见的 Top-k 路由方案中,Router 会为每个 Token 计算专家分数,再选择得分最高的 k 个专家。

3.2 MoE 的核心计算流程

假设模型有 8 个专家,每个 Token 只选择其中 2 个专家。

路由器首先计算:

p(x)=Softmax(W_rx)

其中,(x) 是 Token 的隐藏状态,(W_r) 是路由器参数,(p(x)) 表示各专家的路由分数。

然后选择 Top-k 专家:

\\mathcal{S}(x)=TopK(p(x),k)

最终将被选中专家的输出进行加权组合:

y=\\sum_{i\\in\\mathcal{S}(x)}g_i(x)E_i(x)

其中:

  • (E_i(x)):第 i 个专家的输出。

  • (g_i(x)):对应专家的路由权重。

  • (\mathcal{S}(x)):被选中的专家集合。

实际模型还可能采用专家容量限制、路由归一化、共享专家等设计,具体实现因模型而异。

3.3 MoE 为什么能够节省计算?

假设有 8 个专家,每个专家的参数量为 1B。

  • 所有专家参数总量:8B。

  • 每个 Token 激活 2 个专家。

  • 被激活的专家参数量约为 2B。

这意味着,专家部分的每 Token 计算量不必与全部专家参数量同比增长。

但必须注意两个区别:

  1. 总参数量不等于激活参数量。 模型权重仍需要存储或以其他方式访问。

  2. MoE 不一定比稠密模型更快。 专家分发、跨设备通信、负载不均衡等开销,可能抵消部分计算优势。

MoE 的价值在于提供更灵活的模型容量与计算预算权衡,而不是无条件降低所有成本。

3.4 为什么 MoE 需要负载均衡?

如果路由器总是将大量 Token 分配给少数专家,就可能出现:

  • 部分专家过载,其他专家利用率很低。

  • 专家间负载不均衡,影响训练效率。

  • 分布式训练中的通信和吞吐量受到影响。

因此,MoE 训练通常会采用负载均衡辅助损失,鼓励专家获得相对合理的 Token 分配。

常见设计会结合专家被分配的 Token 比例与路由概率等统计量,但具体公式取决于模型实现。

3.5 MoE 高频面试题

问题 1:MoE 和稠密模型有什么区别?

参考答案:稠密模型通常会让每个 Token 经过完整的前馈网络;MoE 通过路由机制只激活少数专家,在增加总参数容量的同时,控制每个 Token 的部分计算成本。

问题 2:MoE 的激活参数越少越好吗?

参考答案:不一定。激活专家数量减少可能降低计算成本,但也可能限制模型的有效表达能力。需要结合模型质量、专家规模、路由策略和硬件效率综合评估。

问题 3:MoE 为什么会产生通信开销?

参考答案:在分布式训练中,不同专家可能部署在不同设备上。Token 需要被发送到对应专家,再将结果传回原位置,这会产生数据交换与同步成本。

问题 4:MoE 是不是完全替代稠密模型?

参考答案:不是。MoE 在模型容量与激活计算之间提供了新的权衡,但会增加系统复杂度。稠密模型仍然适用于许多训练和部署场景。

四、RLHF:如何让大模型更符合人类偏好?

4.1 什么是 RLHF?

RLHF,全称 Reinforcement Learning from Human Feedback,即基于人类反馈的强化学习。

预训练模型主要学习从数据中预测下一个 Token,但预测能力强并不意味着模型一定能够遵循指令、回答得有帮助或避免不恰当的输出。

RLHF 的目标是利用人类偏好信号,进一步调整模型行为。

经典的 RLHF 流程通常包括三个阶段:

复制代码
阶段一:监督微调 SFT
人类示范答案
      ↓
训练指令模型
      ↓
得到 SFT Model

阶段二:训练奖励模型 RM
同一问题生成多个回答
      ↓
人类对回答进行偏好排序
      ↓
训练 Reward Model

阶段三:强化学习优化
SFT Model 生成回答
      ↓
Reward Model 评分
      ↓
PPO 等强化学习算法优化策略
      ↓
得到偏好对齐模型

需要注意:RLHF 是一类方法,而不是单一算法。上面的流程是经典的基于奖励模型和 PPO 的实现路线。

4.2 为什么需要 SFT?

SFT,即 Supervised Fine-Tuning,监督微调。

预训练模型已经学习了大量语言模式,但未必擅长按照指定格式完成任务。

SFT 使用高质量的指令与示范答案训练模型,使其学习如何理解指令、组织回答并完成目标任务。

例如:

复制代码
用户:解释什么是 RAG。

示范回答:
RAG 是检索增强生成技术。
它先从外部知识库检索相关内容,
再将检索结果提供给大模型生成答案。

通过大量这样的示范数据,模型逐渐学会按照指令输出有用内容。

4.3 奖励模型 RM 的作用

奖励模型用于判断回答在某个偏好标准下是否更好。

例如,给定同一个问题:

  • 回答 A:准确、清晰、遵循指令。

  • 回答 B:存在事实错误,且没有回答核心问题。

人类标注者可能更偏好回答 A。训练奖励模型时,可以使用成对偏好数据,让模型学习为更受偏好的回答分配更高分数。

一种常见的 Bradley--Terry 风格奖励模型目标是:

\\mathcal{L}*{RM}= -\\log \\sigma(r* \\phi(x,y_w)-r_\\phi(x,y_l))

其中:

  • (x):输入提示。

  • (y_w):被偏好的回答。

  • (y_l):较不受偏好的回答。

  • (r_\phi):奖励模型输出的分数。

  • (\sigma):Sigmoid 函数。

直观理解:模型需要让优选回答的奖励分数高于较差回答。

4.4 PPO 在 RLHF 中做什么?

PPO,全称 Proximal Policy Optimization,是一种强化学习策略优化算法。

在经典 RLHF 中,语言模型被视为策略模型,根据当前策略生成回答。奖励模型提供偏好评分,PPO 则用于更新策略,使模型更倾向于生成高奖励回答。

但如果只追求奖励分数,模型可能偏离原本的语言分布,甚至利用奖励模型的漏洞生成投机答案。

因此,经典 RLHF 还会使用参考模型与 KL 惩罚等机制,限制策略模型偏离参考策略的程度。

一种示意性目标为:

\\max_\\pi \\mathbb{E}*{y\\sim\\pi(\\cdot\|x)} \\left\[r* \\phi(x,y) -\\beta D_{KL}(\\pi\|\\pi_{ref})\\right

]

这里的 KL 项约束当前策略与参考策略之间的分布差异。实际 PPO 实现还涉及优势估计、价值函数、裁剪目标等细节。

4.5 RLHF 高频面试题

问题 1:为什么预训练模型还需要 RLHF?

参考答案:预训练主要优化语言建模目标,而人类更关注回答是否有帮助、是否符合指令、是否安全。RLHF 利用人类偏好信号,进一步优化模型的行为。

问题 2:奖励模型是如何训练的?

参考答案:通常收集同一提示下多个回答的人类偏好比较数据,使用成对排序损失训练奖励模型,使偏好回答的分数高于非偏好回答。

问题 3:为什么 RLHF 中要加入 KL 惩罚?

参考答案:防止策略模型为了追求高奖励而过度偏离参考模型,降低语言质量退化和奖励投机的风险。KL 惩罚的强度需要根据任务和训练稳定性进行调整。

问题 4:PPO 和奖励模型是什么关系?

参考答案:奖励模型提供评分信号,PPO 使用该信号优化语言模型策略。奖励模型负责评价,PPO 负责策略更新,两者不是同一个模块。

五、DPO:不训练独立奖励模型,也能进行偏好优化?

5.1 什么是 DPO?

DPO,全称 Direct Preference Optimization,即直接偏好优化。

DPO 的核心思路是:利用偏好数据,直接优化语言模型,使其提高对偏好回答的相对概率,而降低对非偏好回答的相对概率。

与经典的 RLHF + PPO 流程相比,DPO 可以绕过单独训练奖励模型并执行在线强化学习的步骤,使用相对简单的偏好学习目标训练模型。

但这不代表 DPO 不涉及任何奖励建模思想。DPO 的理论推导利用了 KL 约束下的最优策略形式,将隐式奖励与策略概率联系起来。

5.2 DPO 的训练数据是什么?

DPO 通常使用偏好对数据:

复制代码
{
  "prompt": "什么是 Transformer?",
  "chosen": "Transformer 是基于注意力机制的神经网络架构。",
  "rejected": "Transformer 只是一种数据库查询工具。"
}

其中:

  • prompt:用户输入或任务指令。

  • chosen:更受偏好的回答。

  • rejected:不太受偏好的回答。

模型训练的目标不是单纯让 chosen 的概率变大,而是让 chosen 相对于 rejected 的概率优势更符合偏好信号,并通过参考模型约束优化幅度。

5.3 DPO 的核心公式

DPO 的常见损失函数为:

\\begin{aligned} \\mathcal{L}*{DPO}=-\\mathbb{E}\\bigg\[ \\log\\sigma\\bigg(\\beta\\bigg( \&\\log\\frac{\\pi* \\theta(y_w\|x)} {\\pi_{ref}(y_w\|x)}\\ -\&\\log\\frac{\\pi_\\theta(y_l\|x)} {\\pi_{ref}(y_l\|x)} \\bigg)\\bigg)\\bigg

\end{aligned}

]

其中:

  • (\pi_\theta):正在训练的策略模型。

  • (\pi_{ref}):固定的参考模型。

  • (y_w):偏好回答。

  • (y_l):非偏好回答。

  • (\beta):控制相对参考模型偏离程度的温度或缩放参数。

可以把这个公式理解为三个步骤:

  1. 计算模型对 chosen 和 rejected 的回答对数概率。

  2. 分别减去参考模型对应回答的对数概率,衡量相对参考模型的变化。

  3. 使用 Sigmoid 和负对数目标,让偏好回答的相对优势更大。

这里的回答概率通常是自回归语言模型对回答 Token 的条件概率乘积,对应的对数概率则是各 Token 对数概率之和。实际训练中要正确处理提示与回答的 Token 边界和损失掩码。

5.4 DPO 和 RLHF 有什么区别?

对比维度 经典 RLHF + PPO DPO
偏好数据 通常需要 通常需要
独立奖励模型 经典流程需要 标准流程不需要
强化学习策略更新 使用 PPO 等算法 直接使用偏好损失
训练复杂度 通常较高 通常较低
参考模型 常用于约束策略 标准目标中通常使用
在线采样 经典流程常涉及 常规 DPO 可使用离线偏好数据
主要挑战 奖励建模、训练稳定性、采样成本 偏好数据质量、分布外泛化、优化稳定性

需要强调,DPO 并不保证在所有任务上效果优于 PPO。最终表现取决于偏好数据、基础模型、训练配置和评测标准。

5.5 DPO 高频面试题

问题 1:DPO 为什么不需要单独训练奖励模型?

参考答案:DPO 利用 KL 约束强化学习目标下的最优策略形式,将隐式奖励与策略相对参考模型的概率比联系起来,进而直接从偏好对构建可优化的损失函数。

问题 2:DPO 中为什么需要参考模型?

参考答案:参考模型提供基准概率分布,帮助衡量当前模型相对原始策略的变化。它也与 KL 约束下的理论推导有关,能在一定程度上抑制模型过度偏离参考策略。

问题 3:DPO 中的 β 是什么?

参考答案:β 控制损失中相对参考模型的概率差异的缩放。在常见参数化下,β 会影响优化对偏好差异的响应程度以及模型相对参考模型的偏离。具体效果还取决于损失实现和训练配置。

问题 4:DPO 是不是完全不需要强化学习?

参考答案:DPO 通常不需要像 PPO 那样显式执行强化学习策略更新,但其目标来自带 KL 约束的奖励优化理论。因此更准确的说法是:DPO 采用直接偏好优化方式,绕过经典 PPO 训练流程。

六、代码实战:使用 Transformers 实现简单的注意力计算

理解原理后,建议至少能够手写一个简化的注意力模块。下面使用 PyTorch 实现缩放点积注意力,帮助理解 Q、K、V、Softmax 和因果掩码之间的关系。

复制代码
import math
import torch
import torch.nn.functional as F


def scaled_dot_product_attention(q, k, v, causal=False):
    """
    q: [batch, heads, seq_len, head_dim]
    k: [batch, heads, seq_len, head_dim]
    v: [batch, heads, seq_len, head_dim]
    """
    head_dim = q.size(-1)

    # 1. 计算注意力分数
    scores = torch.matmul(q, k.transpose(-2, -1))
    scores = scores / math.sqrt(head_dim)

    # 2. 添加因果掩码,禁止关注未来位置
    if causal:
        seq_len = q.size(-2)
        mask = torch.triu(
            torch.ones(
                seq_len, seq_len,
                device=q.device,
                dtype=torch.bool
            ),
            diagonal=1
        )
        scores = scores.masked_fill(mask, float("-inf"))

    # 3. Softmax 得到注意力权重
    weights = F.softmax(scores, dim=-1)

    # 4. 加权聚合 Value
    output = torch.matmul(weights, v)

    return output, weights


if __name__ == "__main__":
    batch_size = 2
    heads = 4
    seq_len = 8
    head_dim = 16

    q = torch.randn(batch_size, heads, seq_len, head_dim)
    k = torch.randn(batch_size, heads, seq_len, head_dim)
    v = torch.randn(batch_size, heads, seq_len, head_dim)

    output, weights = scaled_dot_product_attention(
        q, k, v, causal=True
    )

    print("输出形状:", output.shape)
    print("注意力权重形状:", weights.shape)

预期输出:

复制代码
输出形状: torch.Size([2, 4, 8, 16])
注意力权重形状: torch.Size([2, 4, 8, 8])

这段代码展示了核心计算过程,尚未包含完整 Transformer 的线性投影、残差连接、归一化、前馈网络、Dropout 和高效注意力内核。

进一步实战时,可以尝试:

  1. 将因果注意力改成双向注意力。

  2. 可视化注意力权重矩阵。

  3. 实现多头注意力中的 Q、K、V 线性映射。

  4. 在小型语言模型中接入该模块,完成下一个 Token 预测任务。

七、四大知识点的对比与串联

Transformer、MoE、RLHF、DPO 并不是四种互相替代的技术,它们解决的是不同层面的问题。

技术 核心问题 关键机制 典型关键词
Transformer 如何建模上下文、生成 Token Self-Attention、FFN QKV、Mask、Multi-Head
MoE 如何增加模型容量并控制激活计算 Router、Expert、Top-k 稀疏激活、负载均衡
RLHF 如何利用人类反馈优化模型行为 偏好数据、奖励模型、PPO Reward Model、KL、Advantage
DPO 如何直接从偏好对优化模型 策略概率比、偏好损失 Chosen、Rejected、Reference Model

可以用一句话记住它们的关系:

  • Transformer:决定模型如何处理上下文。

  • MoE:决定模型如何稀疏地激活不同专家。

  • RLHF:通过人类偏好信号与强化学习优化模型行为。

  • DPO:通过偏好数据直接优化策略模型。

一个实际的大模型系统可以采用 Transformer 作为主体架构,也可以在部分前馈网络中使用 MoE;模型完成预训练后,还可以通过 SFT、RLHF 或 DPO 等方法进行后训练。

八、面试前必须掌握的 12 个问题

建议先独立回答下面这些问题,再对照正文查漏补缺。

  1. Self-Attention 的 Q、K、V 分别是什么?

  2. Attention 为什么要除以 √dₖ?

  3. Multi-Head Attention 与单头注意力有什么区别?

  4. Causal Mask 为什么不能让模型看到未来 Token?

  5. Transformer 的计算复杂度为什么会受到序列长度影响?

  6. MoE 中 Router 的作用是什么?

  7. MoE 为什么存在负载不均衡问题?

  8. 激活参数量与总参数量有什么区别?

  9. RLHF 为什么通常先进行 SFT?

  10. 奖励模型如何使用偏好比较数据训练?

  11. PPO 与奖励模型各自承担什么职责?

  12. DPO 为什么可以不训练独立奖励模型?参考模型和 β 又有什么作用?

准备面试时,不要只背诵定义。最好能够做到三个层次:先用通俗语言解释概念,再写出关键公式,最后结合一个实际场景说明设计原因与潜在问题。

九、总结:如何高效准备大模型面试?

如果你的目标是大模型算法岗,可以按照下面的顺序复习:

第一阶段:掌握 Transformer 的 Attention、位置编码、Norm、残差连接和训练目标。

第二阶段:理解 MoE 的路由策略、稀疏激活、负载均衡和分布式通信。

第三阶段:掌握 SFT、奖励模型、PPO、KL 约束与 RLHF 的完整流程。

第四阶段:推导 DPO 的核心损失,理解偏好数据、参考模型和超参数之间的关系。

第五阶段:通过 PyTorch 实现注意力模块,阅读一个开源模型的模型结构代码,并尝试使用真实偏好数据完成小规模实验。

最后提醒:大模型面试真正考察的不是你记住了多少术语,而是你能否讲清楚原理、公式背后的动机、工程上的权衡,以及方法的适用边界。

把这四个知识点串联起来,你就能从单纯的概念记忆,逐步过渡到对大模型架构、训练和对齐方法的系统理解。

相关推荐
m4Rk_1 小时前
【论文阅读】Agent记忆机制(114):MemoryTax——当 Agent 能自主搜索历史,专门的记忆系统还划算吗?
论文阅读·人工智能·学习·开源·github
小七-七牛开发者1 小时前
Agent 支线知识:Personal Agent 如何理解个人意图?
ai·agent·ai智能体·长期记忆·personalagent
用户69371750013841 小时前
同事相信 AI 给出的方案,我却不敢直接照做
人工智能
深圳市益普科技有限公司1 小时前
半导体SPC 控制图怎么选:四类图种与八条判异准则的取舍
人工智能
hiahiahia1231 小时前
Structured Output
前端·人工智能
2367.1 小时前
AI视频怎么统一片头、字幕、转场和品牌风格:后编辑包装全流程指南
人工智能
AI小百科1 小时前
MoE 架构:为什么大模型开始“分组干活“
人工智能
马剑威(威哥爱编程)1 小时前
【HarmonyOS 7 小艺智能体实战】06:VibeCoding 十分钟搓出一个 Skill(上)——从想法到生成
人工智能·华为·harmonyos
骇客野人1 小时前
从大模型对话聊天都人工智能智能体干活到如今的AI编程的思考以及未来发展趋势展望
人工智能·ai编程