AI工程师面试题库

房产领域多模态模型 · 数字人技术 · 游戏开发 · 爬虫数据(可选)

AI核心(必考)
多模态与微调
数字人与游戏
爬虫与数据(加分)
系统设计
1
Transformer中Self-Attention的计算过程是什么?在处理高分辨率房源图像时,计算复杂度如何优化?
核心原理
标准答案
Self-Attention计算:Attention(Q,K,V) = softmax(QK^T/√d_k)V,Q/K/V由输入线性变换得到,复杂度为 O(n²d),n为序列长度。

高分辨率图像的优化手段:
1. Patch化:将图像分成固定大小patch(如16×16),降低序列长度。ViT标准做法
2. 窗口注意力(Swin Transformer):限制注意力范围在本地窗口,O(n)线性复杂度
3. FlashAttention:通过IO感知的分块计算,减少HBM读写,显存节省3-10x
4. 线性注意力近似:Performer/Linformer将softmax近似为核函数
加分项
能说出房源图像特殊性:大图(4K)、细节区域(户型图局部)需要不同的patch策略
提到FlashAttention2/3的实现差异,或xFormers库的实际使用
理解RoPE位置编码在视觉Transformer中的作用
难度
2
请详细描述你从零微调/训练一个多模态模型的完整流程,包括数据准备、训练策略、评估指标。
实战核心
标准答案
完整流程:

① 数据准备:图文对收集 → 清洗(去重、低质过滤)→ 标注(CLIP相似度打分)→ 构建指令数据集(图+问题+答案三元组)

② 模型选型:视觉编码器(CLIP/SigLIP)+ LLM骨架(LLaMA/Qwen)+ 投影层(MLP或cross-attention)

③ 训练阶段:
Stage 1: 冻结视觉编码器,只训练投影层(特征对齐)
Stage 2: 解冻LLM部分,LoRA微调(目标任务)
Stage 3(可选): 全量微调或RLHF

④ 关键超参:学习率warmup、梯度裁剪(max_norm=1.0)、混合精度(bf16)

⑤ 评估:VQA Accuracy、CIDEr(描述生成)、房产专项:户型图理解准确率、价格区间预测
一定要追问
LoRA的rank值怎么选?为什么不直接全量微调?(显存+过拟合权衡)
数据不平衡怎么处理?(高价豪宅样本少)
用过什么训练框架?DeepSpeed ZeRO?Megatron-LM?
3
LoRA、QLoRA、IA³ 三种参数高效微调方法的原理与适用场景,如何在显存有限(单卡24G)下微调7B模型?
核心技术
标准答案
LoRA:将权重更新分解为低秩矩阵 W' = W + AB(A∈R^{d×r}, B∈R^{r×k}),r远小于d/k。只训练A/B,参数量减少99%+

QLoRA:在LoRA基础上将基座模型量化到4bit(NF4),用bfloat16做计算,单卡24G可跑7B。关键:double quantization + paged optimizer

IA³:引入可学习缩放向量,参数更少,但效果有时弱于LoRA

24G单卡跑7B的完整配置:
- 基座4bit量化(bitsandbytes)
- LoRA rank=16, alpha=32, target: q_proj/v_proj
- 梯度检查点(gradient_checkpointing=True)
- batch_size=1, gradient_accumulation=8
- 序列长度≤2048
加分项
能说出NF4量化的信息论依据(权重近似正态分布)
知道Paged Optimizer解决的是显存碎片问题
提到用unsloth加速LoRA训练可达2x+
4
训练过程中遇到loss不收敛/NaN,如何系统性排查?举一个你实际遇到过的案例。
工程经验
标准答案(排查思路)
系统排查顺序:
1. 数据问题:检查是否有inf/NaN输入,文本tokenization溢出,图像归一化范围
2. 学习率:过大导致梯度爆炸,加梯度裁剪(clip_grad_norm=1.0),降LR
3. 混合精度:fp16下溢出,换bf16;检查loss_scale
4. 模型结构:LayerNorm缺失,残差连接初始化问题
5. 批次问题:某批次含异常样本,加try-except跳过

实际案例(候选人应能描述自己的):如"多模态对齐阶段,图像编码器输出全为0,原因是冻结参数时误冻了归一化层的running_mean"
考查重点
有无真实训练大模型的经验,不是跑demo
排查方法是否系统,还是瞎猜
5
RLHF的完整流程是什么?DPO相比PPO的优势在哪里?在房产问答场景下如何收集偏好数据?
核心技术
标准答案
RLHF流程:SFT预热 → 偏好数据标注(chosen/rejected对)→ 训练Reward Model → PPO强化学习

DPO优势:绕过显式RM,直接优化策略,训练更稳定,无需4个模型同时加载(PPO需要actor/critic/RM/ref各一个)。损失函数:-log σ(β log(π_θ(y_w)/π_ref(y_w)) - β log(π_θ(y_l)/π_ref(y_l)))

房产场景偏好数据:
- 同一套房子,A回答"朝南、采光好、单价5万" vs B回答"还可以"
- 用户点击行为隐式收集(哪个回答后用户继续咨询)
- 专业经纪人标注哪个回答更专业、更准确
1
设计一个房产领域多模态模型,输入:房源图片+文字描述+户型图,输出:智能推荐理由+价格区间预测。请设计完整的模型架构。
系统设计
标准答案
推荐架构(LLaVA风格 + 领域增强):

视觉编码:SigLIP-SO400M(房源图片 + 户型图分别编码)+ 高分辨率切图策略(anyres)

特征融合:MLP投影层将视觉特征映射到LLM token空间,支持动态分辨率

语言骨架:Qwen2.5-7B-Instruct(中文能力强)

特殊设计:
- 户型图用专门的结构理解头(房间分割 + 面积OCR)
- 价格预测:在LLM输出上接回归头,同时保留生成理由
- 地理位置编码:将经纬度/地铁距离作为结构化特征注入

训练数据:公开房产数据(安居客、链家爬取)+ 人工标注推荐理由 ~100k条
追问
户型图识别的特殊挑战是什么?(线条图 vs 实景图,分布差异大)
价格预测用生成式还是判别式?为什么?
如何处理城市间价格量纲差异?
2
开源多模态模型中,LLaVA、InternVL2、Qwen-VL、MiniCPM-V各有何特点?选型时如何决策?
选型能力
标准答案
LLaVA 1.5/1.6:结构简洁(MLP投影),社区生态最好,适合快速实验和自定义微调。anyres支持高分辨率

InternVL2:视觉编码器更强(InternViT-6B),中文+多语言表现优秀,高分辨率处理领先,适合对图像理解精度要求高的场景

Qwen-VL/Qwen2-VL:阿里出品,中文理解最强,商业授权友好,整合了2D/3D位置编码(M-RoPE),视频理解能力强

MiniCPM-V:端侧部署友好,小参数量高效,适合移动端/边缘计算

房产场景选择:优先InternVL2-8B(图像理解强+中文好)或Qwen2-VL(OCR强,适合户型图文字识别)
3
如何构建房产垂直领域的多模态训练数据集?数据清洗流程、质量控制标准是什么?
数据工程
标准答案
数据来源:房产平台爬取(图片+描述+价格)、用户QA对、专家标注、合成数据(GPT-4V生成)

清洗流程:
1. 图像质量过滤:分辨率<224丢弃,模糊度检测(Laplacian方差<100丢弃)
2. 图文相关性:CLIP相似度<0.2的对丢弃
3. 文本清洗:去广告词、联系方式、特殊字符,长度过短(<20字)过滤
4. 去重:图像感知哈希(pHash)+ 文本MinHash
5. 数据均衡:不同城市/价格段/户型的分布控制

质量控制:10%人工抽检,标注一致性>85%,建立数据记录卡(data card)
4
模型推理时如何做量化部署?INT8 vs INT4 vs GPTQ vs AWQ,在房产APP中如何选择?
工程部署
标准答案
INT8(LLM.int8):精度损失小,速度约提升1.5x,适合对精度敏感场景

GPTQ(INT4):逐层量化,精度略低,速度快2-4x,需要校准数据

AWQ:激活感知量化,保护重要权重,INT4下精度接近fp16,推荐首选

房产APP场景:
- 云端API服务:AWQ INT4 + vLLM,吞吐量最优
- 实时响应(<2s):考虑更小模型(3B)+ INT4,或TensorRT-LLM加速
- 视觉部分:通常保持fp16(量化收益小,精度损失大)
1
实时数字人的完整技术栈是什么?从音频输入到画面渲染的端到端延迟如何控制在200ms以内?
核心技术
标准答案
完整链路:
ASR(语音识别)→ LLM推理 → TTS(语音合成)→ 唇形驱动 → 渲染输出

各模块延迟控制:
- ASR:流式识别(Paraformer-streaming),VAD端点检测,首包延迟<100ms
- LLM:流式输出token,首token<200ms;用小模型(3-7B)+ KV cache
- TTS:流式合成(CosyVoice/Fish-Speech),边生成边播放
- 唇形:SadTalker / MuseTalk实时驱动,用音频特征而非文本
- 渲染:3DGS/NeRF预烘焙,或2D视频流合成(更低延迟)

总延迟优化:流水线并行,LLM输出前5个token就启动TTS,TTS前3帧就启动唇形生成
追问
用过MuseTalk / HeyGen / D-ID / SadTalker哪个?生产上遇到什么问题?
数字人形象版权和肖像授权如何处理?
多人同时访问时的并发方案?(预渲染 vs 实时)
2
在Unity/Unreal中集成AI模型,如何处理Python推理服务与游戏引擎的通信?性能瓶颈在哪里?
游戏+AI
标准答案
通信方案:
1. gRPC:低延迟,Protocol Buffers序列化,适合帧级数据传输
2. WebSocket:双向流式,适合对话/语音流
3. 共享内存:同机部署时零拷贝,延迟最低(用于渲染结果传输)
4. REST API:简单但延迟高,只适合非实时查询

性能瓶颈:
- 图像从GPU显存 → CPU → 网络的拷贝开销(用CUDA IPC或DMA)
- Python GIL限制并发(用多进程或asyncio)
- Unity主线程阻塞:AI调用必须异步(async/await + Job System)

实践建议:AI推理服务独立部署,游戏引擎通过消息队列解耦,避免游戏帧率受AI推理影响
3
NeRF、3D Gaussian Splatting、传统骨骼动画在数字人中各适用什么场景?它们的核心原理差异是什么?
渲染技术
标准答案
NeRF:神经辐射场,隐式表达,用MLP建模空间中任意点的颜色和密度。优点:真实感强,照明一致;缺点:训练慢(数小时),渲染慢(需光线采样),动态形变难

3D Gaussian Splatting(3DGS):显式点云表达,每个高斯球包含位置/旋转/颜色/不透明度,GPU光栅化渲染。优点:训练快(分钟级),实时渲染(100fps+);缺点:静态场景,动态驱动需额外模型(如GaussianAvatars)

骨骼动画:美术资产驱动,控制精确,引擎原生支持,适合游戏中需要精确控制动作的NPC

数字人选型:
- 直播/视频数字人:3DGS + 表情驱动(实时渲染)
- 游戏NPC:骨骼动画 + 表情Blend Shape
- 高精度展示(非实时):NeRF
4
游戏中的AI NPC对话系统如何设计?如何保证角色的一致性人格和长期记忆?
AI+游戏
标准答案
系统设计:
- 角色卡(System Prompt):定义NPC的性格、背景、说话风格、世界观限制
- 短期记忆:对话上下文窗口(最近N轮)
- 长期记忆:向量数据库(Milvus/Qdrant)存储重要事件,RAG检索注入
- 情绪状态机:根据对话内容更新NPC情绪(影响回复风格)
- 世界状态感知:游戏事件通过结构化数据注入prompt("当前时间:夜晚,玩家刚完成任务X")

一致性保证:embedding检索历史对话中的矛盾点,加入冲突检测模块;关键事实存KV数据库,不依赖LLM记忆
1
如何爬取房产平台(如链家/安居客)的房源数据?反爬机制应对策略是什么?如何保证数据合规?
加分项
标准答案
爬取方案:
- Scrapy + Playwright(处理JS渲染页面)
- 请求频率控制(随机延迟2-5s)+ IP代理池轮换
- UA随机化 + Cookie管理
- 优先使用官方API/数据合作(合规首选)

反爬应对:
- 滑块验证码:Selenium模拟人工轨迹 + 图像识别
- 字体反爬:下载自定义字体,建立字符映射表
- JS混淆:逆向分析 or 无头浏览器直接渲染

合规边界:爬取公开信息(价格/位置/描述)可行,用户隐私/联系方式禁止;需审查robots.txt;优先考虑数据采购或官方合作
考查重点
有无实际爬过大规模数据的经验(百万量级)
对合规有清醒认识,不会无底线爬取
2
拿到100万条房源数据后,如何做数据清洗和特征工程,用于训练价格预测模型?
加分项
标准答案
清洗步骤:
1. 异常值处理:价格3σ外视为异常(或用IQR),单价0或极端值过滤
2. 缺失值:面积/卧室数等关键字段缺失行丢弃;楼层等非关键字段均值填充
3. 标准化:城市/区县/地铁站名实体对齐(不同叫法统一)
4. 去重:(城市+小区名+楼层+面积+发布时间)组合去重

特征工程:
- 地理特征:距CBD距离、距最近地铁距离、学区属性
- 房屋特征:单价=总价/面积、容积率、楼层段(低/中/高)
- 时序特征:挂牌天数、历史价格变化趋势
- 文本特征:描述的TF-IDF或sentence embedding

模型选择:XGBoost/LightGBM作baseline,再用多模态模型做提升
1
设计一个"AI找房助手"的完整系统,用户上传照片说"找个和这个风格类似、预算500万以内、上海市区的房子",系统如何响应?
综合设计
标准答案(优秀候选人应能白板画出)
端到端流程:

1. 意图理解:多模态模型解析用户输入,提取:风格特征(图片embedding)+ 结构化约束(城市=上海, 价格≤500万)

2. 风格检索:图片embedding → 向量数据库(Milvus)相似搜索,找装修风格相近房源

3. 多路召回 + 精排:向量召回 + 价格过滤 + 地理过滤 → 融合排序(考虑相似度+性价比+时效性)

4. 生成推荐理由:将Top-K房源信息注入prompt,多模态模型生成个性化推荐语

5. 数字人呈现:文字+TTS → 数字人语音播报推荐结果

技术组件:FastAPI + Celery(异步任务)+ Redis(缓存)+ Milvus(向量库)+ PostgreSQL(结构化)+ vLLM(推理)
评分标准
能说出"向量检索+结构化过滤"混合方案(不是纯LLM),说明工程思维成熟
主动提到冷启动问题、数据新鲜度、系统可扩展性
能估算延迟预算(用户体验要求<3s总响应)
2
如果AI模型在生产环境出现幻觉(编造了不存在的房源信息),如何从工程角度防控?
工程可靠性
标准答案
防控层次:

① 架构层:强制RAG(检索增强),所有房源信息从数据库检索,不让模型凭空生成。Prompt中明确:"只使用以下检索到的房源信息,禁止编造"

② 输出验证层:结构化输出(JSON Schema),对价格/面积/地址字段做正则校验 + 数据库二次核验

③ 置信度:检索相似度低于阈值时,拒绝回答并提示"暂未找到符合条件的房源"

④ 监控:线上记录所有AI输出,采样人工审核,建立幻觉率指标(目标<0.1%)

⑤ 降级:AI服务异常时自动降级到规则引擎,保证基础体验