百度一面面经

常规问题:

1. 3分钟简单自我介绍
2. 在实习和开源经历中,你遇到的最大困难或最具挑战性的事情是什么?

实习拷打(拓展相应的场景八股)

慢 sql 治理相关的

1. 你在平台稳定性建设中提到通过添加索引、读写分离优化慢SQL,具体是怎么做的?
2. 读写分离可以再详细说一下吗
3. 能否举一个添加索引的具体例子?比如在哪个字段上加了什么类型的索引?
4. 你加的是单列索引,如果查询只需要表中的几个字段,当前的单列索引是否有优化空间?
5. 联合索引相比单列索引的优势是什么?为什么更优?(从回表,索引下推优化那个方向说就好)

es 慢查治理相关

1. 关于ES扩容主分片优化查询,具体是怎么做的?
2. 系统的ES集群资源配置你了解吗?(如CPU、节点数等)
3. 扩容分片数量是如何确定的?仅依据数据量吗?
4. 分片切割后为什么查询会变快(并行查询)
5. 将 long 类型字段转为keyword类型,是如何利用跳表结构的?这里其实并不能,只是切换是为了适应精准匹配的场景,keyword 的底层用的是倒排索引+跳表
6. 除了分片扩容和类型转换,还有哪些方式可以优化ES慢查询?(force merge 整理碎片)

分布式锁(业务中有个并发修改用到了,主要问的一些分布式锁的实现细节)

1. 你在业务中使用的分布式锁是标准库还是自研的?
2. 让你自己实现一个最简单的分布式锁,你会怎么实现?
3. 如果任务加锁后异常退出,没有释放锁,如何避免死锁?
4. 如果任务执行时间很长,锁过期被其他任务获取,原任务完成后误删了别人的锁,如何解决(防止锁的误释放,加标识)
5. 如果任务A包含多个子任务,且子任务本身也有加锁逻辑,在嵌套调用时会因重复加锁失败,如何解决?(可重入锁的实现)
6. 在秒杀场景下,能否直接用分布式锁控制库存扣减?会有什么问题?
7. 如何让秒杀请求不立即失败?(锁的自旋)

并发编程

1. 你使用CompletableFuture并发查询多个维度,底层是如何实现并发的?
2. 你是自己定义线程池,还是使用默认线程池?
3. 你是基于什么依据设置线程池参数的?
4. 如果一个任务同时包含CPU密集型和I/O密集型操作,共用一个线程池会有什么问题?应该如何设计?(线程池隔离,避免cpu密集型任务阻塞I/O密集型任务)

Agent和开源相关的内容

1. 你的基座模型切换(DeepSeek → 千问)后,响应是流式还是非流式?
2. 为什么关注完整响应时间,而不是首字响应时间?(主要是业务上的一个需要)
3. 你的性能优化目标是在保证输出内容不变的前提下缩短生成时间吗?
4. 你在Agent框架中使用了责任链模式和观察者模式,请分别解释这两种模式
5. 既然有四个固定执行步骤(Agent执行前,执行后,模型执行前,执行后),是否可以用模板方法模式替代责任链模式?
6. 你使用观察者模式的具体场景是什么?为什么选择它?
7. 你还了解哪些常用设计模式?
8. 你提到使用HNSW算法进行向量搜索,能简述其基本原理吗?(避免全表的向量查询)
9. 为什么不直接用余弦相似度做全量匹配,而要引入HNSW?
10. 你是否使用过BM25算法?它的作用是什么?
11. 向量搜索有哪些弊端?
12. 向量检索和BM25全文检索的得分量纲不同,如何进行混合排序?(引入一个精排模型重新打分)

反问:
1. 业务(智能客服相关)
2. 不足,基础还需要加强

无手撕,总体一个小时

总结:面试体验很好,主要就是根据简历延伸一些八股和简单场景,有些还需要加强的地方,挖出来了自己基础上的一些问题
全部评论
给大佬跪了
点赞 回复 分享
发布于 昨天 15:30 北京
耐面王
点赞 回复 分享
发布于 昨天 06:57 北京
大佬来百度跟我🤺
点赞 回复 分享
发布于 昨天 00:55 北京

相关推荐

评论
5
6
分享

创作者周榜

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