2025秋招AI热题:工程化与系统设计TOP80

98 阅读6分钟

算法能力强但不懂工程化,无法通过实习和面试终面

核心内容

  1. AI系统架构

    • 模型服务化部署(FastAPI、TorchServe)
    • 异步任务处理(消息队列、Worker)
    • 缓存策略(Redis、向量数据库)
  2. 高性能推理

    • 批处理优化(Dynamic Batching)
    • 模型并行与流水线并行
    • GPU利用率优化
  3. 数据处理

    • 数据清洗与标注流程
    • 向量化与检索(Faiss、Milvus)
    • 数据增强技术
  4. 监控与评测

    • 模型效果监控
    • A/B测试设计
    • 可观测性体系
  5. 安全与合规

    • Prompt注入防护
    • 内容安全审核
    • 隐私保护技术

模型服务化部署

  1. 模型部署和模型训练有什么区别?部署要考虑哪些问题?
  2. 模型服务化有哪些方案?Flask、FastAPI、TorchServe各有什么特点?
  3. FastAPI为什么适合做模型服务?异步处理怎么实现?
  4. 模型序列化怎么做?PyTorch的.pth和.pt有什么区别?
  5. ONNX是什么?为什么要转成ONNX格式?
  6. TorchScript是什么?JIT编译有什么好处?
  7. 模型推理的性能瓶颈在哪?计算、IO、网络哪个是主要矛盾?
  8. 批处理(Batching)为什么能提升吞吐量?动态批处理怎么实现?
  9. 模型推理的延迟(Latency)和吞吐量(Throughput)怎么权衡?
  10. GPU推理和CPU推理各有什么优缺点?什么时候用CPU就够了?
  11. 模型量化部署怎么做?INT8推理能省多少显存?
  12. TensorRT是什么?怎么优化模型推理速度?
  13. NVIDIA Triton是什么?怎么管理多个模型的部署?
  14. 模型热更新(Hot Reload)怎么实现?怎么做到不停机更新模型?
  15. A/B测试怎么做?怎么让一部分流量走新模型,一部分走老模型?
  16. 模型的灰度发布(Canary Deployment)是什么?怎么逐步上线?
  17. 模型服务的限流(Rate Limiting)怎么做?怎么防止过载?
  18. 模型服务的熔断(Circuit Breaker)是什么?怎么防止雪崩?
  19. 模型的多版本管理怎么做?怎么支持版本回滚?
  20. 模型服务的健康检查(Health Check)怎么设计?

高性能推理

  1. 模型推理加速有哪些方法?算子融合、内存优化、并行计算怎么做?
  2. 算子融合(Operator Fusion)是什么?怎么减少kernel launch开销?
  3. 内存池(Memory Pool)在推理时有什么用?怎么减少内存分配开销?
  4. CUDA Kernel优化怎么做?Shared Memory、Global Memory怎么用?
  5. 混合精度推理怎么做?FP16、INT8混合使用的策略是什么?
  6. 知识蒸馏(Knowledge Distillation)后的小模型怎么部署?
  7. 模型剪枝(Pruning)后的稀疏模型怎么加速?
  8. 模型的并行推理怎么做?数据并行和模型并行在推理时怎么选?
  9. 流水线并行(Pipeline Parallelism)在推理时有用吗?
  10. 推理时的Batch Size怎么选?太大太小各有什么问题?
  11. 动态Shape输入怎么处理?不同长度的输入怎么批处理?
  12. Padding和Truncation策略怎么选?怎么减少计算浪费?
  13. 模型的预热(Warmup)为什么重要?冷启动的第一次推理为什么慢?
  14. ONNX Runtime的优化有哪些?Graph Optimization做了什么?
  15. 边缘设备上的模型部署有什么特殊考虑?手机、嵌入式怎么跑模型?

分布式训练与推理

  1. 分布式训练和单机训练有什么区别?为什么要分布式?
  2. 数据并行(Data Parallelism)是什么?每个GPU处理不同数据怎么同步?
  3. All-Reduce是什么?梯度怎么在多个GPU之间汇总?
  4. Ring All-Reduce和Tree All-Reduce有什么区别?
  5. 模型并行(Model Parallelism)是什么?模型太大一张卡放不下怎么办?
  6. 张量并行(Tensor Parallelism)怎么切分层内的权重矩阵?
  7. Megatron-LM的张量并行策略是什么?列切分和行切分怎么配合?
  8. 流水线并行(Pipeline Parallelism)怎么切分层之间的模型?
  9. GPipe的流水线并行有什么特点?Bubble Time怎么减少?
  10. ZeRO(Zero Redundancy Optimizer)是什么?怎么省显存?
  11. ZeRO的三个阶段(Stage 1/2/3)分别优化了什么?
  12. DeepSpeed的实现原理是什么?和PyTorch DDP有什么区别?
  13. FSDP(Fully Sharded Data Parallel)是什么?和ZeRO有什么关系?
  14. 混合并行(Hybrid Parallelism)怎么设计?3D并行是什么?
  15. 分布式训练的通信开销怎么优化?梯度压缩、通信overlap怎么做?

数据处理与特征工程

  1. 数据清洗的常见方法有哪些?重复数据、缺失值、异常值怎么处理?
  2. 文本数据清洗怎么做?HTML标签、特殊字符、表情符号怎么处理?
  3. 数据标注怎么做?主动学习(Active Learning)能减少标注成本吗?
  4. 弱监督学习(Weak Supervision)是什么?怎么利用噪声标签?
  5. 数据增强(Data Augmentation)在NLP里怎么做?回译、同义词替换有用吗?
  6. 图像数据增强有哪些方法?旋转、翻转、裁剪、颜色变换怎么用?
  7. Mixup、CutMix这些数据增强方法是什么?
  8. 特征工程在深度学习时代还重要吗?
  9. 类别特征的编码方法有哪些?One-hot、Target Encoding、Embedding?
  10. 数值特征的归一化方法有哪些?Min-Max、Z-score、Robust Scaler怎么选?
  11. 特征选择(Feature Selection)怎么做?怎么去掉无用特征?
  12. 特征重要性怎么计算?SHAP、LIME能解释深度学习模型吗?
  13. 向量化(Vectorization)怎么做?TF-IDF、Word2Vec、BERT Embedding怎么选?
  14. 向量数据库(Vector Database)有哪些?Faiss、Milvus、Pinecone怎么选?
  15. 向量检索的索引怎么构建?IVF、HNSW、PQ各有什么特点?

监控与评测

  1. 模型的线上监控包括哪些指标?QPS、延迟、错误率怎么监控?
  2. Prometheus和Grafana怎么用?时序数据怎么存储和可视化?
  3. 模型的数据漂移(Data Drift)怎么检测?线上数据分布变了怎么办?
  4. 模型的性能衰减怎么监控?准确率下降了怎么发现?
  5. A/B测试的统计显著性怎么判断?p-value、置信区间怎么算?
  6. A/B测试的样本量怎么估算?多少用户才能得出结论?
  7. 多臂老虎机(Multi-Armed Bandit)和A/B测试有什么区别?
  8. 模型的可解释性怎么评估?SHAP值、注意力可视化够用吗?
  9. 对抗样本(Adversarial Examples)怎么检测?模型鲁棒性怎么测试?
  10. 模型的公平性(Fairness)怎么评估?偏见怎么检测和缓解?
  11. 模型的安全性测试包括哪些?Prompt注入、数据投毒怎么防?
  12. 日志系统怎么设计?ELK(Elasticsearch、Logstash、Kibana)怎么用?
  13. 分布式追踪(Distributed Tracing)是什么?Jaeger、Zipkin怎么用?
  14. 告警系统怎么设计?怎么避免告警疲劳(Alert Fatigue)?
  15. 事故复盘(Post-mortem)怎么做?模型出问题了怎么分析根因?