git Ifs install
Git lfs 主要用于管理大型文件。在傳統的Git倉庫中,所有文件內容都會被完整記錄在每一次提交中,這會導致倉庫體積增大,克隆、拉取和推送操作變慢,甚至可能超出存儲限額。Git LFS通過將大文件替換成文本指針,這些指針存儲在Git倉庫中,而實際的大文件則存儲在遠程的LFS服務器上,從而有效解決這些問題。
拉取模型(分兩步拉取)
git clone https://huggingface.co/minlik/chinese-alpaca-plus-7b-merged
git clone https://huggingface.co/entity303/lawgpt-lora-7b-v2
cd chinese-alpaca-plus-7b-mergedcd lawgpt-lora-7b-v2 到對應模型的目錄下去再執行
git Ifs pull 拉取大文件
git Ifs Is-files 檢查文件完整性
langchain +大模型
bisheng大模型框架
提示詞工程:
你是一個友好型的客服助理,請你回答用戶的問題{input)},這是你和用戶的聊天記錄{chat_history},讀取文件內容{context}
工作鏈:
是一個按照指定順序調用不同組件的過程,這里的組件除了大模型,還包括各類獲取數據 或者處理數據的API、代碼等,同時[工作鏈/Chains]還可以嵌套詞用其做[工作鏈/Chains].
大模型微調(新數據對模型進行訓練)
登錄阿里云平臺,選擇菜單欄文檔與社區,選擇機器學習平臺PAI,免費試用 選擇交互式建模DSW ,授權進入到控制臺,,
創建實例,官方鏡像選擇pytorch1.12
AI資產管理的DSW gallery—>輕量微調和推理
部署chatglm3-6b
git clone https://github.com/THUDM/ChatGLM3.git
source /etc/network_turbo 啟動學術加速
創建虛擬環境 conda create --name myenv python=3.10
conda init
conda activate myenv 激活虛擬環境
cd ChatGLM3
pip install–upgrade pip
下載相關依賴
下載相應依賴包(可選source /etc/network_turbo)
pip install-r requirements.txt
pip install jupyter_client
下載模型(三種方式)
第一種(huggingface直接拉取)(最推薦這種切換目錄cd /root/autodl-tmp)
其他方法:就是先上傳到阿里云盤,再從阿里云盤拉取
切換目錄 cd /root/autodl-tmp
更新軟件包 sudo apt update
安裝git-Ifs
sudo apt-get install git-Ifs
初始化git-Ifs
git lfs install
克隆項目中的小文件
git clone https://huggingface.co/THUDM/chatglm3-6b (選這個命令)
git clone https://www.modelscope.cn/ZhipuAl/chatglm3-6b.git (備選)
當看到這句話:Unpacking objects: 100% (84/84), 39.16 KiB | 1.30 MiB/s, done. Ctrl鍵+c退出
進入項目目錄 cd chatglm3-6b
拉取大文件 git Ifs pull
驗證文件完整性 git Ifs Is-files 帶星號的是完整下載的
4d5567466e * pytorch_model-00001-of-00007. bin
4ad4153401 * pytorch_model-00002-of-00007. bin
a2be9b17c3 * pytorch_model-00003-of-00007. bin
b5526891el * pytorch_model-00004-of-00007. bin
84bb18a476 * pytorch_model-00005-of-00007. bin
1181875a2d * pytorch_model-00006-of-00007. bin
1271b638dc * pytorch_model-00007-of-00007. bin
cd chatGlm3/basic_demo 切換目錄
vi cli_demo.py 修改到本地模型文件路徑
python cli_demo.py 就可以在終端和模型對話
(網頁啟動)
python web_demo.py
從申請云主機的平臺上粘貼來的命令:
ssh-p 21133 root@connect.westb.seetacloud.com (將root@connect.westb.seetacloud.com替換下面的對應位置1)
修改后的命令: 輸入到win power shell中
ssh-CNg-L 6006:127.0.0.1:7860 root@connect.westc.gpuhub.com -p 21133
密碼:Ap/u32aKvCAY
瀏覽器打開 http://127.0.0.1:6006
到這里模型部署完畢
微調類型
- 原理:LoRA(Low-Rank Adaptation)是一種參數高效的微調方法,通過在模型的權重矩陣中添加低秩矩陣來調整模型參數,從而在不改變原始模型結構的情況下,實現對模型的微調。
Freeze-tuning 微調 - 原理:Freeze-tuning 是一種凍結部分模型參數的微調方法。在微調過程中,只更新模型的部分參數,而保持其他參數不變。這種方法可以減少計算量和顯存占用,同時避免對模型的過度調整。
P-Tuning 微調 - 原理:P-Tuning 是一種通過調整模型的輸入提示(prompt)來進行微調的方法。通過對輸入文本的提示進行設計和優化,引導模型生成更符合任務需求的輸出。
全參數微調 - 原理:全參數微調是對模型的所有參數進行調整的微調方法。這種方法會更新模型的每一個參數,以使模型更好地適應特定任務的數據集。
多輪對話微調
基于AutoDL的ChatGLM3-6b部署微調實踐(全流程) - 知乎
(先激活虛擬環境)
安裝依賴
pip install transformers==4.30.2 accelerate sentencepiece astunparse deepspeed
克隆項目
cd ~
git clone https://github.com/tangqiaoyu/ToolAlpaca.git
調整數據格式
/root/ChatGLM3/finetune_demo/scripts/format_tool_alpaca.py --path “/root/ToolAlpaca/data/train_data.json”
進入修改參數
cd /root/ChatGLM3/finetune_demo/scripts
找到這個文件
finetune_pt_multiturn.sh
進入修改訓練數據路徑
BASE_MODEL_PATH=/root/autodl-tmp/chatglm3-6b
DATASET_PATH=(一般是: /root/formatted_data/tool_alpaca.jsonl)
注意:這里的數據集一般是jsonl文件,不是傳統神經網絡那種格式
微調開始
cd /root/ChatGLM3/finetune_chatmodel_demo
/root/ChatGLM3/finetune_demo/scripts/finetune_pt_multiturn.sh
微調結束(大概3個小時) (微調顯示)
(train_runtime: 12381.253, train_samples_per_second’: 1.292, train_steps_per_second: 0.081, train_loss’: 0.26453141117095946, epoch’: 3.95) 100%
Saving PrefixEncoder
[INFOlconfiguration_utils.py:458] 2023-11-11 00:32:07,299 >>Configuration saved in output/tool_alpaca_pt-20231110-210524-128-2e-2/config.json I 1000/1000 [3:26:21<00:00, 12.38s/it]
上述表示微調完成
調用微調模型
進入對應目錄cd /root/ChatGLM3/composite_demo
測試模型
python inference.py --pt-checkpoint “/root/ChatGLM3/finetune_demo/output/advertise_gen_pt-20231111-212157-128-2e-2” --model /root/autodl-tmp/chatglm3-6b
啟動微調好的模型
MODEL_PATH=“/root/autodl-tmp/chatglm3-6b” PT_PATH=“/root/ChatGLM3/finetune_demo/output/tool_alpaca_pt-20231110-210524-128 -2e-2” streamlit run main. py
train_data.json內容大概如下:
輸入輸出格式微調
cd ~
wget-O AdvertiseGen.tar.gz https://cloud.tsinghua.edu.cn/f/b3f119a008264b1cabd1/?dl=1
tar -xzvf AdvertiseGen.tar.gz /root/ChatGLM3/finetune_demo/scripts/format_advertise_gen.py --path “/root/AdvertiseGen/train.json”
進入修改參數
cd /root/ChatGLM3/finetune_demo/scripts
找到這個文件 finetune_pt.sh
進入修改訓練數據路徑
BASE MODEL PATH=/root/autodl-tmp/chatglm3-6b DATASET_PATH=看自己情況(一般是:/root/formatted data/advertise gen.jsonl
微調開始
cd /root/ChatGLM3/finetune demo /root/ChatGLM3/finetune_demo/scripts/finetune_pt.sh