From f06ca17e8a4a677e8bad325e82dd20e11d016248 Mon Sep 17 00:00:00 2001 From: skindhu Date: Wed, 2 Apr 2025 09:33:02 +0800 Subject: [PATCH] Add appendixB --- README.md | 2 +- ...®å’Œè¿›ä¸€æ­¥é˜…读.md => 附录B.å‚考文献和扩展阅读.md} | 0 cn-Book/附录E.使用 LoRA çš„å‚æ•°é«˜æ•ˆå¾®è°ƒ.md | 27 +++++++++++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) rename cn-Book/{附录B.å‚考文献和进一步阅读.md => 附录B.å‚考文献和扩展阅读.md} (100%) create mode 100644 cn-Book/附录E.使用 LoRA çš„å‚æ•°é«˜æ•ˆå¾®è°ƒ.md diff --git a/README.md b/README.md index 7d2843f..613b741 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ + [第六章:用于分类任务的微调](./cn-Book/6.用于分类任务的微调.md) + [第七章:指令éµå¾ªå¾®è°ƒ](./cn-Book/7.指令éµå¾ªå¾®è°ƒ.md) + [附录A:PyTorch简介](./cn-Book/附录A.PyTorch简介.md) -+ [附录B:å‚考文献和进一步阅读](./cn-Book/附录B.å‚考文献和进一步阅读.md) ++ [附录B:å‚考文献和扩展阅读](./cn-Book/附录B.å‚考文献和扩展阅读.md) + [附录C:习题解答](./cn-Book/附录C.习题解答.md) + [附录D:给训练循环添加高级技巧](./cn-Book/附录D.给训练循环添加高级技巧.md) diff --git a/cn-Book/附录B.å‚考文献和进一步阅读.md b/cn-Book/附录B.å‚考文献和扩展阅读.md similarity index 100% rename from cn-Book/附录B.å‚考文献和进一步阅读.md rename to cn-Book/附录B.å‚考文献和扩展阅读.md diff --git a/cn-Book/附录E.使用 LoRA çš„å‚æ•°é«˜æ•ˆå¾®è°ƒ.md b/cn-Book/附录E.使用 LoRA çš„å‚æ•°é«˜æ•ˆå¾®è°ƒ.md new file mode 100644 index 0000000..4cf7b2d --- /dev/null +++ b/cn-Book/附录E.使用 LoRA çš„å‚æ•°é«˜æ•ˆå¾®è°ƒ.md @@ -0,0 +1,27 @@ +本附录介ç»ä½Žç§©é€‚应 (LoRA)ï¼Œè¿™æ˜¯æœ€å¹¿æ³›ä½¿ç”¨çš„å‚æ•°é«˜æ•ˆå¾®è°ƒæŠ€æœ¯ä¹‹ä¸€ã€‚在解释 LoRA 背åŽçš„ä¸»è¦æ€æƒ³ä¹‹åŽï¼Œæœ¬é™„录将基于第 6 章中的垃圾邮件分类微调示例并对 LLM è¿›è¡Œå¾®è°ƒã€‚ç„¶è€Œï¼Œéœ€è¦æ³¨æ„的是,LoRA 微调也适用于第 7 章中讨论的有监ç£çš„æŒ‡ä»¤å¾®è°ƒã€‚ + +## E.1 LoRA 简介 + +LoRA,å³ä½Žç§©é€‚应,是一ç§é€šè¿‡ä»…调整模型æƒé‡å‚数的一å°éƒ¨åˆ†ï¼Œä½¿é¢„训练模型更好地适应特定(通常较å°ï¼‰æ•°æ®é›†çš„æŠ€æœ¯ã€‚â€œä½Žç§©â€æŒ‡çš„æ˜¯å°†æ¨¡åž‹è°ƒæ•´é™åˆ¶åœ¨æ€»æƒé‡å‚数空间的一个较å°ç»´åº¦å­ç©ºé—´çš„æ•°å­¦æ¦‚念,这有效地æ•获了训练期间æƒé‡å‚æ•°å˜åŒ–的最具影å“力的方å‘。 + +> [!TIP] +> +> **个人æ€è€ƒï¼š** LoRA技术现在用的比较多,我们该怎么ç†è§£LoRA,想象你有一个éžå¸¸åŽ‰å®³çš„å·¥å…·ç®±ï¼ˆé¢„è®­ç»ƒæ¨¡åž‹ï¼‰ï¼Œé‡Œé¢æœ‰å¾ˆå¤šå·¥å…·ï¼Œå¯ä»¥åšå„ç§å„æ ·çš„äº‹æƒ…ã€‚çŽ°åœ¨ä½ åªæƒ³ç”¨è¿™ä¸ªå·¥å…·ç®±æ¥ä¿®è‡ªè¡Œè½¦ï¼ˆç‰¹å®šä»»åŠ¡ï¼‰ã€‚ +> +> LoRA å°±åƒæ˜¯ç»™ä½ çš„工具箱增加了一些专门用æ¥ä¿®è‡ªè¡Œè½¦çš„“å°å·¥å…·â€ï¼ˆæ¨¡åž‹çš„一å°éƒ¨åˆ†æƒé‡å‚数)。你ä¸éœ€è¦æŠŠæ•´ä¸ªå·¥å…·ç®±é‡Œçš„å·¥å…·éƒ½æ¢æŽ‰æˆ–è€…é‡æ–°å­¦ä¹ æ€Žä¹ˆä½¿ç”¨å®ƒä»¬ï¼Œåªéœ€è¦å­¦ä¼šç”¨è¿™äº›æ–°å¢žçš„“å°å·¥å…·â€å°±è¡Œäº†ã€‚ +> +> “低秩â€çš„æ„æ€æ˜¯ï¼Œè¿™äº›æ–°å¢žçš„“å°å·¥å…·â€å¹¶ä¸æ˜¯å…¨æ–°çš„ã€éžå¸¸å¤æ‚的工具。它们是在已有的工具基础上进行了一些简å•的调整或者组åˆï¼Œå°±èƒ½å¾ˆå¥½åœ°å®Œæˆä¿®è‡ªè¡Œè½¦çš„任务。这就好比你ä¸éœ€è¦é‡æ–°å‘明轮å­ï¼Œåªéœ€è¦ç»™çŽ°æœ‰çš„æ‰³æ‰‹åŠ ä¸ªç‰¹æ®Šçš„å¥—ç­’å°±èƒ½æ‹§ç´§è‡ªè¡Œè½¦ä¸Šçš„èžºä¸ã€‚ +> +> 所以,LoRA 的好处就是,它能让预训练模型快速适应新的任务,而且åªéœ€è¦å­¦ä¹ å’Œè°ƒæ•´å¾ˆå°‘的“å°å·¥å…·â€ï¼Œè¿™æ ·å°±æ›´é«˜æ•ˆã€æ›´çœèµ„æºã€‚ + +LoRA æ–¹æ³•ä¹‹æ‰€ä»¥æœ‰ç”¨ä¸”å—æ¬¢è¿Žï¼Œæ˜¯å› ä¸ºå®ƒèƒ½å¤Ÿé«˜æ•ˆåœ°åœ¨ç‰¹å®šä»»åŠ¡çš„æ•°æ®ä¸Šå¯¹å¤§åž‹æ¨¡åž‹è¿›è¡Œå¾®è°ƒï¼Œä»Žè€Œæ˜¾è‘—é™ä½Žäº†ä¼ ç»Ÿå¾®è°ƒæ–¹æ³•æ‰€éœ€çš„è®¡ç®—æˆæœ¬å’Œèµ„æºã€‚ + +为了解释 LoRA 的工作原ç†ï¼Œå‡è®¾å­˜åœ¨ä¸€ä¸ªä¸Žç‰¹å®šå±‚相关è”的大型æƒé‡çŸ©é˜µ W。LoRA å¯ä»¥åº”用于 LLM 中的所有线性层(ç¨åŽå°†ä¼šçœ‹åˆ°ï¼‰ï¼Œä¸ºäº†è¯´æ˜Žï¼Œæˆ‘们先关注å•个层。 + +在训练深度神ç»ç½‘络时,在åå‘传播过程中,我们会学习到一个 ΔW 矩阵,它包å«äº†å…³äºŽæˆ‘们如何更新原始æƒé‡å‚数的信æ¯ï¼Œä»¥ä¾¿åœ¨è®­ç»ƒè¿‡ç¨‹ä¸­æœ€å°åŒ–æŸå¤±å‡½æ•°ã€‚在本附录的其余部分,我们将使用术语“æƒé‡â€ä½œä¸ºæ¨¡åž‹æƒé‡å‚数的简称。 + +在传统训练和微调中,æƒé‡æ›´æ–°å®šä¹‰å¦‚下: + +Wupdated = W + ΔW + +ç”± Hu 等人 (https://arxiv.org/abs/2106.09685) æå‡ºçš„ LoRA 方法æä¾›äº†ä¸€ç§æ›´æœ‰æ•ˆçš„æ–¹æ³•æ¥è®¡ç®—æƒé‡æ›´æ–°çŸ©é˜µ ΔW,通过学习它的近似值: \ No newline at end of file