大模型面试|大模型常考面经总结
前言:非专业,纯瞎整理,看啥不会都往上写,见谅,欢迎讨论~
首先,没有LLM比较对口的经历,但是还是准备一些可能会问到的简历相关的问题
解释Prompt Tuning、Adapter Tuning、LoRA等微调方式的原理及其适用场景
如下图所示:
LoRA
引入两个低秩矩阵,d*d——>d*r和r*d(r<<d)
Adapter Tuning
插入可训练的adapters,微调过程中,原始模型的参数保持不变,适配器的参数根据特定任务的数据进行训练。通过这种方式,模型能够对每个特定任务做出微调,而不会影响到模型其他部分的通用性能。
Prefix Tuning
提出固定预训练LM,为LM添加可训练、任务特定的前缀,这样就可以为不同任务保存不同的前缀,微调成本也小。【更多地用于提供输入数据的直接上下文信息,这些前缀作为模型内部表示的一部分,可以影响整个模型的行为。】
Prompt Tuning
在预训练语言模型的输入中添加可学习的嵌入向量作为提示。这些提示被设计成在训练过程中更新,以引导模型输出对特定任务更有用的响应。【可学习向量(prompt tokens)旨在模仿自然语言提示的形式,倾向于用更少量的向量模仿传统的自然语言提示。】
P-Tuning
prompt tuning:使用静态的、可训练的虚拟标记嵌入,在初始化后保持固定。【简单】
P-tuning:用一个可训练的LSTM模型(称为prompt_encoder)来动态生成虚拟标记嵌入,允许根据输入数据的不同生成不同的嵌入,提供了更高的灵活性和适应性,适合需要精细控制和理解复杂上下文的任务。【复杂,可在多个任务上共享】
微调的评估指标
分类任务:
- 准确率(Accuracy)
- 精确率(Precision)
- 召回率(Recall)
- F1分数(F1 Score)
- AUC-ROC曲线(适用于不平衡类别问题)
回归任务:
-
平均绝对误差(MAE)
-
平均平方误差(MSE)
-
均方根误差(RMSE)
-
R²分数(R-squared)
序列标注任务:
- 标签准确率(Token-level Accuracy)
- F1分数(按标签类别计算)
- 微平均/宏平均F1(Micro/Macro F1)
问答任务:
- BLEU(用于衡量生成答案与参考答案的相似度)
- ROUGE(评估摘要质量和召回率)
- METEOR(结合词匹配与语义匹配的评估指标)
- EM(Exact Match,完全匹配率)
生成任务:
- BLEU(用于衡量生成答案与参考答案的相似度)
- ROUGE(评估摘要质量和召回率)
- METEOR(结合词匹配与语义匹配的评估指标)
- 自然度评分(Human Evaluation)
- Perplexity(模型困惑度,反映模型对数据的预测能力)
常用模型的加速技巧
原因:1、算法,2、硬件
进我的收藏夹吃灰吧:大模型加速超全指南来了 | 机器之心
微调如何避免灾难性遗忘和“复读机”问题
灾难性遗忘:LoRA rank调大;MoE;lr调小
复读机:数据多样性;引入噪声;调温度参数(这俩都属于数据多样性的方法);后处理
大模型微调还面临哪些挑战
算力成本、幻觉问题、高质量数据、准确性和可解释性。。。
Transformer和Bert相关:
介绍位置编码RoPE
和相对位置编码相比,RoPE 具有更好的外推性(大模型在训练时和预测时的输入长度不一致,导致模型的泛化能力下降)。
Bert为什么开头要加[CLS]?
BERT在第一句前会加一个[CLS]标志,最后一层该位对应向量可以作为整句话的语义表示,从而用于下游的分类任务等。 因为与文本中已有的其它词相比,这个无明显语义信息的符号会更“公平”地融合文本中各个词的语义信息,从而更好的表示整句话的语义。
为什么目前大模型都是decoder-only结构?
1、encoder的低秩问题:encoder的双向注意力会存在低秩问题,削弱模型的表达能力
2、更好的zero-shot性能,更适合大语料自监督学习:decoder-only在没有任何tuning的情况下,zero-shot表现最好,而encoder-decoder则需要在一定量的标注数据上做multitask finetuning才能发挥最佳潜能
3、效率问题:decoder-only支持一直复用KV-Cache,对多轮对话更友好,因为每个token的表示与他的输入有关,而encoder-decoder和PrefixLM就很难做到