【NLP算法面经】NLP算法面经 -- 腾讯 VS 美团(附面题)

【NLP算法面经】NLP算法面经 -- 腾讯 VS 美团(附面题)_第1张图片

博客主页: [青松]

目录

【NLP百面百过】大模型算法高频面题(全面整理 ʘ‿ʘ)

一、大模型(LLMs)基础面

大模型(LLMs)架构篇

注意力机制(Attention)篇

Transformer 理论篇

二、大模型微调面

有监督微调(SFT)篇

高效微调篇

提示学习篇

人类对齐训练(RLHF)篇

Prompt 工程篇

三、大模型进阶面

大模型压缩篇

分布式训练篇

大模型魔改篇

四、NLP 任务实战面

文本分类篇

命名实体识别(NER)篇

关系抽取篇

检索增强生成(RAG)篇

五、NLP 基础面

分词(Tokenizer)篇

词嵌入(Word2Vec)篇

卷积神经网络(CNN)篇

循环神经网络(RNN)篇

长短期记忆网络(LSTM)篇

BERT 模型篇

BERT 变体篇

BERT 实战篇

六、深度学习面

激活函数篇

优化器篇

正则化篇

归一化篇

参数初始化篇

过拟合篇

集成学习篇

评估指标篇


lz从3月初脚因打球扭伤了开始,投递简历,接二连三的面试鞭尸又面试,昨天才终于上岸了,分享经验~

腾讯PCG看点(已OC)

一面
  • 自我介绍

  • 项目介绍

  • 项目改进优化的点,怎么导入图谱知识加强实体表征

  • 反问

一面面试官人特好,而且很随和,没有八股文没有code,总体面试体验很棒,大概面了45分钟

二面
  • 自我介绍

  • 项目介绍(很详细,从预训练语料到loss,然后到应用场景,模型上线细节,评测,全讲了一遍)

  • loss设计 triplet loss和交叉熵loss各自的优缺点,怎么选择

  • 介绍一下attention机制

  • 介绍一下ernie模型

  • 还有什么其他比较基础的Nlp技术,我回答中包括了ner,于是问我目前比较流行的ner模型,我回答了bert\flat

  • 简单介绍一下flat及对于嵌套式语料的融合方式

  • code topK两种方式 (暴力,快排)

二面是二对一,面试时长达到了惊人的两小时,而且那天刚好杭州突然天气转凉,刮风下雨,坐在实验室外面冷得发抖,喉咙也干的不行。。二面压力应该是最大的把,问得很细致

三面
  • 自我介绍

  • 项目介绍

  • 调参技巧,评估指标

  • 模型不收敛原因分析,解决方案(学习率,权重初始化,数据标注,样本不平衡问题等等

  • 梯度消失和梯度爆炸原因分析及解决办法(激活函数,网络层次,正则化

  • 介绍transformer(从encode端到decode端完整的说了一遍

  • 提升指标的一些trick 调参之前说过了,就说了加对抗训练,及实现细节

  • 模型蒸馏work的原因,具体实现方式

三面对细节要求较高,基本都是一些比较基础的深度学习的知识

四面(主管面)

这里我不得不先吐槽一下,我一度以为凉了,结果3.31才给我更新了状态说是主管面。。。隔了将近半个月

  • 自我介绍

  • 项目介绍

  • 项目优化的点,模型迭代多少个版本解决了什么问题

  • 你觉得对你模型提升最大的点在哪里

  • 局限性

  • 如果过来实习的实习时间和时长

四面是个女主管,语气很好比较温柔,就是太能拖了,拖了半个月。。然后这里还有一个小插曲,4.1号那天开了个愚人节玩笑,我流程显示已经终止了。。所以Lz又马上投了美团,pdd

结果后来hr过来沟通说是流程太久没更新自动释放的,后来过了几天又给我恢复了。。

五面(hr面)

又隔了半个月,说是我要6月初才能任职,就往后拖了,哎无话可说
4.16 OC
4+1面终于结束了,可能lz在备胎池里一直游泳吧,也不敢说也不敢问呀哈哈

美团点评事业部 搜索与NLP团队(OC)

一面(4.8)
  • 自我介绍

  • 项目介绍(问的很细,所有的细节,包括后续上线应用在排序模型上的一些接口,上线评测指标

  • bert介绍(跟transformer差不多把,就是多了两个预训练任务

  • 梯度消失问题怎么解决(此时的lz经过腾讯的鞭打已经可以随意扯了,不得不感慨面试使人成长

  • 算法题 二叉树之字型层序遍历(5分钟搞定了 )  字典树trie类实现insert,search,startswith(5分钟搞定了)

一面面试官人很好,我们都开了摄像头,面对面的沟通交流,面试体验满分,而且最后还说我算法题做的很快,内涵了一波

二面(4.13)
  • 自我介绍

  • 项目介绍

  • 模型主要在哪些case上有很大的改进

  • 模型在哪些case还存在比较大的问题,后续想怎么改进

  • 在学校还有什么ml dl方面的学习

  • 有无论文(菜鸡,并无论文

二面也是开了摄像头的,人也很棒,说我一面面试官对我code能力有了评价,这次就不做code了,时间也差不多一个小时了,然后我问了他对我的评价,他说整体还不错,就是语速有些快,如果不是做这一行的可能没有思考时间,如果没开摄像头还以为我在读稿子。。好吧,lz就是看大张伟综艺看多了。。


【NLP百面百过】大模型算法高频面题(全面整理 ʘ‿ʘ)

全面总结了【大模型面试】的高频面题和答案解析,答案尽量保证通俗易懂且有一定深度。

适合大模型初学者和正在准备面试的小伙伴。

旨在帮助AI工程师快速完成面试准备,先人一步顺利拿到高薪 Offer 

一、大模型(LLMs)基础面

大模型(LLMs)架构篇

  • 一、概念篇
    • LLM架构对Transformer都有哪些优化?

  • 二、组件篇
    • 位置编码
      • 什么是正弦(Sinusoidal)位置编码?

      • 什么是旋转位置编码(RoPE)?

      • RoPE相对正弦位置编码有哪些优势?

    • 长度外推
      • 正弦编码是否真的具备外推性?

      • RoPE如何进行外推?

      • 如何进行位置线性内插(Position Interpolation)?

      • NTK-Aware Scaled RoPE 和位置线性内插的区别是什么?

      • NTK-Aware Scaled RoPE 为何要对高频做外推,而对低频做内插?

    • 注意力机制
      • LLM为何使用GQA代替MHA?

      • GQA如何平衡计算效率与模型性能?

      • GQA与MQA(Multi-Query Attention)有何区别?各自适用场景是什么?

      • GQA是否会影响模型对不同注意力模式的捕捉能力?如何缓解?

    • PreNorm和PostNorm
      • PreNorm和PostNorm有何不同?

      • 为什么PreNorm通常能提升训练稳定性?

      • PostNorm在何种场景下可能优于PreNorm?

      • 如何通过残差连接设计缓解PostNorm的优化问题?

    • RMSNorm和LayerNorm
      • 为何使用 RMSNorm 代替 LayerNorm?

      • RMSNorm与LayerNorm在数学公式上的核心区别是什么?

      • RMSNorm可能带来哪些信息损失?如何补偿?

      • RMSNorm是否适用于所有模态任务?

    • 激活函数
      • LLM使用SwiGLU相对于ReLU有什么好处?

      • SwiGLU相比ReLU如何提升模型非线性表达能力?

      • 为什么SwiGLU在预训练任务中表现更佳?

      • SwiGLU的参数量是否会显著增加?如何优化?

点击查看答案

注意力机制(Attention)篇

  • 一、概念篇
    • 什么是 Attention?

    • 为什么要引入 Attention 机制?

    • 如何计算 Attention?

  • 二、变体篇
    • Soft Attention 是什么?

    • Hard Attention 是什么?

    • Global Attention 是什么?

    • Local Attention 是什么?

    • Self-Attention 是什么?

    • 多查询注意力(Multi-Query Attention)是什么?

    • 分组查询注意力(Grouped Query Attention)是什么?

    • 分页注意力(Paged Attention)是什么?

    • 闪存注意力(Flash Attention)是什么?

点击查看答案

Transformer 理论篇

  • 一、模型结构篇
    • Transformer 整体结构是怎么样的?

    • Transformer 编码器有哪些子层?

    • Transformer 解码器有哪些子层?

  • 二、核心机制篇
    • 位置编码
      • Transformer的输入中为什么要添加位置编码?

      • 什么是正弦(Sinusoidal)位置编码?

      • Transformer的位置编码是如何计算的?

      • Position encoding为什么选择相加而不是拼接呢?

    • 多头注意力
      • Self-Attention 是什么?

      • 多头注意力相对于单头注意力有什么优势?

      • Transformer中自注意力模块的计算过程?

      • 什么是缩放点积注意力,为什么要除以 ?

    • 残差连接
      • Transformer为什么要使用残差连接?

      • 使用残差连接有哪些好处?

    • 层归一化
      • 为什么要做归一化?

      • Layer Normalization 是什么?

      • Layer Normalization 有什么用?

      • 批归一化和层归一化的区别?

      • Layer Normalization 有哪几个可训练参数?

    • Mask 机制
      • 解码器中为什么要使用Mask?

      • Transformer 中有几种 Mask?

      • Padding Mask 是如何实现的?

      • Sequence Mask 是如何实现的?

  • 三、问题优化篇
    • LLM为何使用GQA代替MHA?

    • LLM为何使用 PreNorm 代替 PostNorm?

    • LLM为何使用 RMSNorm 代替 LayerNorm?

    • LLM使用SwiGLU相对于ReLU有什么好处?

点击查看答案

二、大模型微调面

有监督微调(SFT)篇

  • 一、概念篇
    • 从零训练一个大模型有哪几个核心步骤?

    • 为什么要对LLM做有监督微调(SFT)?

    • 如何将一个基础模型训练成一个行业模型?

  • 二、数据篇
    • 如何准备SFT阶段的训练数据?

    • alpaca 格式是这么样的?

    • sharegpt 格式是什么样的?

    • alpaca 格式和sharegpt 格式分别适合什么微调场景?

    • 如何自动生成指令构建SFT的训练数据?

    • Self-instruct 数据生成步骤?

  • 三、技巧篇
    • 什么是灾难性遗忘?

    • LM做有监督微调(SFT)变傻了怎么办?

    • 如何避免灾难性遗忘?

  • 四、对比篇
    • 有监督微调(SFT)和人工偏好对齐(RLHF)有何区别?

    • 有监督微调(SFT)适用于什么场景?

    • 人工偏好对齐(RLHF)适用于什么场景?

点击查看答案

高效微调篇

  • 一、概念篇
    • 什么是微调?

    • 全量微调与参数高效微调的区别是什么?

    • 为什么需要对大模型进行高效微调?

    • 对大模型高效微调有哪些常用方法?

  • 二、轻度微调
    • 什么是轻度微调?

    • 轻度微调有哪些常用方法?

    • 什么是BitFit微调?

    • 什么是分层微调?

    • 分层微调如何设置学习率?

  • 三、适配器微调
    • 什么是适配器微调?

    • 适配器微调有哪些优势?

    • 讲一讲IA3微调?

  • 四、提示学习(Prompting)
    • 概念篇
      • 什么是提示学习(Prompting)?

      • 提示学习(Prompting) 代表方法有哪些?

    • 前缀微调(Prefix-tuning)
      • 什么是前缀微调(Prefix-tining)?

      • 前缀微调(Prefix-tining)的优点是什么?

      • 前缀微调(Prefix-tining)的缺点是什么?

    • 提示微调(Prompt-tuning)
      • 什么是提示微调(Prompt-tuning)?

      • 提示微调(Prompt-tuning)的核心思想?

      • 提示微调(Prompt-tuning)的 优点是什么?

      • 提示微调(Prompt-tuning)的 缺点是什么?

    • P-tuning
      • P-tuning 动机是什么?

      • P-tuning v2 解决了什么问题?

      • P-tuning v2 进行了哪些改进?

  • 五、指令微调
    • 为什么需要 指令微调(Instruct-tuning)?

    • 指令微调(Instruct-tuning)是什么?

    • 指令微调(Instruct-tuning)的优点是什么?

    • 指令微调(Instruct-tuning) 和 提示学习(Prompting)的区别是什么?

  • 六、LoRa微调
    • 什么是LoRA微调?

    • 为什么在参数高效微调中使用低秩矩阵分解?

    • 详细说明LoRA的工作原理及其优势?

    • LoRA微调时有哪些可配置的参数?

    • 在配置LoRA时,如何设置参数r和alpha?

    • LoRA存在低秩瓶颈问题,ReLoRA和AdaLoRA分别通过哪些方法改进?

    • 动态秩分配(如AdaLoRA)如何根据层的重要性调整秩?正交性约束的作用是什么?

    • AdapterFusion如何实现多任务学习?

    • 如何利用LoRAHub实现跨任务泛化?其组合阶段与适应阶段的具体流程是什么?

点击查看答案

提示学习篇

  • 一、概念篇
    • 什么是提示学习(Prompting)?

    • 提示学习(Prompting) 代表方法有哪些?

  • 二、方法篇
    • 前缀微调(Prefix-tuning)
      • 什么是前缀微调(Prefix-tining)?

      • 前缀微调(Prefix-tining)的优点是什么?

      • 前缀微调(Prefix-tining)的缺点是什么?

    • 提示微调(Prompt-tuning)
      • 什么是提示微调(Prompt-tuning)?

      • 提示微调(Prompt-tuning)的核心思想?

      • 提示微调(Prompt-tuning)的 优点是什么?

      • 提示微调(Prompt-tuning)的 缺点是什么?

    • P-tuning
      • P-tuning 动机是什么?

      • P-tuning v2 解决了什么问题?

      • P-tuning v2 进行了哪些改进?

  • 三、对比篇
    • 提示微调(Prompt-tuning)与 Prefix-tuning 区别 是什么?

    • 提示微调(Prompt-tuning)与 fine-tuning 区别 是什么?

点击查看答案

人类对齐训练(RLHF)篇

  • 一、概念篇
    • 从零训练一个大模型有哪几个核心步骤?

    • 从零训练大模型的三大阶段(Pretrain/SFT/RLHF)分别解决什么问题?

    • 什么是人类偏好对齐训练?

    • 为什么需要做人类偏好对齐训练?

    • RLHF有哪几个核心流程?

    • RLHF与SFT的本质区别是什么?为什么不能只用SFT?

    • 什么是人类偏好对齐中的"对齐税"(Alignment Tax)?如何缓解?

    • RLHF的三大核心模块(奖励模型训练、策略优化、偏好数据收集)如何协同工作?

    • 为什么RLHF需要马尔可夫决策过程(MDP)建模?对话场景如何设计MDP五元组?

  • 二、方法篇
    • 强化学习和马尔可夫决策过程(MDP)
      • 马尔可夫决策过程的五元组是分别指什么?

      • 状态价值函数、优势价值函数、动作价值函数分别表示什么意思?

      • 在强化学习中,基于值函数的和基于策略的的优化方法有何区别?

      • 基于值函数的方法在处理连续动作空间问题时的优缺点分别是什么?

      • 基于策略的方法在处理连续动作空间问题时的优缺点分别是什么?

    • PPO 算法
      • 什么是近端策略优化(PPO)?

      • RLHF中的PPO主要分哪些步骤?

      • PPO中的重要性采样(Importance Sampling)如何修正策略差异?

      • Actor-Critic架构在RLHF中的双网络设计原理?

      • KL散度在RLHF中的双重作用是什么?

      • PPO-Clip与PPO-Penalty的数学形式差异及适用场景?

    • DPO 算法
      • DPO如何通过隐式奖励建模规避强化学习阶段?

      • Bradley-Terry模型与DPO目标函数的关系推导

      • DPO vs PPO:训练效率与性能上限的对比分析

  • 三、实践篇
    • RLHF训练数据的格式是什么样的?

    • 人类偏好数据收集的三大范式(人工标注/用户隐式反馈/AI生成对比)?

    • 如何选择人类偏好对齐训练还是SFT?

    • 如何选择人类偏好对齐训练算法?

    • 如何理解人类偏好对齐训练中的Reward指标?

    • Reward Hack问题(奖励模型过拟合)的检测与缓解方案有哪些?

点击查看答案

Prompt 工程篇

  • 一、概念篇
    • 什么是Prompt工程?

    • 为什么需要Prompt工程?

  • 二、技巧篇
    • Prompt设计要素
      • 任务说明、上下文、问题和输出格式的作用是什么?

      • 如何优化Prompt以提高模型性能?

      • 如何规范编写Prompt?

    • 上下文学习(In-Context Learning)
      • 什么是上下文学习?

      • 上下文学习三种形式(零样本、单样本、少样本)的区别?

      • 如何选择有效的演示示例?

      • 影响上下文学习性能的因素有哪些?

      • 如何通过预训练数据分布和模型规模优化上下文学习效果?

      • 为什么提示中示例的顺序和数量会影响模型性能?

    • 思维链(Chain of Thought, CoT)
      • 思维链(CoT)的核心思想是什么?

      • 思维链(CoT)在解决哪些任务类型中效果显著?

      • 思维链(CoT)有哪几种常见的模式?

      • 按部就班(如 Zero-Shot CoT、Auto-CoT)、三思后行(如 ToT、GoT)、集思广益(如 Self-Consistency)三种 CoT 模式有何异同?

      • 如何在不同任务中选择和应用CoT?

      • CoT如何提升模型在复杂推理任务中的表现?

      • 为什么某些指令微调后的模型无需显式 CoT 提示?

  • 三、对比篇
    • Prompt工程与传统微调的区别是什么?

点击查看答案

三、大模型进阶面

大模型压缩篇

  • 一、动因篇
    • 为什么需要对大模型进行压缩和加速?

  • 二、方法篇
    • 低秩分解
      • 什么是低秩分解?

      • 什么是奇异值分解(SVD)?

    • 权值共享
      • 什么是权值共享?

      • 权值共享为什么有效?

    • 模型量化
      • 什么是模型量化?

      • 均匀量化和非均匀量化有什么区别?

      • 大模型训练后量化有什么优点?

      • 什么是混合精度分解?

    • 知识蒸馏
      • 什么是蒸馏?

      • 什么是基于反馈的知识蒸馏?

      • 什么是基于特征的知识蒸馏?

      • 什么是蒸馏损失?

      • 什么是学生损失?

      • 模型蒸馏的损失函数是什么?

    • 剪枝
      • 什么是剪枝?

      • 描述一下剪枝的基本步骤?

      • 结构化剪枝和非结构化剪枝有什么不同?

点击查看答案

分布式训练篇

  • 一、动因篇
    • 分布式训练主要解决大模型训练中的哪些问题?

  • 二、数据并行
    • 数据并行主要为了解决什么问题?

    • PS架构是如何进行梯度同步和更新的?

    • Ring-AllReduce是如何进行梯度同步和更新的?

    • PS架构和Ring-AllReduce架构有何不同?

  • 三、模型并行和张量并行
    • 模型并行主要为了解决什么问题?

    • 什么是张量并行,如何使用集群计算超大矩阵?

    • 基础的流水线并行存在什么问题?

    • 讲一讲谷歌的GPipe算法?

    • 讲一讲微软的PipeDream算法?

  • 四、DeepSpeed ZeRO
    • 如何计算大模型占用的显存?

    • ZeRO主要为了解决什么问题?

    • ZeRO1、ZeRO2、ZeRO3分别做了哪些优化?

    • 用DeepSpeed进行训练时主要配置哪些参数?

点击查看答案

大模型魔改篇

  • 一、概念篇
    • 什么是模型编辑(Model Editing)?

    • 模型编辑(Model Editing)核心目标是什么?

    • 对比重新预训练和微调,模型编辑的优势和适用场景是什么?

    • 如何用模型编辑修正大语言模型中的知识错误?

  • 二、性质篇
    • 模型编辑的五大性质(准确性、泛化性、可迁移性、局部性、高效性)分别是什么?

    • 如何量化评估模型编辑的五大性质?

    • 若模型编辑后泛化性较差,可能的原因是什么?如何优化?

    • 模型编辑局部性如何避免“牵一发而动全身”的问题?

  • 三、方法篇
    • 外部拓展法
      • 知识缓存法(如SERAC)的工作原理是什么?

      • 知识缓存法中的门控单元和推理模块如何协作?

      • 附加参数法(如T-Patcher)如何在不改变原始模型架构的情况下实现编辑?

      • 知识缓存法和附加参数法的优缺点有何优缺点?

    • 内部修改法
      • ROME方法如何通过因果跟踪实验定位知识存储位置?

      • 阻断实验的作用是什么?

      • 元学习法(如MEND)如何实现“学习如何编辑”?

      • 元学习法的双层优化框架如何设计?

      • 定位编辑法(如KN、ROME)如何通过修改全连接前馈层参数实现精准编辑?

  • 四、对比篇
    • SERAC、T-Patcher、ROME在准确性、泛化性、局部性上的表现有何差异?

    • 为什么ROME的局部性表现优于T-Patcher?

点击查看答案

四、NLP 任务实战面

文本分类篇

  • 一、概念篇
    • 什么是文本分类?

  • 二、方法篇
    • 主题建模法
      • 什么是主题建模任务?

      • 主题建模有哪些常用方法?

      • TF-IDF 算法是做什么的?

      • TF-IDF 有什么优缺点?适合哪些文本分类任务?

    • 传统分类法
      • 讲一讲 FastText 的分类过程?

      • 讲一讲 TextCNN 文本分类的过程?

      • 如何基于基于预训练模型做文本分类?

    • 检索匹配法
      • 什么场景需要用检索的方式做文本分类?

      • 如何用检索的方式做文本分类?

      • 检索的方法 的 训练阶段 如何做?

      • 检索的方法 的 预测阶段 如何做?

      • 用检索的方式做文本分类有何优缺点?

    • 大模型方法
      • 如何用Prompt的方式做文本分类?

      • 如何使用多提示学习提升文本分类效果?

      • 使用LLM做文本分类任务为何需要做标签词映射(Verbalizer)?

  • 三、进阶篇
    • 文本分类任务中有哪些难点?

    • 如何解决样本不均衡的问题?

    • 如何冷启动文本分类项目?

    • 如果类别会变化如何设计文本分类架构?

    • 短文本如何进行分类?

    • 长文本如何进行分类?

点击查看答案

命名实体识别(NER)篇

  • 一、概念篇
    • 什么是实体识别?

    • 实体识别有哪些常用的解码方式?

    • NER的常用评价指标(精确率、召回率、F1)有何局限性?

    • 预训练模型(如BERT,LLM)如何改变传统NER的范式?

  • 二、方法篇
    • 传统方法
      • 如何用序列标注方法做NER任务?

      • 什么是 CRF?

      • CRF为什么比Softmax更适合NER?

      • 如何使用指针标注方式做NER任务?

      • 如何使用多头标注方式做NER任务?

      • 如何使用片段排列方式做NER任务?

    • 大模型方法
      • 如何将NER建模为生成任务(例如使用T5、GPT)?

      • 大模型做NER任务的解码策略有何不同?

      • 如何设计模板提升NER任务少样本效果?

    • 对比篇
      • 序列标注方法有何优缺点?

      • 指针标注、多头标注和片段排列有何优缺点,分别适用于哪些场景?

      • 大模型方法和传统方法做NER任务分别有什么优缺点?

  • 三、标注篇
    • 实体识别的数据是如何进行标注的?

    • BIO、BIOES、IOB2标注方案的区别与优缺点?

  • 四、问题篇
    • 实体识别中有哪些难点?

    • 什么是实体嵌套?

    • 如何解决实体嵌套问题?

    • 如何解决超长实体识别问题?

    • NER实体span过长怎么办?

    • 如何解决 NER 标注数据噪声问题?

    • 如何解决 NER 标注数据不均衡问题?

点击查看答案

关系抽取篇

  • 一、概念篇
    • 什么是关系抽取?

    • 常见关系抽取流程的步骤是怎样的?

  • 二、句子级关系抽取篇
    • 什么是模板匹配方法?

    • 模板匹配方法的优点是什么?

    • 模板匹配方法存在哪些局限性或缺点呢?

    • 什么是关系重叠问题?

    • 什么是复杂关系问题?

    • 什么是联合抽取?

    • 介绍下基于共享参数的联合抽取方法?

    • 介绍下基于联合解码的联合抽取方法?

    • 关系抽取的端到端方法和流水线方法各有什么优缺点?

  • 三、文档级关系抽取篇
    • 文档级关系抽取与单句关系抽取有何区别?

    • 在进行跨句子甚至跨段落的关系抽取时,会遇到哪些特有的挑战?

    • 文档级关系抽取的方法有哪些?

    • 文档级关系抽取常见数据集有哪些以及其评估方法?

点击查看答案

检索增强生成(RAG)篇

  • 一、动因篇
    • 为什么要做RAG系统?

    • RAG和大模型微调的区别?

    • RAG和大模型微调分别适用于什么场景?

    • 讲一下RAG的总体流程?

  • 二、流程篇
    • Query 理解
      • 用户理解阶段一般会做哪些处理?有何作用?

      • 用户问题总是召回不准确,在用户理解阶段可以做哪些优化?

    • Index 构建
      • 问答对问答中,如何构建索引,提升对用户问题的泛化能力?

      • 文档问答中,如何构建索引,提升对用户问题的泛化能力?

      • 问题经常命中不到文本块,如何在索引阶段做优化?

    • Retrieval 召回
      • 多路检索如何实现?

      • 如何合并多路检索的结果,对它们做排序?

      • BM25检索器总是召回无关的知识,最可能的原因是什么?

      • 如何借助其他用户的使用情况,提升总体的检索性能?

    • Reranker 精排
      • 为何要对检索的结果做精排(重排)?

      • 如何构建重排序模型的微调数据?

点击查看答案

五、NLP 基础面

分词(Tokenizer)篇

  • 如何处理超出词表的单词(OVV)?

  • BPE 分词器是如何训练的?

  • WordPiece 分词器是如何训练的?

  • Unigram 分词器是如何训练的?

点击查看答案

词嵌入(Word2Vec)篇

  • 一、动因篇
    • 什么是词向量化技术?

    • 如何让向量具有语义信息?

  • 二、基于统计的方法
    • 如何基于计数的方法表示文本?

    • 上下文中的窗口大小是什么意思?

    • 如何统计语料的共现矩阵?

    • 基于计数的表示方法存在哪些问题?

  • 三、基于推理的方法
    • Word2Vec的两种模型分别是什么?

    • Word2Vec 中 CBOW 指什么?

    • Word2Vec 中 Skip-gram 指什么?

    • CBOW 和 Skip-gram 哪个模型的词嵌入更好?

  • 四、问题优化篇
    • Word2Vec训练中存在什么问题?

    • Word2Vec如何优化从中间层到输出层的计算?
      • 用负采样优化中间层到输出层的计算

      • 负采样方法的关键思想

      • 负采样的采样方法

    • 为什么说Word2vec的词向量是静态的?

    • Word2vec的词向量存在哪些问题?

点击查看答案

卷积神经网络(CNN)篇

  • 一、动因篇
    • 卷积,池化的意义

  • 二、模型篇
    • 为什么卷积核设计尺寸都是奇数

    • 卷积操作的特点

    • 为什么需要 Padding ?

    • 卷积中不同零填充的影响?

    • 1 1 卷积的作用?

    • 卷积核是否越大越好?

    • CNN 特点

    • 为何较大的batch size 能够提高 CNN 的泛化能力?

    • 如何减少卷积层参数量?

  • 三、对比篇
    • SAME 与 VALID 的区别

    • CNN 优缺点

    • 你觉得 CNN 有什么不足?

    • CNN 与 RNN 的优劣

点击查看答案

循环神经网络(RNN)篇

  • 一、RNN 概念篇
    • RNN的作用是什么?

  • 二、RNN 模型篇
    • RNN的输入输出分别是什么?

    • RNN是如何进行参数学习(反向传播)的?

    • Relu 能否作为RNN的激活函数

  • 三、RNN 优化篇
    • RNN不能很好学习长期依赖的原因是什么?

    • RNN 中为何会出现梯度消失,梯度爆炸问题?

    • 为何 RNN 训练时 loss 波动很大

    • 计算资源有限的情况下有没有什么优化方法?

    • 推导一下 GRU

  • 四、RNN 对比篇
    • LSTM 相对 RNN 的主要改进有哪些?

    • LSTM 与 GRU 之间的关系

    • LSTM 与 GRU 区别

点击查看答案

长短期记忆网络(LSTM)篇

  • 一、动因篇
    • RNN 梯度消失的原因?

    • LSTM 如何缓解 RNN 梯度消失的问题?

    • LSTM不会发生梯度消失的原因

  • 二、模型篇
    • LSTM 相对 RNN 的主要改进有哪些?

    • 门机制的作用

    • LSTM的网络结构是什么样的?

    • LSTM中记忆单元的作用是什么?

    • LSTM中的tanh和sigmoid分别用在什么地方?

    • LSTM有几个门,分别起什么作用?

    • LSTM 单元是如何进行前向计算的?

    • LSTM的前向计算如何进行加速?

    • LSTM 单元是如何进行反向传播的?

  • 三、应用篇
    • LSTM在实际应用中的提升技巧有哪些?

    • 为何多层LSTM叠加可以提升模型效果?

    • 双向LSTM为何更有效?

    • LSTM中如何添加Dropout层?

点击查看答案

BERT 模型篇

  • 一、动因概念篇
    1. Bert 是什么?

    2. 为什么说BERT是双向的编码语言模型?

    3. BERT 是如何区分一词多义的?

    4. BERT为什么如此有效?

    5. BERT存在哪些优缺点?

  • 二、BERT 架构篇
    1. BERT 是如何进行预训练的?

    2. BERT的输入包含哪几种嵌入?

    3. 什么是分段嵌入?

    4. BERT的三个Embedding直接相加会对语义有影响吗?

    5. 讲一下BERT的WordPiece分词器的原理?

    6. 为什么BERT在第一句前会加一个【CLS】标志?

    7. BERT-base 模型和 BERT-large 模型之间有什么区别?

    8. 使用BERT预训练模型为什么最多只能输入512个词?

    9. BERT模型输入长度超过512如何解决?

  • BERT 训练篇
    • Masked LM 任务
      1. BERT 为什么需要预训练任务 Masked LM ?

      2. 掩码语言模型是如何实现的?

      3. 为什么要采取Masked LM,而不直接应用Transformer Encoder?

      4. Bert 预训练任务 Masked LM 存在问题?

      5. 什么是 80-10-10 规则,它解决了什么问题?

      6. bert为什么并不总是用实际的 masked token替换被“masked”的词汇?

      7. 为什么BERT选择mask掉15%这个比例的词,可以是其他的比例吗?

    • Next Sentence Prediction 任务
      1. Bert 为什么需要预训练任务 Next Sentence Prediction ?

      2. 下句预测任务是如何实现的?

  • BERT 微调篇
    1. 对 Bert 做 fine-turning 有什么优势?

    2. Bert 如何针对不同类型的任务进行 fine-turning?

  • 对比篇
    1. BERT 嵌入与 Word2Vec 嵌入有何不同?

    2. elmo、GPT和bert在单双向语言模型处理上的不同之处?

    3. word2vec 为什么解决不了多义词问题?

    4. 为什么 elmo、GPT、Bert能够解决多义词问题?

点击查看答案

BERT 变体篇

  • 一、BERT变体篇
    • 句序预测任务与下句预测任务有什么不同?

    • ALBERT 使用的参数缩减技术是什么?

    • 什么是跨层参数共享?

    • RoBERTa 与 BERT 有什么不同?

    • 在 ELECTRA 中,什么是替换标记检测任务?

    • 如何在 SpanBERT 中掩盖标记?

    • Transformer-XL怎么实现对长文本建模?

  • 二、问题优化篇
    • 针对BERT原生模型的缺点,后续的BERT系列模型是如何改进【生成任务】的?

    • 针对BERT原生模型的缺点,后续的BERT系列模型是如何引入【知识】的?

    • 针对BERT原生模型的缺点,后续的BERT系列模型是如何引入【多任务学习机制】的?

    • 针对BERT原生模型的缺点,后续的BERT系列模型是如何改进【mask策略】的?

    • 针对BERT原生模型的缺点,后续的BERT系列模型是如何进行【精细调参】的?

点击查看答案

BERT 实战篇

  • 一、场景篇
    • BERT擅长处理哪些下游NLP任务?

    • BERT为什么不适用于自然语言生成任务(NLG)?

    • 如何使用预训练的 BERT 模型?

    • 在问答任务中,如何计算答案的起始索引?

    • 在问答任务中,如何计算答案的结束索引?

    • 如何将 BERT 应用于命名实体识别任务?

  • 二、微调篇
    • 什么是微调?

    • 什么是继续预训练?

    • 如何进行继续预训练?

  • 三、问题篇
    • 什么是 Bert 未登录词?

    • Bert 未登录词如何处理?

    • Bert 未登录词各种处理方法有哪些优缺点?

    • BERT在输入层如何引入额外特征?

点击查看答案

六、深度学习面

激活函数篇

  • 一、动因篇
    • 为什么需要激活函数

    • 为什么激活函数需要非线性函数?

  • 二、方法篇
    • sigmoid
      • 什么是 sigmoid 函数?

      • 为什么选 sigmoid 函数 作为激活函数?

      • sigmoid 函数有什么缺点?

    • tanh
      • 什么是 tanh 函数?

      • 为什么选 tanh 函数作为激活函数?

      • tanh 函数作为激活函数有什么缺点?

    • relu
      • 什么是 relu 函数?

      • 为什么选 relu 函数作为激活函数?

      • relu 函数有什么缺点?

      • 为什么tanh收敛速度比sigmoid快?

点击查看答案

优化器篇

  • 一、动因篇
    • 梯度下降法的思想是什么?

  • 二、方法篇
    • SGD是如何实现的?

    • SGD有什么缺点?

    • Momentum 是什么?

    • Adagrad 是什么?

    • RMSProp是什么?

    • Adam 是什么?

  • 三、对比篇
    • 批量梯度下降(BGD)、随机梯度下降(SGD)与小批量随机梯度下降(Mini-Batch GD)的区别?

点击查看答案

正则化篇

  • 一、动因篇
    • 为什么要正则化?

    • 权重衰减的目的?

  • 二、 正则化篇
    • 什么是 L1 正则化?

    • 什么是 L2 正则化?

    • L1 与 L2 的异同

    • 为什么 L1 正则化 可以产生稀疏值,而 L2 不会?

    • 为何只对权重进行正则惩罚,而不针对偏置?

    • 为何 L1 和 L2 正则化可以防止过拟合?

  • 三、Dropout 篇
    • 什么是Dropout?

    • 为什么Dropout可以解决过拟合问题?

    • Dropout 在训练和测试阶段的区别是什么?

    • Dropout 的变体有哪些?

    • 如何选择合适的 Dropout 率?

    • Dropout 和其他正则化方法(如 L1、L2 正则化)有何不同?

点击查看答案

归一化篇

  • 一、动因篇
    • 为什么要做归一化?

    • 为什么归一化能提高求最优解速度?

  • 二、方法篇
    • 主流的归一化有哪些方法?

    • Batch Normalization
      • Batch Normalization 是什么?

      • Batch Normalization 的有点有哪些?

      • BatchNorm 存在什么问题?

    • Layer Normalization
      • Layer Normalization 是什么?

      • Layer Normalization 有什么用?

  • 三、对比篇
    • 批归一化和组归一化的比较?

    • 批归一化和权重归一化的比较?

    • 批归一化和层归一化的比较?

点击查看答案

参数初始化篇

  • 一、概念篇
    • 什么是内部协变量偏移?

    • 神经网络参数初始化的目的?

    • 为什么不能将所有神经网络参数初始化为0?

  • 二、方法篇
    • 什么是Xavier初始化?

    • 什么是He初始化?

点击查看答案

过拟合篇

  • 过拟合与欠拟合的区别是什么?

  • 解决欠拟合的方法有哪些?

  • 防止过拟合的方法主要有哪些?

  • 什么是Dropout?

  • 为什么Dropout可以解决过拟合问题?

点击查看答案

集成学习篇

  • 一、概念篇
    • 集成学习的核心思想是什么?

    • 集成学习与传统单一模型相比有哪些本质区别?

    • 从偏差-方差分解的角度,解释集成学习为什么能提升模型性能?

    • 集成学习有效性需要满足哪些前提条件?

  • 二、Boosting 篇
    • 解释一下 Boosting 的迭代优化过程

    • Boosting 的基本思想是什么?

    • Boosting 如何通过残差拟合实现误差修正?

    • GBDT 是什么?

    • XGBoost 是什么?

    • GBDT与 XGBoost 的核心差异是什么?

    • 为什么XGBoost要引入二阶泰勒展开?对模型性能有何影响?

  • 三、Bagging 篇
    • 什么是 Bagging?

    • Bagging 的基本思想是什么?

    • Bagging的并行训练机制如何提升模型稳定性?

    • 随机森林 是什么?

    • 随机森林与孤立森林的本质区别是什么?

    • 对比Bagging与Dropout在神经网络中的异同?

  • 四、Stacking 篇
    • 什么是 Stacking ?

    • Stacking 的基本思路是什么?

    • Stacking中为什么要用K折预测生成元特征?

    • 如何避免Stacking中信息泄露问题?

  • 五、对比篇
    • 对比Boosting/Bagging/Stacking三大范式的核心差异(目标、训练方式、基学习器关系)?

    • 集成学习中基学习器的"稳定性"如何影响算法选择?

    • Boosting、Bagging 与 偏差、方差的关系?

    • 为什么Bagging常用高方差模型?

点击查看答案

评估指标篇

  • 一、概念篇
    • 混淆矩阵有何作用?

    • 分类任务中有哪几个常规的指标?

  • 二、F1-Score 篇
    • 什么是 F1-Score?

    • 对于多分类问题来说, F1 的计算有哪些计算方式?

    • 什么是 Macro F1?

    • 什么是 Micro F1?

    • 什么是 Weight F1?

  • 三、对比篇
    • Macro 和 Micro 有什么区别?

    • 什么是马修斯相关系数(MCC)?

  • 四、曲线篇
    • ROC 曲线主要有什么作用?

    • 什么是 AUC(Area under Curve)?

    • P-R 曲线有何作用?

点击查看答案

你可能感兴趣的:(NLP,百面百过,AI面试,NLP面试,算法面试,人工智能)