字节 AI 应用开发二面:Plan+Execute、显存与三数之和
- 轮次
- 二面
- 时间
- 2026-10
- 来源
- 牛客网
《面试题目》
- 项目背景是什么?为什么要做?应用场景是什么?
- 模型的输入输出是什么?每一层的意义是什么?为什么选 Plan+Execute 而不是 ReAct?
- 结构化是怎么做的?包含哪些内容?
- 失败案例是怎么处理的?
- 为什么选择本地部署?占用多少显存?显存由什么构成?
- transformer 的原理是什么?
- 图像处理怎么做的?RAG 怎么搭的?
- 平常用哪些 AI 工具?
- 你主用 C++,为什么用 C++?C++ 的优势是什么?
- C++ 智能指针有哪些?怎么实现的?
- TCP 相关:介绍网络通信全流程。
- 进程与线程相关。
- 手撕:三数之和。
《参考解析》
Plan+Execute 与 ReAct 的区别在「规划时机」。ReAct 是边想边做,每步都根据上一步观察决定下一步,灵活但容易绕路、token 消耗高;Plan+Execute 先一次性生成计划再逐步执行,流程可控、便于并行和人工审核,但对计划的正确性依赖大,遇到意外要能重规划。选型理由要落到业务:任务步骤稳定、需要可审计就选 Plan+Execute;环境反馈多、需要探索就选 ReAct。
结构化输出通常指让模型按固定 schema 返回(JSON Schema / function calling),包含任务类型、步骤、工具名、参数、置信度等字段;工程上要做 schema 校验、缺字段补齐和失败重试。
本地部署的显存估算:权重(参数量 × 每参数字节数,FP16 约 2 字节、INT8 约 1 字节)+ KV Cache(随上下文长度和并发线性增长)+ 激活与框架开销。7B 模型 FP16 约 14GB,加 KV Cache 和运行时通常要 20GB 以上;量化能显著降低,但会损失精度。
三数之和:先排序,固定第一个数后对剩余部分用双指针,注意跳过重复元素避免重复三元组,时间复杂度 O(n²)。