LLaMA-Factory 微調 Qwen2-7B-Instruct

一、系統環境

  • 使用的 autoDL 算力平臺
    在這里插入圖片描述
1、下載基座模型
pip install -U huggingface_hub
export HF_ENDPOINT=https://hf-mirror.com  # (可選)配置 hf 國內鏡像站huggingface-cli download --resume-download shenzhi-wang/Llama3-8B-Chinese-Chat --local-dir /root/autodl-tmp/models/Llama3-8B-Chinese-Chat1

二、llama factory 框架

1、安裝框架
git clone https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory
pip install -e .
pip install unsloth
pip install vllm==0.7.3
pip install torch==2.7.0
2、準備數據
  • fintech.json 數據格式如下:
[{"instruction": "國際經濟與貿易專業的就業前景是怎樣的?","input": "","output": "國際經濟與貿易專業的就業前景較為廣闊。隨著全球經濟一體化的深入發展,國際貿易交流不斷增加,對專業人才的需求也日益增長。畢業生可以在跨國公司、國際貿易企業、金融機構以及政府部門等領域找到就業機會。此外,隨著國家對外貿易政策的不斷調整與改善,國際經濟與貿易專業的就業前景也將更加樂觀。綜合來看,國際經濟與貿易專業具有較高的就業率和就業質量,為畢業生提供了良好的職業發展空間。","history": [["從事國際經濟與貿易專業的人可以有哪些工作機會?","國際經濟與貿易專業擁有廣泛的就業領域。畢業生可以在進出口公司、物流公司、保險公司、銀行中介類貨代以及報關員、報檢員等職位工作。此外,他們還可以在政府機構如外貿局、外匯局、商檢局、海關等部門從事涉外經濟貿易的實際業務、管理、調研和宣傳策劃工作。國際經濟與貿易專業還培養了高素質的復合型涉外經貿人才,使他們具備從事國際經貿工作的能力和競爭力。"]]},{"instruction": "列出三種創造性的解決問題的技巧。","input": "","output": "1. 頭腦風暴: 這種技巧旨在通過鼓勵盡可能多的想法來產生新穎的解決方案。與團隊成員合作,不管想法多么離奇都應該提出來。最終,團隊成員可以一起篩選想法,找到可行的解決方案。\n2. 逆向思維: 這種技巧要求您從問題的根源入手,從結局反推回去。基于這種思想,您可以回顧失敗的原因,找到問題的根本所在,并找到更好的解決方案。\n3. 生命周期思考: 這種技巧倡導從全局的角度思考問題。它要求您考慮問題的各個環節,從問題的產生,發展到最終的解決方案。每一個階段都需要考慮,確保解決方案是全面和持久的。","history": []},...{"instruction": "多元化是否更好","input": "","output": "多元化更好。\n\n通過多元化,不同的觀點、文化、價值觀和經驗可以在一個社會中得到廣泛的表達和交流。多元化可以促進創新和進步,因為它鼓勵不同的思維方式和方法的交流和融合。不同的人才和智慧可以相互啟發和補充,從而推動社會的發展。\n\n多元化還可以提供更多的選擇和機會。在一個多元化的社會中,人們可以自由選擇自己感興趣的事業、教育、生活方式等。這種多樣性可以促進個人的發展和幸福感,同時也為社會的進步和繁榮創造更多的機會。\n\n此外,多元化還有助于促進社會的穩定和和諧。在一個多元化的社會中,人們可以更好地理解和尊重彼此的差異,增進相互之間的理解和合作。這有助于減少沖突和分裂,促進社會的和諧和穩定。\n\n總的來說,多元化可以帶來更多的創新、選擇和機會,同時也有助于社會的穩定和和諧。因此,多元化是更好的選擇。","history": []}]
  • identity.json 數據格式如下:
[{"instruction": "hi","input": "","output": "Hello! I am 東東, an AI assistant developed by 科研🐶. How can I assist you today?"},{"instruction": "hello","input": "","output": "Hello! I am 東東, an AI assistant developed by 科研🐶. How can I assist you today?"},...{"instruction": "Who are you?","input": "","output": "I am 東東, an AI assistant developed by 科研🐶. How can I assist you today?"}]

將訓練數據放在 LLaMA-Factory/data/fintech.json
并且修改數據注冊文件:LLaMA-Factory/data/dataset_info.json

"fintech": {"file_name": "fintech.json","columns": {"prompt": "instruction","query": "input","response": "output","history": "history"}
}
3、啟動 webui 界面
  • 注意:使用下述命令 將遠程端口 轉發到 本地端口
ssh -CNg -L 7860:127.0.0.1:7860 -p 12610 root@connect.nmb2.seetacloud.com
  • webui 啟動命令
cd LLaMA-Factory
llamafactory-cli webui
  • 啟動成功顯示
    在這里插入圖片描述

四、在 webui 中設置相關參數

  • 語言選擇 zh,切換為中文界面
  • 選擇支持的模型名稱,填上本地模型地址,微調方法選擇 lora,RoPE 插值方法 選擇 dynamic,加速方式 選擇 unsloth,選擇數據集,其他選項基本不需要改變。

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

五、進行微調

1、方式一:在 webui 界面上進行微調

前提:已完成 第四步

  • 完成第四步后,點擊下方的開始命令,開始訓練
    在這里插入圖片描述
2、方式二:根據 第四步 生成的參數,使用命令行進行微調

前提:已完成 第四步

  • 完成第四步后,點擊下方的預覽命令,根據第四步填寫的微調參數,生成相關命令;命令如下:
llamafactory-cli train \--stage sft \--do_train True \--model_name_or_path /root/autodl-tmp/models/Llama3-8B-Chinese-Chat \--preprocessing_num_workers 16 \--finetuning_type lora \--template llama3 \--rope_scaling dynamic \--flash_attn auto \--use_unsloth True \--dataset_dir data \--dataset identity,fintech \--cutoff_len 2048 \--learning_rate 0.0002 \--num_train_epochs 10.0 \--max_samples 1000 \--per_device_train_batch_size 2 \--gradient_accumulation_steps 8 \--lr_scheduler_type cosine \--max_grad_norm 1.0 \--logging_steps 5 \--save_steps 100 \--warmup_steps 0 \--packing False \--report_to none \--output_dir saves/Llama-3-8B-Chinese-Chat/lora/train_2025-05-14-20-32-17 \--bf16 True \--plot_loss True \--trust_remote_code True \--ddp_timeout 180000000 \--include_num_input_tokens_seen True \--optim adamw_torch \--lora_rank 8 \--lora_alpha 16 \--lora_dropout 0 \--lora_target all

在這里插入圖片描述

3、微調中

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

在這里插入圖片描述

六、微調前后(聊天結果)進行對比

微調前
  • 模型路徑為 微調前模型本地路徑,點擊 下方chat選項,點擊加載模型
    在這里插入圖片描述
    在這里插入圖片描述
微調后
  • 模型路徑為 微調前模型本地路徑,檢查點路徑選擇 剛剛微調產生的lora權重,點擊 下方chat選項,點擊加載模型
    在這里插入圖片描述
    在這里插入圖片描述

七、開放 openai 式接口

# 指定多卡和端口
CUDA_VISIBLE_DEVICES=0,1 API_PORT=8000 
llamafactory-cli api custom.yaml
#custom.yaml的文件內容為上述第五步中,方式二的命令參數

八、模型合并

將 base model 與訓練好的 LoRA Adapter 合并成一個新的模型。

1、方式一
  • custom_merge.yml 文件內容如下:

### model
model_name_or_path: /root/autodl-tmp/models/Llama3-8B-Chinese-Chat/ (原始模型路徑)
adapter_name_or_path: /root/code/LLaMA-Factory/saves/LLaMA3-8B-Chinese-Chat/lora/train_2024-05-25-20-27-47 (lora權重參數路徑)
template: llama3(模版)
finetuning_type: lora(微調類型)### export
export_dir: /root/autodl-tmp/models/LLaMA3-8B-Chinese-Chat-merged(合并后的路徑)
export_size: 4(設置單個文件大小為4g)
export_device: cuda
export_legacy_format: false  
  • 運行下方指令
llamafactory-cli export custom_merge.yml
  • 運行結果
    在這里插入圖片描述
2、方式二
  • 模型路徑為 微調前模型本地路徑,檢查點路徑選擇 剛剛微調產生的lora權重,點擊 下方export選項,導出目錄填寫需要保存的地址,點擊開始導出
    在這里插入圖片描述
  • 導出結果為:
    在這里插入圖片描述

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

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

相關文章

Redis三種高可用模式的使用場景及特點的詳細介紹

Redis三種高可用模式的使用場景及特點的詳細介紹,結合不同業務需求提供選擇建議: 主從模式(Replication) 核心能力:數據冗余備份、讀寫分離 適用場景: 讀多寫少:例如內容發布平臺、新聞網站等…

通俗易懂版知識點:Keepalived + LVS + Web + NFS 高可用集群到底是干什么的?

實驗開始前,先搞懂為什么要部署該集群? 這個方案的目標是讓網站 永不宕機,即使某臺服務器掛了,用戶也感覺不到。它主要涉及 負載均衡(LVS) 高可用(Keepalived) 共享存儲&#xff…

Qt中解決UI線程阻塞導致彈窗無法顯示的兩種方法

在Qt應用程序開發中,我們經常會遇到這樣的問題:當執行一個耗時操作時,整個界面會卡住,無法響應任何用戶操作,甚至連一個簡單的提示彈窗都無法正常顯示。本文將介紹兩種解決這個問題的方法,并通過完整的代碼示例進行說明。 問題描述 先來看一個常見的錯誤示例: #inclu…

2025年中國DevOps工具選型指南:主流平臺能力橫向對比

在數字化轉型縱深發展的2025年,中國企業的DevOps工具選型呈現多元化態勢。本文從技術架構、合規適配、生態整合三個維度,對Gitee、阿里云效(云效DevOps)、GitLab CE(中國版)三大主流平臺進行客觀對比分析&a…

isp流程介紹(yuv格式階段)

一、前言介紹 前面兩章里面,已經分別講解了在Raw和Rgb域里面,ISP的相關算法流程,從前面文章里面可以看到,在Raw和Rgb域里面,很多ISP算法操作,更像是屬于sensor矯正或者說sensor標定操作。本質上來說&#x…

虛幻引擎5-Unreal Engine筆記之UE編輯器退出時的保存彈框

虛幻引擎5-Unreal Engine筆記之UE編輯器退出時的保存彈框 code review! 文章目錄 虛幻引擎5-Unreal Engine筆記之UE編輯器退出時的保存彈框1. 退出編輯器時彈出的“Save Content”窗口2. File 菜單中的保存選項3. 區別總結 1. 退出編輯器時彈出的“Save Content”窗口 退出時…

如何判斷IP是否被平臺標記

一、基礎檢測:連通性與黑名單篩查 網絡連通性測試 Ping與Traceroute:通過命令測試延遲和路由路徑,若延遲>50ms或存在異常節點(如某跳延遲>200ms),可能影響可用性。示例命令: bash ping 8.…

零Gas授權實戰:用線下簽名玩轉智能合約 Permit 機制

目錄 鏈下簽名背景什么是 Permit ?鏈下簽名應用場景Permit 原理簡述實戰:從合約到前端完整實現安全注意事項總結鏈下簽名背景 在以太坊智能合約開發中,很多初學者經常面臨這樣一個問題:ERC20 代幣授權必須先調用鏈上合約的 approve(),再調用鏈上合約的 transferFrom(),每…

React 簡介:核心概念、組件化架構與聲明式編程

本文為《React Agent:從零開始構建 AI 智能體》專欄系列文章。 專欄地址:https://blog.csdn.net/suiyingy/category_12933485.html。項目地址:https://gitee.com/fgai/react-agent(含完整代碼示?例與實戰源)。完整介紹…

LeetCode100.7 接雨水

對于這題&#xff0c;有一個非常直觀簡潔的思路&#xff1a;水量等于柱子圍成的體積減去柱子的體積。 首先計算每一個高度的體積&#xff0c;相加即為總體積&#xff0c;減去sum(height)即為水的體積。 class Solution { public:int trap(vector<int>& height) {in…

NineData 社區版 V4.1.0 正式發布,新增 4 條遷移鏈路,本地化數據管理能力再升級

NineData 社區版 V4.1.0 正式更新發布。本次通過新增 4 條遷移鏈路擴展、國產數據庫深度適配、敏感數據保護增強?等升級&#xff0c;進一步鞏固了其作為高效、安全、易用的數據管理工具的定位。無論是開發測試、數據遷移&#xff0c;還是多環境的數據管理&#xff0c;NineData…

Go 語言 sqlx 庫使用:對 MySQL 增刪改查

MySQL 作為目前最流行的開源關系型數據庫&#xff0c;其 SQL 語法體系已形成行業標準&#xff0c;相關知識體系龐大且成熟&#xff0c;本文不再對 SQL 基礎進行詳細展開&#xff0c;建議尚未掌握的讀者先行系統學習。本文聚焦于如何使用 Go 語言進行 MySQL 數據庫操作&#xff…

單片機-STM32部分:13、PWM

飛書文檔https://x509p6c8to.feishu.cn/wiki/NjhuwbVP7iaEOikVK95cmJNLnWf PWM&#xff08;Pulse Width Modulation&#xff09;脈沖寬度調制&#xff0c;是利用微處理器的數字輸出來對模擬電路進行控制的一種非常有效的技術。它是把每一脈沖寬度均相等的脈沖列作為PWM波形&am…

抽獎系統-獎品-活動

提示&#xff1a;文章寫完后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 前言獲取獎品列表前端頁面活動創建需求分析活動創建后端實現1-控制層實現及校驗活動活動創建后端實現2-保存信息活動插入活動獎品插入 整合活動信息存入redis測試活…

Dense 與 MoE 系列模型架構的全面對比與應用策略

0. 簡介 人工智能領域正經歷著一場架構革命&#xff0c;從傳統的密集連接模型&#xff08;Dense&#xff09;向混合專家模型&#xff08;Mixture of Experts, MoE&#xff09;的轉變。本文將全面剖析這兩種模型架構的本質差異、各自優勢與挑戰&#xff0c;并提供戰略性的選擇框…

代碼隨想錄算法訓練營第四十天

LeetCode題目: 647. 回文子串516. 最長回文子序列 其他: 今日總結 往期打卡 647. 回文子串 跳轉: 647. 回文子串 學習: 代碼隨想錄公開講解 問題: 給你一個字符串 s &#xff0c;請你統計并返回這個字符串中 回文子串 的數目。 回文字符串 是正著讀和倒過來讀一樣的字符串。…

Supabase 的入門詳細介紹

Supabase 是什么&#xff1f; 簡單來說&#xff0c;Supabase 是一個開源的 Firebase 替代品。它提供了一整套后端即服務 (BaaS - Backend as a Service) 的工具&#xff0c;讓你能夠快速構建應用程序的后端&#xff0c;而無需自己從頭搭建和管理服務器、數據庫等基礎設施。 S…

【MySQL】mysql/bin目錄下程序介紹

&#x1f525;個人主頁&#xff1a; 中草藥 &#x1f525;專欄&#xff1a;【MySQL】探秘&#xff1a;數據庫世界的瑞士軍刀 MySQL在安裝完成后&#xff0c;通常會包含以下程序&#xff0c;以Ubuntu上的mysql為例&#xff0c;我們可以查看到 以下是常用的mysql程序 程序名作用…

IDEA+git將分支合并到主分支、IDEA合并分支

文章目錄 一、合并分支二、可能遇到的問題2.1、代碼沖突 開發過程中我們可能在開發分支(dev)中進行開發&#xff0c;等上線后將代碼合并到主分支(master)中&#xff0c;本文講解如何在IDEA中將dev分支的代碼合并到master分支中。 一、合并分支 功能說明&#xff1a;將dev分支的…

通過Ollama讀取模型

通過Ollama讀取模型 前言一、查看本地Ollama上有哪些模型二、調用bge-m3模型1、調用模型2、使用bge-m3進行相似度比較 三、調用大模型 前言 手動下載和加載大模型通常需要復雜的環境配置&#xff0c;而使用Ollama可以避免這一問題。本文將介紹如何調用Ollama上的模型。 一、查…