快手后端实习生二面面经
《面试题目》
AI 相关
- 拿到一个任务后,怎么做大模型的选型
- 在应用中有哪些可以节约成本的方法
- 在写提示词时,怎么能更好地命中缓存
- 讲一个上下文管理的案例,什么时候需要对上下文进行管理
- 讲下 RAG 使用的场景,举个项目中具体的例子
- 讲下 RAGAS 四个维度的评测指标,如何自己去实现这四个维度的评测
Java
- JVM 的内存区域(运行时数据区)
- 静态变量存放在哪个区域
- 什么情况下会使用本地缓存
Redis
- 什么是热点问题
场景题
- 设计一个分布式场景下趋势递增的发号器
- 设计一个停车场系统(忽略支付)
《参考解析》
- Prompt 缓存命中优化:主流大模型 API(如 OpenAI、Claude)支持前缀缓存,把固定不变的内容(如 System Prompt、few-shot 示例)放在 Prompt 最前面、可变的用户输入放在最后,能显著提高缓存命中率,降低重复计算成本和延迟。
- 静态变量存储位置:JDK 7 之前静态变量存放在方法区的永久代(PermGen),JDK 8 及之后方法区改为元空间(Metaspace,使用本地内存),但静态变量本身(作为 Class 对象的一部分)实际存放在堆中的 Class 对象里,只是类的元数据(如方法字节码)存放在元空间。
- 分布式趋势递增发号器:可选方案包括数据库自增序列/号段模式(批量获取一段ID缓存在本地)、雪花算法(Snowflake,时间戳+机器ID+序列号拼接生成趋势递增且全局唯一的 ID,无需强依赖中心节点,吞吐量高但依赖时钟同步)、Redis 的
INCR命令生成自增 ID。 - RAGAS 评测四维度:忠实度(Faithfulness,回答是否基于检索内容而非模型幻觉)、答案相关性(Answer Relevancy,回答是否切题)、上下文精确率(Context Precision,检索到的内容中有效片段的占比)、上下文召回率(Context Recall,应召回的相关内容有多少被实际召回),可通过构建标注好的问答对数据集,用大模型或规则打分的方式自动化评测。