面灵AI→

小红书 大模型算法岗面经合集(二):Redis 秒杀、MCP 与搜广推链路

轮次
多轮面试合集
时间
2026-09
来源
牛客网

《面试题目》

面经 01(2026 年 4 月 2 日)

  1. Redis 集群环境下,你怎么保证 lua 脚本上操作的 key 在同一个实例上来保证原子性?
  2. 令牌桶流量控制这块,是你自己实现的吗?还是找了一个现成的实现组件去用的?
  3. 你这个秒杀业务主要是用什么来保障它的并发的?除了这个 lua 脚本之外,端到端的提升是怎么做的?
  4. 前端上有做防秒杀、防并发的这种保护吗?
  5. 点赞业务什么时候用的 set,什么时候用的 zset?
  6. 这里的 zset 为什么不使用内存来进行操作,不都是可以起到合并写的作用?
  7. 那你这里的 zset 能存多少条点赞数量的数据?
  8. Zset 的数据结构了解吗,展开讲一下
  9. 那你这个降低幻觉,你是怎么发现的问题?做完优化之后,实际的效果是怎么去观测衡量的?RAG 这块,第二点是模块化 RAG 架构
  10. 你不是降低了幻觉吗?你怎么论证有效降低,实际效果怎么衡量的?
  11. 做这个所谓的衡量的时候,为什么不考虑再引入一个 agent 来做?
  12. 死循环监测能力,防止 agent 的无限循环。这里首先你是怎么识别到会有死循环问题的?
  13. 你现在日常在用 AI 工具是什么状态?只是 coding 吗?还是说也在做一些小的尝试、小的玩法,有贡献过 skill 吗?
  14. 你的 AI 规划的内容基于两部分,一个 websearch 搜索的,一个基于你的本地内容的方法调用,那你怎么综合这两部分的内容呢,是直接一股脑扔给 AI 大模型吗?
  15. 你现在在做路线规划,假设扩展一下发布功能:我希望用户只传图片、其他文案让他自己生成,就不只是路线规划了,你觉得这个事该咋做呢?
  16. 用户编写文案的意图,这件事打算怎么写呢?这个 skill
  17. 讲一下对 openclaw 的理解
  18. 什么样的功能适合做成 skill,什么样的不合适?

面经 02(2026 年 4 月 1 日)

  1. 场景题:第三个项目和 bd 合作时,我干了什么,有争议时怎么处理的
  2. 场景题:小红书站内的推送,前三天点击率高,后面的不高,怎么解决?
  3. 场景题:小红书的推送文案怎么用 AI 写更好,怎么量化?
  4. 场景题:怎么利用 AI 突破抖音限制,给小红书引流?

面经 03(2026 年 3 月 31 日)

  1. 讲一下常用的大语言模型
  2. nl2sql 项目 pipeline 怎么布的?
  3. 向量检索具体的策略有做吗?
  4. 一个术语可能匹配多个字段怎么做,存在实体映射吗?
  5. skill 和 mcp 区别
  6. 开发 mcp update 方法时如何确保安全性?
  7. 秒杀项目超卖如何解决?
  8. prompt 平时怎么写,有哪些细节?
  9. prompt 里的一些 workflow 和约束不遵守怎么解决?
  10. 我强制要求 llm 下游输出 json 格式,该怎么去写这个 prompt?
  11. redis ttl 和懒刷新的区别
  12. 特别多的 if 嵌套起来这种有什么解决方案?

算法题:括号匹配

面经 04(2026 年 3 月 31 日)

  1. 实习内容拷打
  2. mcp 架构介绍:tools、resources、prompts
  3. agent 应用中 tool 如何设计?
  4. mcp 如何接入 agent?
  5. GMP 调度,G 阻塞了会发生什么?
  6. 场景代码题:两个 json 对象对比前后经过什么操作

面经 05(2026 年 3 月 31 日)

  1. 检索精度与召回率的平衡(如 chunk 粒度优化),如何解决多跳推理问题?
  2. 知识更新机制(小红书 UGC 内容高频更新如何应对)
  3. 是否用 LLM 直接生成 Embedding?如何解决生成式检索的稳定性?
  4. 检索结果置信度过滤方案?是否引入知识图谱作为验证层?
  5. 用户生成内容(如错误美妆知识)如何清洗?实时性(如突发谣言)如何应对?
  6. 图文对 RAG 产品设计

面经 06(2026 年 3 月 31 日)

  1. Embedding 优化
  2. 如何通过预训练、微调提升效果?对比过哪些模型?
  3. 参数量与效果的关系?是否尝试过蒸馏或量化?
  4. RAG 车端项目
  5. Pipeline 中如何解决低延迟问题?Intent 分类的标签体系设计逻辑
  6. Rewriter 是否引入强化学习?如何评估改写后的 query 质量?
  7. LLM 对 Embedding 的影响
  8. LLM 的文本理解能力是否降低了对传统 Embedding 模型的依赖?举例说明
  9. 大模型在传统任务(如文本分类)未涌现的原因?(数据分布、任务形式差异)

算法题:卡塔兰数推导(递归公式 + 动态规划实现)

面经 07(2026 年 3 月 29 日)

  1. 算法基础提问
  2. 搜广推对哪个感兴趣,有什么倾向性?你觉得搜广推有什么区别?
  3. 对搜广推的链路有了解吗?介绍视频推荐的整个链路
  4. 召回粗精排的重点是什么,迭代方向是什么?
  5. 召回主要的迭代方向有什么,在做的方向有哪些?
  6. 介绍搜广推的发展历程
  7. 对 llm4rec 的范式有什么了解吗?onerec 有什么优势?
  8. 对文本大模型、多模态大模型有什么了解吗?
  9. transformer 的多头数量和显存有什么关系?注意力具体是怎么样算的?
  10. Adam 优化器会存储什么信息?

面经 08(2026 年 3 月 29 日)

  1. 主页精排模型的序列如何建模的?
  2. 主页精排模型的样本是如何组织的,listwise 和 user level 有什么区别?
  3. 你迭代模型的最终版本的结构
  4. tokenmixer 上线了吗?没有收益的原因是什么?
  5. 介绍 tokenmixer 的结构
  6. 什么情况下 tokenmixer 会比 mmcn、dcn 有效?
  7. 为什么数据量足够、同参数量的情况下 tokenmixer 的效果要更好?为什么 tokenmixer 的效率更好?
  8. 介绍几个序列建模的方法
  9. din 和 transformer 各自的优势是什么?它们建模的本质差别是什么?它们的 qkv 有什么区别?

《参考解析》

  1. Redis 集群里的 Lua 原子性,答案是「同 slot」:集群把 key 按 CRC16 映射到 16384 个 slot,Lua 脚本涉及的所有 key 必须落在同一个实例上,做法是用 hash tag 把 key 的同一段包在花括号里(如 {user:1}:stock、{user:1}:order),让它们落在同一 slot;也可以改用单实例或把逻辑换成 Redis 事务加乐观锁。答完要主动补一句边界:集群故障转移期间 Lua 的原子性仍然成立,但主从异步复制会带来锁或扣减的丢失窗口,所以关键扣减还要靠数据库唯一约束兜底。

  2. 秒杀链路的端到端提升要分层说:前端限流与按钮置灰防重复提交、网关层做 IP 与用户维度限流、服务端用令牌桶或漏桶控速、库存扣减在 Redis 用 Lua 原子完成并异步落库、数据库层用唯一索引和乐观锁防超卖,最后配 MQ 削峰与订单异步创建。面试官追问「除了 lua 还有什么」时,要给的是这套分层组合和每层挡掉了多少流量,而不是堆名词。

  3. 点赞用 set 还是 zset,取决于要不要按时间排序和计数:只需要判重和总数用 set;需要按点赞时间排序、取最近 N 个点赞用户、或需要 score 参与排名就用 zset。追问「为什么不用内存」「能存多少条」时,要讲清内存成本估算(每个元素的对象开销加 zset 的跳表与 dict 双结构,实际单元素开销远大于 8 字节)、大 key 带来的阻塞与迁移风险、以及按业务分片或只保留热数据、冷数据落库的策略。

  4. 「降低幻觉怎么量化」是这道题真正的难点:可用的口径有带标准答案的评测集上的准确率与忠实度、人工抽样打分、回答中无法追溯到检索证据的比例、以及线上点踩率与追问率。要说明基线怎么测、改动前后在同一评测集和同一 prompt 下对比、差异是否显著。被问「为什么不引入 agent 来评估」时,可以讲模型裁判的成本与偏差(位置偏差、长度偏好),所以它适合做粗筛、最终仍要有人工校准的抽样。

  5. prompt 与结构化输出要答到约束机制:写 prompt 的要点是角色与目标、上下文与参考资料、输出格式与字段定义、边界与拒答规则,再用少量示例固定风格。约束不被遵守时的解法按可靠性排序是:schema 校验加自动重试、受限解码或 JSON mode、把长流程拆成多步各管一段、用代码而非提示词做硬约束。要求强制输出 JSON 时,与其在提示词里反复叮嘱,不如直接把 schema 写进 prompt 并用校验器兜底,失败则带错误信息重试,重试上限内仍不合法就降级为规则解析。

  6. ttl 与懒刷新的区别是「谁来判断过期」:ttl 到期即不可读,一致性最直观;懒刷新在访问时才判断是否过期,省掉了主动清理的 CPU 与扫描成本,但会读到逻辑过期的数据,需要配合兜底重建。回答时最好把缓存三件套一起带出来——击穿用互斥重建或逻辑过期,穿透用空值缓存或布隆过滤器,雪崩靠过期时间加随机抖动与多级缓存;再看业务能容忍多旧的读数,决定用哪种策略。

  7. 搜广推与序列建模要能画出链路并说清差异:链路是召回(多路、全量候选)→ 粗排 → 精排(多目标、交叉特征)→ 重排(多样性、打散),搜索多一层 query 理解与相关性约束,广告多一层出价与计费。序列建模的演进从 DIN 的注意力式兴趣建模,到 Transformer 类结构做长序列、再到 tokenmixer 这类把特征 token 化的统一结构;DIN 的 attention 只针对候选与历史行为做加权、没有完整 QKV 结构,Transformer 则是对全序列自注意力,差别在于是否建模序列内部关系与位置信息。讲超参数时再点到多头数量与显存的关系——头数不改变总维度时计算量近似不变,但中间张量与 kernel 效率会受影响。