面灵AI→

来也科技 AI 原生开发者一二面:AI Coding 边界与向量库性能

轮次
一二面
时间
2026-10
来源
牛客网

《面试题目》

一面(9.4,55min):

  1. AI Coding 的比例、流程、测试边界、团队配比是怎样的?
  2. TCP、广播、容量、到达率、惊群分别是怎么回事?
  3. C++ 的版本、Lambda、协程、模板?
  4. 2027 届及当前在校状态,之后继续正常技术沟通?
  5. 「哪些自测能交给 AI、哪些不能」?
  6. 开源实现和 Harness?

二面(9.14,37min): 7. 做个人介绍 8. 挑一个最有代表性的项目,讲「解决什么问题、为什么做、收获什么」 9. 这是个人项目,是否日常使用?请现场演示 10. 向量库检索为何会慢? 11. 团队 AI 开发率如何统计? 12. 家乡和爱好?

《参考解析》

「哪些自测能交给 AI、哪些不能」这道题,判据是「结果是否可被确定性验证」。 可以交的:单元测试与接口测试的用例生成与执行(有明确断言)、静态检查与格式化、类型与 lint 修复、覆盖率补全、日志与报错的初步归因、重复性重构、以及按模板生成 CRUD/脚手架。不能交(或不能只靠 AI)的:涉及资金与权限的判定、并发与时序相关的正确性(竞态、死锁、幂等)、跨系统一致性与数据迁移、安全与越权测试、以及「需求本身对不对」的判断——这些要么判据无法自动表达,要么失败代价不可逆。工程做法是分层:确定性断言留在脚本里(可回归、可复现),AI 负责探索与补充用例;AI 产出的用例必须先经过「断言是否真的在验行为」的人工评审,否则会得到一堆永远为真的假测试。这个回答也顺带覆盖了「AI Coding 的测试边界」和「团队配比」:实践中 AI 承担的是放大器角色,人负责边界定义、评审与兜底,比例数字要给得出处(比如按提交行数、按需求数统计),否则会被追问口径。

向量库检索慢的原因要分四层排查。 ① 数据规模与索引类型:没有建 ANN 索引(退化成暴力扫描)、索引参数不当(HNSW 的 M/efConstruction/efSearch 决定召回与延迟的权衡,efSearch 太小召回差、太大会变慢)、IVF 的 nlist/nprobe 同理。② 查询侧:TopK 取太大、带了大量元数据过滤(很多实现是先向量检索再过滤,过滤选择性高时会白算)、以及并发请求把单节点打满。③ 表示与维度:向量维度高(768/1536/3072)导致距离计算量大,量化(PQ/SQ)可以显著降内存与提速但有精度损失。④ 系统层:没有分片/副本、单点磁盘 IO 慢、Python 客户端序列化开销、以及每次查询都重新建连接。优化顺序是「先量后调」:分段计时(编码耗时 / 检索耗时 / 网络耗时)、看索引是否命中、再调参或加副本,而不是一上来换库。团队 AI 开发率怎么统计,要给出可操作口径:按「AI 参与产出的代码行/提交数占比」「需求中由 AI 完成初稿的比例」「AI 生成内容的采纳率(生成后被合并的比例)」来算,并说明统计的局限(行数不代表价值、掩盖了评审与返工成本);更有意义的是看交付指标的变化(需求交付周期、缺陷率、回归耗时),而不是盯生成量。

TCP 的那组关键词,逐个落到机制上答。 广播本身在 IP 层是发往子网广播地址,TCP 是面向连接的协议、不支持一对多,所以「TCP 广播」在业务上通常指应用层的多播/群发(用 UDP 多播或由服务端扇出),要指出这一点。容量指连接数、带宽、文件描述符上限(ulimit -n)、内存(每连接内核缓冲区)等约束,压测时要先算「单机最大连接数 ≈ min(端口/ fd 限制, 内存/每连接开销)」。到达率是发送成功率与端到端确认的度量:TCP 保证可靠交付但不保证应用层被处理,所以做投递统计要区分「发送成功」「对端接收」「业务确认」三级,并处理重试导致的重复。**惊群(thundering herd)**指多个线程/进程同时被唤醒去 accept 同一个新连接或抢同一个事件,导致大量无谓的调度与上下文切换:经典解法是 Nginx 的 accept_mutex、SO_REUSEPORT 让内核按哈希分配连接、以及 epoll 下用 EPOLLEXCLUSIVE 标志只唤醒一个等待者;应用层的对应问题是「缓存失效瞬间大量并发回源」,解法是互斥锁 + 单飞(singleflight)或逻辑过期。C++ 版本/协程/模板这几个点:C++11 起有 Lambda(本质是编译器生成的仿函数,捕获方式决定拷贝/引用语义,mutable 让按值捕获可修改)、auto、移动语义与右值引用、可变参数模板;C++17 有结构化绑定、if constexpr、std::optional/variant;C++20 引入协程(co_await/co_yield/co_return + promise/awaiter 协议,编译器生成状态机)、概念(concepts 约束模板)、范围(ranges);模板的核心机制是编译期实例化与 SFINAE/if constexpr 分支,代价是编译期膨胀与错误信息晦涩。