前言:
- 系統(tǒng):ubuntu 18.04
- 顯卡:A100-80G(蹭的,嘿嘿~)
(本次主要記錄如何快速進行大模型的指令微調(diào))
1. 選用工程:lit-llama
- 地址:https://github.com/Lightning-AI/lit-llama
2. 下載工程
git clone https://github.com/Lightning-AI/lit-llama.git
3. 安裝環(huán)境
- 切換到工程目錄
cd ./lit-llama
- 使用pip安裝依賴庫
pip install -r requirements.txt
(當然,這里可能會遇到網(wǎng)絡問題,安裝不了lightning)
可使用以下方式安裝:
-
下載lightning工程
-
解壓進入工程目錄,使用以下命令安裝
python setup.py install
-
查看lightning是否安裝成功:
pip list|grep lightning
(這里注意lightning的版本是2.1.0)
4. 下載LLAMA-7B模型
這里我們要基于LLAMA-7B做指令微調(diào),所以要先下載模型權(quán)重,并作一系列轉(zhuǎn)換。
- 切換到 lit-llama 所在位置,使用以下命令下載權(quán)重:
python scripts/download.py --repo_id openlm-research/open_llama_7b --local_dir checkpoints/open-llama/7B
(文件有點大,需要等待一些時間)
- 下載完畢之后,會得到如下的文件:
5. 做模型轉(zhuǎn)換
- 還是切換到 lit-llama 所在位置,使用以下指令進行轉(zhuǎn)換
python scripts/convert_hf_checkpoint.py --checkpoint_dir checkpoints/open-llama/7B --model_size 7B
- 轉(zhuǎn)換完畢之后,在 lit-llama/checkpoints/lit-llama/7B 位置,會得到大小為26G左右的 lit-llama.pth 文件,在上一級目錄(lit-llama/checkpoints/lit-llama)還有一個tokenizer.model文件
6. 初步測試
-
在命令行,使用如下命令運行:
python generate.py --prompt "Today is a"
-
使用中文測試,發(fā)現(xiàn)效果不好(開始胡說八道了~)
7. 為什么要進行指令微調(diào)?
- 因為原始的預訓練LLAMA模型是一個大語言模型(廢話~),會根據(jù)前面的單詞預測下一個詞語,如果你問它問題,它不會正確回答你,你問它一個問題,它可能會續(xù)寫一些跟你一樣的句子,例如,
- Prompt為 “What is the capital of China?”,它的回復如下所示:
8. 開始進行指令微調(diào)
8.1. 數(shù)據(jù)準備
-
這里使用alpaca的52k指令數(shù)據(jù)進行微調(diào),使用如下指令:
python scripts/prepare_alpaca.py
-
如果下載不下來的話,我們直接打開scripts/prepare_alpaca.py文件,如下所示:
-
直接打開鏈接 https://raw.githubusercontent.com/tloen/alpaca-lora/main/alpaca_data_cleaned_archive.json,然后全選頁面復制,再保存到新建的文件里。
-
得到alpaca_data_cleaned_archive.json(看名字的clean應該是清洗過的),每條指令包含"instruction"、“input”、"output"三個關鍵字,本次先不具體展開講解,如下所示:
-
運行指令后,還會作數(shù)據(jù)劃分,train-49759, val-2000如下所示:
-
最后,會在lit-llama/data/alpaca路徑下得到以下文件:
8.2 開始模型訓練
-
使用以下指令:
python finetune/lora.py
-
訓練過程如下所示:
-
整個訓練過程大約要1.5個小時(16:51 ~ 18:22)
-
訓練完畢之后,會在out/lora/alpaca得到一系列l(wèi)ora的權(quán)重文件,如下圖所示:
8.3 模型測試
-
使用如下指令進行提問,其中prompt為"what is the capital of China?",
python generate/lora.py --prompt "what is the capital of China?"
-
得到的結(jié)果如下所示
-
可以看到,經(jīng)過指令微調(diào)之后,模型已經(jīng)可以正?;卮鹞覀兊膯栴}了。
(ps:其他細節(jié)可以參考工程的README,寫的很清楚~)文章來源:http://www.zghlxwxcb.cn/news/detail-505054.html
結(jié)束。文章來源地址http://www.zghlxwxcb.cn/news/detail-505054.html
到了這里,關于快速訓練自己的大語言模型:基于LLAMA-7B的lora指令微調(diào)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!