[TOC]

基础语言模型是指只在大规模文本语料中进行了预训练的模型,未经过指令和下游任务微调、以及人类反馈等任何对齐优化。
启动训练: 通过执行下面的命令,就可以开启模型的训练。 在执行以下命令以开始模型训练之前,请确保设置了 CUDA 并激活了 conda 运行环境
$ python3 train.py --step 1 --deployment-type single_gpu #单GPU训练
$ python3 train.py --step 1 --deployment-type single_node #多GPU训练
$ python3 train.py --step 1 --deployment-type multi_node #多Node训练
此步骤主要进行:
模型下载:代码会自动的下载对应的模型,默认情况下模型被存放在 ~/.cache/huggingface/hub/models--facebook--opt-1.3b 数据下载: 此步训练使用了以下数据
Dahoas/rm-static # 对话(prompt,response,chosen,rejected)
Dahoas/full-hh-rlhf # 对话(prompt,response,chosen,rejected)
Dahoas/synthetic-instruct-gptj-pairwise #对话(prompt,chosen,rejected)
yitingxie/rlhf-reward-datasets # 对话(prompt,chosen,rejected)
openai/webgpt_comparisons # 带人工打分的数据,comparisons with human feedback,19,578 comparisons)
stanfordnlp/SHP # 18个领域的385k 人类标注数据
模型训练: 模型训练完成之后会被存储在 output/actor-models/1.3b 下面。你可以通过 training.log 文件来查看训练的进度。
打开文件 run_prompt.sh 添加 baseline 模型,和 finetune 后的模型:
export CUDA_VISIBLE_DEVICES=0 python prompt_eval.py \ --model_name_or_path_baseline facebook/opt-1.3b \ --model_name_or_path_finetune ../../output/actor-models/1.3b 评价程序会调用 prompt_eval.py 来分别输出 baseline 和 finetune 后模型的结果。
要执行此代码,需要切换到 step1_supervised_finetuning 目录下。
$ cd training/step1_supervised_finetuning
$ bash evaluation_scripts/run_prompt.sh
任务介绍: 在第三步(Step3)中,强化学习阶段需要使用奖励模型。奖励模型会对模型生成的答案进行打分,Step3 的强化训练会根据这些分数对模型进行优化,从而使最终模型生成更高分的答案。奖励模型同样基于预训练模型进行训练,在这里我们使用了 350M 的 opt 模型。
启动训练: 启动训练方法与前面类似: