ChatGLM Efficient Tuning 基于 PEFT 的高效 ChatGLM 微调开源项目

我要开发同款
白开水不加糖2023年07月18日
128阅读
开发技术Python
所属分类LLM(大语言模型)、人工智能
授权协议Apache-2.0

作品详情

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),训练参数:可训练参数占全部参数的百分比。

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论