模型微調-基于LLaMA-Factory進行微調的一個簡單案例

模型微調-基于LLaMA-Factory進行微調的一個簡單案例

  • 1. 租用云計算資源
  • 2. 拉取 LLaMa-Factory
  • 3. 安裝依賴環境
  • 4. 啟動 LLaMa-Factory 界面
  • 5. 從 Huggingface 下載模型
  • 6. 模型驗證
  • 7. 模型微調

1. 租用云計算資源

以下示例基于 AutoDL 云計算資源。

在云計算平臺選擇可用的云計算資源實例,如果有4090實例可用,推薦選擇4090實例。同時注意鏡像的選擇,所以鏡像會包含特定的環境,省去一些基礎環境的安裝步驟,不過這里鏡像在實例啟動之后也可以進行切換。

在這里插入圖片描述
創建實例之后,通過SSH連接遠程服務器
在這里插入圖片描述
這里我使用 VS Code的 Remote-SSH 插件進行連接,連接進去之后可以看到實例中有兩個盤,其中/root/autodl-tmp是數據盤,推薦運行環境、模型文件都放在數據盤,避免后續因為實例關機回收導致數據文件丟失。
在這里插入圖片描述

2. 拉取 LLaMa-Factory

LLaMa-Factory 的 git 地址如下,通過 git 命令拉取

git clone https://github.com/hiyouga/LLaMA-Factory.git

在這里插入圖片描述

3. 安裝依賴環境

LLaMa-Factory 依賴 Python 特定版本,這里使用 Conda 來進行 Python 虛擬環境管理,大語言模型相關的框架對運行環境的依賴比較嚴重,推薦通過虛擬環境進行隔離。
在這里插入圖片描述
而在創建虛擬環境之前,推薦設置一下 Conda 虛擬環境和 Python 包的保存路徑,還是那個原因,避免因為云計算資源回收導致數據丟失。

mkdir -p /root/autodl-tmp/conda/pkgs
conda config --add pkgs_dirs /root/autodl-tmp/conda/pkgs
mkdir -p /root/autodl-tmp/conda/envs
conda config --add envs_dirs /root/autodl-tmp/conda/envs/

之后創建虛擬環境:

conda create -n llama-factory python=3.10

虛擬環境創建完成之后,通過以下命令初始化以下Conda,并刷新一下命令行環境變量,再激活環境:

conda init
source ~/.bashrc
conda activate llama-factory

在這里插入圖片描述
之后進入 LLaMa-Factory 文件夾,通過以下命令進行 LLaMa-Factory 相關依賴包的安裝

pip install -e ".[torch,metrics]"

在這里插入圖片描述
安裝完成之后,通過以下命令測試一下 LLaMa-Factory 是否正常安裝:

llamafactory-cli version

在這里插入圖片描述

4. 啟動 LLaMa-Factory 界面

通過以下命令啟動 LLaMa-Factory 可視化微調界面:

llamafactory-cli webui

在這里插入圖片描述
通過 VS Code 中的 Remote-SSH 插件連接云服務器的情況,啟動可視化界面之后,Remote-SSH 會自動進行端口轉發,從而自動在本地瀏覽器打開相應的頁面。如果是其他工具的話,可能需要在云平臺配置一下相應的端口,之后通過云平臺暴漏出來的域名打開。

在這里插入圖片描述

5. 從 Huggingface 下載模型

首先創建一個文件夾用于存放模型文件:

mkdir hugging-face

增加環境變量,修改 HuggingFace 鏡像源為國內鏡像網站:

export HF_ENDPOINT=https://hf-mirror.com

修改模型默認存儲路徑:

export HF_HOME=/root/autodl-tmp/hugging-face

在這里插入圖片描述
之后還是切換到 llama-factory 虛擬環境,安裝 HuggingFace官方下載工具:

pip install -U huggingface_hub

在這里插入圖片描述
安裝完成之后,通過以下命令下載模型:

huggingface-cli download --resume-download Qwen/Qwen2.5-0.5B-Instruct

在這里插入圖片描述
這里為了下載和后面的微調演示快點就下載0.5B的模型了,具體的模型大家可以根據實際情況去選擇自己需要的模型,在huggingface上搜索模型名稱,之后進入模型主頁,復制名稱即可:

在這里插入圖片描述
模型文件都比較大,在線下載的話需要等待一段時間,下載完成之后,可以看到模型文件就在 hugging-face 文件夾下了。

在這里插入圖片描述
在線下載比較占用時間,而云服務器開機每一分鐘都需要花錢,你可以在本地下載模型文件之后傳到云服務器上。這時候可以通過 AutoDL 提供的 Jupyter 工具進行文件上傳,或者通過其他帶有SFTP功能的工具連接云服務器上傳。

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

6. 模型驗證

下載完成模型之后,我們需要驗證模型文件是否可以正常加載、運行,可以通過 LLaMa-Factory 的可視乎界面加載運行模型:

在這里插入圖片描述
需要注意的是,加載本地模型的時候,需要修改填寫模型本地路徑,這里的路徑是模型快照的唯一哈希值,而不是模型文件夾的路徑。

在這里插入圖片描述
之后就可通過和模型進行對話,測試下載下來的模型是否正常了,也可以看下對話中模型輸出的風格,和我們微調之后的做下對比。

在這里插入圖片描述

7. 模型微調

接下來就可以通過 LLaMa-Factory 進行微調了,這里先做一個簡單的演示,為了不讓這篇文章篇幅過長,先不具體講解各種微調參數的含義和作用,數據集也只使用 LLaMa-Factory 自帶的示例數據集,演示一下對模型認知設定的微調。

修改一下默認的 identity.json 數據集,將其中的{{name}}、{{author}}替換為我們自己的設定,并保存文件。

在這里插入圖片描述
之后在 LLaMa-Factory Web界面中加載預覽數據集,并且稍微調整一下超參,主要是學習率先保存不變,主要是訓練輪次,以及驗證集比例。

在這里插入圖片描述
在這里插入圖片描述
后續如果需要使用我們自定義的數據集的話,也只要將數據集文件放到 LLaMa-Factory 的 data 文件夾,再在 dataset_info.json 中進行配置,就可以在 Web 界面進行加載使用。這里就先不細說了。

在這里插入圖片描述
之后點擊開始,可以看到微調任務的執行進度,以及損失函數的變化情況。
在這里插入圖片描述
0.5B 的模型,再加上數據集數據量不多,只有不到100條,所以微調過程還是很快的,可以看到最終的損失函數降到了 0.5 左右。不過這是因為訓練數據太少,而且一些超參設置比較不合理,才有這樣的較低損失函數,實際微調用于生產環境的模型時,要注意防止過擬合的情況。

在這里插入圖片描述
之后,還是用 LLaMa-Factory 加載微調之后的模型文件進行測試,這里通過檢查點路徑添加剛剛訓練完成的模型文件:

在這里插入圖片描述
之后就可以和我們微調之后的模型進行對話了

在這里插入圖片描述
可以看到,微調之后的模型已經學習了數據集中的信息,可以按照我們預設的人設回答問題。

參考文檔:
LLama-Factory 官方文檔

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

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

相關文章

【單片機】ARM 處理器簡介

ARM 公司簡介 ARM(Advanced RISC Machine) 是英國 ARM 公司(原 Acorn RISC Machine) 開發的一種精簡指令集(RISC) 處理器架構。ARM 處理器因其低功耗、高性能、廣泛適用性,成為嵌入式系統、移動…

springboot的實體類字段校驗的分組校驗

分組校驗(Group Validation)允許在不同的場景下對同一個實體類應用不同的校驗規則。例如,在新增數據和更新數據時,可能需要對某些字段的校驗規則進行調整。以下是分組校驗的具體實現步驟: 一、定義分組接口 創建空的標…

vue3,Element Plus中隱藏樹el-tree滾動條

el-tree&#xff0c;節點過多&#xff0c;默認會出現垂直滾動條&#xff0c;顯得不美觀 可以使用隱藏組件 el-scrollbar 將 el-tree 包裹&#xff0c;就可以隱藏垂直滾動條 <el-scrollbar> <el-tree> ... </el-tree> </el-scrollbar> /* 滾動條禁用鼠…

mysql練習

創建數據庫db_ck&#xff0c;再創建表t_hero&#xff0c;將四大名著中的主要人物都插入這個表中&#xff0c;將實現過程中sql提交上上來 1、創建數據庫db_ck mysql> create database db_ck; 2、創建表t_hero mysql> use db_ck Database changed mysql> create table …

svn刪除所有隱藏.svn文件,文件夾脫離svn控制

新建一個文件&#xff0c;取名remove-svn-folders.reg&#xff0c;輸入如下內容&#xff1a; Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN] "Delete SVN Folders" [HKEY_LOCAL_MACHINE\SOFTWARE\Class…

文心一言:中國大模型時代的破局者與探路者

2023年&#xff0c;生成式人工智能&#xff08;AIGC&#xff09;的浪潮席卷全球&#xff0c;而百度推出的“文心一言”&#xff08;ERNIE Bot&#xff09;作為中國AI領域的代表性產品&#xff0c;迅速成為行業焦點。這款基于百度自主研發的“文心大模型”打造的對話式AI工具&am…

Ubuntu 安裝docker docker-compose

Docker 通過提供輕量級、可移植且高效的解決方案&#xff0c;簡化了軟件開發和部署。“docker build”命令是 Docker 鏡像創建過程的核心。本文將探討 Docker 構建命令、用法以及 Docker 構建的優化。 Docker 構建有什么作用&#xff1f; Docker build 是一個命令行界面 CLI命…

Unity開發——CanvasGroup組件介紹和應用

CanvasGroup是Unity中用于控制UI的透明度、交互性和渲染順序的組件。 一、常用屬性的解釋 1、alpha&#xff1a;控制UI的透明度 類型&#xff1a;float&#xff0c;0.0 ~1.0&#xff0c; 其中 0.0 完全透明&#xff0c;1.0 完全不透明。 通過調整alpha值可以實現UI的淡入淡…

每天五分鐘深度學習PyTorch:向更深的卷積神經網絡挑戰的ResNet

本文重點 ResNet大名鼎鼎,它是由何愷明團隊設計的,它獲取了2015年ImageNet冠軍,它很好的解決了當神經網絡層數過多出現的難以訓練的問題,它創造性的設計了跳躍連接的方式,使得卷積神經網絡的層數出現了大幅度提升,設置可以達到上千層,可以說resnet對于網絡模型的設計具…

大模型巔峰對決:DeepSeek vs GPT-4/Claude/PaLM-2 全面對比與核心差異揭秘

文章目錄 一、架構設計深度解剖1.1 核心架構對比圖譜1.2 動態MoE架構實現架構差異分析表 二、訓練策略全面對比2.1 訓練數據工程對比2.2 分布式訓練代碼對比DeepSeek混合并行實現GPT-4 Megatron實現對比 2.3 關鍵訓練參數對比 三、性能表現多維評測3.1 基準測試全景對比3.2 推理…

基于hive的電信離線用戶的行為分析系統

標題:基于hive的電信離線用戶的行為分析系統 內容:1.摘要 隨著電信行業的快速發展&#xff0c;用戶行為數據呈現出海量、復雜的特點。為了深入了解用戶行為模式&#xff0c;提升電信服務質量和精準營銷能力&#xff0c;本研究旨在構建基于 Hive 的電信離線用戶行為分析系統。通…

Python使用alembic實現數據庫管理

python使用alembic實現數據庫管理 環境準備 安裝依賴&#xff1a; pip install sqlalchemy alembic項目結構 my_project/ ├── models.py # 定義數據模型 └── alembic/ # 遷移腳本目錄&#xff08;自動生成&#xff09; 使用步驟&#xff1a; 1. 初始化Alembic環境 …

對WebSocket做一點簡單的理解

1.概念 WebSocket 是基于 TCP 的一種新的網絡協議。它實現了瀏覽器與服務器全雙工通信——瀏覽器和服務器只需要完成一次握手&#xff0c;兩者之間就可以創建持久性的連接&#xff0c; 并進行雙向數據傳輸。 HTTP協議和WebSocket協議對比&#xff1a; HTTP是短連接 WebSocke…

kali虛擬機登錄頁面發癲 大寫鎖定輸入不了密碼

不知道怎么了 總是發癲 重啟切換太麻煩了 還有時候不成功 kali其實可以開啟虛擬鍵盤 如下 就解決的 發癲kali 發癲 發癲

基于Python的商品銷量的數據分析及推薦系統

一、研究背景及意義 1.1 研究背景 隨著電子商務的快速發展&#xff0c;商品銷售數據呈現爆炸式增長。這些數據中蘊含著消費者行為、市場趨勢、商品關聯等有價值的信息。然而&#xff0c;傳統的數據分析方法難以處理海量、多源的銷售數據&#xff0c;無法滿足現代電商的需求。…

內存泄漏出現的時機和原因,如何避免?

由于時間比較緊張我就不排版了&#xff0c;但是對于每一種可能的情況都會出對應的代碼示例以及解決方案代碼示例。 內存泄漏可能的原因之一在于用戶在動態分配一個內存空間之中&#xff0c;忘記將這部分內容手動釋放。例如&#xff1a;&#xff08;c之中使用new分配內存沒有使…

PDF處理控件Aspose.PDF,如何實現企業級PDF處理

PDF處理為何成為開發者的“隱形雷區”&#xff1f; “手動調整200頁PDF目錄耗時3天&#xff0c;掃描件文字識別錯誤導致數據混亂&#xff0c;跨平臺渲染格式崩壞引發客戶投訴……” 作為開發者&#xff0c;你是否也在為PDF處理的復雜細節消耗大量精力&#xff1f;Aspose.PDF憑…

工程化與框架系列(27)--前端音視頻處理

前端音視頻處理 &#x1f3a5; 引言 前端音視頻處理是現代Web應用中的重要組成部分&#xff0c;涉及音頻播放、視頻處理、流媒體傳輸等多個方面。本文將深入探討前端音視頻處理的關鍵技術和最佳實踐&#xff0c;幫助開發者構建高質量的多媒體應用。 音視頻技術概述 前端音視…

2008-2024年中國手機基站數據/中國移動通信基站數據

2008-2024年中國手機基站數據/中國移動通信基站數據 1、時間&#xff1a;2008-2024年 2、來源&#xff1a;OpenCelliD 3、指標&#xff1a;網絡類型、網絡代數、移動國家/地區、移動網絡代碼、區域代碼、小區標識、單元標識、坐標經度、坐標緯度、覆蓋范圍、測量樣本數、坐標…

阿里云 ESA 游戲行業解決方案|安全防護、加速、低延時的技術融合

如今&#xff0c;游戲行業正處于蓬勃發展與深刻變革的關鍵時期。根據中國國際數字娛樂產業大會&#xff08;CDEC&#xff09;發布的《2024年 1-6 月中國游戲產業報告》顯示 2024 年上半年國內游戲市場實際銷售收入達 1472.67 億元&#xff0c;同比增長 2.08%&#xff0c;游戲用…