Appearance
AI 面试题
AI 面试主线:LLM 基础 → Prompt 工程 → RAG → Agent → 微调 → 向量数据库 → AI 系统设计。
Q1: 什么是 RAG?它的核心架构? 「🟢 校招/初级」
考察点:检索增强生成的理解深度。
参考答案:
- RAG(Retrieval-Augmented Generation):结合检索系统和生成模型的技术,通过检索外部知识来增强 LLM 的回答准确性。
- 核心流程:
- 索引阶段:文档 → 分块(Chunking)→ 向量化(Embedding)→ 存储到向量数据库。
- 检索阶段:用户 Query → 向量化 → 相似度搜索 → 返回 Top-K 相关文档。
- 生成阶段:Query + 检索结果 → 构建 Prompt → LLM 生成回答。
- 优势:
- 解决 LLM 知识截止问题。
- 减少幻觉(Hallucination)。
- 可溯源(提供引用来源)。
- 无需重新训练模型。
架构图:
用户查询 → Embedding → 向量检索 → 相关文档
↓ ↓
LLM ← Prompt(Query + 文档)← ┘
↓
生成回答追问延伸:
- RAG vs 微调,怎么选?(知识更新频率、成本、可控性)
- RAG 的常见优化手段?(见 Q2)
Q2: RAG 系统的常见优化策略? 「🟡 中级」
考察点:RAG 实战经验。
参考答案:
- 分块优化:
- 动态分块(按语义、段落长度)。
- 重叠(Overlap)保持上下文。
- 多级索引(摘要 → 详情)。
- 检索优化:
- 混合检索:向量检索 + 关键词检索(BM25)。
- 多路召回:多个检索源,融合排序(RRF)。
- 重排序:Cross-Encoder、Cohere Rerank、BGE-Reranker。
- 查询改写:HyDE(假设文档生成)、子查询分解。
- 上下文增强:
- 元数据过滤:时间、类别、来源。
- 上下文压缩:去除无关段落。
- 提示工程:明确引用格式、要求基于上下文回答。
- 评估体系:
- 忠实度(Faithfulness):回答是否基于检索内容。
- 相关性(Relevance):检索内容是否匹配 Query。
- RAGAS、TruLens 评估框架。
追问延伸:
- 怎么处理表格、图片等非结构化数据?
- RAG 的延迟优化?(缓存、并行检索)
Q3: 什么是 AI Agent?和 RAG 有什么区别? 「🟢 校招/初级」
考察点:Agent 概念理解。
参考答案:
- AI Agent(智能体):具备自主决策能力的系统,能感知环境、制定计划、执行动作、获取反馈。
- 核心组件:
- 大脑(LLM):推理、规划、决策。
- 记忆:短期记忆(对话历史)、长期记忆(向量数据库)。
- 工具(Tools):API、搜索引擎、代码执行器、数据库。
- 规划(Planning):任务分解、反思、重试。
- 工作流程:
用户目标 → LLM 理解 → 任务分解 → 选择工具 → 执行 → 观察结果 → 反思 → 完成 - vs RAG:
- RAG 是被动的知识检索,Agent 是主动的任务执行。
- Agent 可以调用 RAG 作为工具之一。
- Agent 具有循环逻辑(ReAct),RAG 是单次流程。
经典框架:
- ReAct:Reasoning + Acting,交替推理和行动。
- AutoGPT:全自主多步任务。
- LangChain Agent、LlamaIndex Agent。
追问延伸:
- Agent 的可靠性怎么保证?
- 多 Agent 协作的实现?
Q4: ReAct 框架的原理? 「🟡 中级」
考察点:Agent 核心算法。
参考答案:
- ReAct(Reasoning and Acting):结合推理和行动,让 LLM 交替生成思考(Thought)和行动(Action)。
- 三步循环:
- Thought:LLM 分析当前状态,决定下一步。
- Action:选择并执行工具(如
Search[query])。 - Observation:获取工具返回结果。
- 循环直到得出最终答案。
示例:
Question: 北京今天的气温比上海高多少度?
Thought 1: 我需要先查询北京的气温
Action 1: Search["北京今天气温"]
Observation 1: 北京今天气温 25°C
Thought 2: 现在需要查询上海的气温
Action 2: Search["上海今天气温"]
Observation 2: 上海今天气温 20°C
Thought 3: 计算差值:25 - 20 = 5°C
Action 3: Finish[北京今天气温比上海高 5 度]优势:
- 可解释性强(思维链可见)。
- 错误可追溯(知道哪步出错)。
- 支持重试和反思。
追问延伸:
- ReAct vs Plan-and-Execute?
- 怎么优化 ReAct 的 token 消耗?
Q5: 向量数据库的选型和原理? 「🟡 中级」
考察点:RAG 基础设施理解。
参考答案:
- 核心功能:存储向量(Embedding),支持相似度搜索(ANN)。
- 常见算法:
- HNSW:层次可导航小世界图,速度快、内存占用高。
- IVF:倒排文件索引,适合大规模数据。
- PQ:乘积量化,压缩向量节省内存。
- Flat:暴力搜索,精确但慢。
- 主流数据库:
数据库 特点 适用场景 Milvus 分布式、高性能 亿级向量、生产环境 Pinecone 全托管、易用 SaaS、快速上线 Weaviate GraphQL 支持 多模态检索 Qdrant Rust 实现 高性能、低延迟 Chroma 轻量级 原型开发、本地测试 pgvector PostgreSQL 插件 已有 PG 的系统 FAISS Meta 开源 研究、离线处理 - 关键指标:
- QPS:每秒查询数。
- 延迟:P99 延迟。
- 召回率:ANN 近似度。
- 扩展性:是否支持分布式。
追问延伸:
- 向量检索和倒排索引的区别?
- 怎么做混合检索(Hybrid Search)?
Q6: Prompt Engineering 的核心技巧? 「🟢 校招/初级」
考察点:LLM 应用能力。
参考答案:
- 结构化提示:
- 角色设定:
你是一个专业的数据分析师... - 任务明确:使用动词(分析、总结、提取)。
- 输出格式:JSON、Markdown、列表。
- 约束条件:字数限制、禁止事项。
- 角色设定:
- Few-shot Learning:
示例 1: 输入:这部电影很棒 情感:正面 示例 2: 输入:太糟糕了 情感:负面 当前: 输入:还不错 情感: - Chain-of-Thought(CoT):
请一步步思考- 拆解复杂问题为推理步骤。
- 自我一致性(Self-Consistency):
- 多次采样,投票选最优。
- 负面提示:
不要编造信息、如果不知道就说不知道。
- 动态提示:
- 根据上下文动态组装 Prompt(如 RAG 中插入检索结果)。
追问延伸:
- 怎么评估 Prompt 效果?
- System Prompt vs User Prompt 的区别?
Q7: 大模型微调(Fine-tuning)的方法有哪些? 「🔴 高级」
考察点:模型定制化能力。
参考答案:
- 全量微调(Full Fine-tuning):
- 更新所有参数,需要大量 GPU 资源。
- 适合领域知识差异大的场景。
- 参数高效微调(PEFT):
- LoRA(Low-Rank Adaptation):
- 冻结原权重,训练低秩分解矩阵(A × B)。
- 参数量减少 100-1000 倍。
- 可插拔,支持多任务切换。
- QLoRA:4-bit 量化 + LoRA,单卡可微调 70B 模型。
- P-Tuning:只训练 Prompt Embedding。
- Adapter:插入小型神经网络层。
- LoRA(Low-Rank Adaptation):
- 指令微调(Instruction Tuning):
- 数据格式:
{"instruction": "翻译", "input": "Hello", "output": "你好"} - 提升模型遵循指令的能力。
- 数据格式:
- RLHF(人类反馈强化学习):
- 训练奖励模型(RM)→ PPO 优化策略。
- 对齐人类偏好(有用性、诚实性、无害性)。
工具链:
- Hugging Face Transformers、PEFT、TRL。
- DeepSpeed、FSDP(分布式训练)。
追问延伸:
- LoRA 的秩(rank)怎么选?
- 微调数据量一般多少?(千条~百万条)
Q8: 什么是 LLM 幻觉?怎么缓解? 「🟡 中级」
考察点:LLM 局限性认知。
参考答案:
- 幻觉(Hallucination):模型生成看似合理但实际错误或虚构的信息。
- 类型:
- 事实性幻觉:违背真实世界事实(如"爱因斯坦发明了电灯")。
- 忠实性幻觉:违背给定上下文(如 RAG 中忽略检索内容)。
- 成因:
- 训练数据偏差或不足。
- 过度泛化(模式匹配而非理解)。
- 解码策略(温度过高)。
- 缓解策略:
- RAG:提供外部知识作为上下文。
- Prompt 工程:
基于以下文本回答如果不知道就说不知道请提供引用来源
- 微调:训练事实一致性、拒绝回答。
- 后处理:事实核查(Fact-checking)、NLI 模型验证。
- 解码控制:降低 temperature、使用惩罚(repetition penalty)。
- 自我反思:让模型检查自己的回答。
评估方法:
- 自动评估:BLEU、ROUGE、BERTScore。
- LLM 评估:GPT-4 打分。
- 人工评估:众包标注。
追问延伸:
- 怎么构建幻觉检测数据集?
- RAG 一定能消除幻觉吗?(不一定,检索内容可能错误)
Q9: LangChain 和 LlamaIndex 的区别? 「🟡 中级」
考察点:LLM 应用框架选型。
参考答案:
| 维度 | LangChain | LlamaIndex |
|---|---|---|
| 定位 | 通用 LLM 应用框架 | 数据索引与 RAG 框架 |
| 核心优势 | Agent、Chain、Tool 抽象 | 数据连接器、索引、检索 |
| RAG 支持 | 基础 RAG 组件 | 高级 RAG(分块、路由、融合) |
| Agent | 完整 Agent 框架 | 基础 Agent 支持 |
| 数据源 | 较少连接器 | 100+ 连接器(Notion、Slack...) |
| 学习曲线 | 陡峭(概念多) | 平缓(专注 RAG) |
| 适用场景 | 复杂 Agent、多工具协作 | 知识库、文档问答 |
选型建议:
- 知识库问答:LlamaIndex(开箱即用)。
- 复杂任务自动化:LangChain(灵活编排)。
- 组合使用:LlamaIndex 做检索,LangChain 做 Agent。
核心概念对比:
- LangChain:Chain → Agent → Tool
- LlamaIndex:Document → Node → Index → Query Engine
追问延伸:
- LangChain 的性能问题?(过度封装、调试困难)
- 怎么选择 RAG 框架?
Q10: 怎么评估 RAG 系统? 「🔴 高级」
考察点:AI 系统评估能力。
参考答案:
- RAGAS 框架:
- Context Relevance:检索内容是否相关?
- Faithfulness:回答是否忠实于上下文?
- Answer Relevance:回答是否匹配用户问题?
- TruLens:
- Ground Truth 对比。
- 自定义反馈函数。
- 端到端评估:
- 准确率:正确答案比例。
- 召回率:相关知识检索比例。
- F1 Score:综合指标。
- 延迟:端到端响应时间。
- 用户反馈:
- 👍/👎 投票。
- 修正率(用户手动修改回答)。
- A/B 测试:
- 不同分块策略、Embedding 模型、重排序模型对比。
数据构建:
- 人工标注 Q&A 对。
- LLM 生成合成数据(Self-Instruct)。
追问延伸:
- 怎么持续监控 RAG 质量?
- 评估数据集怎么更新?
Q11: Embedding 模型的原理和选型? 「🟡 中级」
考察点:向量化基础。
参考答案:
- 原理:将文本映射到高维向量空间,语义相似的文本距离近。
- 发展:
- Word2Vec:词级别,无法处理一词多义。
- BERT:Sentence-BERT(SBERT),句子级别。
- OpenAI Embedding:
text-embedding-3-large,3072 维。 - 开源模型:BGE(BAAI)、E5、Jina Embedding。
- 关键指标:
- 维度:越高表达力越强,但计算成本高。
- MTEB 排行榜:语义相似度、分类、聚类基准。
- 语言支持:中文、英文、多语言。
- 最大长度:512 tokens vs 8192 tokens。
- 微调:
- 领域数据微调 Embedding 模型(对比学习)。
- 负样本挖掘(Hard Negative Mining)。
选型建议:
- 英文:OpenAI、Cohere。
- 中文:BGE、Text2Vec。
- 多语言:Multilingual-e5。
- 本地部署:BGE-small(轻量)。
追问延伸:
- Embedding 的维度灾难?
- 怎么评估 Embedding 质量?
Q12: 多模态 RAG 怎么实现? 「🔴 高级」
考察点:高级 RAG 应用。
参考答案:
- 多模态数据:文本、图片、表格、PDF、视频。
- 处理流程:
- 解析:
- PDF → PyMuPDF、pdfplumber。
- 图片 → OCR(Tesseract)、多模态 LLM(GPT-4V)。
- 表格 → Camelot、Tabula。
- 向量化:
- 文本 → Text Embedding。
- 图片 → CLIP、SigLIP。
- 统一空间:多模态 Embedding(如 ImageBind)。
- 存储:
- 元数据关联(图片 ID ↔ 文本描述)。
- 分块保留结构(表格完整保留)。
- 检索:
- 文本搜图片(跨模态检索)。
- 图文混合上下文。
- 解析:
- 生成:
- 多模态 LLM(GPT-4V、Claude 3)理解图片 + 文本。
- Prompt 包含
<image>占位符。
挑战:
- 图片描述准确性。
- 表格结构解析错误。
- 多模态对齐问题。
追问延伸:
- 怎么处理数学公式、代码块?
- 视频 RAG 的实现?
Q13: AI 系统的安全性和对齐? 「🔴 高级」
考察点:AI 伦理与工程实践。
参考答案:
- Prompt 注入攻击:
- 类型:角色扮演绕过、指令覆盖。
- 防御:
- 输入过滤(敏感词检测)。
- System Prompt 强化(
你是...,不可...)。 - 输出检查(LLM 审核 LLM)。
- 数据隐私:
- PII 检测与脱敏。
- 本地部署开源模型。
- 差分隐私训练。
- 模型对齐(Alignment):
- RLHF:人类偏好对齐。
- Constitutional AI:基于原则的自我修正。
- Red Teaming:对抗测试。
- 可解释性:
- Attention 可视化。
- LIME、SHAP 解释预测。
- 思维链(CoT)提供推理过程。
- 监控与审计:
- 日志记录(Prompt、输出)。
- 异常检测(输出长度突增)。
- 人类审核循环(Human-in-the-Loop)。
追问延伸:
- 怎么防止模型泄露训练数据?
- AI 生成内容的版权归属?
Q14: AI 应用的部署和运维? 「🔴 高级」
考察点:MLOps 能力。
参考答案:
- 模型服务:
- vLLM:高吞吐量 LLM 推理(PagedAttention)。
- TGI(Text Generation Inference):Hugging Face 官方。
- TensorRT-LLM:NVIDIA 优化推理。
- Ollama:本地运行开源模型。
- 优化技术:
- 量化:INT8、INT4(减少显存、加速推理)。
- 批处理:动态 batching(提高吞吐)。
- 缓存:KV Cache、语义缓存(相似 Query)。
- 负载均衡:多实例、模型路由。
- 监控指标:
- 延迟:首 token 延迟(TTFT)、总延迟。
- 吞吐量:tokens/second。
- 质量:用户满意度、错误率。
- 成本:GPU 利用率、API 费用。
- 持续迭代:
- A/B 测试框架。
- 用户反馈收集。
- Prompt 版本管理。
- 模型微调周期。
追问延伸:
- 怎么设计灰度发布策略?
- 成本控制的最佳实践?
Q15: 设计一个企业知识库问答系统 「🔴 高级」
考察点:综合 AI 系统设计能力。
参考答案:
- 需求分析:
- 数据源:PDF、Wiki、Confluence、Slack。
- 用户:员工(权限控制)。
- 功能:问答、引用溯源、反馈机制。
- 架构设计:
数据管道: 文档 → 解析(多格式)→ 分块 → Embedding → Milvus 检索管道: Query → 意图识别 → 混合检索(向量 + BM25)→ 重排序 → Prompt 构建 生成管道: GPT-4 → 回答 + 引用 → 后处理(格式化、过滤) 反馈循环: 用户反馈 → 数据标注 → 微调 Embedding / 优化 Prompt - 关键细节:
- 权限:文档级、行级权限过滤(元数据标签)。
- 分块:按段落 + 重叠,保留标题层级。
- 缓存:热点问题语义缓存。
- 评估:每周人工抽检 50 条。
- 安全:PII 脱敏、Prompt 注入检测。
- 技术选型:
- Embedding:BGE-large-zh。
- 向量库:Milvus(亿级向量)。
- LLM:GPT-4-turbo(主)+ Claude 3(备)。
- 框架:LlamaIndex + FastAPI。
追问延伸:
- 怎么处理表格数据?
- 多语言支持怎么实现?