面试智力题大全
1. 有一栋100层高的大楼,给你两个完全相同的玻璃球。假设从某一层开始,丢下玻璃球会摔碎。那么怎么利用手中的两个球,用什么最优策略知道这个临界的层是第几层? 核心思路:等差递减间隔法 假设最坏情况下最多需要 $ n $ 次尝试,则第一次从第 $ n $ 层丢球: 若碎了:用第二个球从第1层到第 $ n-1 $ 层依次试,最多试 $ n-1 $ 次,总次数 $ n $ 次(含第一次)。 若没碎:第二次从第 $ n + (n-1) $ 层丢球(间隔递减1,确保剩余次数覆盖后续楼层)。 以此类推,每次间隔递减1,直到覆盖100层。 数学推导:确定初始间隔 $ n $ 设首次尝试楼层为 $ n $,后续每次间隔递减1,总覆盖楼层需满足: [ n + (n-1) + (n-2) + \dots + 1 \geq 100 ] 左边是等差数列求和,公式为 $ \frac{n(n+1)}{2} \geq 100 $。 解得 $ n \approx 13.65 $,向上取整得 $ n = 14...
Python基础知识点
1. python的多进程,多线程,没有真正意义上的多线程,为什么这么设计 Python中"多线程没有真正意义上的并行"这一现象,核心原因在于GIL(Global Interpreter Lock,全局解释器锁) 的存在,这是CPython解释器(Python最主流的实现)的设计决策。要理解这一点,需要从GIL的作用、设计初衷以及多线程/多进程的本质差异说起。 1. 什么是GIL? GIL是CPython解释器中的一把互斥锁,它的核心作用是:确保同一时间只有一个线程能执行Python字节码。 无论你的CPU有多少核心,只要在CPython解释器中,多线程执行Python代码时,都会被GIL限制——同一时刻只能有一个线程运行,其他线程必须等待GIL释放。 2....
深度学习基础知识总结
...
深度学习进阶
三、深度学习进阶 模型压缩与加速 知识蒸馏(Knowledge Distillation) 剪枝(Pruning)、量化(Quantization) 模型部署(ONNX、TensorRT)
自然语言处理知识点
自然语言处理(NLP) 词嵌入(Word2Vec、GloVe、FastText) 文本分类与序列标注(BiLSTM-CRF) 预训练语言模型微调技巧
分布式训练:DeepSpeed的ZeRO1/2/3
6.3.1 混合精度训练 6.3.2 ZeRO 零冗余优化器 简介 DeepSpeed是微软推出的大模型分布式训练的工具,主要实现了ZeRO并行训练算法。 ZeRO(零冗余优化器,Zero Redundancy Optimizer)主要从模型参数(Parameters)、优化器状态(Optimizer States)和梯度(Gradients)三个方面对模型进行拆分,从而降低大模型训练占用的显存。 ZeRO的三个级别 ZeRO被分为了三个级别: ZeRO1:对优化器状态进行拆分; ZeRO2:在ZeRO1的基础上,对梯度进行拆分。 ZeRO3:在ZeRO2的基础上,对模型参数进行拆分。 ZeRO1 在模型训练中,正向传播和反向传播并不会用到优化器状态,只有在梯度更新的时候才会使用梯度和优化器状态计算新参数。 假设有NdN_dNd个并行的进程,ZeRO1会将完整优化器的状态等分成NdN_dNd份并存储在各个进程中。当反向传播完成之后,每个进程的优化器会对自己储存的优化器状态(包括Momentum、Variance 与 FP32 Master...
LoRA原理解析和实践
LoRA简介 LoRA的核心思想是,在冻结预训练模型权重后,将可训练的低秩分解矩阵注入到的Transformer架构的每一层中,从而大大减少了在下游任务上的可训练参数量。 具体做法 在原模型旁边增加一个旁路,通过低秩分解来模拟参数的更新量ΔW\Delta{W}ΔW; 训练时,原模型固定,只训练矩阵A、B; 推理时,可将BA加到原参数上,不引入额外的推理延迟; 初始化,A采用高斯函数初始化,B初始化为全0,保证训练开始时旁路为0矩阵; 优势 存储与计算效率:通过低秩适应(LoRA),可以显著减少所需存储的参数数量,并减少计算需求。 适应性与灵活性: LoRA方法允许模型通过只替换少量特定的矩阵A和B来快速适应新任务,显著提高任务切换的效率。当前任务W0+B1A1W_0+B_1A_1W0+B1A1,将lora部分换成B2A2B_2A_2B2A2,即可实现任务切换。 训练与部署效率:LoRA的简单线性设计允许在不引入推理延迟的情况下,与冻结的权重结合使用,从而提高部署时的操作效率。 QLoRA QLoRA 同时结合了模型量化和 LoRA...
GPT面试经验
4.2.1 GPT1 4.2.2 GPT2 4.2.3 GPT3 4.2.4 GPT4 为什么GPT等LLM采用Only-Decoder模式 GPT(Generative Pre-trained Transformer)采用only-decoder(仅decoder)模式的主要原因与其设计目标和使用场景密切相关,以下是几个核心原因: 1. 专注于生成任务 任务特点:GPT的核心目标是生成连续的文本(例如回答问题、写作、总结等)。只需要基于输入的上下文生成输出,而不需要像encoder那样提取复杂的特征。 只用decoder:decoder具有自回归的特性(autoregressive),即它通过逐词预测下一步的输出,非常适合生成文本。 2. 自回归生成方式 decoder的工作方式:GPT的decoder通过掩码机制(masked...
Llama系列模型
参考网站 https://syhya.github.io/zh/posts/2025-04-06-llama/ 关键技术解析 以下是对 LLaMA 系列中广泛采用的关键技术的解析。 RMS Normalization (RMSNorm) FFN_SwiGLU Grouped Query Attention (GQA) Rotary Positional Embeddings (RoPE) Mixture-of-Experts (MoE)
BERT面试经验
4.1.1 BERT 4.1.2 BART 4.1.3 T5 4.1.4 ROBERTa 4.1.5 DeBERTa 为什么BERT要采用Encoder-Only模式 1. 核心目标:捕获双向上下文信息,适应自然语言理解任务 BERT 的核心目标是 基于双向上下文的信息进行预训练,以捕获输入文本中更丰富的语义关系。 相较于传统单向语言模型(如基于 RNN 或 Transformer Decoder 的语言模型)只能从左到右或从右到左处理上下文,BERT 的 Encoder 模式通过自注意力机制能够实现双向上下文编码,捕获更丰富的语义关联。 2. 架构特点:Encoder 模式具有全局自注意力机制,能更好地建模词语的上下文关系 全局自注意力机制是 Transformer Encoder 的核心特性。它允许每个词与输入序列中的所有其他词进行关联,而不是像 RNN 那样只能逐步传递信息或像卷积网络那样局部化建模。 Encoder 的自注意力机制能够对句子中的长距离依赖进行精确建模。例如,在长句中,主语和谓语可能相隔较远,Encoder...