牛客大佬内推我字节Agent一面,我爽了!!!
AIGC小白入门记 | 昨天 22:28
标签:通信/硬件秋招总结、简历中的项目经历要怎么写...、XX说这话是什么意思
来源:https://www.nowcoder.com/discuss/914281634864562176
牛客大佬内推我字节Agent一面,我爽了!!!
说出来你们可能不信——这场面试是面试官主动找我约的。
事情是这样的。我一直在牛客上分享面试经历,上周突然收到一条私信,对方说自己是字节的面试官,看了我的面经觉得基础还不错,问我有没有兴趣试试他们部门,可以帮我内推。
我当时第一反应是:这不会是骗子吧?
确认了对方的企业邮箱之后,我才把简历发了过去。结果第二天就收到了面试邀请,效率快得离谱。激动归激动,该准备的还是得准备。花了两天把项目和八股重新过了一遍,面试聊下来整体很顺畅,今天就记录一下这次面试的题目和回答,希望能给同样在准备面试的朋友一些参考。
文末有个小福利,想要的直接划到底部。
- 多模态结构是怎样的?
面试官开场就问了这个,大概是看我对多模态有没有基本认知。
我的回答:
多模态模型的核心是"让LLM能看懂非文本信息"。以视觉为例,标准架构分三步:
第一步是视觉编码,用ViT或者CLIP把图片转成特征向量;第二步是特征对齐,用适配器(比如Q-Former或简单线性层)把视觉特征映射到LLM的嵌入空间;第三步是训练策略,通常是先冻结视觉编码器和LLM只训练适配器,等对齐好了再端到端微调。
面试官追问"为什么需要两步,不能直接喂特征吗",我说因为视觉特征和文本Token不在一个语义空间里,直接喂LLM理解不了,必须先做映射。
- RAG完整流程是怎样的?
这道题问的是RAG的标准流程,我分离线在线两个阶段讲。
我的回答:
离线阶段:
1
文档 → 格式解析(PDF/Markdown/Word) → 语义切分 → Embedding → 存入向量库
切分原则是:有结构按结构切(标题/段落),没结构按固定大小切(512字+128字重叠)。
在线阶段:
1
用户Query → Query改写(补全指代/扩展同义) → 多路召回 → 融合排序 → Rerank → 拼Prompt → LLM生成
多路召回指的是向量检索+关键词检索(BM25)双路并行,RRF融合各路结果,再用Cross-Encoder做精排。
面试官追问"向量检索和关键词检索各自的优势是什么",我说向量检索擅长语义匹配("手机"能匹配"iPhone"),关键词检索擅长精确匹配(专业术语、编号、代码),两者互补。
- LoRA和QLoRA的区别?
这道题考的是参数高效微调。
我的回答:
LoRA的原理是冻结底座模型,在每一层插入一个可训练的旁路低秩矩阵:
其中W是原始权重(冻结),A和B是小矩阵(可训练),参数量远小于W。
QLoRA是在LoRA的基础上,把底座模型量化到4bit,进一步压缩显存。
底座精度
16bit
4bit
显存占用
较高
省60%以上
效果
接近全量微调
接近LoRA
适用场景
显存充足
消费级显卡
QLoRA之所以能保持效果,是因为虽然底座是4bit的,但训练过程中的梯度计算是在BF16精度下做的,量化只影响前向传播的精度。
- A2A和MCP分别是什么?
这道题考的是Agent通信协议。
我的回答:
**MCP(Model Context Protocol)**是Agent和工具之间的协议,解决"怎么调用工具"的问题。它定义了一套标准接口——工具发现、参数传递、结果返回。打个比方:MCP就是AI的USB接口,不管接什么工具(数据库、API、文件系统),协议是统一的。
**A2A(Agent-to-Agent Protocol)**是Agent之间的通信协议,解决"多Agent怎么协作"的问题。定义了消息格式、任务委托、结果协商。
一句话总结:MCP管纵向调用(Agent→工具),A2A管横向协作(Agent↔Agent)。
- 长上下文有哪些处理方案?
我的回答:
两种思路:
让模型支持更长上下文:
位置编码扩展:通过位置插值(PI)或NTK-aware让模型泛化到更长序列 KV Cache压缩:对历史Token的Key/Value做降维或筛选
不喂全量,改用RAG检索:
知识类任务用RAG比硬塞全文更优 带来源引用和知识更新能力
选型建议:长文档总结用长上下文模型,开放域问答用RAG,复杂推理任务两者结合。
面试官追问"什么时候不能只用RAG",我说需要全局理解的任务(比如"整本书的核心论点是什么")RAG效果不好,因为检索只能拿到片段,看不到整体。
- 常用的Agent框架有哪些?分别适合什么场景?
我的回答:
LangChain
通用框架
快速搭原型、组件拼接
LangGraph
状态机
复杂Agent循环、条件分支
LlamaIndex
检索框架
RAG系统、知识库构建
AutoGen
多智能体
多Agent协作、群聊
Dify
低代码
非技术人员快速搭建
个人经验:做复杂状态流转选LangGraph;做检索密集型选LlamaIndex;做多Agent协作选AutoGen。LangChain适合验证想法,但不适合上生产。
- 多模态检索是怎么做的?
我的回答:
核心是CLIP跨模态Embedding。CLIP同时训练了图片编码器和文本编码器,把两种模态映射到同一个向量空间。检索时用户文本Query过文本编码器,然后去向量库里找最接近的图片向量。
进阶方案是混合检索——如果图片里有文字(截图、海报),先用OCR提取文字,然后图文双路召回,用RRF融合排序:
- 用户信息和历史对话怎么存?
我的回答:
用户画像存KV数据库(Redis或MySQL)。用户画像是结构化数据,偏好设置、常用工具、个人信息,每个字段有明确的key,用KV最适合。
1 2 3 4 5
{ "user_id": "u123", "preferred_lang": "Python", "timezone": "Asia/Shanghai" }
历史对话存向量库(Milvus/Pinecone)。每条对话作为一个向量,附带元数据(时间戳、会话ID、任务类型)。检索时用向量相似度+元数据过滤。
Agent使用时先加载用户画像,再检索相关历史对话,合并注入上下文。
- AI开发有什么心得?
我的回答:
AI辅助开发主要用在三个场景:
代码生成:重复性代码(CRUD、DTO、配置类)交给AI,从10分钟降到1分钟。
Debug:报错日志贴给Claude Code分析,快速定位NPE、空指针之类的问题。
测试生成:写完业务逻辑后让AI生成单元测试用例,框架性的东西省很多时间。
整体效率提升了大概30%-40%。但有个原则必须坚持:AI生成的代码要人工审查+测试验证,不能直接上线。
- 你对Agent的预期是什么?
我的回答:
现状:Agent还在初级阶段。能落地的多半是Workflow或简单ReAct循环,远没到"自主智能"的程度。核心痛点还是幻觉和稳定性。
未来期待:
长期记忆:记住用户的偏好和习惯,不用每次都从头理解 跨App操作:打通日历、邮件、文档,完成复合任务 主动服务:不只被动回答,能根据场景主动建议
最终理想形态是真正的个人数字助理(PDA),帮用户完成事情,而不只是回答问题。
最后说两句
这场面试从开始到结束都挺幸运的——被面试官主动捞、第二天就约面、聊得也顺畅。
不过回想一下,如果没有之前在牛客上持续分享面经,可能也不会有这次机会。所以说到底,持续输出和积累还是有用的,你永远不知道谁会看到。
如果你也在准备面试,欢迎评论区交流。另外,那位字节的面试官大佬说可以帮忙内推,有需要的朋友可以私聊我,我把他的联系方式推给你。
觉得有用的话点个在看,二面过了我继续更新。
评论区聊一聊:你遇到过最幸运的一次面试机会是怎么来的?
#如何判断面试是否凉了##秋招,不懂就问##应届生简历当中,HR最关注哪些?##发面经攒人品##我的求职进度条# 大模型算法面经 文章被收录于专栏
大模型算法面经