├── LICENSE ├── LLMs Tokenizer 篇 └── LLMs Tokenizer篇.md ├── LLMs位置编码篇.md ├── LLMs激活函数篇.md ├── LayerNormalization篇.md ├── README.md ├── Token及模型参数准备篇.md ├── misc ├── ali_pay.png ├── placeholder └── wechat_pay.png ├── 大模型(LLMs)agent面.md ├── 大模型(LLMs)langchain面 ├── 基于LLM+向量库的文档对话经验面.md └── 大模型(LLMs)langchain面.md ├── 大模型(LLMs)参数高效微调(PEFT)面 ├── LoRA系列篇.md ├── 大模型(LLMs)参数高效微调(PEFT)面.md ├── 提示学习(Prompting).md └── 适配器微调(Adapter-tuning)篇.md ├── 大模型(LLMs)基础面.md ├── 大模型(LLMs)强化学习面.md ├── 大模型(LLMs)微调面.md ├── 大模型(LLMs)推理面.md ├── 大模型(LLMs)训练集面.md ├── 大模型(LLMs)评测面.md ├── 大模型(LLMs)软硬件配置面.md └── 大模型(LLMs)进阶面.md /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 MK 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /LLMs Tokenizer 篇/LLMs Tokenizer篇.md: -------------------------------------------------------------------------------- 1 | # LLMs Tokenizer 篇 2 | 3 | - Byte-Pair Encoding(BPE)篇 4 | - 1 Byte-Pair Encoding(BPE) 如何构建词典? 5 | 6 | 20 | 21 | - WordPiece 篇 22 | - 1 WordPiece 与 BPE 异同点是什么? 23 | 24 | 45 | 46 | - SentencePiece 篇 47 | - 简单介绍一下 SentencePiece 思路? 48 | 49 | 66 | 67 | - 对比篇 68 | - 1 举例 介绍一下 不同 大模型LLMs 的分词方式? 69 | 70 | 84 | 85 | - 2 介绍一下 不同 大模型LLMs 的分词方式 的区别? 86 | 87 | -------------------------------------------------------------------------------- /LLMs位置编码篇.md: -------------------------------------------------------------------------------- 1 | # LLMs 位置编码篇 2 | 3 | 4 | - 1 什么是位置编码? 5 | 6 | 23 | 24 | - 2 什么是绝对位置编码? 25 | 26 | 40 | 41 | - 3 什么是相对位置编码? 42 | 43 | 57 | 58 | - 4 旋转位置编码 RoPE篇 59 | - 4.1 旋转位置编码 RoPE 思路是什么? 60 | 61 | 73 | 74 | - 4.2 推导一下 旋转位置编码 RoPE ? 75 | - 4.3 旋转位置编码 RoPE 有什么优点? 76 | 77 | 89 | 90 | - 4.4 旋转位置编码 RoPE 被哪些 LLMs 应用? 91 | - 5 长度外推问题篇 92 | - 5.1 什么是 长度外推问题? 93 | 94 | 104 | 105 | - 5.2 长度外推问题 的 解决方法 有哪些? 106 | 107 | 122 | 123 | - 6 ALiBi (Attention with Linear Biases)篇 124 | - 6.1 ALiBi (Attention with Linear Biases) 思路是什么? 125 | 126 | 140 | 141 | - 6.2 ALiBi (Attention with Linear Biases) 的偏置矩阵是什么?有什么作用? 142 | 143 | 155 | 156 | - 6.3 ALiBi (Attention with Linear Biases) 有什么优点? 157 | 158 | 171 | 172 | - 6.4 ALiBi (Attention with Linear Biases) 被哪些 LLMs 应用? -------------------------------------------------------------------------------- /LLMs激活函数篇.md: -------------------------------------------------------------------------------- 1 | # LLMs 激活函数篇 2 | 3 | 4 | - 1 介绍一下 FFN 块 计算公式? 5 | 6 | 28 | 29 | - 2 介绍一下 GeLU 计算公式? 30 | 31 | 47 | 48 | - 3 介绍一下 Swish 计算公式? 49 | 50 | 66 | 67 | - 4 介绍一下 使用 GLU 线性门控单元的 FFN 块 计算公式? 68 | 69 | 87 | 88 | - 5 介绍一下 使用 GeLU 的 GLU 块 计算公式? 89 | 90 | 114 | 115 | - 6 介绍一下 使用 Swish 的 GLU 块 计算公式? 116 | 117 | 141 | 142 | - 各LLMs 都使用哪种激活函数? -------------------------------------------------------------------------------- /LayerNormalization篇.md: -------------------------------------------------------------------------------- 1 | # Layer Normalization 篇 2 | 3 | 4 | - Layer normalization-方法篇 5 | - Layer Norm 篇 6 | - Layer Norm 的计算公式写一下? 7 | 8 | 31 | 32 | - RMS Norm 篇 (均方根 Norm) 33 | - RMS Norm 的计算公式写一下? 34 | 35 | 55 | 56 | - RMS Norm 相比于 Layer Norm 有什么特点? 57 | 58 | 71 | 72 | - Deep Norm 篇 73 | - Deep Norm 思路? 74 | 75 | 96 | 97 | - 写一下 Deep Norm 代码实现? 98 | 99 | 149 | 150 | - Deep Norm 有什么优点? 151 | 152 | 166 | 167 | - Layer normalization-位置篇 168 | - 1 LN 在 LLMs 中的不同位置 有什么区别么?如果有,能介绍一下区别么? 169 | 170 | 182 | 183 | - Layer normalization 对比篇 184 | - LLMs 各模型分别用了 哪种 Layer normalization? 185 | 186 | 199 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # awesome_LLMs_interview_notes 2 | LLMs interview notes and answers 3 | 4 | ## **内容说明** 5 | 6 | 问题来自 [LLMs 千面郎君: km1994 - LLMs_interview_notes ](https://github.com/km1994/LLMs_interview_notes) 7 | 8 | **答案 为 自己编写,不保证正确,仅供参考。** 9 | 10 | **有些问题,提供的答案更多是一种线索,如想深入了解,请自行参考更多资料** 11 | 12 | ## 更新记录 13 | 14 | 1. 2023.09 发布: 大模型(LLMs)基础面,大模型(LLMs)进阶面,大模型(LLMs)微调面,大模型(LLMs)langchain面,基于LLM+向量库的文档对话 经验面,大模型(LLMs)参数高效微调(PEFT) 面,大模型(LLMs)推理面,大模型(LLMs)评测面,大模型(LLMs)强化学习面, 大模型(LLMs)训练集面, 大模型(LLMs)agent 面 15 | 2. 2023.10 新增:Token及模型参数准备篇, LLMs 位置编码篇, LLMs Tokenizer 篇, Layer Normalization 篇, LLMs 激活函数篇 16 | 17 | ## 目录 18 | 19 | - [x] **[大模型(LLMs)基础面](./大模型(LLMs)基础面.md)** 20 | - [x] 1. 目前 主流的开源模型体系 有哪些? 21 | - [x] 2. prefix LM 和 causal LM 区别是什么? 22 | - [x] 3. 涌现能力是啥原因? 23 | - [x] 4. 大模型LLM的架构介绍? 24 | - [x] **[大模型(LLMs)进阶面](./大模型(LLMs)进阶面.md)** 25 | - [x] 1. LLMs 复读机问题 26 | - [x] 1. 什么是 LLMs 复读机问题? 27 | - [x] 2. 为什么会出现 LLMs 复读机问题? 28 | - [x] 3. 如何缓解 LLMs 复读机问题? 29 | - [x] 2. llama 系列问题 30 | - [x] 1. llama 输入句子长度理论上可以无限长吗? 31 | - [x] 3. 什么情况用Bert模型,什么情况用LLaMA、ChatGLM类大模型,咋选? 32 | - [x] 4. 各个专业领域是否需要各自的大模型来服务? 33 | - [x] 5. 如何让大模型处理更长的文本? 34 | - [x] **[大模型(LLMs)微调面](./大模型(LLMs)微调面.md)** 35 | - [x] 1. 如果想要在某个模型基础上做全参数微调,究竟需要多少显存? 36 | - [x] 2. 为什么SFT之后感觉LLM傻了? 37 | - [x] 3. SFT 指令微调数据 如何构建? 38 | - [x] 4. 领域模型Continue PreTrain 数据选取? 39 | - [x] 5. 领域数据训练后,通用能力往往会有所下降,如何缓解模型遗忘通用能力? 40 | - [x] 6. 领域模型Continue PreTrain ,如何 让模型在预训练过程中就学习到更多的知识? 41 | - [x] 7. 进行SFT操作的时候,基座模型选用Chat还是Base? 42 | - [x] 8. 领域模型微调 指令&数据输入格式 要求? 43 | - [x] 9. 领域模型微调 领域评测集 构建? 44 | - [x] 10. 领域模型词表扩增是不是有必要的? 45 | - [x] 11. 如何训练自己的大模型? 46 | - [x] 12. 训练中文大模型有啥经验? 47 | - [x] 13. 指令微调的好处? 48 | - [x] 14. 预训练和微调哪个阶段注入知识的? 49 | - [x] 15. 想让模型学习某个领域或行业的知识,是应该预训练还是应该微调? 50 | - [x] 16. 多轮对话任务如何微调模型? 51 | - [x] 17. 微调后的模型出现能力劣化,灾难性遗忘是怎么回事? 52 | - [x] 18. 微调模型需要多大显存? 53 | - [x] 19. 大模型LLM进行SFT操作的时候在学习什么? 54 | - [x] 20. 预训练和SFT操作有什么不同 55 | - [x] 21. 样本量规模增大,训练出现OOM错 56 | - [x] 22. 大模型LLM进行SFT 如何对样本进行优化? 57 | - [x] 23. 模型参数迭代实验 58 | - [x] **[大模型(LLMs)langchain面]()** 59 | - [x] **[大模型(LLMs)langchain 面](./大模型(LLMs)langchain面/大模型(LLMs)langchain面.md)** 60 | - [x] 1. 什么是 LangChain? 61 | - [x] 2. LangChain 包含哪些 核心概念? 62 | - [x] 1. LangChain 中 Components and Chains 是什么? 63 | - [x] 2. LangChain 中 Prompt Templates and Values 是什么? 64 | - [x] 3. LangChain 中 Example Selectors 是什么? 65 | - [x] 4. LangChain 中 Output Parsers 是什么? 66 | - [x] 5. LangChain 中 Indexes and Retrievers 是什么? 67 | - [x] 6. LangChain 中 Chat Message History 是什么? 68 | - [x] 7. LangChain 中 Agents and Toolkits 是什么? 69 | - [x] 3. 什么是 LangChain Agent? 70 | - [x] 4. 如何使用 LangChain ? 71 | - [x] 5. LangChain 支持哪些功能? 72 | - [x] 6. 什么是 LangChain model? 73 | - [x] 7. LangChain 包含哪些特点? 74 | - [x] 8. LangChain 如何使用? 75 | - [x] 1. LangChain 如何调用 LLMs 生成回复? 76 | - [x] 2. LangChain 如何修改 提示模板? 77 | - [x] 3. LangChain 如何链接多个组件处理一个特定的下游任务? 78 | - [x] 4. LangChain 如何Embedding & vector store? 79 | - [ ] 9. LangChain 存在哪些问题及方法方案? 80 | - [x] 1. LangChain 低效的令牌使用问题 81 | - [ ] 2. LangChain 文档的问题 82 | - [ ] 3. LangChain 太多概念容易混淆,过多的“辅助”函数问题 83 | - [ ] 4. LangChain 行为不一致并且隐藏细节问题 84 | - [x] 5. LangChain 缺乏标准的可互操作数据类型问题 85 | - [x] 10. LangChain 替代方案? 86 | - [x] **[基于LLM+向量库的文档对话 经验面](./大模型(LLMs)langchain面/基于LLM+向量库的文档对话经验面.md)** 87 | - [x] 1. 基于LLM+向量库的文档对话 基础面 88 | - [x] 1. LLMs 存在模型幻觉问题,请问如何处理? 89 | - [x] 2. 基于LLM+向量库的文档对话 思路是怎么样? 90 | - [x] 3. 基于LLM+向量库的文档对话 核心技术是什么? 91 | - [x] 4. 基于LLM+向量库的文档对话 prompt 模板 如何构建? 92 | - [x] 2. 基于LLM+向量库的文档对话 优化面 93 | - [x] 1. 痛点1:文档切分粒度不好把控,既担心噪声太多又担心语义信息丢失 94 | - [x] 2. 痛点2:在基于垂直领域 表现不佳 95 | - [x] 3. 痛点3:langchain 内置 问答分句效果不佳问题 96 | - [x] 4. 痛点4:如何 尽可能召回与query相关的Document 问题 97 | - [x] 5. 痛点5:如何让LLM基于query和context得到高质量的response 98 | - [ ] 3. 基于LLM+向量库的文档对话 工程示例面 99 | - [ ] 1. 避坑记录 100 | - [ ] 2. 本地知识库问答系统(Langchain-chatGLM) 101 | - [x] **[大模型(LLMs)参数高效微调(PEFT) 面]()** 102 | - [x] **[大模型(LLMs)参数高效微调(PEFT) 面](./大模型(LLMs)参数高效微调(PEFT)面/大模型(LLMs)参数高效微调(PEFT)面.md)** 103 | - [x] 微调方法是啥?如何微调? 104 | - [x] 为什么需要 PEFT? 105 | - [x] 介绍一下 PEFT? 106 | - [x] PEFT 有什么优点? 107 | - [x] 微调方法批处理大小模式GPU显存速度? 108 | - [x] Peft 和 全量微调区别? 109 | - [x] 多种不同的高效微调方法对比 110 | - [x] 当前高效微调技术存在的一些问题 111 | - [x] 高效微调技术最佳实践 112 | - [x] PEFT 存在问题? 113 | - [x] 能不能总结一下各种参数高效微调方法? 114 | - [x] **[适配器微调(Adapter-tuning)篇](./大模型(LLMs)参数高效微调(PEFT)面/适配器微调(Adapter-tuning)篇.md)** 115 | - [x] 一、为什么 需要 适配器微调(Adapter-tuning)? 116 | - [x] 二、适配器微调(Adapter-tuning)思路? 117 | - [x] 三、 适配器微调(Adapter-tuning)特点是什么? 118 | - [x] 四、AdapterFusion 思路 是什么? 119 | - [x] 五、AdapterDrop 思路 是什么? 120 | - [x] 六、AdapterDrop 特点 是什么? 121 | - [x] 七、MAM Adapter 思路 是什么? 122 | - [x] 八、MAM Adapter 特点 是什么? 123 | - [x] **[提示学习(Prompting)](./大模型(LLMs)参数高效微调(PEFT)面/提示学习(Prompting).md)** 124 | - [x] 一、为什么需要 提示学习(Prompting)? 125 | - [x] 二、什么是 提示学习(Prompting)? 126 | - [x] 三、提示学习(Prompting) 有什么优点? 127 | - [x] 四、提示学习(Prompting)有哪些方法,能不能稍微介绍一下它们间? 128 | - [x] 4.1 前缀微调(Prefix-tuning)篇 129 | - [x] 4.1.1 为什么需要 前缀微调(Prefix-tuning)? 130 | - [x] 4.1.2 前缀微调(Prefix-tuning)思路是什么? 131 | - [x] 4.1.3 前缀微调(Prefix-tuning)的优点是什么? 132 | - [x] 4.1.4 前缀微调(Prefix-tuning)的缺点是什么? 133 | - [x] 4.2 指示微调(Prompt-tuning)篇 134 | - [x] 4.2.1 为什么需要 指示微调(Prompt-tuning)? 135 | - [x] 4.2.2 指示微调(Prompt-tuning)思路是什么? 136 | - [x] 4.2.3 指示微调(Prompt-tuning)优点是什么? 137 | - [x] 4.2.4 指示微调(Prompt-tuning)缺点是什么? 138 | - [x] 4.2.5 指示微调(Prompt-tuning)与 Prefix-tuning 区别 是什么? 139 | - [x] 4.2.6 指示微调(Prompt-tuning)与 fine-tuning 区别 是什么? 140 | - [x] 4.3 P-tuning 篇 141 | - [x] 4.3.1 为什么需要 P-tuning? 142 | - [x] 4.3.2 P-tuning 思路是什么? 143 | - [x] 4.3.3 P-tuning 优点是什么? 144 | - [x] 4.3.4 P-tuning 缺点是什么? 145 | - [x] 4.4 P-tuning v2 篇 146 | - [x] 4.4.1 为什么需要 P-tuning v2? 147 | - [x] 4.4.2 P-tuning v2 思路是什么? 148 | - [x] 4.4.3 P-tuning v2 优点是什么? 149 | - [x] 4.4.4 P-tuning v2 缺点是什么? 150 | - [x] **[LoRA 系列篇](./大模型(LLMs)参数高效微调(PEFT)面/LoRA系列篇.md)** 151 | - [x] 一、LoRA篇 152 | - [x] 1.1 什么是 LoRA? 153 | - [x] 1.2 LoRA 的思路是什么? 154 | - [x] 1.3 LoRA 的特点是什么? 155 | - [x] 二、QLoRA篇 156 | - [x] 2.1 QLoRA 的思路是怎么样的? 157 | - [x] 2.2 QLoRA 的特点是什么? 158 | - [x] 三、AdaLoRA篇 159 | - [x] 3.1 AdaLoRA 的思路是怎么样的? 160 | - [x] 四、LoRA权重是否可以合入原模型? 161 | - [ ] 五、ChatGLM-6B LoRA后的权重多大? 162 | - [x] 六、LoRA 微调优点是什么? 163 | - [x] 七、LoRA微调方法为啥能加速训练? 164 | - [x] 八、如何在已有LoRA模型上继续训练? 165 | - [x] **[大模型(LLMs)推理面](./大模型(LLMs)推理面.md)** 166 | - [x] 1. 为什么大模型推理时显存涨的那么多还一直占着? 167 | - [x] 2. 大模型在gpu和cpu上推理速度如何? 168 | - [x] 3. 推理速度上,int8和fp16比起来怎么样? 169 | - [x] 4. 大模型有推理能力吗? 170 | - [x] 5. 大模型生成时的参数怎么设置? 171 | - [x] 6. 有哪些省内存的大语言模型训练/微调/推理方法? 172 | - [x] 7. 如何让大模型输出合规化 173 | - [x] 8. 应用模式变更 174 | - [x] **[大模型(LLMs)评测面](./大模型(LLMs)评测面.md)** 175 | - [x] 大模型怎么评测? 176 | - [x] 大模型的honest原则是如何实现的? 177 | - [x] 模型如何判断回答的知识是训练过的已知的知识,怎么训练这种能力? 178 | - [x] **[大模型(LLMs)强化学习面](./大模型(LLMs)强化学习面.md)** 179 | - [x] 奖励模型需要和基础模型一致吗? 180 | - [x] RLHF 在实践过程中存在哪些不足? 181 | - [x] 如何解决 人工产生的偏好数据集成本较高,很难量产问题? 182 | - [x] 如何解决三个阶段的训练(SFT->RM->PPO)过程较长,更新迭代较慢问题? 183 | - [x] 如何解决 PPO 的训练过程同时存在4个模型(2训练,2推理),对计算资源的要求较高 问题? 184 | - [x] **[大模型(LLMs)软硬件配置面](./大模型(LLMs)软硬件配置面.md)** 185 | - [x] **[大模型(LLMs)训练集面](./大模型(LLMs)训练集面.md)** 186 | - [x] SFT(有监督微调)的数据集格式? 187 | - [x] RM(奖励模型)的数据格式? 188 | - [x] PPO(强化学习)的数据格式? 189 | - [x] 找数据集哪里找? 190 | - [x] 微调需要多少条数据? 191 | - [x] 有哪些大模型的训练集? 192 | - [x] 进行领域大模型预训练应用哪些数据集比较好? 193 | - [ ] **[大模型(LLMs)显存问题面](./大模型(LLMs)显存问题面.md)** 194 | - [ ] **[大模型(LLMs)分布式训练面](./大模型(LLMs)分布式训练面.md)** 195 | - [x] **[大模型(LLMs)agent 面](./大模型(LLMs)agent面.md)** 196 | - [x] 如何给LLM注入领域知识? 197 | - [x] 如果想要快速体验各种模型,该怎么办? 198 | - [ ] **[Token及模型参数准备篇](./Token及模型参数准备篇.md)** 199 | - [x] 预训练数据 Token 重复 是否影响 模型性能? 200 | - [ ] SFT需要训练Token数? 201 | - [ ] **[LLMs 位置编码篇](./LLMs位置编码篇.md)** 202 | - [x] 1 什么是位置编码? 203 | - [x] 2 什么是绝对位置编码? 204 | - [x] 3 什么是相对位置编码? 205 | - [ ] 4 旋转位置编码 RoPE篇 206 | - [x] 4.1 旋转位置编码 RoPE 思路是什么? 207 | - [ ] 4.2 推导一下 旋转位置编码 RoPE ? 208 | - [x] 4.3 旋转位置编码 RoPE 有什么优点? 209 | - [ ] 4.4 旋转位置编码 RoPE 被哪些 LLMs 应用? 210 | - [ ] 5 长度外推问题篇 211 | - [x] 5.1 什么是 长度外推问题? 212 | - [x] 5.2 长度外推问题 的 解决方法 有哪些? 213 | - [ ] 6 ALiBi (Attention with Linear Biases)篇 214 | - [x] 6.1 ALiBi (Attention with Linear Biases) 思路是什么? 215 | - [x] 6.2 ALiBi (Attention with Linear Biases) 的偏置矩阵是什么?有什么作用? 216 | - [x] 6.3 ALiBi (Attention with Linear Biases) 有什么优点? 217 | - [ ] 6.4 ALiBi (Attention with Linear Biases) 被哪些 LLMs 应用? 218 | - [ ] **[LLMs Tokenizer 篇](./LLMs%20Tokenizer%20篇/)** 219 | - [x] **[LLMs Tokenizer 篇](./LLMs%20Tokenizer%20篇/LLMs%20Tokenizer篇.md)** 220 | - [x] Byte-Pair Encoding(BPE)篇 221 | - [x] 1 Byte-Pair Encoding(BPE) 如何构建词典? 222 | - [x] WordPiece 篇 223 | - [x] 1 WordPiece 与 BPE 异同点是什么? 224 | - [x] SentencePiece 篇 225 | - [x] 简单介绍一下 SentencePiece 思路? 226 | - [x] 对比篇 227 | - [x] 1 举例 介绍一下 不同 大模型LLMs 的分词方式? 228 | - [x] 2 介绍一下 不同 大模型LLMs 的分词方式 的区别? 229 | - [x] **[Layer Normalization 篇](./LayerNormalization篇.md)** 230 | - [x] Layer normalization-方法篇 231 | - [x] Layer Norm 篇 232 | - [x] Layer Norm 的计算公式写一下? 233 | - [x] RMS Norm 篇 (均方根 Norm) 234 | - [x] RMS Norm 的计算公式写一下? 235 | - [x] RMS Norm 相比于 Layer Norm 有什么特点? 236 | - [x] Deep Norm 篇 237 | - [x] Deep Norm 思路? 238 | - [x] 写一下 Deep Norm 代码实现? 239 | - [x] Deep Norm 有什么优点? 240 | - [x] Layer normalization-位置篇 241 | - [x] 1 LN 在 LLMs 中的不同位置 有什么区别么?如果有,能介绍一下区别么? 242 | - [x] Layer normalization 对比篇 243 | - [x] LLMs 各模型分别用了 哪种 Layer normalization? 244 | - [ ] **[LLMs 激活函数篇](./LLMs激活函数篇.md)** 245 | - [x] 1 介绍一下 FFN 块 计算公式? 246 | - [x] 2 介绍一下 GeLU 计算公式? 247 | - [x] 3 介绍一下 Swish 计算公式? 248 | - [x] 4 介绍一下 使用 GLU 线性门控单元的 FFN 块 计算公式? 249 | - [x] 5 介绍一下 使用 GeLU 的 GLU 块 计算公式? 250 | - [x] 6 介绍一下 使用 Swish 的 GLU 块 计算公式? 251 | - [ ] 各LLMs 都使用哪种激活函数? 252 | 253 | ------ 254 | ## **Star-History** 255 | 256 | ![star-history](https://api.star-history.com/svg?repos=jackaduma/awesome_LLMs_interview_notes&type=Date "star-history") 257 | 258 | ------ 259 | 260 | ## Donation 261 | If this project help you reduce time to develop, you can give me a cup of coffee :) 262 | 263 | AliPay(支付宝) 264 |
265 | ali_pay 266 |
267 | 268 | WechatPay(微信) 269 |
270 | wechat_pay 271 |
272 | 273 | ------ 274 | 275 | -------------------------------------------------------------------------------- /Token及模型参数准备篇.md: -------------------------------------------------------------------------------- 1 | # Token及模型参数准备篇 2 | 3 | 4 | 1. 预训练数据 Token 重复 是否影响 模型性能? 5 | 6 | 20 | 21 | 2. SFT需要训练Token数? -------------------------------------------------------------------------------- /misc/ali_pay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j0rGeT/LLMs_interview_notes/c1f2577370ef4c133e9a1681884b01e23cf7cdde/misc/ali_pay.png -------------------------------------------------------------------------------- /misc/placeholder: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /misc/wechat_pay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/j0rGeT/LLMs_interview_notes/c1f2577370ef4c133e9a1681884b01e23cf7cdde/misc/wechat_pay.png -------------------------------------------------------------------------------- /大模型(LLMs)agent面.md: -------------------------------------------------------------------------------- 1 | # 大模型(LLMs)agent 面 2 | 3 | 1. 💡 **如何给LLM注入领域知识?** 4 | 5 | 20 | 21 | 2. 💡 **如果想要快速体验各种模型,该怎么办?** 22 | 23 | 35 | -------------------------------------------------------------------------------- /大模型(LLMs)langchain面/基于LLM+向量库的文档对话经验面.md: -------------------------------------------------------------------------------- 1 | # 基于LLM+向量库的文档对话经验面 2 | 3 | 1. 基于LLM+向量库的文档对话 基础面 4 | 1. 💡 **LLMs 存在模型幻觉问题,请问如何处理?** 5 | 6 | 19 | 20 | 21 | 2. 💡 **基于LLM+向量库的文档对话 思路是怎么样?** 22 | 23 | 37 | 38 | 3. 💡 **基于LLM+向量库的文档对话 核心技术是什么?** 39 | 40 | 53 | 54 | 4. 💡 **基于LLM+向量库的文档对话 prompt 模板 如何构建?** 55 | 56 | 68 | 69 | 2. 基于LLM+向量库的文档对话 优化面 70 | 1. 💡 **痛点1:文档切分粒度不好把控,既担心噪声太多又担心语义信息丢失** 71 | 72 | 85 | 86 | 2. 💡 **痛点2:在基于垂直领域 表现不佳** 87 | 88 | 102 | 103 | 3. 💡 **痛点3:langchain 内置 问答分句效果不佳问题** 104 | 105 | 119 | 120 | 4. 💡 **痛点4:如何 尽可能召回与query相关的Document 问题** 121 | 122 | 138 | 139 | 5. 💡 **痛点5:如何让LLM基于query和context得到高质量的response** 140 | 141 | 156 | 157 | 3. 基于LLM+向量库的文档对话 工程示例面 158 | 1. 本地知识库问答系统(Langchain-chatGLM) 159 | 1. 避坑记录 160 | -------------------------------------------------------------------------------- /大模型(LLMs)langchain面/大模型(LLMs)langchain面.md: -------------------------------------------------------------------------------- 1 | # 大模型(LLMs)langchain面 2 | 3 | 1. 什么是 LangChain? 4 | 5 | 11 | 12 | 2. LangChain 包含哪些 核心概念? 13 | 1. LangChain 中 Components and Chains 是什么? 14 | 15 | 53 | 54 | 2. LangChain 中 Prompt Templates and Values 是什么? 55 | 56 | 89 | 90 | 3. LangChain 中 Example Selectors 是什么? 91 | 92 | 124 | 125 | 4. LangChain 中 Output Parsers 是什么? 126 | 127 | 167 | 168 | 5. LangChain 中 Indexes and Retrievers 是什么? 169 | 170 | 184 | 185 | 6. LangChain 中 Chat Message History 是什么? 186 | 187 | 203 | 204 | 7. LangChain 中 Agents and Toolkits 是什么? 205 | 206 | 253 | 254 | 3. 什么是 LangChain Agent? 255 | 256 | 299 | 300 | 4. 如何使用 LangChain ? 301 | 302 | 322 | 323 | 5. LangChain 支持哪些功能? 324 | 325 | 338 | 339 | 356 | 357 | 6. 什么是 LangChain model? 358 | 359 | 365 | 366 | 370 | 371 | 7. LangChain 包含哪些特点? 372 | 373 | 390 | 391 | 8. LangChain 如何使用? 392 | 1. LangChain 如何调用 LLMs 生成回复? 393 | 394 | 420 | 421 | 2. LangChain 如何修改 提示模板? 422 | 423 | 455 | 456 | 3. LangChain 如何链接多个组件处理一个特定的下游任务? 457 | 458 | 489 | 490 | 4. LangChain 如何Embedding & vector store? 491 | 492 | 524 | 525 | 9. LangChain 存在哪些问题及方法方案? 526 | 1. LangChain 低效的令牌使用问题 527 | 528 | 538 | 539 | 2. LangChain 文档的问题 540 | 3. LangChain 太多概念容易混淆,过多的“辅助”函数问题 541 | 4. LangChain 行为不一致并且隐藏细节问题 542 | 5. LangChain 缺乏标准的可互操作数据类型问题 543 | 544 | 548 | 549 | 10. LangChain 替代方案? 550 | 551 | 555 | -------------------------------------------------------------------------------- /大模型(LLMs)参数高效微调(PEFT)面/LoRA系列篇.md: -------------------------------------------------------------------------------- 1 | # LoRA 系列篇 2 | 3 | - 一、LoRA篇 4 | - 1.1 什么是 LoRA? 5 | 6 | 16 | 17 | - 1.2 LoRA 的思路是什么? 18 | 19 | 34 | 35 | - 1.3 LoRA 的特点是什么? 36 | 37 | 51 | 52 | - 二、QLoRA篇 53 | - 2.1 QLoRA 的思路是怎么样的? 54 | 55 | 68 | 69 | - 2.2 QLoRA 的特点是什么? 70 | 71 | 85 | 86 | - 三、AdaLoRA篇 87 | - 3.1 AdaLoRA 的思路是怎么样的? 88 | 89 | 102 | 103 | - 四、LoRA权重是否可以合入原模型? 104 | 105 | 115 | 116 | - 五、ChatGLM-6B LoRA后的权重多大? 117 | - 六、LoRA 微调优点是什么? 118 | 119 | 132 | 133 | - 七、LoRA微调方法为啥能加速训练? 134 | 135 | 148 | 149 | - 八、如何在已有LoRA模型上继续训练? 150 | 151 | 167 | -------------------------------------------------------------------------------- /大模型(LLMs)参数高效微调(PEFT)面/大模型(LLMs)参数高效微调(PEFT)面.md: -------------------------------------------------------------------------------- 1 | # 大模型(LLMs)参数高效微调(PEFT) 面 2 | 3 | 4 | - 微调方法是啥?如何微调? 5 | 6 | 23 | 24 | - 为什么需要 PEFT? 25 | 26 | 41 | 42 | - 介绍一下 PEFT? 43 | 44 | 61 | 62 | - PEFT 有什么优点? 63 | 64 | 78 | 79 | - 微调方法批处理大小模式GPU显存速度? 80 | 81 | 93 | 94 | - Peft 和 全量微调区别? 95 | 96 | 116 | 117 | - 多种不同的高效微调方法对比 118 | 119 | 133 | 134 | - 当前高效微调技术存在的一些问题 135 | 136 | 149 | 150 | - 高效微调技术最佳实践 151 | 152 | 167 | 168 | - PEFT 存在问题? 169 | 170 | 183 | 184 | - 能不能总结一下各种参数高效微调方法? 185 | 186 | 200 | -------------------------------------------------------------------------------- /大模型(LLMs)参数高效微调(PEFT)面/提示学习(Prompting).md: -------------------------------------------------------------------------------- 1 | # 提示学习(Prompting) 2 | 3 | - 一、为什么需要 提示学习(Prompting)? 4 | 5 | 18 | 19 | - 二、什么是 提示学习(Prompting)? 20 | 21 | 37 | 38 | - 三、提示学习(Prompting) 有什么优点? 39 | 40 | 54 | 55 | - 四、提示学习(Prompting)有哪些方法,能不能稍微介绍一下它们间? 56 | 57 | 71 | 72 | - 4.1 前缀微调(Prefix-tuning)篇 73 | - 4.1.1 为什么需要 前缀微调(Prefix-tuning)? 74 | 75 | 87 | 88 | - 4.1.2 前缀微调(Prefix-tuning)思路是什么? 89 | 90 | 103 | 104 | - 4.1.3 前缀微调(Prefix-tuning)的优点是什么? 105 | 106 | 120 | 121 | - 4.1.4 前缀微调(Prefix-tuning)的缺点是什么? 122 | 123 | 137 | 138 | - 4.2 指示微调(Prompt-tuning)篇 139 | - 4.2.1 为什么需要 指示微调(Prompt-tuning)? 140 | 141 | 154 | 155 | - 4.2.2 指示微调(Prompt-tuning)思路是什么? 156 | 157 | 170 | 171 | - 4.2.3 指示微调(Prompt-tuning)优点是什么? 172 | 173 | 187 | 188 | - 4.2.4 指示微调(Prompt-tuning)缺点是什么? 189 | 190 | 204 | 205 | - 4.2.5 指示微调(Prompt-tuning)与 Prefix-tuning 区别 是什么? 206 | 207 | 221 | 222 | - 4.2.6 指示微调(Prompt-tuning)与 fine-tuning 区别 是什么? 223 | 224 | 238 | 239 | - 4.3 P-tuning 篇 240 | - 4.3.1 为什么需要 P-tuning? 241 | 242 | 255 | 256 | - 4.3.2 P-tuning 思路是什么? 257 | 258 | 275 | 276 | - 4.3.3 P-tuning 优点是什么? 277 | 278 | 291 | 292 | - 4.3.4 P-tuning 缺点是什么? 293 | 294 | 307 | 308 | - 4.4 P-tuning v2 篇 309 | - 4.4.1 为什么需要 P-tuning v2? 310 | 311 | 324 | 325 | - 4.4.2 P-tuning v2 思路是什么? 326 | 327 | 340 | 341 | - 4.4.3 P-tuning v2 优点是什么? 342 | 343 | 356 | 357 | - 4.4.4 P-tuning v2 缺点是什么? 358 | 359 | 372 | -------------------------------------------------------------------------------- /大模型(LLMs)参数高效微调(PEFT)面/适配器微调(Adapter-tuning)篇.md: -------------------------------------------------------------------------------- 1 | # 适配器微调(Adapter-tuning)篇 2 | 3 | - 一、为什么 需要 适配器微调(Adapter-tuning)? 4 | 5 | 18 | 19 | - 二、适配器微调(Adapter-tuning)思路? 20 | 21 | 36 | 37 | - 三、 适配器微调(Adapter-tuning)特点是什么? 38 | 39 | 53 | 54 | - 四、AdapterFusion 思路 是什么? 55 | 56 | 72 | 73 | - 五、AdapterDrop 思路 是什么? 74 | 75 | 89 | 90 | - 六、AdapterDrop 特点 是什么? 91 | 92 | 105 | 106 | - 七、MAM Adapter 思路 是什么? 107 | 108 | 122 | 123 | - 八、MAM Adapter 特点 是什么? 124 | 125 | 138 | -------------------------------------------------------------------------------- /大模型(LLMs)基础面.md: -------------------------------------------------------------------------------- 1 | # 大模型(LLMs)基础面 2 | 3 | 1. 💡 **目前 主流的开源模型体系 有哪些?** 4 | 15 | 16 | 2. 💡 **prefix LM 和 causal LM 区别是什么?** 17 | 29 | 30 | 4. 💡 **涌现能力是啥原因?** 31 | 32 | 43 | 44 | 5. 💡 **大模型LLM的架构介绍?** 45 | 46 | 59 | -------------------------------------------------------------------------------- /大模型(LLMs)强化学习面.md: -------------------------------------------------------------------------------- 1 | # 大模型(LLMs)强化学习面 2 | 3 | 4 | 1. 💡 **奖励模型需要和基础模型一致吗?** 5 | 6 | 17 | 18 | 2. 💡 **RLHF 在实践过程中存在哪些不足?** 19 | 20 | 33 | 34 | 3. 💡 **如何解决 人工产生的偏好数据集成本较高,很难量产问题?** 35 | 36 | 49 | 50 | 4. 💡 **如何解决三个阶段的训练(SFT->RM->PPO)过程较长,更新迭代较慢问题?** 51 | 52 | 65 | 66 | 5. 💡 **如何解决 PPO 的训练过程同时存在4个模型(2训练,2推理),对计算资源的要求较高 问题?** 67 | 68 | 82 | -------------------------------------------------------------------------------- /大模型(LLMs)微调面.md: -------------------------------------------------------------------------------- 1 | # 大模型(LLMs)微调面 2 | 3 | 1. 💡 **如果想要在某个模型基础上做全参数微调,究竟需要多少显存?** 4 | 5 | 17 | 18 | 2. 💡 **为什么SFT之后感觉LLM傻了?** 19 | 20 | 40 | 41 | 3. 💡 **SFT 指令微调数据 如何构建?** 42 | 43 | 58 | 59 | 4. 💡 **领域模型Continue PreTrain 数据选取?** 60 | 61 | 75 | 76 | 5. 💡 **领域数据训练后,通用能力往往会有所下降,如何缓解模型遗忘通用能力?** 77 | 78 | 92 | 93 | 6. 💡 **领域模型Continue PreTrain ,如何 让模型在预训练过程中就学习到更多的知识?** 94 | 95 | 108 | 109 | 7. 💡 **进行SFT操作的时候,基座模型选用Chat还是Base?** 110 | 111 | 122 | 123 | 8. 💡 **领域模型微调 指令&数据输入格式 要求?** 124 | 125 | 151 | 152 | 9. 💡 **领域模型微调 领域评测集 构建?** 153 | 154 | 170 | 171 | 10. 💡 **领域模型词表扩增是不是有必要的?** 172 | 173 | 184 | 185 | 11. 💡 **如何训练自己的大模型?** 186 | 187 | 202 | 203 | 12. 💡 **训练中文大模型有啥经验?** 204 | 205 | 220 | 221 | 13. 💡 **指令微调的好处?** 222 | 223 | 236 | 237 | 14. 💡 **预训练和微调哪个阶段注入知识的?** 238 | 239 | 254 | 255 | 15. 💡 **想让模型学习某个领域或行业的知识,是应该预训练还是应该微调?** 256 | 257 | 270 | 271 | 16. 💡 **多轮对话任务如何微调模型?** 272 | 273 | 290 | 291 | 17. 💡 **微调后的模型出现能力劣化,灾难性遗忘是怎么回事?** 292 | 293 | 312 | 313 | 18. 💡 **微调模型需要多大显存?** 314 | 315 | 328 | 329 | 19. 💡 **大模型LLM进行SFT操作的时候在学习什么?** 330 | 331 | 343 | 344 | 20. 💡 **预训练和SFT操作有什么不同** 345 | 346 | 366 | 367 | 21. 💡 **样本量规模增大,训练出现OOM错** 368 | 369 | 383 | 384 | 22. 💡 **大模型LLM进行SFT 如何对样本进行优化?** 385 | 386 | 401 | 402 | 23. 💡 **模型参数迭代实验** 403 | 404 | 422 | 423 |