蚂蚁 AI应用开发 二面

1. 你之前接触过的中间件里,挑一个最熟的讲讲它的核心设计,重点说为什么要这样设计

如果讲消息队列,比较容易拉开差距的不是背概念,而是把吞吐、可靠性、顺序性和扩展性之间的取舍讲清楚。比如一套高吞吐 MQ 通常会采用顺序写磁盘、分区模型、批量发送、批量拉取和零拷贝来提升吞吐,但这么设计以后,消费顺序只能在单分区内严格保证,跨分区顺序就必须交给业务自己兜底。再比如可靠性不是简单开个副本就完事了,生产端要考虑重试和幂等,Broker 要考虑刷盘和副本同步策略,消费端还要考虑重复消费和位点提交时机。真正难的是理解这些机制不是孤立存在的,而是围绕吞吐、延迟、可恢复性一起做平衡。

2. 软件工程里的设计原则你怎么理解,别只说 SOLID,讲讲你在复杂系统里怎么落地

真正有区分度的回答不是背单一原则,而是说在复杂系统里如何避免代码和架构一起失控。比如单一职责在业务代码里意味着服务不要又查库又编排流程又发消息,接口隔离意味着给不同调用方暴露不同语义边界的接口,而不是一个巨型 DTO 打天下。依赖倒置在工程里更常见的落地是核心流程依赖抽象能力,比如依赖统一的存储接口、统一的模型网关、统一的消息发送接口,这样底层实现替换时不会把上层逻辑一起拖垮。真正高级一点的理解是,这些原则不是为了“写得优雅”,而是为了在需求持续变化时让系统还能改得动。

public interface ModelGateway {
    ChatResult chat(ChatRequest request);
}

@Service
public class QaService {
    private final ModelGateway modelGateway;

    public QaService(ModelGateway modelGateway) {
        this.modelGateway = modelGateway;
    }

    public String ask(String question) {
        return modelGateway.chat(new ChatRequest(question)).getContent();
    }
}

3. JVM 调优的步骤是什么,如果线上已经抖动了,你会怎么排

JVM 调优不能从参数开始,而要从现象开始。先确定问题是吞吐下降、延迟毛刺、Full GC 频繁还是直接 OOM,再去看监控里的堆、元空间、线程数、对象分配速率和 GC 次数。接着再结合 GC 日志、jstat、jmap、jstack、Arthas、MAT 去判断到底是对象生命周期异常、老年代增长过快、线程池积压、缓存泄漏还是大对象进入老年代过早。最后才是调参数,比如堆大小、Region 比例、GC 策略或者停顿目标。真正能体现水平的是你能把“现象—原因—验证—修复”这条链路讲完整,而不是只会背 G1 参数。

4. JVM 的作用是什么,为什么业务系统不能脱离 JVM 这一层去理解

JVM 不只是一个“让 Java 跑起来”的虚拟机,它实际上承担了内存管理、字节码执行、即时编译、垃圾回收、线程调度协作、类加载隔离和运行时安全边界这些职责。业务系统的吞吐、稳定性、延迟,很多时候都和 JVM 行为直接相关。比如一个接口 RT 抖动,表面上看是业务代码慢,实际上可能是 Young GC 过于频繁,或者某批对象被过早晋升导致老年代压力升高。再比如一个类加载问题,也可能引起 Metaspa

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

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

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

全部评论
拼多多招27届实习生啦 https://careers.pddglobalhr.com/campus/intern/detail?t=dRvUVvcTiA
点赞 回复 分享
发布于 04-07 13:58 上海

相关推荐

攒人品中,祝大家都能拿到满意的Offer!1.项目拷打2. 实习拷打3. 你们选用的训练方法是什么?训练数据具体是怎么构造的?4. 这里的训练过程,我理解是前面有一段医学语料的预训练,然后再加一段对齐过程,是这样吗?5. 关于 SFT 阶段,数据具体是怎么生成的?6. SFT 之后,后面的 DPO 过程又是如何开展的?7. DPO 需要 Chosen 和 Rejected 至少两组对比数据,这两组数据你们是怎么得到的?8. 我们现在这边可能对于医疗业务关系比较远,问一下更加基础的知识。既然谈到 DPO,谈一下 DPO 以及后续其他偏好学习算法的区别,以及各自的优劣。9. 那么 GRPO 算法呢?10. DPO 算法有哪些缺点?11. 谈谈强化学习中 On-policy 和 Off-policy 的区别,你是怎么理解的?12. 看你不仅做训练,还负责基础设施 Infra 的搭建。训练基础设施也是归你亲自搭吗?13. 当时是在哪个项目里面参与 Infra 工作的14. 你刚才提到了 Megatron,你们试过 PyTorch 原生的 FSDP 吗?15. 既然试过 FSDP,为什么最终还是选用了 Megatron?,你们当时的选型考量是什么?16. 既然提到 FSDP 和 DeepSpeed ZeRO 的区别,FSDP 实现了 ZeRO 的哪几个阶段?ZeRO-1, 2 还是 3?17. 探讨一个现实的业务问题:我们核心业务是对话类 Agent 产品。经典架构是前端设有一个意图识别与路由环节,将客户请求分发到不同的子 Agent,由于子 Agent 功能实现完全不同,不能混在一起,所以路由非常关键,一旦路由错误就无法满意回答。另外,作为全链路的必经点,路由必须足够快。我们考虑在最前端用一个相对较小(如 7B 或 13B)的模型,通过后训练使其掌握特定领域知识,实现低延迟的路由。如果让你做这个模型,你会怎么去做?
查看15道真题和解析
点赞 评论 收藏
分享
评论
点赞
4
分享

创作者周榜

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