面试面经 · 字节跳动
【字节跳动】【AI 应用开发】一面,Transformer + RAG 实战 + 算法题,深度考察大模型落地能力
【字节跳动】AI 应用开发 一面
基本信息
| 项目 | 内容 |
|---|---|
| 公司 | 字节跳动 |
| 岗位 | AI 应用开发工程师 |
| 轮次 | 一面(技术面) |
| 时间 | 2025 |
| 面型体感 | 面试官非常专业,问题从浅到深层层递进,RAG 和 Agent 是重点 |
| 结果 | 通过 |
面试题目(按提问顺序)
第一部分:大模型基础(约 15 min)
- Transformer 架构相关问题
- "请讲一下 Transformer 的 Self-Attention 机制,Q、K、V 分别是什么?计算流程是怎样的?"
- "为什么需要 Multi-Head Attention?多个 Head 分别学到了什么?"
- "Transformer 中的 LayerNorm 和 BatchNorm 有什么区别?NLP 任务为什么用 LayerNorm?"
- "位置编码(Positional Encoding)是怎么做的?RoPE 和 Sinusoidal PE 有什么区别?"
- 大模型训练与微调
- "大模型训练的完整流程是什么?Pre-training → SFT → RLHF 各自解决什么问题?"
- "LoRA 和全量微调的本质区别是什么?什么场景下用 LoRA 更合适?"
- "LoRA 的 rank 参数怎么选?太大了会怎样?"
第二部分:RAG 系统设计(约 20 min)
- RAG 全流程考察
- "请你描述一个 RAG 系统的端到端流程,从文档输入到最终回答生成。"
- "文档切割(Chunking)有哪些策略?怎么避免把语义切散?"
- "Embedding 模型怎么选?你们项目中用了什么 Embedding?为什么?"
- "向量数据库选型:Milvus vs Qdrant vs Pinecone vs Chroma,各自优劣是什么?"
- "RAG 最难的部分是什么?你们怎么解决检索不准的问题?"
- RAG 进阶优化
- "混合检索(语义 + 关键词 BM25)怎么实现?重排序(Reranker)用的什么模型?"
- "怎么处理 RAG 中的幻觉问题?Prompt 层面和检索层面分别怎么做?"
- "如何量化评估 RAG 系统的效果?用什么指标?"
第三部分:Agent 与 Prompt Engineering(约 10 min)
- Agent 架构
- "你的 Agent 项目怎么设计长短期记忆的?分别存在哪里?"
- "Function Call 的实现原理是什么?遇到过哪些坑?"
- "Single Agent 和 Multi-Agent 设计有什么区别?什么场景用 Multi-Agent?"
- Prompt Engineering
- "你在项目中是怎么做 Prompt 优化的?举例说明。"
- "Few-shot 和 Chain-of-Thought 分别在什么场景下用?"
第四部分:手撕算法(约 20 min)
- 算法题:实现 LRU Cache
- 手写 LRU Cache,要求
get和put操作均为 O(1)。 - HashMap + 双向链表,经典实现题。
- 算法题:文本相似度计算
- 给定两个句子,用 TF-IDF 或余弦相似度计算它们的相似度。
- 考察分词、向量化的基础实现能力。
面试感受 / 反馈
- 字节 AI 应用岗非常看重 落地能力,不是背概念就够的
- RAG 是必考内容,10 家面 8 家问 RAG 相关问题
- 面试官会不断追问"为什么这么选",考察的不是"做了什么"而是"为什么这么做"
- 算法题难度不算特别高,但要求和实际业务(文本处理、相似度计算)结合
- 整体节奏紧凑,4 个模块切换很快,需要知识面广且扎实
准备建议
- 吃透 Transformer 原理(Attention 计算、位置编码、归一化),不能只停留在"调 API"层面
- RAG 全链路要能画出架构图,每个环节能说清优化点
- 准备 1-2 个完整的 Agent/RAG 项目,能从架构讲到细节
- 算法题保持 LeetCode Medium 水平,额外关注文本处理类题目
- 了解主流开源项目:LangChain、LlamaIndex、Milvus、vLLM 等
反问示例
- "团队目前在做哪些 AI 落地场景?最关注的技术挑战是什么?"
- "模型部署方面,推理延迟和成本是怎么优化的?"