ChatGLMEfficientTuning 是基于 PEFT 的高效 ChatGLM-6B 微调。
目前实现了针对以下数据集的支持:StanfordAlpacaStanfordAlpaca(Chinese)GPT-4GeneratedDataBELLE2MBELLE1MBELLE0.5MBELLEDialogue0.4MBELLESchoolMath0.25MBELLEMultiturnChat0.8MGuanacoDatasetFirefly1.1MCodeAlpaca20kAlpacaCoTWebQA(Chinese)UltraChatWebNovel(Chinese)使用方法参考 data/README.md 文件。部分数据集的使用需要确认,推荐使用下述命令登录你的HuggingFace账户。pipinstall--upgradehuggingface_hubhuggingface-clilogin微调方法目前实现了针对以下高效微调方法的支持:LoRA仅微调低秩适应器。P-TuningV2仅微调前缀编码器。FreezeTuning仅微调后几层的全连接层。全量微调微调模型所有参数。软件依赖Python3.8+,PyTorch1.13.1Transformers,Datasets,Accelerate,PEFT,TRLprotobuf,cpm-kernels,sentencepiecejieba,rouge-chinese,nltk(用于评估)gradio,matplotlib(用于网页端交互)uvicorn,fastapi,sse-starlette(用于API)以及 强而有力的GPU!微调ChatGLM的例子训练结果使用整个 alpaca_gpt4_zh 数据集微调ChatGLM模型,使用秩为8的LoRA方法,使用默认超参数进行单轮训练。下图为训练损失变化曲线。评估结果选择 alpaca_gpt4_zh 数据集中的前一百条数据来评估微调后的ChatGLM模型,并计算BLEU和中文ROUGE分数。下表为评估结果。分数原版模型FZ(l=2)PT(p=16)LoRA(r=8)BLEU-415.7516.8516.0617.01(+1.26)Rouge-134.5136.6234.8036.77(+2.26)Rouge-215.1117.0415.3216.83(+1.72)Rouge-l26.1828.1726.3528.86(+2.68)训练参数/4.35%0.06%0.06%FZ:Freeze微调,PT:P-TuningV2微调(为了与LoRA公平比较,我们使用了 pre_seq_len=16),训练参数:可训练参数占全部参数的百分比。
评论