钉钉暑期实习 Java 研发一面面经
《面试题目》
- 自我介绍
- 深度参与项目产出
- OCR为何做文件识别,部署方案
- 是否使用过传统的PDF/DOCX读取SDK
- 文本内容为何还需要OCR
- PDF图片、图表(饼状图、折线图)的语义提取与理解
- OCR底层原理,给定饼图如何输出内容
- 如何识别占比等语义信息
- OCR识别与语义保留的评估指标
- 评估方法与打分标准
- 图表识别的评估依据
- 为何选择768维Embedding
- Embedding模型原理及构建方式
- Embedding底层、Token定义及100w Token限制原因
- 大模型参数量与显存消耗机制
- Transformer词表构建方式
- ES构建流程,关键词提取,BM25原理
- Milvus语义召回与ES关键词召回的融合策略
- 精排维度与原理
- Rerank精排效果更好的原因
- 策略涉及的问题(权重、维度、双向量检索、切分策略)
- 针对上述问题的优化解法
- 最核心的指标及其归纳
- 解释Function Calling, MCP, Skill的概念、场景及解决的问题
- 解释Prompt Engineering, Context Engineering, Harness Engineering
- 抽象类和接口的区别
- JVM内存回收算法(标记清除、标记整理)
- 存活时间的定义
《参考解析》
- OCR与图表提取:OCR通过CNN/Transformer提取视觉特征,再配合序列解码。图表理解通常先进行目标检测(识别图表区域),再针对特定图元(如柱、饼)进行坐标映射与占比计算,评估多用IoU、WER(识别准确率)及语义对齐度。
- RAG架构(ES+Milvus):ES处理结构化关键词查询(BM25),Milvus处理向量语义召回。融合通常通过加权融合或Rerank(重排序模型,如BGE-Rerank)对召回结果进行二次排序,以提升Top-K相关性。
- Embedding与Token:768维是BERT-Base的产物,平衡了性能与计算开销。Token是模型处理的最小单位(子词),受上下文窗口限制主要是因为Attention机制的计算复杂度是O(n²)。
- Prompt/Context/Harness Engineering:Prompt Engineering是单轮指令优化;Context Engineering侧重RAG流水线,解决幻觉;Harness Engineering指复杂Agent的工作流编排与逻辑控制。
- JVM:标记清除适合存活对象少的场景,标记整理(Mark-Compact)用于避免内存碎片,适合存活对象多的老年代。存活时间通过对象头部的GC分代年龄(Age)字段记录。