博客主页: [青松]
目录
TableRAG: Million-Token Table Understanding with Language Models
【NLP百面百过】大模型算法高频面题(全面整理 ʘ‿ʘ)
一、大模型(LLMs)基础面
💯 大模型(LLMs)架构篇
💯 注意力机制(Attention)篇
💯 Transformer 理论篇
二、大模型微调面
💯 有监督微调(SFT)篇
💯 高效微调篇
💯 提示学习篇
💯 人类对齐训练(RLHF)篇
💯 Prompt 工程篇
三、大模型进阶面
💯 大模型压缩篇
💯 分布式训练篇
💯 大模型魔改篇
四、NLP 任务实战面
💯 文本分类篇
💯 命名实体识别(NER)篇
💯 关系抽取篇
💯 检索增强生成(RAG)篇
五、NLP 基础面
💯 分词(Tokenizer)篇
💯 词嵌入(Word2Vec)篇
💯 卷积神经网络(CNN)篇
💯 循环神经网络(RNN)篇
💯 长短期记忆网络(LSTM)篇
💯 BERT 模型篇
💯 BERT 变体篇
💯 BERT 实战篇
六、深度学习面
💯 激活函数篇
💯 优化器篇
💯 正则化篇
💯 归一化篇
💯 参数初始化篇
💯 过拟合篇
💯 集成学习篇
💯 评估指标篇
TableRAG: Million-Token Table Understanding with Language Models
作者:Si-An Chen, Lesly Miculicich , Julian Martin Eisenschlos 等
单位: National Taiwan University, Google Cloud AI Research, Google DeepMind, UC San Diego
下图给出此文的整体逻辑框架。首先,对文章进行一句话总结,然后简要介绍研究内容、研究动机、技术动机、解决方案以及优势与潜力,以便读者快速了解文章脉络。
本文研究的问题是如何提高大语言模型在理解和推理大规模表格数据方面的效率和性能,之前的方法主要包括基于模式的方法和基于行列检索的方法,前者主要关注schema信息,降低了令牌复杂度,但是会丢失一些有价值的单元格数据;后者通过对行和列整体编码来减少令牌数,但是在处理大表格时仍面临着计算和性能挑战,并且行列压缩也会模糊语义信息。本文提出的TableRAG的核心思想是在回答与表格相关的问题时,其实并不需要将整张表格作为输入提供给大型语言模型。
TableRAG框架具体流程如下:
-
查询扩展(Tabular Query Expansion): 与以前工作使用单一查询不同,作者为模式和单元格值生成单独的查询。例如对于下述问题 What is the average price for wallets? 使用大语言模型给出可能的列名: product 和 price 等,以及相关的单元格值 wallet,seller等
-
模式检索(Schema Retrieval): 作者使用预先训练的编码器$f_{enc}$对上述查询进行编码,并将它们与编码的列名进行匹配,以确定相关性。检索到的数据包括列名、数据类型(将列转换为整数、浮点数或日期时数据类型;否则,将它们保留为分类列)和示例值(除分类列外,使用最大最小值作为示例值,分类列使用三个最常见的类)保留每个查询的Top-k个相关的结果,并根据相似性排序
-
单元格检索(Cell Retrieval): 在模式检索之后,构建一个不同列值对的数据库$V = U_{ij}(C_{ij},v_{ij})$,在事实表中,不同值往往会少于单元格总数,所以这种方式提高了单元格检索的效率。在最坏的情况下,不同值和单元格总数相当,这里引入编码预算$B$, 如果不同值的数量超过$B$,那么将编码限制在出现最频繁的对。
-
程序辅助求解器(Program-Aided Solver): TableRAG与大语言模型代理兼容,它可以通过编程方式与表进行交互。这里作者考虑ReAct(实现表QA基准的最先进方法)
在实验方面,作者开发了两个广泛使用的数据集ArcadeQA和BirdQA,分别来自Arcade和BIRD-SQL数据集,此外,作者扩展了TabFact数据集,使其包括了从$100\times100 到 1000\times 1000$ 的合成表。
作者将TableRAG与四种不同的表输入方法进行了比较。包括整表输入、模式输入、随机行采样和行列检索,在表2所示的跨数据集的评估中,TableRAG始终优于其他方法,在ArcadeQA和BirdQA上都获得了最高的准确性。
并且本方法也以更简短的prompt长度取得了较高的准确率,如下图所示。
此外,为了评估小规模TableQA数据集的性能,作者使用常用的WikiTableQA基准,与相关的基线方法做了比较,获得了更好的结果。
-
原文链接: https://arxiv.org/abs/2410.04739
-
更多文章请详见 Github 仓库: https://github.com/ZJU-LLMs/XXX
【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 进行了哪些改进?
-
- 前缀微调(Prefix-tuning)
- 三、对比篇
-
💯 提示微调(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:训练效率与性能上限的对比分析
-
- 强化学习和马尔可夫决策过程(MDP)
- 三、实践篇
-
💯 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设计要素
- 三、对比篇
-
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 精排
-
为何要对检索的结果做精排(重排)?
-
如何构建重排序模型的微调数据?
-
- Query 理解
点击查看答案
五、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 模型篇
- 一、动因概念篇
-
Bert 是什么?
-
为什么说BERT是双向的编码语言模型?
-
BERT 是如何区分一词多义的?
-
BERT为什么如此有效?
-
BERT存在哪些优缺点?
-
- 二、BERT 架构篇
-
BERT 是如何进行预训练的?
-
BERT的输入包含哪几种嵌入?
-
什么是分段嵌入?
-
BERT的三个Embedding直接相加会对语义有影响吗?
-
讲一下BERT的WordPiece分词器的原理?
-
为什么BERT在第一句前会加一个【CLS】标志?
-
BERT-base 模型和 BERT-large 模型之间有什么区别?
-
使用BERT预训练模型为什么最多只能输入512个词?
-
BERT模型输入长度超过512如何解决?
-
- BERT 训练篇
- Masked LM 任务
-
BERT 为什么需要预训练任务 Masked LM ?
-
掩码语言模型是如何实现的?
-
为什么要采取Masked LM,而不直接应用Transformer Encoder?
-
Bert 预训练任务 Masked LM 存在问题?
-
什么是 80-10-10 规则,它解决了什么问题?
-
bert为什么并不总是用实际的 masked token替换被“masked”的词汇?
-
为什么BERT选择mask掉15%这个比例的词,可以是其他的比例吗?
-
- Next Sentence Prediction 任务
-
Bert 为什么需要预训练任务 Next Sentence Prediction ?
-
下句预测任务是如何实现的?
-
- Masked LM 任务
- BERT 微调篇
-
对 Bert 做 fine-turning 有什么优势?
-
Bert 如何针对不同类型的任务进行 fine-turning?
-
- 对比篇
-
BERT 嵌入与 Word2Vec 嵌入有何不同?
-
elmo、GPT和bert在单双向语言模型处理上的不同之处?
-
word2vec 为什么解决不了多义词问题?
-
为什么 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快?
-
- 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 曲线有何作用?
-
点击查看答案