八股文 / 华为 AI
华为八股文高频题 - AI 方向
持续更新中。来源:2026 暑期实习 + 秋招真实面经。
深度学习基础
Q1:CNN 与全连接相比有什么改进?
来源:26暑期实习-AI-技术面
核心改进:
- 局部连接(Local Connectivity):全连接层每个神经元与前一层所有神经元相连,参数量 $O(n^2)$。CNN 的卷积核只看局部区域(如 $3 \times 3$),参数量大幅下降。
- 权值共享(Weight Sharing):同一个卷积核在整张图上滑动,所有位置共享同一组参数。一个 $3 \times 3$ 的核只有 9 个参数,不随输入大小增长。
- 平移不变性(Translation Invariance):权值共享使得无论目标出现在图片的哪个位置,CNN 都能用相同的特征检测器识别,天然适合图像任务。
- 层次化特征提取:通过多层卷积 + 池化,低层提取边缘/纹理,高层提取语义特征,形成从局部到全局的特征金字塔。
一句话总结:CNN 用局部连接和权值共享替代全连接,在保留空间结构信息的同时将参数量降低了几个数量级。
Q2:激活函数有哪些类型?各自的作用是什么?
来源:26暑期实习-AI-技术面
| 激活函数 | 公式 | 优点 | 缺点 |
|---|---|---|---|
| Sigmoid | $\sigma(x) = \frac{1}{1+e^{-x}}$ | 输出 (0,1) 可做概率 | 梯度消失;输出非零中心 |
| Tanh | $\tanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}}$ | 输出 (-1,1) 零中心 | 仍有梯度消失 |
| ReLU | $\max(0, x)$ | 计算快;缓解梯度消失 | 负区间梯度为 0(Dead ReLU) |
| Leaky ReLU | $\max(\alpha x, x)$,$\alpha$ 通常 0.01 | 解决 Dead ReLU | 多一个超参数 |
| GELU | $x \cdot \Phi(x)$ | Transformer 标配;平滑 | 计算稍慢 |
| Softmax | $\frac{e^{x_i}}{\sum e^{x_j}}$ | 多分类输出概率分布 | 只用于输出层 |
激活函数的作用:引入非线性。没有激活函数,多层网络等价于一个线性变换,无法拟合复杂函数。
面试加分点:提到 GELU 是 Transformer(BERT/GPT)的默认选择,以及 Swish($x \cdot \sigma(x)$)在 EfficientNet 中的应用。
Q3:什么是过拟合和欠拟合?防止过拟合的方法有哪些?
来源:26暑期实习-AI-技术面
过拟合(Overfitting):模型在训练集上表现好、在测试集上表现差。本质是模型复杂度过高,记住了训练数据的噪声。
欠拟合(Underfitting):模型在训练集和测试集上都表现差。本质是模型复杂度不够,无法捕捉数据的真实模式。
防止过拟合的方法:
| 方法 | 原理 |
|---|---|
| 增大数据量 / 数据增强 | 更多数据 → 噪声被平均掉 |
| L1 / L2 正则化 | 限制权重大小,降低模型复杂度 |
| Dropout | 训练时随机丢弃神经元,防止共适应 |
| Early Stopping | 验证集指标不再提升时停止训练 |
| Batch Normalization | 稳定训练过程,有轻微正则效果 |
| 减小模型容量 | 减少层数/参数量 |
| 交叉验证 | 更可靠地评估泛化能力 |
Q4:L1 正则和 L2 正则的区别?
来源:26暑期实习-AI-技术面
| 对比维度 | L1 正则(Lasso) | L2 正则(Ridge) |
|---|---|---|
| 惩罚项 | $\lambda \sum \lvert w_i \rvert$ | $\lambda \sum w_i^2$ |
| 权重效果 | 倾向于产生稀疏权重(很多 $w_i = 0$) | 倾向于产生小而均匀的权重 |
| 几何直觉 | 约束区域是菱形,顶点在坐标轴上,解容易落在轴上(稀疏) | 约束区域是圆形,解均匀缩小 |
| 应用场景 | 特征选择(自动丢弃不重要特征) | 防止过拟合,保留所有特征 |
| 求解 | 不可导($w=0$ 处),需次梯度 | 处处可导,有解析解 |
一句话总结:L1 做特征选择(产生稀疏解),L2 做权重衰减(权重整体缩小)。实际中常用 Elastic Net 结合两者。
机器学习基础
待补充 — 后续面经录入后更新
Q5:非结构化数据的数据库如何提高检索效率?
来源:26暑期实习-AI-技术面
非结构化数据(文本、图片、音频等)无法用传统 SQL 索引直接检索,核心思路是将非结构化数据转化为可索引的结构化表示。
主流技术方案:
| 技术 | 原理 | 适用场景 |
|---|---|---|
| 向量数据库 + Embedding | 用模型(BERT/CLIP等)将数据编码为向量,通过 ANN(近似最近邻)检索 | 语义搜索、图片检索、RAG |
| 倒排索引 | 对文本分词建立 token → 文档映射(Elasticsearch) | 关键词搜索、全文检索 |
| 向量索引算法 | HNSW、IVF-PQ、ScaNN 等,在精度和速度间权衡 | 大规模向量检索 |
| 混合检索 | 关键词检索(BM25)+ 向量检索,融合排序 | RAG 系统中最常用 |
| 元数据索引 | 对非结构化数据的结构化属性(时间、标签、类型)建 B+ 树索引 | 过滤 + 检索结合 |
面试加分点:提到 FAISS、Milvus、Pinecone 等向量数据库的实际应用,以及 RAG(检索增强生成)中先检索再生成的范式。
Q6:讲一下对神经网络和大模型的了解
来源:26暑期实习-AI-技术面
这是一道开放题,建议按”基础 → 架构 → 大模型”分层回答:
神经网络基础:
- 由输入层、隐藏层、输出层组成,每层通过线性变换 + 非线性激活拟合复杂函数
- 通过反向传播(BP)计算梯度,用梯度下降优化损失函数
- 经典架构:CNN(图像)、RNN/LSTM(序列)、Transformer(通用)
Transformer 架构:
- Self-Attention 机制:$\text{Attention}(Q,K,V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V$
- 多头注意力:并行多组 QKV,捕捉不同子空间的关系
- 位置编码解决序列顺序问题
- 完全并行化,训练效率远超 RNN
大模型(LLM):
- 基于 Transformer Decoder 的自回归语言模型(GPT 系列)
- 预训练(大规模语料无监督学习)+ 微调(SFT/RLHF)两阶段训练
- 关键技术:LoRA(高效微调)、量化(INT8/INT4 推理加速)、RAG(检索增强生成)、Prompt Engineering
- 涌现能力(Emergent Abilities):模型足够大后出现的推理、思维链等能力
面试建议:结合自己项目经历谈,比如”我在项目中用了 RAG 架构做知识问答”比泛泛而谈更有说服力。
Transformer & 大模型
Q7:Transformer 的基本架构是什么?
来源:26暑期实习-AI Infra-技术面
整体结构:Encoder-Decoder 架构(原始论文),现代 LLM 多用 Decoder-Only(GPT)或 Encoder-Only(BERT)。
Encoder 组成(N 层堆叠,原文 N=6):
输入 Embedding + 位置编码
→ Multi-Head Self-Attention
→ Add & LayerNorm(残差连接)
→ Feed-Forward Network(两层全连接,中间 ReLU/GELU)
→ Add & LayerNorm
Decoder 组成(N 层堆叠):
输出 Embedding + 位置编码
→ Masked Multi-Head Self-Attention(防止看到未来 token)
→ Add & LayerNorm
→ Cross-Attention(Q 来自 Decoder,K/V 来自 Encoder)
→ Add & LayerNorm
→ Feed-Forward Network
→ Add & LayerNorm
核心组件详解:
| 组件 | 作用 |
|---|---|
| Self-Attention | $\text{Attention}(Q,K,V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V$,捕捉序列内任意两个位置的依赖 |
| Multi-Head | 将 QKV 分成 $h$ 组并行计算,拼接后线性变换,捕捉不同子空间的关系 |
| 位置编码 | 正弦/余弦函数注入位置信息(Transformer 本身没有序列顺序概念) |
| LayerNorm | 对每个样本的隐藏维度归一化,稳定训练 |
| 残差连接 | 缓解深层网络梯度消失 |
| FFN | 两层全连接(升维 → 激活 → 降维),提供非线性变换能力 |
面试加分点:
- 为什么除以 $\sqrt{d_k}$?防止点积过大导致 softmax 梯度消失
- Self-Attention 复杂度 $O(n^2 d)$,这是长序列的瓶颈,催生了 FlashAttention、稀疏注意力等优化
- BERT 用 Encoder(双向理解),GPT 用 Decoder(自回归生成)
Q8:对 AI 最新发展有什么认识?用没用过 AI Coding?
来源:26暑期实习-AI Infra-主管面
这是开放题,建议抓 2~3 个热点深入聊,而不是面面俱到:
AI 最新发展(2025~2026 热点):
| 方向 | 关键进展 |
|---|---|
| 推理模型 | OpenAI o1/o3、DeepSeek-R1,通过思维链(CoT)在数学/代码任务上大幅提升 |
| 多模态 | GPT-4o、Gemini 等原生多模态模型,文本/图像/音频/视频统一处理 |
| Agent | 基于 LLM 的自主智能体,能调用工具、规划任务、自我反思 |
| 端侧部署 | 量化(INT4/INT8)、蒸馏、剪枝让大模型跑在手机/边缘设备上 |
| 长上下文 | 128K~1M token 上下文窗口,RAG 与长上下文的融合使用 |
AI Coding 工具认识:
- GitHub Copilot / Cursor / Claude Code:代码补全、重构、Bug 修复
- 实际体验:提升重复性代码效率明显,但核心架构设计和复杂逻辑仍需人判断
- 华为视角:AI Coding 是华为 AI Infra 的重要方向,可以关联到岗位本身
模型训练 & 架构
Q9:请解释一下卷积和池化操作
来源:华为AI必背60题(中频)
卷积操作(Convolution):
卷积的本质是用一个小的权重矩阵(卷积核/滤波器)在输入特征图上滑动,每个位置做逐元素相乘再求和,输出一个标量值。
\[\text{output}(i,j) = \sum_{m}\sum_{n} \text{input}(i+m, j+n) \cdot \text{kernel}(m,n) + \text{bias}\]关键参数:
| 参数 | 含义 | 常见值 |
|---|---|---|
| kernel_size | 卷积核大小 | $3 \times 3$(最常用) |
| stride | 滑动步长 | 1 或 2 |
| padding | 边缘填充 | same(保持尺寸)/ valid(不填充) |
| dilation | 空洞率 | 1(标准)或 2+(空洞卷积) |
输出尺寸公式:$H_{out} = \lfloor \frac{H_{in} + 2P - K}{S} \rfloor + 1$
池化操作(Pooling):
池化是对局部区域做降采样,减小特征图尺寸,降低计算量,同时增强平移不变性。
| 类型 | 操作 | 特点 |
|---|---|---|
| 最大池化(Max Pooling) | 取局部区域最大值 | 保留最显著特征,最常用 |
| 平均池化(Average Pooling) | 取局部区域平均值 | 保留整体信息 |
| 全局平均池化(GAP) | 对整个特征图取平均 | 替代全连接层,ResNet/EfficientNet 常用 |
卷积 vs 池化的区别:卷积有可学习参数(权重),池化没有参数。卷积做特征提取,池化做降维。
Q10:讲讲你对大模型训练流程的了解,比如预训练数据集和微调数据集如何设计?
来源:华为AI必背60题(高频,近两年常问)
大模型训练的三个阶段:
阶段一:预训练(Pre-training)
| 维度 | 说明 |
|---|---|
| 目标 | 学习语言的通用表示能力(世界知识 + 语言能力) |
| 数据规模 | 万亿级 Token(GPT-4 预估 13T,LLaMA-3 用 15T) |
| 数据来源 | 网页(Common Crawl)、书籍、代码(GitHub)、百科、论文 |
| 训练方式 | 自回归(预测下一个 Token)或掩码语言模型(MLM) |
| 数据清洗 | 去重(MinHash)、质量过滤(困惑度/分类器)、去毒(安全过滤) |
预训练数据设计要点:
- 多样性:混合多语言、多领域数据,防止偏科
- 配比调参:代码数据占比高 → 推理能力强;对话数据占比高 → 对话能力好
- 课程学习:先喂简单/高质量数据,后期加入复杂数据(类似人类学习顺序)
阶段二:监督微调(SFT - Supervised Fine-Tuning)
| 维度 | 说明 |
|---|---|
| 目标 | 让模型学会按指令格式回答问题 |
| 数据规模 | 数万~数十万条(远小于预训练) |
| 数据格式 | (instruction, input, output) 三元组 |
| 质量要求 | 高质量人工标注 > 大规模低质量数据 |
微调数据设计要点:
- 指令多样性:覆盖问答、摘要、翻译、代码、数学等多种任务类型
- 长度分布均衡:短回答和长回答都要有,避免模型只会输出固定长度
- Self-Instruct:用强模型生成指令数据,再人工审核(Alpaca 方法)
阶段三:对齐(Alignment)
| 方法 | 原理 |
|---|---|
| RLHF | 训练奖励模型(RM)→ 用 PPO 算法优化策略 |
| DPO | 直接用偏好对数据优化,不需要单独训练 RM,更稳定 |
| RLAIF | 用 AI 替代人工做偏好标注,降低成本 |
面试加分点:提到数据飞轮(模型上线 → 收集用户反馈 → 标注 → 迭代微调)和 Scaling Law(数据量、模型参数、计算量的幂律关系)。
Q11:你了解 MoE(混合专家)模型吗?比如包含几个专家?这些专家的能力有何异同?
来源:华为AI必背60题(中频,近两年常问)
MoE 核心思想:把一个大的 FFN 层拆分为多个”专家”(Expert),每个 Token 只激活其中少数几个专家,从而在参数量增大的同时保持计算量不变。
架构组成:
输入 Token
→ Router(门控网络)→ 选择 Top-K 个专家
→ 被选中的 Expert_1, Expert_2, ... 并行计算
→ 加权求和输出
关键设计参数:
| 参数 | 典型值 | 说明 |
|---|---|---|
| 专家总数 | 8~128 个 | DeepSeek-V2 用 160 个,Mixtral 用 8 个 |
| 每次激活数(Top-K) | 2 个 | Mixtral 8x7B 每个 Token 只激活 2/8 个专家 |
| Router 类型 | 线性层 + Softmax | 输出每个专家的概率分布 |
专家的能力异同:
- 初始化时相同:所有专家结构一样(都是 FFN),参数随机初始化
- 训练后分化:通过梯度更新,不同专家自动学会处理不同类型的 Token
- 经验性观察:部分专家擅长处理代码 Token,部分擅长自然语言,部分擅长数学符号(但边界模糊,不是严格划分)
MoE 的优缺点:
| 优点 | 缺点 |
|---|---|
| 参数量大但推理计算量小(稀疏激活) | 显存占用大(所有专家参数都需加载) |
| 训练效率高(更好的 Scaling Law) | 负载均衡问题(部分专家被过度使用) |
| 易于扩展(增加专家数) | 通信开销大(分布式训练时专家分布在不同 GPU) |
代表模型:Mixtral 8x7B(8 个专家取 2)、DeepSeek-V2/V3(细粒度专家 + 共享专家)、GPT-4(传闻 MoE 架构)。
面试加分点:提到负载均衡损失(Load Balancing Loss),用辅助损失函数防止 Router 总把 Token 发给同一个专家。
Q12:请介绍 RAG(检索增强生成)项目的相关内容
来源:华为AI必背60题(高频,近两年常问)
RAG 核心思想:LLM 的知识固化在参数中,存在幻觉和知识过时问题。RAG 在生成前先从外部知识库检索相关文档,将检索结果作为上下文注入 Prompt,让模型”带着参考资料回答问题”。
RAG 标准流程:
用户提问
→ Query 编码(Embedding)
→ 向量检索(从知识库中找最相关的 Top-K 文档)
→ 拼接 Prompt:[检索到的文档] + [用户问题]
→ LLM 生成回答
离线索引阶段(构建知识库):
| 步骤 | 说明 |
|---|---|
| 文档切分(Chunking) | 按段落/句子/固定长度切分文档,典型 chunk_size = 512 tokens |
| 向量编码(Embedding) | 用 Embedding 模型(BGE/E5/text-embedding-3)将每个 chunk 编码为向量 |
| 向量存储(Vector Store) | 存入向量数据库(FAISS/Milvus/Pinecone),建立 ANN 索引 |
在线检索阶段:
| 步骤 | 说明 |
|---|---|
| Query Embedding | 将用户问题编码为向量 |
| 相似度检索 | 通过 ANN(HNSW/IVF-PQ)找到 Top-K 相似 chunk |
| 重排序(Re-ranking) | 可选,用 Cross-Encoder 对检索结果精排 |
| Prompt 构建 | 将检索到的文档和问题拼接成 Prompt |
| LLM 生成 | 模型基于上下文生成答案 |
RAG 的优化方向:
| 方向 | 具体技术 |
|---|---|
| 检索优化 | 混合检索(BM25 + 向量)、查询改写(HyDE)、多路召回 |
| Chunking 优化 | 语义切分、滑动窗口重叠、父子 chunk 策略 |
| 上下文优化 | 压缩上下文(LongLLMLingua)、Lost in the Middle 问题处理 |
| 生成优化 | 引用溯源(标注答案来自哪个文档)、自我反思(Self-RAG) |
RAG vs 微调:
| 维度 | RAG | 微调 |
|---|---|---|
| 知识更新 | 实时更新(改文档即可) | 需要重新训练 |
| 成本 | 低(只需维护知识库) | 高(GPU + 标注数据) |
| 幻觉控制 | 好(有据可查) | 一般(仍可能幻觉) |
| 适用场景 | 知识密集型 QA、客服 | 风格适配、特定任务 |
面试加分点:结合项目经验谈,比如”我在项目中用 LangChain 搭建了 RAG pipeline,遇到了 chunk 太长导致噪声多、太短导致上下文断裂的问题,最终用 512 token + 128 token 重叠的策略取得了最好效果”。
Q13:向量数据库和知识图谱有什么区别?
来源:华为AI必背60题(中频,需深度思考)
| 对比维度 | 向量数据库 | 知识图谱 |
|---|---|---|
| 数据表示 | 高维向量(如 768/1536 维浮点数组) | 三元组 (实体, 关系, 实体),如 (北京, 首都_of, 中国) |
| 存储内容 | 非结构化数据的语义表示 | 结构化的实体关系网络 |
| 查询方式 | 近似最近邻(ANN):给一个向量,找最相似的 K 个 | 图查询(SPARQL/Cypher):沿关系路径推理 |
| 核心能力 | 语义相似度匹配(”苹果手机” ≈ “iPhone”) | 关系推理(”张三的老师的学校是?”沿路径查询) |
| 构建成本 | 低(用 Embedding 模型自动编码) | 高(需要实体抽取、关系抽取、人工校验) |
| 典型系统 | FAISS、Milvus、Pinecone、Weaviate | Neo4j、JanusGraph、ArangoDB |
| 应用场景 | 语义搜索、RAG 检索、图片检索、推荐 | 风控关联分析、医疗诊断推理、知识问答 |
本质区别:
- 向量数据库回答的是”什么和这个最像“(相似性)
- 知识图谱回答的是”什么和这个有关系,关系是什么”(因果/逻辑)
互补使用(GraphRAG):
- 向量检索擅长模糊语义匹配,但缺乏推理能力
- 知识图谱擅长多跳推理,但构建和维护成本高
- GraphRAG = 向量检索 + 图结构,先用向量召回候选实体,再沿知识图谱做关系推理,两者互补
面试加分点:提到 Microsoft 的 GraphRAG 框架,以及”知识图谱解决的是 RAG 中多跳问题检索效果差的痛点”。
面经记录
面经 1:26暑期实习 AI方向(双机位)
技术面(55min):
- 自我介绍
- 手撕代码:Hot100 岛屿数量(DFS/BFS),ACM 模式,本地 IDE 共享屏幕
- 八股文:CNN vs 全连接、激活函数、过拟合/欠拟合、L1/L2 正则
- 项目追问
- 反问:部门具体工作内容
主管面(25min):
- 自我介绍
- 项目概括性问题:有没有独立完成项目、从无到有的流程、有没有用 AI 辅助工具
- 对华为文化有没有了解
- 无反问环节
面经 2:26暑期实习 AI岗(3.22投递 → 4.17入池)
时间线:3.22 投递 → 4.8 机试+测评 → 4.16 技术面+主管面 → 4.17 入池
技术面(60min):
- 自我介绍
- 学校课程相关提问
- 八股:非结构化数据库检索优化技术
- 实习经历追问
- 八股:对神经网络/AI的了解、大模型相关知识
- 项目追问 + 围绕项目问八股
- 机试复盘(两道编程题)
- 手撕代码:LC 130. 被围绕的区域
- 无反问
主管面(30min):
- 自我介绍
- 能实习多久?为什么选 AI 岗?就业地偏向?
- 实习/学校项目做了什么?
- 有没有快速学习新技术的经历?怎么学的?
- 为什么选华为?其他意向公司?
- 反问:组里业务 & 实习生培养方案
面经 3:26暑期实习 AI Infra(3.19投递 → 4.18入池)
背景:C9 AI本硕,无对口实习,非对口论文+项目各一
时间线:3.19 投递 → 3.20 过初筛 → 4.8 笔试 → 4.9 综测过 → 4.17 技术面+主管面 → 4.18 入池
技术面:
- 手撕代码:LC 394. 字符串解码
- 项目追问
- 八股:CNN 基本原理、Transformer 基本架构
- HR 反馈面评不错
主管面:
- 项目追问:遇到什么问题,如何解决
- 对华为产品和文化的认识
- 对 AI 最新发展的认识,用没用过 AI Coding
- 本科成绩和排名相关
- 反问:对应届生的建议、看中应聘者什么
个人总结:华为更看重解决问题的能力而非对口知识的多寡,熟悉项目比什么都强。