Shopee 大模型开发 一面

1、自我介绍

2、训练和推理的并行策略

大模型训练和推理常见的并行策略主要有数据并行、张量并行、流水线并行和专家并行。

数据并行是每张卡放一份完整模型,不同卡处理不同 batch,然后通过 All-Reduce 同步梯度。它实现简单,但模型太大时单卡放不下。张量并行是把同一层的权重按列或者按行切到多张卡上,每张卡只算一部分,再做通信聚合,适合单层参数特别大的场景。流水线并行是把不同层分配到不同 GPU 上,让不同 micro-batch 像流水线一样流动,能解决单卡放不下完整模型的问题,但会有流水线气泡。专家并行主要出现在 MoE 结构里,不同 token 路由到不同专家,参数量可以很大,但每次只激活部分专家。

推理阶段除了这些并行方式,还会关注 batch 推理、连续批处理、KV Cache、PagedAttention 这类优化。训练更关注吞吐和显存,推理更关注首 token 延迟、吞吐和显存利用率。

3、了解过一些 RL 训练和推理的库吗

强化学习和大模型对齐这块常见的库有 TRL、DeepSpeed-Chat、OpenRLHF、Ray RLlib、Colossal-AI 相关方案,还有一些团队会自己在 Megatron 或 PyTorch Distributed 上做 PPO 或 DPO 训练。

TRL 是 Hugging Face 生态里比较常见的 RLHF 工具库,支持 SFT、PPO、DPO 这些流程,比较适合快速实验。DeepSpeed-Chat 更偏工程化,适合做大模型对齐训练和分布式加速。OpenRLHF 也是专门做大模型强化学习训练的,和 vLLM 等推理框架结合比较方便。Ray RLlib 是通用强化学习框架,不只面向大模型,但做分布式训练和环境管理比较成熟。

如果是 RL 训练里的推理,一般会把 policy rollout、reward model 打分、reference model 计算 KL 这些环节拆开,训练时往往要同时跑生成和打分,所以推理效率也很重要。

4、讲一下某大模型平台里的 Agent 流程

Agent 的核心不是单纯聊天,而是让模型具备任务分解、工具选择、执行和结果整合能力。一个典型流程是用户输入请求后,系统先做意图识别和安全检查,再把用户问题、系统规则、可用工具描述和上下文一起交给模型。模型先判断当前问题是否需要调用工具,如果不需要就直接返回结果;如果需要,就输出结构化的 tool call,包括工具名和参数。系统执行工具后,把返回结果再送回模型,模型再决定是否继续调用下一个工具,或者组织最终回答。

实际工程里还会加记忆管理、失败重试、超时熔断、权限控制和结果校验。比如查知识库走检索工具,查订单走业务 API,涉及多步推理时会做计划拆解。Agent 真正落地时一般不会完全自由放开,通常是工作流和 Agent 混合架构,这样稳定性会更高。

5、HNSW 怎么实现,底层、插入和检索过程是什么

HNSW 是 Hierarchical Navigable Small World,核心思想是构建一个分层的小世界图。上层节点少、连接稀疏,负责全局快速导航;下层节点多、连接更密,负责局部精细搜索。每个向量会被随机分配一个最大层数,层数越高出现概率越低,所以越往上节点越少。

底层结构上,每个节点存储向量本身、所在层数,以及每一层上的邻居列表。构图时会控制每层最大邻居数 (M),还会有构建时搜索参数 efConstruction,用来在插入时找更优邻居。检索时有 efSearch,控制候选集大小,值越大召回通常越高,但检索更慢。

插入过程一般是先从当前图的最高层入口点开始,贪心往更接近目标向量的节点移动,逐层下降。到了每一层后,先做局部搜索找候选邻居,再按启发式规则挑选邻居建立双向连接。这个启发式不是简单选最近的几个点,还会考虑图结构多样性,避免邻居过度聚集。

检索过程也是从顶层入口开始。高层一般使用贪心搜索,找到一个较好的落点后逐层往下。在最底层会维护一个候选优先队列和结果集合,持续扩展距离更近的节点,直到候选耗尽或满足停止条件。最终返回距离最近的 topK 结果。它高效的根本原因是利用了分层导航和小世界图的近邻可达性,不需要像暴力检索那样扫全库。

6、PPO 里的 KL 散度、

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

AI-Agent面试实战专栏 文章被收录于专栏

本专栏聚焦 AI-Agent 面试高频考点,内容来自真实面试与项目实践。系统覆盖大模型基础、Prompt工程、RAG、Agent架构、工具调用、多Agent协作、记忆机制、评测、安全与部署优化等核心模块。以“原理+场景+实战”为主线,提供高频题解析、标准答题思路与工程落地方法,帮助你高效查漏补缺.

全部评论

相关推荐

03-14 21:33
已编辑
东莞理工学院 Java
📍面试公司:好未来🕐面试时间:03/14💻面试岗位:golang后端开发❓面试问题:1. Go 的基本数据类型有哪些?2. 什么是值类型和引用类型,分别有哪些?3. slice 底层结构和扩容机制是什么?4. map 底层基于什么实现,是有序还是无序?5. 对 Go 的 channel 怎么理解?6. channel 一般用在什么业务场景?7. 无缓冲和有缓冲 channel 的区别是什么?8. 如何深拷贝 slice,避免多个变量互相影响?9. Redis 适用哪些业务场景?10. 为什么 Redis 单线程还能支持高并发?11. epoll 在 Redis 中用在什么场景?12. Redis 的 key 过期策略有哪些?13. Redis 过期删除后内存会立刻释放吗?14. Redis 内存满了有哪些淘汰策略?15. Redis 持久化方案有哪些?16. RDB 和 AOF 区别是什么?17. Redis 高可用方案有了解吗?18. Redis 主从、哨兵、集群的区别?19. ES 主要适用于什么场景?20. 业务数据(如订单)能不能存在 ES?21. 多表数据聚合同步到 ES 怎么实现?22. ES 集群健康状态有哪几种,分别代表什么?23. ES 设置分片和副本,允许节点宕机数量怎么判断?24. Kafka 和 RocketMQ 的区别是什么?25. Kafka 为什么会出现消息丢失?26. 如何避免 Kafka 消息丢失?27. Kafka 的 at least once 机制是什么?28. 业务层如何保证消息不丢失、最终一致?29. MySQL 事务隔离级别有哪些?30. MySQL 默认隔离级别是什么?31. 可重复读的含义是什么?32. 什么场景会使用不同的事务隔离级别?33. InnoDB 可重复读是怎么实现的?34. MySQL 有哪些存储引擎,区别是什么?35. MyISAM 适用什么业务场景?36. 联合索引的最左匹配原则是什么?37. MySQL 默认索引类型是什么,和哈希索引区别?38. 多表关联查询、聚合查询如何设计索引?39. 研发工程师应该如何应对和使用 AI?40. 使用 AI 编程工具有哪些风险?41. 怎么避免 AI 生成代码带来的线上问题?42. 平时用什么开发工具和 AI 模型?43. 使用 AI 辅助开发遇到过哪些问题,怎么解决?44.手撕sql包括建立索引等等🙌面试感想:感动坏了,春招以来最舒服的一场面试,大部分问题都回答出来了,并且面试官在你回答出来了之后,还会给予正反馈说没错,你说的对,然后记不太清楚的问题,他还会给予提示,然后告诉你该怎么去回答,并且给出他的看法,也是一天直接速通了两面下周三约HR面
发面经攒人品
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务