小红书暑期一面(已挂)
《面试题目》
- 岗位:【27届实习】Product Engineer-产品工程师(AI与全栈方向)-社区工程
- 自我介绍,然后可以重点说你觉得你比较有代表性的一段项目经历。
- 我说的实习经历里的tab补全提示词那块的链路设计与重构。
- 【实习】我看这里还讲到用 workers KV 去做了一下 JWT 的鉴权这块我们是怎么迁移的?
- 【实习】那 workers KV 它的一致性模型是什么呀?
- 比如说会不会出现一些边界的一些badcase?
- 幸好准备了,是最终一致性。
- 【实习】那有什么解决方式方案吗?
- 我说这里的业务场景能接受最终一致性。但我感觉应该不对
- 【实习】你们做了一个状态机来管理这个评论的生命周期,一个是这个状态机的状态和转移是什么样子的?
- 然后另外我看我们这里有提到用了虚拟线程,就是采用虚拟线程的这个技术方案选型的原因是什么?
- 【实习】看我们这里还就是做了一些游标分页加乐观锁的一个优化。就是一个是在做游标分页和乐观锁之前,我们是怎么做的分页?
- 然后跟之前的比如说一些普通的 offset 分页,游标分页它的优势是什么?
- 【项目】RAG混合检索策略怎么做的?
- 召回的效果是如何评估的?
- 【项目】我们刚刚有提到做了一些 Chunk 切片的一些优化,那 Chunk 切片粒度它太大和太小,刚刚讲过,有可能有一些问题,就是如果它 chunk 切片粒度太大的话,它可能会造成什么样的问题?
- 太小的话还可能造成什么样的问题?
- 【项目】看我们的 agent 这里我们同时用了 react 和 plan-execute-replan 的两种模式,然后是两种应用场景,我们简单介绍一下为什么做这样子的技术选型,以及这两种为什么要这样选,以及为什么要分别用在这两个对应的场景上。
- 【项目】比如说你的 RAG 系统里面是有很多相应的一些知识库文档,然后在实际的生产环境里面,我们可能 RAG 系统里的文档可能会有一些频繁的更新,或者说增删减,那如果出现这种情况,就是出现向量索引与原文不一致的这种情况,我们该怎么保证这种问题导致的一些错误呢?
- 【项目】展开讲我们的记忆系统是什么样子?
- 【项目】那如果我们有一个长期运行的一个agent,用户的对话可能长年累月,比如说需要数月或者一年多的一个累计的一个历史对话,就是对话的轮数很多很多很多,那我们在记忆系统上能做哪些优化?
- 我们的经历里面其实大部分是 AI 相关的加后端的一些经历,那你觉得你对于你自己没有前端经验这一个 gap 是怎么看待的?
- 刚也提到 vibe coding,就是我们平常就是日常使用的一些 coding 工具是哪些?
- 共享屏幕,vibe coding 一个极简版的小红书网页版,用户可以做图文笔记的发布,然后就是不管你的信息展示页面是什么样子,就瀑布流或者怎样,可以在首页的那个信息流里面展示出你发布出来的内容。
- 【八股】哈希碰撞会在什么情况下发生呢?
- 【八股】哈希碰撞出现之后,我们有什么样的处理方式呢?
- 【八股】讲一下 LRU CACHE 它是一种什么样的缓存策略?
- 【八股】如果 Redis 它经排查我们发现它的内存碎片率比较高,那可能的原因是什么?
- 以及我们怎么排查和优化?
- 唯一一个没答出来的,,,
- 我们要在工程环境里面落地一套基于大模型的一个企业知识的一个agent。就是按正常的做法,我们可能需要选择一些合适的方案,比如说选择合适的向量数据库去存储embedding,并且支持刚刚讲到一些相似度检索的一些功能。就是我们现在有一些主流的一些向量数据库,那我们在这种场景下一个是该怎么做向量数据库的一个选型?
- 一个是如果需要优化一些检索召回的速度该怎么去优化?
《参考解析》
- AI产品与 Agent 项目:回答这类问题要先讲清目标用户和业务场景,再说明模型、数据、工作流、评测指标和上线后的真实使用效果。面试官通常更看重你能否把 AI 能力转成可落地的产品闭环,而不是只罗列模型名。
- RAG 系统:RAG 的核心是召回质量、切分策略、排序和答案可追溯。BM25 擅长关键词精确匹配,向量检索更适合语义相近的问题,工程上常用混合检索加重排来提升稳定性。
- 进程与线程:进程是资源分配单位,线程是 CPU 调度单位。同一进程内线程共享地址空间和文件句柄,但各自拥有栈和执行上下文;回答时可结合通信方式、上下文切换成本和故障隔离展开。
- 用户研究:用研回答要覆盖样本选择、访谈或问卷方法、洞察提炼和需求转化。面试官会追问研究结论是否真正影响产品决策,因此最好用指标或后续迭代结果闭环。
- 项目深挖:项目深挖的核心是讲清背景、目标、你的职责、关键决策、难点和结果。遇到追问时优先用数据、取舍理由和复盘说明自己的判断,而不是只描述流程。