模型微調/量化技術整理

一、模型微調技術

1.模型微調簡介

大模型微調(Fine-tuning),是指在已經預訓練好的大語言模型基礎上(基座模型),使用特定的數據集進行進一步訓練,讓模型適應特定任務或領域。通常LLM的預訓練是無監督的,但微調過程往往是有監督的。當進行有監督微調時,模型權重會根據真實標記的差異進行調整。通過這個微調過程,模型能捕捉到標簽數據中特定于某一項任務的模式和特點。

1)指令微調(Instruction Tuning/SFT)

通過使用任務輸入與輸出的配對數據進行訓練,使得語言模型掌握通過問答形式進行任務求解的能力。一般來說,指令微調很難教會大模型預訓練階段沒有學習到的知識與能力,它主要起到了對于模型能力的激發作用。

2)人類對齊

由于大語言模型可能會生成具有偏見、泄露隱私甚至對社會有害的內容,在實踐應用中需要保證大模型能夠較好的符合人類的價值觀,對齊目標一般聚焦于有用性、誠實性和無害性三個方面。代表性的做法是OpenAI公司提出的基于人類反饋的強化學習算法RLHF,將人類偏好引入到大模型的對齊過程中。

2.微調手段

Adapter Tuning,PET,Prefix Tuning,P-Tuning,LoRA,QLoRA等。

二、PEFT參數高效微調

在不調整預訓練模型的所有參數的情況下,通過僅微調一小部分參數來適應特定的下游任務,顯著降低計算和存儲成本。加快模型適應速度,避免了災難性遺忘。

1)PEFT目標是在保留預訓練模型大部分參數不變的情況下,只對模型的一小部分參數進行微調。

2)適用于數據量小的任務

PEFT的分類:

a.additive-增量模型

通過在預訓練模型的特定位置添加可學習的模塊或者參數,以最小化適配下游任務時模型的可訓練的參數。

方法:Adapter:通過在Transformer塊內添加小型Adapter層來實現參數高效微調。Soft Prompt:通過在輸入序列的頭部添加可學習的向量來實現參數高效微調。

b.soft prompt-軟提示

軟提示是可學習的連續向量,通過梯度優化方法針對特定數據集進行優化。

?方法:Prefix-tuning:通過在每個Transformer層的鍵、值和查詢矩陣前面添加可學習的向量,實現對模型表示的微調。Prompt Tuning:僅僅在首個詞向量層插入可學習向量,以進一步減少訓練參數。

c.adapters-適配器

適配器技術通過在模型的層之間插入小型神經網絡模塊(adapters),只訓練這些模塊的參數,而保持預訓練模型的其他部分不變。

d.selective-選擇性方法

選擇性方法在微調過程中只更新模型中的一部分參數,而保持其余參數固定。

方法:包括非結構化掩碼和結構化掩碼技術。非結構化掩碼通過在模型參數上添加可學習的二值掩碼來確定可以微調的參數。結構化掩碼對掩碼的形狀進行了結構化的限制,以提高效率。

e.reparameterizeation based-重參數化方法

通過構建預訓練模型參數的(低秩的)表示形式用于訓練,在推理時,參數將被等價的轉化為預訓練模型參數結構。

方法:LoRA通過將權重矩陣分解為倆個較低秩的矩陣來減少參數量,從而有效的減少需要更新的參數數量。

三、LoRA與QLoRA

1.LoRA

通過低秩分解來模擬參數的改變量,以極小的參數來實現大模型的間接訓練。

簡單理解:外掛模型,訓練時凍結預訓練模型的權重,僅改變外掛模型的權重,r為秩,簡答理解為做一次維度變換,提取不同維度的特征。

2.QLoRA

量化版LoRA,顯著降低訓練時所需顯存資源。

特點:

1)定義了4位標準浮點數(NF4)量化,基于分塊的分位數量化的量化策略。

2)雙重量化,包含對普通參數的一次量化和對量化常數的再一次量化,可以進一步減小緩存占用。

3)分頁優化器,用來在顯存過高時用一部分內存代替。

四、模型量化技術

1.量化原理

默認情況下模型的權重參數以及偏置均使用float32位全精度浮點數進行存儲,目的為了保證精度。但是精度增加的同時也帶了模型體積增大,訓練速度降低,預測速度慢等問題。由此誕生了量化技術。

2.量化目的

將原本使用浮點數表示的模型參數轉換為整數表示,以此來減少模型的存儲空間需求并加速計算和推理的過程,將原本使用float32類型的數據轉換為int8類型的數據。

3.對稱量化與非對稱量化

對稱量化:使用一個映射公式將輸入數據映射到[-128,127]的范圍內。

非對稱量化:使用一個映射公式將輸入數據映射到[0,255]的范圍內。

4.NF4量化

基于分位數量化的基礎上,理論上最優的數據類型,可以確保每個量化區間從輸入張量中分配相同數量的值,實際計算過程中,需要先將數據歸一化到合適的范圍,并且對于確定的分布來說,分位點也是確定的,因此只需存儲分位點的索引即可。

簡單理解:NF4總共4bits,正態分布分為16塊,將數據映射到這16塊中,記錄數據索引即為量化后的值。

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

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

相關文章

實踐筆記-VSCode與IDE同步問題解決指南;程序總是進入中斷服務程序。

一、VSCode 修改文件后,IDE 未同步如果你在 VSCode 中異步修改了項目文件內容,但 S32DS 或 Keil(等集成開發環境)中的項目沒有同步更新,有兩個解決方法:檢查文件是否已保存:確保 VSCode 中修改的…

C#WPF實戰出真汁04--登錄功能實現

1、登錄功能實現要點對于登錄系統,應該注意幾個要點:用戶認證流程設計,密碼存儲與驗證,會話管理,防暴力破解措施,錯誤處理與提示2、登錄功能的視圖模型首先在xaml文件中必須指定該頁面使用的視圖模型&#…

鴻蒙入門簡化版

第一步: 首先下載DEVStudio https://developer.huawei.com/consumer/cn/deveco-studio/ 第二步: 了解基本的ArkTs語言 https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/introduction-to-arkts 第三步 : 教學視頻有兩個途徑&a…

day25|學習前端js

函數聲明,被提升(hoisting)。函數表達式必須先定義才能用。對象解構,按屬性名數組解構按順序點運算符. 對象.屬性名哪些可迭代(可以被for..of循環的東西):array,string,m…

quic協議與應用開發

quic為什么出現?quic主要是為了解決TCP協議的局限性而提出的,具體來說是要解決如下問題:1. 加密連接建立時間長TCP協議是傳輸層協議,而TLS是會話層協議,在Linux等主流操作系統中TCP在內核實現而TLS一般在用戶態實現&am…

【淺學】tflite-micro + ESP32S3 + VScode + ESP-IDF 基于例程快速實現自己的圖像分類模型訓練部署全流程

如果你用Pytorch訓練的模型那么可以參考我的步驟,使用的是Tensorflow的話參考官方文檔即可,但流程都是一樣的,每一步我都會提到部分操作細節及注意事項 官方教程 要詳細學習的話tflite-micro里的微控制器章節下都詳細看(頁面左側…

【HarmonyOS】應用設置全屏和安全區域詳解

【HarmonyOS】應用設置全屏和安全區域詳解 一、前言 IDE創建的鴻蒙應用,默認采取組件安全區布局方案。頂部會預留狀態欄區域,底部會預留導航條區域。這就是所謂的安全區域。 如果不處理,界面效果很割裂。所以業內UI交互設計,都會設…

openfeign 只有接口如何創建bean的

OpenFeign 能夠為純接口創建 Spring Bean,其核心機制是通過動態代理和 Spring 的 FactoryBean 機制實現的。以下是詳細的工作原理:1. EnableFeignClients 注解的啟動在 Spring Boot 主類上添加 EnableFeignClients 注解:SpringBootApplicatio…

【展廳多媒體】互動地磚屏怎么提升展廳互動感的?

在數字化展廳設計中,互動地磚屏 正成為提升觀眾參與度的重要工具。這種融合視覺科技與交互體驗的裝置,通過動態影像與即時反饋,讓參觀者從被動觀看轉變為主動探索,從而大幅增強展廳的互動感。 Led地面互動屏的優勢在于其強大的視…

AI賦能電力巡檢:變壓器漏油智能檢測系統全解析

🔥 AI賦能電力巡檢:變壓器漏油智能檢測系統全解析 📖 前言 在電力系統的日常運維中,變壓器作為核心設備,其安全運行直接關系到整個電網的穩定性。傳統的人工巡檢方式不僅效率低下,還存在安全隱患和漏檢風險…

GitHub上值得Star的計算機視覺項目

GitHub上值得Star的計算機視覺項目 前言 一、OpenCV:計算機視覺領域的瑞士軍刀 1.1 項目簡介 1.2 核心功能與技術特點 1.3 代碼示例 二、YOLO 系列:實時目標檢測的領導者 2.1 項目簡介 2.2 核心功能與技術特點 2.3 代碼示例 三、Detectron2:Facebook AI Research 的目標檢測…

【深度學習】pytorch深度學習框架的環境配置

文章目錄1. 配置cuda環境2. 配置conda環境3. 配置pytorch gpu環境1. 配置cuda環境 在命令行輸入以下命令可以查看當前顯卡驅動版本和最高支持的cuda版本 nvidia-smi根據cuda版本去官網下載并安裝cuda 下載鏈接:https://developer.nvidia.com/cuda-toolkit-archive…

數據處理與統計分析 —— 房源數據集分析案例

數據集網盤下載: 鏈接:https://pan.quark.cn/s/0e577858dba3?pwdFJnb 提取碼:FJnb代碼僅供參考具體可打開ipynb文件進行學習和練習:鏈接:https://pan.quark.cn/s/8efbe3061fad?pwdT47B 提取碼:T47Bimport…

藍牙如何測試?

車載藍牙測試需覆蓋 連接穩定性、功能完整性、兼容性、交互體驗等核心維度,結合車載場景的特殊性(如行駛中信號干擾、多設備交互、安全需求),具體測試點如下: 一、基礎配對與連接測試 1. 首次配對 觸發配對:車機端 “藍牙設置” 中搜索設備、手機端搜索車機(車機名稱是…

算法02 二進制與位運算

二進制作為計算機底層數據的核心表示方式,其獨特的位結構和運算規則在算法設計中有著廣泛且關鍵的應用。以下從基礎操作、算法技巧、數據結構、經典問題等多個維度,全面梳理二進制在算法中的應用: 一、基礎位運算:算法的“原子操作…

PAT 1071 Speech Patterns

題目大意是說給出一個文本,找出里面出現最多的單詞,如果有多個單詞出現次數一樣多,則輸出字典序最小的。 需要注意的是: 給出的文本字符串不僅有數字還有字母,還有一些特殊的字符,還有空格。 而單詞是只包含…

CSS中的 :root 偽類

在CSS中&#xff0c;偽類是一種用于選擇元素特定狀態的選擇器。:root 偽類專門用于選擇文檔的根元素&#xff08;在HTML中通常是<html>元素&#xff09;&#xff0c;它是CSS變量&#xff08;Custom Properties&#xff09;的理想載體&#xff0c;常用于定義全局樣式變量&…

能源行業數字化轉型:邊緣計算網關在油田場景的深度應用

能源行業數字化轉型&#xff1a;邊緣計算網關在油田場景的深度應用能源行業是國民經濟的支柱產業&#xff0c;而油田作為能源生產的重要基地&#xff0c;其數字化轉型對于提高生產效率、降低能耗、減少碳排放具有重要意義。然而&#xff0c;油田往往地處偏遠&#xff0c;油井分…

CAG緩存增強生成與RAG檢索增強生成對比

深度定制 LLM 知識,除了 RAC &#xff0c;現在又有新技術假設有一份200頁的產品手冊,你想讓 LLM 準確回答里面的相關問題,要實現這個目標,除了常用的檢索增強生成技術 rep ,現在有了新思路,緩存增強生成 CAG &#xff0c;它是什么,何時使用.RAG檢索增強是常規套路,CAG緩存增強是…

基于vue、node.js、express的網絡教學系統設計與實現/基于vue、node.js、express的在線學習系統設計與實現

基于vue、node.js、express的網絡教學系統設計與實現/基于vue、node.js、express的在線學習系統設計與實現