快手后端开发实习二面面经

快手 · 后端开发实习生 · 二面 · 2026-04

面试题目

  1. 自我介绍,包括技术栈和现状
  2. 项目介绍
  3. 这个项目不用AI能不能搞定?这个项目中AI使用的必要性是什么?
  4. 你为什么选择Milvus作为向量数据库?Milvus是自己搭建的吗?
  5. 你在Milvus中使用了什么索引?
  6. 你的嵌入向量是多少维度的?
  7. LangChain和LangGraph不是两个框架吗?你的项目中到底使用了哪个框架?
  8. 你这个项目中使用的大模型是哪个?
  9. 项目的效果是如何评测的?
  10. 你具体是怎么评估系统的准确率的?
  11. 你知道现在一般的微调手段有哪些吗?
  12. 微调有具体实践过吗?怎么做的?
  13. 比对一下SFT和RL的区别
  14. RL的具体算法知道哪些?
  15. 你说的这几种算法一般来说用哪个合适?
  16. MySQL锁机制你知道吗?有哪些锁?
  17. 唯一索引和普通索引有什么区别?
  18. 算法题:排序k个升序链表。写代码;并分析时间复杂度;除了用的方法外还有没有其他解决方案。
  19. 能实习多久?从几月份到几月份?

参考解析

  1. Milvus索引与维度:Milvus常用索引包括IVF_FLAT、HNSW、Scalar等。维度通常由Embedding模型决定(如OpenAI 1536维,BERT 768维),维度越高检索越精准但耗时越长。
  2. SFT vs RL:SFT(监督微调)通过指令微调模型输出格式与风格;RL(强化学习,如PPO、DPO)通过人类反馈优化模型对齐目标,减少幻觉,提升复杂推理能力。
  3. MySQL锁机制:包含全局锁、表锁(Table Lock)、行锁(Row Lock)。行锁分为共享锁(S锁)和排他锁(X锁),InnoDB通过MVCC配合锁实现事务隔离。
  4. 唯一索引 vs 普通索引:唯一索引强制要求字段值唯一,且对于查询性能,普通索引找到满足条件后需继续查找,唯一索引找到第一个即停止,因此性能略优。
  5. 排序k个升序链表:最优解为分治法或利用优先队列(小顶堆),时间复杂度为O(N log k),其中N为所有节点总数,k为链表个数。