华为 AI 技术应用二面:AI 安全应用、Coding 工具与手撕交集
- 轮次
- 二面
- 结果
- 二面通过
- 时间
- 2026-10
- 来源
- 牛客网
《面试题目》
- AI 的安全应用怎么做?
- 项目落地的情况如何?
- AI Coding 工具是怎么用的?
- 你购买过哪些大模型厂商的 coding plan?
- 手撕:两个数组的交集。
《参考解析》
AI 的安全应用:把边界做在系统里,而不是写在提示词里
这一轮面试官问「安全应用」,想确认的是你做的 AI 功能有没有边界意识。按四层来答最清楚。数据层:检索与训练用到的数据要脱敏、按租户或权限隔离,而且权限过滤必须发生在检索之前、由服务端执行,不能把全量内容喂给模型再靠提示词要求它「不要泄露」;密钥、连接串这类凭据不进上下文,敏感字段在落库前就做掩码。模型层:提示注入是这里的主要风险,处理原则是「把外部内容永远当数据、不当指令」——网页、文档、用户上传的文件都属于不可信输入,不能与系统指令拼在同一优先级上;工具调用要有白名单与参数校验,越权判断放在服务端,模型说「调用删除接口」不等于就真的执行;输出侧再做一层敏感信息与合规过滤,防止把上游数据原样带出去。审计层:每次调用都要留痕——谁、在什么会话里、调用了哪个工具、命中了哪些数据、产出了什么,出问题能回溯到具体请求,这也是很多合规评审的硬要求。兜底层:高风险动作(写操作、对外发送、涉及资金或权限变更)要人工确认、可回滚,并配速率与预算上限,防止被刷或失控烧钱。
如果被追问优先级,可以给一个落地顺序:先只读后写、先内部后对外、先单人可用后多租户,权限按最小化给,能用系统能力拦住就不要依赖模型自觉。这句话基本就是这一层想听的结论。
项目落地与 AI Coding:用证据讲,而不是用架构图讲
「项目落地」在面试里问的是有没有真实上线过的证据,答题骨架用「问题—方案—取舍—结果」四段:先说清业务问题与原来的做法(人工多久、错多少),再说方案里真正由你负责的部分,然后讲取舍(为什么不用另一个更贵的方案、性能与成本的权衡点在哪),最后给结果——覆盖多少用户或请求量、指标变化(失败率、耗时、人工介入率)、遇到最难的问题是什么、有没有回滚过。只画架构图会被追问「上线了吗、有多少人在用」,答不上来前面就白讲了。
AI Coding 的部分要讲成工作方法而不是工具清单:需求拆解、读陌生代码、写样板与单测、排查日志各用什么工具,怎么防幻觉(先让它复述约束和影响范围、要求给出处、生成的代码必须过 lint 与测试和人工评审),哪些活绝不交给它(权限、资金、数据删除,以及没有测试覆盖的历史代码)。购买 coding plan 这个问题考的是「你是不是真的在用、有没有成本意识」:可以答自己在用的订阅或额度、按任务复杂度分配模型(简单改动用小模型或订阅额度内的模型,长上下文和复杂推理才用贵的),以及团队里订阅制与按量计费各自的适用场景——高频日常开发用订阅更划算,偶发的大任务按量更可控。把额度上限和降级策略一起说,会显得你见过真实账单。
手撕两个数组的交集:先确认口径,再写代码
这道题看着简单,真正的分水岭是先问清三件事:结果要不要去重、数组是否已经有序、是否允许重复元素出现。口径不同解法不同。要求结果唯一且数组无序,用哈希集合:把较短的数组放进 Set,遍历另一个数组判断是否命中,命中就加入结果集合,时间 O(m+n)、额外空间 O(min(m,n)),这是最通用的写法。数组已排序且要求结果有序唯一,用双指针更优:两个指针同步推进,相等就写结果并跳过后续重复值,不相等就移动较小的一侧,时间 O(m+n)、额外空间 O(1)。如果允许保留重复(求交集的多重集),双指针时每命中一次只移动一个指针,或者用哈希计数记录每个值的出现次数再取最小值。
写的时候注意几个边界:任一数组为空直接返回空;返回顺序若无要求就用 Set 或先排序,若有要求要明确说明;语言层面注意 Set 的遍历与 add 返回值能不能顺手做去重。写完主动跑一个含重复元素的例子,再报一次复杂度——面试官在这类题上往往更看重「边界与口径是否自己想到」,而不是能不能背出哈希表。