同学,要不试试携程吧,秋招刚开,NTAW4HN帮忙查进度。
点赞 评论

相关推荐

本人技术栈主要是Python+Go,之前有两段后端实习经历一面一开始面试官就围着我之前的实习项目问,问得还挺细的:当时做项目的时候,为什么要引入父子索引?还有BM25,引入的原因是什么,比例是怎么设置的,整个具体流程是怎样的,有没有做rerank操作?如果做了rerank, rerank之后返回几个块?有没有做过一些验证来确保效果?rerank之后的topk截断是怎么实现的?为什么选这个k值,有没有考虑过其他方案?让我讲一下上下文工程,还有记忆功能是怎么实现的。除了AI相关的项目,还问了我之前做的后端实习项目,都是一些项目里的细节问题。分布式令牌桶限流、漏桶限流,还有滑动窗口算法限流,这三个都让我讲一下。尤其问了滑动窗口的数据结构会包含哪些字段,滑动窗口对比令牌桶有什么缺点,还有用Redis的什么数据结构能实现滑动窗口。又绕回我自己做的项目,让我讲一下LRU的原理和实现。布隆过滤器的原理、应用场景,也让我详细说一下。MySQL索引失效的情况,这块我八股好久没看了,只想起来两个,被面试官追问了好久,有点没答好。面试官还补问了一句,like查询会不会导致索引失效。MySQL的事务隔离级别,还有一致性相关的内容,让我讲清楚。MVCC这块问得特别细,反复追问,还举了具体场景,问这种情况下会创建几个readview,我当时琢磨了半天,尽量把自己知道的都讲了。最后还问了MySQL的锁相关知识,行锁、表锁这些都涉及到了。手撕代码环节,我跟面试官坦诚说,最近一直在实习,好久没刷过题了,然后面试官就出了一道反转链表,不算特别难,慢慢理清楚思路就做出来了。二面跟一面不一样,二面全程没涉及后端相关的问题,全是AI agent和RAG相关的,而且大部分都围绕我之前做的RAG项目展开,问得特别深入。首先问我,做RAG项目的时候,是怎么评测效果的?有哪些评测维度,具体用到了哪些指标?然后问项目里的数据集包含什么内容,数据来源、数据格式这些都问到了。如果让我对RAG的相关度和回答效果做优化,我有什么思路?有没有更体系化的优化方案,而不是零散的调整。面试官还举了个具体场景,比如有一千条数据,需要做求和处理,让我说说这种数据处理场景,我会怎么设计实现。RAG的性能怎么提升,有没有实际的优化思路,不管是工程层面还是算法层面。我项目里的上下文是怎么处理的,有没有什么优化的方向,比如上下文过长、冗余这些问题怎么解决。agent的长记忆和短记忆之间,怎么做到协同工作的,两者的衔接逻辑是什么。最后问我,有什么思路能让自己做的agent更智能?这个问题我感觉太宽泛了,当时没太get到面试官具体想了解什么,就主要围绕我工程开发中遇到的实际问题,讲了一些针对性的优化思路。手撕代码环节,出的是全排列,这个之前刷过类似的,思路比较清晰,顺利做出来了。感觉面试官比较爱问的AI问题就是RAG 的全链路优化、Agent、减少幻觉
查看23道真题和解析
点赞 评论 收藏
分享
3.6 一面自我介绍一、 项目相关1. 大概介绍一下你整个系统架构的链路,或者说你的系统整体链路是长什么样子?2. 你的库存信息怎么保留?存不存在超卖的现象?3. 你 Redis 里的信息是怎么跟 MySQL 做同步的?4. 初始结果不一致怎么办?(存不存在 Redis 初始结果跟 MySQL 不一致的问题)5. 你觉得这条链路在真实的生产环境下能用吗?还有哪些不完备的点?6. 如果消费队列扣减失败或订单写入 MySQL 失败,导致数据不一致,你有什么自动化机制(校验+补偿)来解决?7. 知识库构建的文档和语义信息数据来源是哪里?是自己整理的吗?8. 通过什么去做分词和检索?9. 向量数据库跟正常数据库的区别是什么?它怎么加速相似向量检索?10. 是否了解 HNSW 算法的具体实现?二、 八股1. 缓存击穿、穿透、雪崩这三个概念上的区别是什么?3. 使用 SETNX 指令跟执行 Lua 脚本的差异是什么?4. 排他锁(X锁)跟共享锁(S锁)的区别是什么?5. Java 线程模型如何保证线程间的公平性6. CAS是做什么的?它有什么问题?7. 数据库有哪些隔离级别?8. 如何解决“幻读”问题?InnoDB 引擎下是怎么处理的?9. 聚簇索引和非聚簇索引的区别是什么?10. 什么情况下不需要“回表”查询11. TCP 是通过哪些机制保证可靠传输的?12. 如何解决网络拥塞问题?(拥塞控制、慢启动、快重传等机制)13. 进程和线程在内存结构上有哪些区别和关系?14. 同步 I/O 和异步 I/O 的概念怎么理解?15. 异步 I/O 是在用户态执行还是系统态(内核)执行?谁来负责通知结果?16. Linux 的软链接和硬链接有什么区别?删除原始文件后哪种还能正常访问?17. Java 的 HashMap 是怎么解决冲突的18. 实现“数组+链表”时,为什么不能直接用 ArrayList 或 LinkedList 替换掉那个数组?手撕之字形(Zigzag)打印二叉树。3.10 二面一、项目1. 请介绍你在项目过程中印象最深、最具技术挑战或复杂度的点,以及你是如何解决的。2. 在秒杀场景下,如何保证“库存扣减”与“一人一单”逻辑的原子性?3. 为什么 Lua 脚本能做到分布式一致性?它是如何把多条命令聚合为原子操作的?4. Lua 脚本是如何编排这些多条 Redis 命令的?它是感知多个用户的命令还是单用户的顺序命令?5. 限流算法6. 除了限流,你是否了解“熔断”机制?它与限流的区别是什么?在下游服务扛不住时该如何处理?7. 你构建的知识库文档量级是多少?8. 如何从原始文档构建出向量检索索引库?索引库的底层数据结构是什么样的?9. 你了解 HNSW 和 IVF这两种索引算法的区别吗?它们分别适用于什么场景?手撕1. 无序数组频率统计 时间复杂度 O(n),空间复杂度 O(1)(允许修改原数组)2. 旋转有序数组找最小值3. 有 10 个 100G 的日志文件,存储用户的搜索 Query(存在重复),找出访问频次最高的 100 个 Query。单机内存仅 10G,可以使用多台机器。 口述思路3.11 hr面半小时后oc,晚上下正式offer明天就要入职了,希望一切顺利
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务