PAI-ChatLearn:Alignment on DLC最佳實(shí)踐
本文為您介紹如何使用PAI-ChatLearn對(duì)Llama2-7B模型進(jìn)行Alignment的訓(xùn)練流程。
背景信息
PAI-ChatLearn是一個(gè)靈活、易用、高效的大規(guī)模Alignment訓(xùn)練框架。支持RLHF(Reinforcement Learning from Human Feedback)、DPO(Direct Preference Optimization)、OnlineDPO、GRPO(Group Relative Policy Optimization)等多種Alignment訓(xùn)練模式,同時(shí)也支持您自定義模型的執(zhí)行流程。您也可以組合使用不同的后端來(lái)進(jìn)行模型建模,例如使用Megatron-LM來(lái)進(jìn)行加速訓(xùn)練,使用vLLM來(lái)加速推理。
前提條件
在開(kāi)始執(zhí)行操作前,請(qǐng)確認(rèn)您已經(jīng)完成以下準(zhǔn)備工作:
已創(chuàng)建工作空間,具體操作,請(qǐng)參見(jiàn)創(chuàng)建工作空間。
已準(zhǔn)備靈駿智算資源的資源配額,本方案使用靈駿智算資源gu7xf機(jī)型(例如:資源規(guī)格選擇ml.gu7xf.c96m1600.8-gu108),關(guān)于如何購(gòu)買靈駿智算資源和創(chuàng)建資源配額,請(qǐng)參見(jiàn)新建資源組并購(gòu)買靈駿智算資源和靈駿智算資源配額。
已創(chuàng)建通用型NAS文件系統(tǒng)。具體操作,請(qǐng)參見(jiàn)創(chuàng)建文件系統(tǒng)。
已創(chuàng)建阿里云文件存儲(chǔ)通用型NAS類型的數(shù)據(jù)集,用于存儲(chǔ)訓(xùn)練所需的文件和結(jié)果文件。默認(rèn)掛載路徑配置為
/mnt/data/
。具體操作,請(qǐng)參見(jiàn)創(chuàng)建及管理數(shù)據(jù)集。
使用限制
僅支持在華北6(烏蘭察布)地域使用該最佳實(shí)踐。
靈駿智算資源、NAS文件系統(tǒng)和分布式訓(xùn)練(DLC)任務(wù)需要在同一個(gè)地域內(nèi)。
創(chuàng)建靈駿智算資源的資源配額時(shí)使用的專有網(wǎng)絡(luò)需要與通用型NAS文件系統(tǒng)一致。
準(zhǔn)備工作
準(zhǔn)備代碼
在終端中,執(zhí)行如下命令下載代碼。
下載ChatLearn框架代碼:
git clone https://github.com/alibaba/ChatLearn.git
下載Megatron-LM代碼。
說(shuō)明如果您需要運(yùn)行基于Megatron-LM框架的Alignment訓(xùn)練程序,則需要下載該代碼。
git clone https://github.com/NVIDIA/Megatron-LM.git # 請(qǐng)?zhí)鎿Q為您的實(shí)際路徑。 cd /**/Megatron-LM git checkout 5161b1689
本方案采用以下方法將代碼文件上傳至NAS文件系統(tǒng),以便后續(xù)進(jìn)行模型訓(xùn)練。您也可選擇您自己的方式上傳代碼文件至NAS文件系統(tǒng)。
在函數(shù)計(jì)算控制臺(tái),搭建NAS瀏覽器應(yīng)用。具體操作,請(qǐng)參見(jiàn)使用函數(shù)計(jì)算快速搭建可視化NAS瀏覽器應(yīng)用。
將已下載的代碼文件按照目錄層級(jí)上傳到通用型NAS文件系統(tǒng)的根目錄(/)。具體操作,請(qǐng)參見(jiàn)使用函數(shù)計(jì)算快速搭建可視化NAS瀏覽器應(yīng)用。
準(zhǔn)備訓(xùn)練數(shù)據(jù)
請(qǐng)參考數(shù)據(jù)準(zhǔn)備文檔,準(zhǔn)備好以下ChatLearn訓(xùn)練需要的數(shù)據(jù),并將訓(xùn)練數(shù)據(jù)上傳到NAS文件系統(tǒng)中,具體操作,請(qǐng)參見(jiàn)使用函數(shù)計(jì)算快速搭建可視化NAS瀏覽器應(yīng)用。
準(zhǔn)備SFT訓(xùn)練數(shù)據(jù),并上傳到NAS的
/sft
目錄中。準(zhǔn)備Reward訓(xùn)練數(shù)據(jù),并上傳到NAS的
/rm
目錄中。準(zhǔn)備Aignment的RLHF模式的訓(xùn)練數(shù)據(jù),并上傳到NAS的
/alignment
目錄中。
ChatLearn訓(xùn)練
步驟一:SFT微調(diào)訓(xùn)練
SFT是指使用有標(biāo)注的對(duì)話數(shù)據(jù)來(lái)微調(diào)預(yù)訓(xùn)練語(yǔ)言模型的過(guò)程。在本方案中,您需要下載預(yù)訓(xùn)練的模型,然后開(kāi)始一個(gè)簡(jiǎn)單的SFT訓(xùn)練示例。具體操作步驟如下:
1.下載和轉(zhuǎn)化預(yù)訓(xùn)練模型
下載預(yù)訓(xùn)練Checkpoint。
您可以使用來(lái)自HuggingFace transformers的模型,例如HuggingFace Hub中的Llama2模型meta-llama/Llama-2-7b-hf。您也可以使用本地保存好的SFT模型。本方案使用llama-2-7b-hf。
將已下載的Llama2模型按照目錄層級(jí)上傳到通用型NAS文件系統(tǒng)的根目錄
/
。具體操作,請(qǐng)參見(jiàn)使用函數(shù)計(jì)算快速搭建可視化NAS瀏覽器應(yīng)用。將HuggingFace transformers模型轉(zhuǎn)化為Megatron-LM模型格式。
進(jìn)入新建任務(wù)頁(yè)面。
登錄PAI控制臺(tái),在頁(yè)面上方選擇目標(biāo)地域,并在右側(cè)選擇目標(biāo)工作空間,然后單擊進(jìn)入DLC。
在分布式訓(xùn)練(DLC)頁(yè)面,單擊新建任務(wù)。
在新建任務(wù)頁(yè)面,配置以下關(guān)鍵參數(shù),其他參數(shù)配置詳情,請(qǐng)參見(jiàn)創(chuàng)建訓(xùn)練任務(wù)。
參數(shù)
描述
環(huán)境信息
節(jié)點(diǎn)鏡像
選中鏡像地址,并在文本框中輸入
registry.cn-wulanchabu.aliyuncs.com/pai-dlc/pytorch-training:2.4.0-gpu-py3.10-cu12.5-ngc24.06-ubuntu22.04
。數(shù)據(jù)集
單擊自定義數(shù)據(jù)集,并配置以下參數(shù):
自定義數(shù)據(jù)集:選擇已創(chuàng)建的通用型NAS數(shù)據(jù)集。
掛載路徑:取默認(rèn)配置
/mnt/data/
。
啟動(dòng)命令
配置以下命令:
export MEGATRON=path-to-megatron-lm export CHATLEARN=path-to-chatlearn cd ${CHATLEARN}/examples/megatron/ TP=$num_of_tp \ PP=$num_of_pp \ LOAD_PATH=path-to-hf-model \ TOKENIZER_MODEL=$LOAD_PATH/tokenizer.model \ SAVE_PATH=path-to-megatron-model \ bash scripts/convert_hf_to_megatron.sh
其中:
MEGATRON:是Megatron-LM代碼倉(cāng)庫(kù)clone存放的位置。本方案配置為
/mnt/data/Megatron-LM
。CHATLEARN:是ChatLearn代碼倉(cāng)庫(kù)clone存放的位置。本方案配置為
/mnt/data/ChatLearn
。LOAD_PATH:是Llama2模型的存放路徑。本方案配置為
/mnt/data/llama-2-7b-hf
。SAVE_PATH:轉(zhuǎn)換后的Megatron-LM格式模型的存儲(chǔ)路徑。本方案配置為
/mnt/data/llama-2-7b-hf-to-megatron
。TP(tensor_model_parallel_size)和PP(
pipeline_model_parallel_size
)參數(shù)配置說(shuō)明如下:對(duì)于Llama2-7B的模型,系統(tǒng)會(huì)將模型轉(zhuǎn)換成
TP=4,PP=1
的Checkpoint。您需要配置參數(shù)為TP=4,PP=1。對(duì)于Llama2-13B的模型,系統(tǒng)會(huì)將模型轉(zhuǎn)化成
TP=8,PP=1
的Checkpoint。您需要配置參數(shù)為TP=8,PP=1。對(duì)于Llama2-70B的模型,系統(tǒng)會(huì)將模型轉(zhuǎn)化成
TP=8,PP=4
的Checkpoint。您需要配置參數(shù)為TP=8,PP=4。
資源信息
資源類型
選擇靈駿智算。
資源來(lái)源
選擇資源配額。
資源配額
選擇已創(chuàng)建的資源配額。
框架
選擇PyTorch。
任務(wù)資源
在Worker節(jié)點(diǎn)配置以下參數(shù):
節(jié)點(diǎn)數(shù)量:配置為1。
CPU(核數(shù)):80。
內(nèi)存(GiB):800。
共享內(nèi)存(GiB):800。
GPU(卡數(shù)):1。
單擊確定。
頁(yè)面自動(dòng)跳轉(zhuǎn)到分布式訓(xùn)練(DLC)頁(yè)面,當(dāng)任務(wù)執(zhí)行成功后,模型轉(zhuǎn)換成功。
2.開(kāi)啟SFT訓(xùn)練
進(jìn)入新建任務(wù)頁(yè)面。
登錄PAI控制臺(tái),在頁(yè)面上方選擇目標(biāo)地域,并在右側(cè)選擇目標(biāo)工作空間,然后單擊進(jìn)入DLC。
在分布式訓(xùn)練(DLC)頁(yè)面,單擊新建任務(wù)。
在新建任務(wù)頁(yè)面,配置以下關(guān)鍵參數(shù),其他參數(shù)配置詳情,請(qǐng)參見(jiàn)創(chuàng)建訓(xùn)練任務(wù)。
參數(shù)
描述
環(huán)境信息
節(jié)點(diǎn)鏡像
選中鏡像地址,并在文本框中輸入
registry.cn-wulanchabu.aliyuncs.com/pai-dlc/pytorch-training:2.4.0-gpu-py3.10-cu12.5-ngc24.06-ubuntu22.04
。數(shù)據(jù)集
單擊自定義數(shù)據(jù)集,并配置以下參數(shù):
自定義數(shù)據(jù)集:選擇已創(chuàng)建的通用型NAS數(shù)據(jù)集。
掛載路徑:取默認(rèn)配置
/mnt/data/
。
啟動(dòng)命令
配置以下命令:
export CHATLEARN=path-to-chatlearn export MEGATRON=path-to-megatron-lm cd ${CHATLEARN}/examples/megatron/ export model_size=llama2-7B LOAD_PATH=$MEGATRON_LLAMA2_CKPT_PATH \ TOKENIZER_MODEL=$LLAMA2_TOKENIZER_MODEL \ DATASET_PATH=$DATASET_ROOT/sft/ \ bash scripts/train_sft_llama.sh
其中關(guān)鍵配置說(shuō)明如下:
MEGATRON:是Megatron-LM代碼倉(cāng)庫(kù)clone存放的位置。本方案配置為
/mnt/data/Megatron-LM
。CHATLEARN:是ChatLearn代碼倉(cāng)庫(kù)clone存放的位置。本方案配置為
/mnt/data/ChatLearn
。LOAD_PATH:是轉(zhuǎn)換后的Megatron-LM格式模型的存儲(chǔ)路徑。本方案配置為
/mnt/data/llama-2-7b-hf-to-megatron
。TOKENIZER_MODEL:是Llama2Tokenizer所需文件tokenizer.model所在的文件夾路徑。本方案配置為
/mnt/data/llama-2-7b-hf/tokenizer.model
。DATASET_PATH:是SFT訓(xùn)練數(shù)據(jù)集路徑。本方案配置為
/mnt/data/sft/
。
訓(xùn)練過(guò)程生成的日志和訓(xùn)練完成的模型默認(rèn)存放在
${CHATLEARN}/output/sft
中。您可以通過(guò)CHECKPOINT_PATH來(lái)指定模型保存路徑,具體的定義詳情,請(qǐng)參見(jiàn)${CHATLEARN}/examples/megatron/scripts/train_sft_llama.sh
腳本。資源信息
資源類型
選擇靈駿智算。
資源來(lái)源
選擇資源配額。
資源配額
選擇已創(chuàng)建的資源配額。
框架
選擇PyTorch。
任務(wù)資源
在Worker節(jié)點(diǎn)配置以下參數(shù):
節(jié)點(diǎn)數(shù)量:配置為1。
CPU(核數(shù)):80。
內(nèi)存(GiB):800。
共享內(nèi)存(GiB):800。
GPU(卡數(shù)):8。
訓(xùn)練腳本中,資源需求如下,您可以根據(jù)實(shí)際情況修改配置參數(shù):
llama2-7B RLHF:8卡GPU
llama2-13B RLHF: 2*8卡GPU
llama2-70B RLHF: 4*8卡GPU
單擊確定。
步驟二:Reward模型訓(xùn)練
Reward模型是指在RLHF中作為人類評(píng)價(jià)的代理,對(duì)模型產(chǎn)生的問(wèn)題回復(fù)進(jìn)行實(shí)時(shí)評(píng)價(jià)打分的模型。Reward模型輸入問(wèn)題以及模型回復(fù),可以產(chǎn)生一個(gè)標(biāo)量表示模型回復(fù)的質(zhì)量。
DPO訓(xùn)練模式不需要訓(xùn)練Reward模型。
進(jìn)入新建任務(wù)頁(yè)面。
登錄PAI控制臺(tái),在頁(yè)面上方選擇目標(biāo)地域,并在右側(cè)選擇目標(biāo)工作空間,然后單擊進(jìn)入DLC。
在分布式訓(xùn)練(DLC)頁(yè)面,單擊新建任務(wù)。
在新建任務(wù)頁(yè)面,配置以下關(guān)鍵參數(shù),其他參數(shù)配置詳情,請(qǐng)參見(jiàn)創(chuàng)建訓(xùn)練任務(wù)。
參數(shù)
描述
環(huán)境信息
節(jié)點(diǎn)鏡像
選中鏡像地址,并在文本框中輸入
registry.cn-wulanchabu.aliyuncs.com/pai-dlc/pytorch-training:2.4.0-gpu-py3.10-cu12.5-ngc24.06-ubuntu22.04
。數(shù)據(jù)集
單擊自定義數(shù)據(jù)集,并配置以下參數(shù):
自定義數(shù)據(jù)集:選擇已創(chuàng)建的通用型NAS數(shù)據(jù)集。
掛載路徑:取默認(rèn)配置
/mnt/data/
。
啟動(dòng)命令
配置以下命令:
export CHATLEARN=path-to-chatlearn export MEGATRON=path-to-megatron-lm cd ${CHATLEARN}/examples/megatron/ LOAD_PATH=path-to-sft-ckpt \ TOKENIZER_MODEL=$LLAMA2_TOKENIZER_MODEL \ DATASET_PATH=$DATASET_ROOT/rm \ bash scripts/train_reward_llama.sh
其中關(guān)鍵配置說(shuō)明如下:
MEGATRON:是Megatron-LM代碼倉(cāng)庫(kù)clone存放的位置。本方案配置為
/mnt/data/Megatron-LM
。CHATLEARN:是ChatLearn代碼倉(cāng)庫(kù)clone存放的位置。本方案配置為
/mnt/data/ChatLearn
。LOAD_PATH:是SFT產(chǎn)出的Checkpoint路徑。本方案配置為
${CHATLEARN}/output/sft/
,您的路徑以實(shí)際為準(zhǔn)。TOKENIZER_MODEL:是Llama2Tokenizer所需文件tokenizer.model所在的文件夾路徑。本方案配置為
/mnt/data/llama-2-7b-hf/tokenizer.model
。DATASET_PATH:是Reward訓(xùn)練數(shù)據(jù)集路徑。本方案配置為
/mnt/data/rm
。
訓(xùn)練過(guò)程生成的日志和訓(xùn)練完成的模型默認(rèn)存放在
${CHATLEARN}/output/reward
中。您可以通過(guò)CHECKPOINT_PATH來(lái)指定模型保存路徑,具體的定義詳見(jiàn)${CHATLEARN}/examples/megatron/scripts/train_reward_llama.sh
腳本。資源信息
資源類型
選擇靈駿智算。
資源來(lái)源
選擇資源配額。
資源配額
選擇已創(chuàng)建的資源配額。
框架
選擇PyTorch。
任務(wù)資源
在Worker節(jié)點(diǎn)配置以下參數(shù):
節(jié)點(diǎn)數(shù)量:配置為1。
CPU(核數(shù)):80。
內(nèi)存(GiB):800。
共享內(nèi)存(GiB):800。
GPU(卡數(shù)):8。
訓(xùn)練腳本中,資源需求如下,您可以根據(jù)實(shí)際情況修改配置參數(shù):
llama2-7B RLHF:8卡GPU
llama2-13B RLHF: 2*8卡GPU
llama2-70B RLHF: 4*8卡GPU
單擊確定。
步驟三:Alignment訓(xùn)練
RLHF訓(xùn)練模式
ChatLearn支持多種Alignment訓(xùn)練模式:RLHF、DPO、OnlineDPO、GRPO等。本方案以RLHF Llama2-7B模型為例,為您介紹如何進(jìn)行Alignment訓(xùn)練。具體操作步驟如下:
進(jìn)入新建任務(wù)頁(yè)面。
登錄PAI控制臺(tái),在頁(yè)面上方選擇目標(biāo)地域,并在右側(cè)選擇目標(biāo)工作空間,然后單擊進(jìn)入DLC。
在分布式訓(xùn)練(DLC)頁(yè)面,單擊新建任務(wù)。
在新建任務(wù)頁(yè)面,配置以下關(guān)鍵參數(shù),其他參數(shù)配置詳情,請(qǐng)參見(jiàn)創(chuàng)建訓(xùn)練任務(wù)。
參數(shù)
描述
環(huán)境信息
節(jié)點(diǎn)鏡像
選擇鏡像地址,并配置:
registry.cn-wulanchabu.aliyuncs.com/pai-dlc/pytorch-training:2.4.0-gpu-py3.10-cu12.5-ngc24.06-ubuntu22.04
。數(shù)據(jù)集
單擊自定義數(shù)據(jù)集,并配置以下參數(shù):
自定義數(shù)據(jù)集:選擇已創(chuàng)建的通用型NAS數(shù)據(jù)集。
掛載路徑:取默認(rèn)配置
/mnt/data/
。
啟動(dòng)命令
配置以下命令:
export CHATLEARN=path-to-chatlearn export MEGATRON=path-to-megatron-lm export DATASET_PATH=$DATASET_ROOT/alignment/train.jsonl cd ${CHATLEARN}/examples/megatron/ export model_size=llama2-7B POLICY_LOAD=path-to-sft-ckpt \ REWARD_LOAD=path-to-rm-ckpt \ REWARD_LOAD_ITERATION=1000 \ TOKENIZER_MODEL=$LLAMA2_TOKENIZER_MODEL \ tokenizer_load=${HF_MODEL_DIR} bash scripts/train_rlhf_llama.sh
其中:
MEGATRON:是Megatron-LM代碼倉(cāng)庫(kù)clone存放的位置。本方案配置為
/mnt/data/Megatron-LM
。CHATLEARN:是ChatLearn代碼倉(cāng)庫(kù)clone存放的位置。本方案配置為
/mnt/data/ChatLearn
。DATASET_PATH:是Alignment訓(xùn)練數(shù)據(jù)集路徑。本方案配置為
/mnt/data/alignment/train.jsonl
。POLICY_LOAD:是SFT微調(diào)訓(xùn)練產(chǎn)出的Checkpoint路徑。Policy模型和Reference模型將以SFT的Checkpoint進(jìn)行初始化。本方案配置為
${CHATLEARN}/output/sft/hh_sft***/
,您的路徑以實(shí)際為準(zhǔn)。REWARD_LOAD:是Reward訓(xùn)練產(chǎn)出Checkpoint路徑。本方案配置為
${CHATLEARN}/output/reward/reward_hh***
,您的路徑以實(shí)際為準(zhǔn)。REWARD_LOAD_ITERATION:用于指定加載Checkpoint對(duì)應(yīng)的iteration數(shù)。Reward模型和Value模型將以Reward模型的權(quán)重進(jìn)行初始化。
TOKENIZER_MODEL:是Llama2Tokenizer所需文件tokenizer.model所在的文件夾路徑。本方案配置為
/mnt/data/llama-2-7b-hf/tokenizer.model
。tokenizer_load:您下載的HuggingFace模型的路徑。本方案配置為
/mnt/data/llama-2-7b-hf
。model_size:本方案以Llama2-7B模型為例,如果您需要訓(xùn)練llama2-13B或llama2-70B的模型,您只需要將上述訓(xùn)練腳本中的
export model_size=llama2-7B
替換成export model_size=llama2-13B
或export model_size=llama2-70B
。
系統(tǒng)會(huì)將訓(xùn)練完成的模型保存至
${CHATLEARN}/output/**-rlhf
路徑。資源信息
資源類型
選擇靈駿智算。
資源來(lái)源
選擇資源配額。
資源配額
選擇已創(chuàng)建的資源配額。
框架
選擇PyTorch。
任務(wù)資源
在Worker節(jié)點(diǎn)配置以下參數(shù):
節(jié)點(diǎn)數(shù)量:配置為1。
CPU(核數(shù)):80。
內(nèi)存(GiB):800。
共享內(nèi)存(GiB):800。
GPU(卡數(shù)):8。
訓(xùn)練腳本中,資源需求如下,您可以根據(jù)實(shí)際情況修改配置參數(shù):
llama2-7B RLHF:8卡GPU
llama2-13B RLHF: 2*8卡GPU
llama2-70B RLHF: 4*8卡GPU
參數(shù)配置完成后,單擊確定。
頁(yè)面自動(dòng)跳轉(zhuǎn)到分布式訓(xùn)練(DLC)頁(yè)面。在該頁(yè)面,您可以單擊任務(wù)名稱進(jìn)入任務(wù)詳情頁(yè)面,來(lái)觀察任務(wù)執(zhí)行狀態(tài)。
其他訓(xùn)練模式
其他Alignment訓(xùn)練模式操作方法與RLHF相同,您只需在創(chuàng)建訓(xùn)練任務(wù)時(shí),將啟動(dòng)命令更新為對(duì)應(yīng)訓(xùn)練模式的命令即可。其他訓(xùn)練模式對(duì)應(yīng)的啟動(dòng)命令如下:
OnlineDPO/GRPO
OnlineDPO/GRPO訓(xùn)練流程和RLHF比較類似,只是不需要Value模型,以下是一個(gè)Llama2-7B的Policy模型和7B的Reward模型的訓(xùn)練腳本。
export CHATLEARN=path-to-chatlearn export MEGATRON=path-to-megatron-lm export DATASET_PATH=$DATASET_ROOT/alignment/train.jsonl cd ${CHATLEARN}/examples/megatron/ export model_size=llama2-7B POLICY_LOAD=path-to-sft-ckpt \ REWARD_LOAD=path-to-rm-ckpt \ REWARD_LOAD_ITERATION=1000 \ TOKENIZER_MODEL=$LLAMA2_TOKENIZER_MODEL \ tokenizer_load=${HF_MODEL_DIR} bash scripts/train_online_dpo_llama.sh
其中DATASET_PATH需要配置為該訓(xùn)練模式支持的訓(xùn)練數(shù)據(jù)集所在路徑。如何準(zhǔn)備數(shù)據(jù)集,請(qǐng)參見(jiàn)數(shù)據(jù)準(zhǔn)備。其他參數(shù)配置說(shuō)明,請(qǐng)參見(jiàn)上述RLHF訓(xùn)練模式的參數(shù)配置說(shuō)明。
DPO
以下是一個(gè)Llama2-7B的Policy模型的訓(xùn)練腳本。
export CHATLEARN=path-to-chatlearn export MEGATRON=path-to-megatron-lm export DATASET_PATH=$DATASET_ROOT/alignment/train.jsonl cd ${CHATLEARN}/examples/megatron/ export model_size=llama2-7B POLICY_LOAD=path-to-sft-ckpt \ TOKENIZER_MODEL=$LLAMA2_TOKENIZER_MODEL \ bash scripts/train_dpo_llama.sh
其中DATASET_PATH需要配置為該訓(xùn)練模式支持的訓(xùn)練數(shù)據(jù)集所在路徑。如何準(zhǔn)備數(shù)據(jù)集,請(qǐng)參見(jiàn)數(shù)據(jù)準(zhǔn)備。其他參數(shù)配置說(shuō)明,請(qǐng)參見(jiàn)上述RLHF訓(xùn)練模式的參數(shù)配置說(shuō)明。
GRPO Math
export CHATLEARN=path-to-chatlearn export MEGATRON=path-to-megatron-lm export DATASET_PATH=$DATASET_ROOT/math/train.jsonl cd ${CHATLEARN}/examples/megatron/ export model_size=llama2-7B POLICY_LOAD=path-to-sft-ckpt \ REWARD_LOAD=path-to-rm-ckpt \ REWARD_LOAD_ITERATION=1000 \ TOKENIZER_MODEL=$LLAMA2_TOKENIZER_MODEL \ tokenizer_load=${HF_MODEL_DIR} bash scripts/train_grpo_math_llama.sh
其中DATASET_PATH需要配置為該訓(xùn)練模式支持的訓(xùn)練數(shù)據(jù)集所在路徑。如何準(zhǔn)備數(shù)據(jù)集,請(qǐng)參見(jiàn)數(shù)據(jù)準(zhǔn)備。其他參數(shù)配置說(shuō)明,請(qǐng)參見(jiàn)上述RLHF訓(xùn)練模式的參數(shù)配置說(shuō)明。