小红书 大模型算法岗面经合集(二):Redis 秒杀、MCP 与搜广推链路
- 轮次
- 多轮面试合集
- 时间
- 2026-09
- 来源
- 牛客网
《面试题目》
面经 01(2026 年 4 月 2 日)
- Redis 集群环境下,你怎么保证 lua 脚本上操作的 key 在同一个实例上来保证原子性?
- 令牌桶流量控制这块,是你自己实现的吗?还是找了一个现成的实现组件去用的?
- 你这个秒杀业务主要是用什么来保障它的并发的?除了这个 lua 脚本之外,端到端的提升是怎么做的?
- 前端上有做防秒杀、防并发的这种保护吗?
- 点赞业务什么时候用的 set,什么时候用的 zset?
- 这里的 zset 为什么不使用内存来进行操作,不都是可以起到合并写的作用?
- 那你这里的 zset 能存多少条点赞数量的数据?
- Zset 的数据结构了解吗,展开讲一下
- 那你这个降低幻觉,你是怎么发现的问题?做完优化之后,实际的效果是怎么去观测衡量的?RAG 这块,第二点是模块化 RAG 架构
- 你不是降低了幻觉吗?你怎么论证有效降低,实际效果怎么衡量的?
- 做这个所谓的衡量的时候,为什么不考虑再引入一个 agent 来做?
- 死循环监测能力,防止 agent 的无限循环。这里首先你是怎么识别到会有死循环问题的?
- 你现在日常在用 AI 工具是什么状态?只是 coding 吗?还是说也在做一些小的尝试、小的玩法,有贡献过 skill 吗?
- 你的 AI 规划的内容基于两部分,一个 websearch 搜索的,一个基于你的本地内容的方法调用,那你怎么综合这两部分的内容呢,是直接一股脑扔给 AI 大模型吗?
- 你现在在做路线规划,假设扩展一下发布功能:我希望用户只传图片、其他文案让他自己生成,就不只是路线规划了,你觉得这个事该咋做呢?
- 用户编写文案的意图,这件事打算怎么写呢?这个 skill
- 讲一下对 openclaw 的理解
- 什么样的功能适合做成 skill,什么样的不合适?
面经 02(2026 年 4 月 1 日)
- 场景题:第三个项目和 bd 合作时,我干了什么,有争议时怎么处理的
- 场景题:小红书站内的推送,前三天点击率高,后面的不高,怎么解决?
- 场景题:小红书的推送文案怎么用 AI 写更好,怎么量化?
- 场景题:怎么利用 AI 突破抖音限制,给小红书引流?
面经 03(2026 年 3 月 31 日)
- 讲一下常用的大语言模型
- nl2sql 项目 pipeline 怎么布的?
- 向量检索具体的策略有做吗?
- 一个术语可能匹配多个字段怎么做,存在实体映射吗?
- skill 和 mcp 区别
- 开发 mcp update 方法时如何确保安全性?
- 秒杀项目超卖如何解决?
- prompt 平时怎么写,有哪些细节?
- prompt 里的一些 workflow 和约束不遵守怎么解决?
- 我强制要求 llm 下游输出 json 格式,该怎么去写这个 prompt?
- redis ttl 和懒刷新的区别
- 特别多的 if 嵌套起来这种有什么解决方案?
算法题:括号匹配
面经 04(2026 年 3 月 31 日)
- 实习内容拷打
- mcp 架构介绍:tools、resources、prompts
- agent 应用中 tool 如何设计?
- mcp 如何接入 agent?
- GMP 调度,G 阻塞了会发生什么?
- 场景代码题:两个 json 对象对比前后经过什么操作
面经 05(2026 年 3 月 31 日)
- 检索精度与召回率的平衡(如 chunk 粒度优化),如何解决多跳推理问题?
- 知识更新机制(小红书 UGC 内容高频更新如何应对)
- 是否用 LLM 直接生成 Embedding?如何解决生成式检索的稳定性?
- 检索结果置信度过滤方案?是否引入知识图谱作为验证层?
- 用户生成内容(如错误美妆知识)如何清洗?实时性(如突发谣言)如何应对?
- 图文对 RAG 产品设计
面经 06(2026 年 3 月 31 日)
- Embedding 优化
- 如何通过预训练、微调提升效果?对比过哪些模型?
- 参数量与效果的关系?是否尝试过蒸馏或量化?
- RAG 车端项目
- Pipeline 中如何解决低延迟问题?Intent 分类的标签体系设计逻辑
- Rewriter 是否引入强化学习?如何评估改写后的 query 质量?
- LLM 对 Embedding 的影响
- LLM 的文本理解能力是否降低了对传统 Embedding 模型的依赖?举例说明
- 大模型在传统任务(如文本分类)未涌现的原因?(数据分布、任务形式差异)
算法题:卡塔兰数推导(递归公式 + 动态规划实现)
面经 07(2026 年 3 月 29 日)
- 算法基础提问
- 搜广推对哪个感兴趣,有什么倾向性?你觉得搜广推有什么区别?
- 对搜广推的链路有了解吗?介绍视频推荐的整个链路
- 召回粗精排的重点是什么,迭代方向是什么?
- 召回主要的迭代方向有什么,在做的方向有哪些?
- 介绍搜广推的发展历程
- 对 llm4rec 的范式有什么了解吗?onerec 有什么优势?
- 对文本大模型、多模态大模型有什么了解吗?
- transformer 的多头数量和显存有什么关系?注意力具体是怎么样算的?
- Adam 优化器会存储什么信息?
面经 08(2026 年 3 月 29 日)
- 主页精排模型的序列如何建模的?
- 主页精排模型的样本是如何组织的,listwise 和 user level 有什么区别?
- 你迭代模型的最终版本的结构
- tokenmixer 上线了吗?没有收益的原因是什么?
- 介绍 tokenmixer 的结构
- 什么情况下 tokenmixer 会比 mmcn、dcn 有效?
- 为什么数据量足够、同参数量的情况下 tokenmixer 的效果要更好?为什么 tokenmixer 的效率更好?
- 介绍几个序列建模的方法
- din 和 transformer 各自的优势是什么?它们建模的本质差别是什么?它们的 qkv 有什么区别?
《参考解析》
-
Redis 集群里的 Lua 原子性,答案是「同 slot」:集群把 key 按 CRC16 映射到 16384 个 slot,Lua 脚本涉及的所有 key 必须落在同一个实例上,做法是用 hash tag 把 key 的同一段包在花括号里(如
{user:1}:stock、{user:1}:order),让它们落在同一 slot;也可以改用单实例或把逻辑换成 Redis 事务加乐观锁。答完要主动补一句边界:集群故障转移期间 Lua 的原子性仍然成立,但主从异步复制会带来锁或扣减的丢失窗口,所以关键扣减还要靠数据库唯一约束兜底。 -
秒杀链路的端到端提升要分层说:前端限流与按钮置灰防重复提交、网关层做 IP 与用户维度限流、服务端用令牌桶或漏桶控速、库存扣减在 Redis 用 Lua 原子完成并异步落库、数据库层用唯一索引和乐观锁防超卖,最后配 MQ 削峰与订单异步创建。面试官追问「除了 lua 还有什么」时,要给的是这套分层组合和每层挡掉了多少流量,而不是堆名词。
-
点赞用 set 还是 zset,取决于要不要按时间排序和计数:只需要判重和总数用 set;需要按点赞时间排序、取最近 N 个点赞用户、或需要 score 参与排名就用 zset。追问「为什么不用内存」「能存多少条」时,要讲清内存成本估算(每个元素的对象开销加 zset 的跳表与 dict 双结构,实际单元素开销远大于 8 字节)、大 key 带来的阻塞与迁移风险、以及按业务分片或只保留热数据、冷数据落库的策略。
-
「降低幻觉怎么量化」是这道题真正的难点:可用的口径有带标准答案的评测集上的准确率与忠实度、人工抽样打分、回答中无法追溯到检索证据的比例、以及线上点踩率与追问率。要说明基线怎么测、改动前后在同一评测集和同一 prompt 下对比、差异是否显著。被问「为什么不引入 agent 来评估」时,可以讲模型裁判的成本与偏差(位置偏差、长度偏好),所以它适合做粗筛、最终仍要有人工校准的抽样。
-
prompt 与结构化输出要答到约束机制:写 prompt 的要点是角色与目标、上下文与参考资料、输出格式与字段定义、边界与拒答规则,再用少量示例固定风格。约束不被遵守时的解法按可靠性排序是:schema 校验加自动重试、受限解码或 JSON mode、把长流程拆成多步各管一段、用代码而非提示词做硬约束。要求强制输出 JSON 时,与其在提示词里反复叮嘱,不如直接把 schema 写进 prompt 并用校验器兜底,失败则带错误信息重试,重试上限内仍不合法就降级为规则解析。
-
ttl 与懒刷新的区别是「谁来判断过期」:ttl 到期即不可读,一致性最直观;懒刷新在访问时才判断是否过期,省掉了主动清理的 CPU 与扫描成本,但会读到逻辑过期的数据,需要配合兜底重建。回答时最好把缓存三件套一起带出来——击穿用互斥重建或逻辑过期,穿透用空值缓存或布隆过滤器,雪崩靠过期时间加随机抖动与多级缓存;再看业务能容忍多旧的读数,决定用哪种策略。
-
搜广推与序列建模要能画出链路并说清差异:链路是召回(多路、全量候选)→ 粗排 → 精排(多目标、交叉特征)→ 重排(多样性、打散),搜索多一层 query 理解与相关性约束,广告多一层出价与计费。序列建模的演进从 DIN 的注意力式兴趣建模,到 Transformer 类结构做长序列、再到 tokenmixer 这类把特征 token 化的统一结构;DIN 的 attention 只针对候选与历史行为做加权、没有完整 QKV 结构,Transformer 则是对全序列自注意力,差别在于是否建模序列内部关系与位置信息。讲超参数时再点到多头数量与显存的关系——头数不改变总维度时计算量近似不变,但中间张量与 kernel 效率会受影响。