概述
大模型面试需要知道:
- 会配智能体,会测算模型,
- 了解ppo、dpo、resnet、kmeans 。
- 数据工程 采样方法 smoote 。
- 画tranformer模型结构和推导qkv公式。
为什么要用resnet+linaer ???
问数据特征提取 的方法 ?问数据倾斜下的 上采样 下采样方法 ??
例子:
# 第一阶段:增强理解能力
python train_qwen3.py \
--use_modelscope \
--model_name "qwen/Qwen3-14B" \
--target_modules "q_proj,k_proj,v_proj,o_proj,gate_proj,up_proj,down_proj" \
--lora_rank 16 --lora_alpha 48 --lora_dropout 0.2 \
--learning_rate 2e-4 --weight_decay 0.01 \
--lr_scheduler_type one_cycle --warmup_ratio 0.1 \
--max_to_min_ratio 20.0 --final_div_factor 10.0 \
--max_seq_length 4096 \
--num_train_epochs 3.0 --output_dir models/qwen3_stage1 \
--use_flash_attention --use_gradient_checkpointing
# 第二阶段:强化精确输出
python train_qwen3.py \
--model_name models/qwen3_stage1 \
--target_modules "q_proj,v_proj,o_proj" \
--lora_rank 24 --lora_alpha 96 --lora_dropout 0.05 \
--learning_rate 8e-5 --weight_decay 0.02 \
--lr_scheduler_type cosine --warmup_ratio 0.03 \
--max_seq_length 4096 \
--num_train_epochs 2.0 --output_dir models/qwen3_stage2 \
--use_flash_attention --use_gradient_checkpointing
面试题及答案
面试题1:
题目: 在大模型训练中,LoRA(Low-Rank Adaptation)技术是如何应用的?请结合上述训练脚本说明。
答案:
LoRA技术在大模型训练中主要用于微调预训练模型,以适应特定的任务或数据集。在上述训练脚本中,LoRA的应用体现在以下几个方面:
目标模块指定: 通过--targetmodules参数,指定了需要应用LoRA的模型模块,如"qproj,kproj,vproj,oproj,gateproj,upproj,downproj"等。
低秩矩阵设置: --lorarank参数设置了LoRA的低秩矩阵的秩,如16或24,这有助于减少需要训练的参数数量,提高训练效率。
alpha和dropout调整: --loraalpha和--loradropout参数分别用于调整LoRA中的alpha值和dropout比例,以控制模型复杂度和防止过拟合。
通过这些设置,LoRA能够在保持模型原有结构的基础上,通过微调少量参数来实现对特定任务的优化。
面试题2:
题目: 在大模型训练中,为什么需要使用学习率调度器?上述脚本中使用了哪些类型的学习率调度器?
答案:
学习率调度器在大模型训练中用于动态调整学习率,以帮助模型更好地收敛。合理的调整学习率可以避免训练过程中的过拟合、梯度消失或爆炸等问题。
上述脚本中使用了两种类型的学习率调度器:
OneCycleLR: 通过--lrschedulertype onecycle指定。这种调度器在训练开始时逐渐增加学习率,然后在达到峰值后逐渐减小,形成一个循环。
CosineAnnealingLR: 通过--lrschedulertype cosine指定。这种调度器根据余弦函数调整学习率,使其在训练过程中逐渐减小。
这两种调度器都有助于在训练的不同阶段提供合适的学习率,从而提高模型的训练效果。
面试题3:
题目: 上述训练脚本中提到了“使用FlashAttention”和“使用梯度检查点”。请解释这两个技术的含义和作用。
答案:
FlashAttention:
含义: FlashAttention是一种高效的注意力机制实现方式,旨在减少注意力计算中的内存消耗和计算时间。
作用: 通过使用FlashAttention,可以提高大模型在处理长序列时的效率,减少训练和推理过程中的资源消耗。
梯度检查点:
含义: 梯度检查点是一种技术,用于在训练过程中节省内存。它通过选择性地存储某些中间激活值,并在反向传播时重新计算其他激活值来实现。
作用: 这种技术可以显著减少训练大型模型时的内存需求,使得可以在有限的硬件资源上训练更大的模型或使用更长的序列长度。
这两个技术都是在大模型训练中提高效率和节省资源的有效手段。