國防科大:雙目標優化防止LLM災難性遺忘

在這里插入圖片描述

📖標題:How to Complete Domain Tuning while Keeping General Ability in LLM: Adaptive Layer-wise and Element-wise Regularization
🌐來源:arXiv, 2501.13669

🌟摘要

🔸大型語言模型(LLM)展現出強大的通用語言能力。然而,在特定領域的任務上對這些模型進行微調通常會導致災難性的遺忘,即模型覆蓋或丟失在預訓練期間獲得的基本知識。這種現象極大地限制了LLM的廣泛適用性。
🔸為了應對這一挑戰,我們提出了一種新的方法來計算模型參數的元素重要性,這些參數對于在微調過程中保留一般知識至關重要。我們的方法采用了一種雙目標優化策略:(1)正則化損失,以保留對一般知識至關重要的參數;(2) 交叉熵損失,以適應特定領域的任務。此外,我們引入逐層系數來解釋不同層的不同貢獻,動態平衡雙射優化。
🔸使用GPTJ和LLaMA-3對科學、醫學和物理任務進行的廣泛實驗表明,我們的方法在增強模型適應性的同時減輕了災難性遺忘。與以前的方法相比,我們的解決方案大約快20倍,只需要10%-15%的存儲空間,突出了實際效率。代碼將被發布。

🛎?文章簡介

🔸研究問題:大語言模型(LLM)進行領域特定微調時出現災難性遺忘,即在適應新領域的同時難以保持模型的通用能力。
🔸主要貢獻:論文提出了一種新的微調框架,通過自適應層和元素正則化,有效減少了災難性遺忘,同時顯著降低了計算時間和存儲需求,提升了模型的效率和可擴展性。

📝重點思路

🔸雙目標優化策略:結合正則化損失和交叉熵損失,前者減少對通用知識關鍵參數的更新,后者增強領域特定學習。
🔸元素級重要性記錄:通過計算每個參數對損失函數減少的貢獻,記錄其在通用任務中的重要性,指導新任務的微調過程。
🔸層間加權正則化:根據不同層對通用能力和領域特定能力的貢獻,動態調整正則化權重,確保某些層優先學習任務,而其他層保留通用知識。
🔸低秩矩陣更新:使用LoRA(低秩適應)方法,僅更新低秩矩陣,減少計算成本和存儲需求。

🔎分析總結

🔸性能提升:在多個數據集上,使用主流LLMs(如GPT-J和LLaMA-3)進行實驗,證明了該方法在保持通用能力的同時,顯著提升了領域特定任務的性能。
🔸計算效率:與之前的方法相比,計算時間減少了近20倍,存儲需求僅為10%~15%,顯著提高了方法的實用性和可擴展性。
🔸正則化系數分析:通過調整正則化系數,找到了在任務性能和通用能力之間取得平衡的最優值。
🔸層間重要性分析:發現不同層對通用知識的保留和領域特定學習的影響不同,驗證了層間加權正則化的有效性。

💡個人觀點

論文的核心在于識別不同參數和層對新任務的貢獻,針對性優化貢獻多的部分,而貢獻少的則減少訓練以維持通用能力。

🧩附錄

在這里插入圖片描述
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/894752.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/894752.shtml
英文地址,請注明出處:http://en.pswp.cn/news/894752.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Verilog基礎(一):基礎元素

verilog基礎 我先說,看了肯定會忘,但是重要的是這個過程,我們知道了概念,知道了以后在哪里查詢。語法都是術,通用的概念是術。所以如果你有相關的軟件編程經驗,那么其實開啟這個學習之旅,你會感受到熟悉,也會感受到別致。 入門 - 如何開始 歡迎來到二進制的世界,數字…

一次線程數超限導致的hive寫入hbase作業失敗分析

1.集群配置 操作系統:SuSe操作系統 集群節點:100臺相同配置的服務器 單臺:核心112Core,內存396G 2.問題現象 現象1:跑單個入庫任務報錯,批量提交任務后出現OOM異常 執行12個hivesql,將數據寫入hbase.hbase入庫有近一半的任務報錯。 每次報錯的任務不是同一個,hivesql…

優化fm.jiecao.jcvideoplayer_lib中視頻橫豎屏自動適配原視頻方案

fm.jiecao:jiecaovideoplayer:x.x.x 優化fm.jiecao.jcvideoplayer_lib中視頻橫豎屏自動適配原視頻方案: 僅優化關鍵代碼部分,源碼: public void startWindowFullscreen() {Log.i(TAG, "startWindowFullscreen " " [" …

多無人機--強化學習

這個是我對于我的大創項目的構思,隨著時間逐漸更新 項目概要 我們的項目平臺來自挑戰杯揭綁掛帥的無人機對抗項目,但是在由于時間原因,并未考慮強化學習,所以現在通過大創項目來彌補遺憾 我們項目分為三部分,分為虛…

工業相機常用詞語解釋

線陣相機和面陣相機: 線陣相機,是采用線陣圖像傳感器的相機。線陣圖像傳感器以CCD為主, 一行的數據可以到幾K甚至幾十K,但是高度只有幾個像素,行頻很高,可以到每秒幾萬行,適合做非常高精度、寬…

2501,編寫dll

DLL的優點 簡單的說,dll有以下幾個優點: 1)節省內存.同一個軟件模塊,若是源碼重用,則會在不同可執行程序中編譯,同時運行這些exe時,會在內存中重復加載這些模塊的二進制碼. 如果使用dll,則只在內存中加載一次,所有使用該dll的進程會共享此塊內存(當然,每個進程會復制一份的d…

Python----Python高級(并發編程:進程Process,多進程,進程間通信,進程同步,進程池)

一、進程Process 擁有自己獨立的堆和棧,既不共享堆,也不共享棧,進程由操作系統調度;進程切換需要的資源很最大,效率低。 對于操作系統來說,一個任務就是一個進程(Process)&#xff…

在Mapbox GL JS中“line-pattern”的使用詳解

在Mapbox GL JS中,line-pattern 是一種用于在地圖上繪制帶有圖案的線條的樣式屬性。通過 line-pattern,你可以使用自定義的圖像作為線條的圖案,而不是使用純色或漸變。 1. 基本概念 line-pattern: 該屬性允許你指定一個圖像作為線條的圖案。…

C++ Primer 算術運算符

歡迎閱讀我的 【CPrimer】專欄 專欄簡介:本專欄主要面向C初學者,解釋C的一些基本概念和基礎語言特性,涉及C標準庫的用法,面向對象特性,泛型特性高級用法。通過使用標準庫中定義的抽象設施,使你更加適應高級…

【大數據技術】本機PyCharm遠程連接虛擬機Python

本機PyCharm遠程連接虛擬機Python 注意:本文需要使用PyCharm專業版。 pycharm-professional-2024.1.4VMware Workstation Pro 16CentOS-Stream-10-latest-x86_64-dvd1.iso寫在前面 本文主要介紹如何使用本地PyCharm遠程連接虛擬機,運行Python腳本,提高編程效率。 注意: …

堆(Heap)的原理與C++實現

1. 什么是堆? 堆(Heap)是一種特殊的樹形數據結構,通常用于實現優先隊列。堆可以分為兩種類型: 最大堆(Max Heap):每個節點的值都大于或等于其子節點的值。最小堆(Min H…

移除元素-雙指針(下標)

題目 給你一個數組 nums 和一個值 val,你需要 原地 移除所有數值等于 val 的元素。元素的順序可能發生改變。然后返回 nums 中與 val 不同的元素的數量。 假設 nums 中不等于 val 的元素數量為 k,要通過此題,您需要執行以下操作&#xff1a…

log4j2日志配置文件

log4j2配置文件每個項目都會用到,記錄一個比較好用的配置文件,方便以后使用時調取,日志輸出級別為debug,也可以修改 <?xml version"1.0" encoding"UTF-8"?> <Configuration monitorInterval"180" packages""><prope…

高等代數筆記—映射與線性空間

映射 映射&#xff1a; σ : M → M ′ \sigma: M \to M σ:M→M′ σ ( a ) a ′ , a ∈ M , a ′ ∈ M ′ \sigma(a)a, a\in M, a \in M σ(a)a′,a∈M,a′∈M′ a ′ a a′是 a a a在 σ \sigma σ下的像&#xff0c; a a a是 a ′ a a′在 σ \sigma σ下的原像 σ : …

提示詞實踐總結

目錄 一、要求創建SqlServer表&#xff08;ChatGpt&#xff09; 二、要求生成多層架構代碼&#xff08;Cursor&#xff09; 三、要求修改方法返回值類型&#xff08;Cursor&#xff09; 四、要求修改方法入參&#xff08;Cursor&#xff09; 五、復雜的多表關聯生成&#…

java進階文章鏈接

java 泛型&#xff1a;java 泛型詳解-絕對是對泛型方法講解最詳細的&#xff0c;沒有之一 Java 泛型&#xff0c;你了解類型擦除嗎&#xff1f; java 注解&#xff1a;深入理解Java注解類型 秒懂&#xff0c;Java 注解 &#xff08;Annotation&#xff09;你可以這樣學 jav…

MyBatis-Plus筆記-快速入門

大家在日常開發中應該能發現&#xff0c;單表的CRUD功能代碼重復度很高&#xff0c;也沒有什么難度。而這部分代碼量往往比較大&#xff0c;開發起來比較費時。 因此&#xff0c;目前企業中都會使用一些組件來簡化或省略單表的CRUD開發工作。目前在國內使用較多的一個組件就是…

Maven jar 包下載失敗問題處理

Maven jar 包下載失敗問題處理 1.配置好國內的Maven源2.重新下載3. 其他問題 1.配置好國內的Maven源 打開??的 Idea 檢測 Maven 的配置是否正確&#xff0c;正確的配置如下圖所示&#xff1a; 檢查項?共有兩個&#xff1a; 確認右邊的兩個勾已經選中&#xff0c;如果沒有請…

Spring 核心技術解析【純干貨版】- IX:Spring 數據訪問模塊 Spring-Jdbc 模塊精講

在現代企業級應用中&#xff0c;數據訪問層的穩定性和高效性至關重要。為了簡化和優化數據庫操作&#xff0c;Spring Framework 提供了 Spring-JDBC 模塊&#xff0c;旨在通過高度封裝的 JDBC 操作&#xff0c;簡化開發者的編碼負擔&#xff0c;減少冗余代碼&#xff0c;同時提…

探秘AI的兩大核心:決策式AI與生成式AI?

目錄 一、引言 二、從定義上來看 1. 決策式AI&#xff08;Discriminative AI&#xff09; 2. 生成式AI&#xff08;Generative AI&#xff09; 三、從技術原理上來看 1. 決策式AI&#xff08;Discriminative AI&#xff09; 2. 生成式AI&#xff08;Generative AI&#…