大模型微调学习记录-基于GLM-130B

本文介绍了GLM-130B,一个开源的双语预训练模型,其1300亿参数版本在硬件性能上具有优势。文章详细讲解了模型的优化、微调方法,包括量化、非量化参数调整以及使用DeepSpeed平台。还探讨了评估指标如CrossEntropy和Perplexity在模型性能中的作用。
摘要由CSDN通过智能技术生成

0. 前序背景 

论文:GLM-130B: AN OPEN BILINGUAL PRE-TRAINED MODEL

GLM2的微调教程

目前GLM2-130B优于或相当GPT-3-175B的性能。

选择130B(1300亿参数)是从硬件性能考虑,可以在单张A100(40Gx8)上进行推理(高端A100 80Gx8),也可以进行INT4量化后在7GB的显存上运行。

GLM130B借鉴了FastTransformer同时使用C++实现,比采用Pytorch实现的BLOOM-176B快7-8倍。

非量化模型约微调0.1%的参数;

量化模型的微调需要借助P-tuning v2平台:P-tuning-v2

全模型参数的微调需要借助微软的DeepSpeed平台:DeepSpeed

1. 运算环境

教程演示是在和鲸平台上的算力,根据算力需求约需要12RMB/h;训练大模型和全参数微调大模型需要使用配套加速套件如由HuggingFace(抱抱脸,不知道为什么起这样一个令人难忘的名字[震惊])团队支持的transformers, transformers包含许多预训练模型,需要从头学习。

部署测试, 使用一片文章作为调试;

FineTurn:使用ADGEN 数据集,任务为根据输入(content)生成一段广告词(summary)如

{    
    "content": "类型#上衣*版型#宽松*版型#显瘦*图案#线条*衣样式#衬衫*衣袖型#泡泡袖*衣款式#抽绳",    
    "summary": "这件衬衫的款式非常的宽松,利落的线条可以很好的隐藏身材上的小缺点,穿在身上有着很好的显瘦效果。领口装饰了一个可爱的抽绳,漂亮的绳结展现出了十足的个性,配合时尚的泡泡袖型,尽显女性甜美可爱的气息。"    
}

的数据集进行微调训练。

这里有个问题就是微调数据是否都是需要像这样组织,特别是prompt中是否需要“#” 和“*”进行划分。输出的summary比较好理解,就是输出一段话。数据的组织还需要看训练数据是如何组织的。

词符化 (tokenized): 词语符号化,是大模型训练中重要的一环。其目的是将语料库中的词汇形成词汇表并编码,以供学习和预测。

2.评估指标

语言模型的三大评估标准:Cross Entropy, Perplexity, Bits-Per-Character(BPC)/Bits-Per-Word(BPW),这些指标越小说明模型越好。计算方式:

Cross-entropy: H(P,Q) = -\sum P(x)logQ(x)

BPC/BPW: BPC/BPW(P,Q) = \frac{1}{T}\sum_{t=1}^{T}H(P,Q)

Perplexity: PPL(P,Q) = 2^{BPC} or 2^{BPW}

可以看出它们都是基于交叉熵计算的指标,BPC/BPW是基于时序上的均值;Perplexity是求指数化的交叉熵。

Perplexity的影响因素

(1)训练数据集越大,PPL会下降得更低,1billion dataset和10万dataset训练效果是很不一样的;

(2)数据中的标点会对模型的PPL产生很大影响,一个句号能让PPL波动几十,标点的预测总是不稳定;

(3)预测语句中的“的,了”等词也对PPL有很大影响,可能“我借你的书”比“我借你书”的指标值小几十,但从语义上分析有没有这些停用词并不能完全代表句子生成的好坏。
第(3)点来表明,仅仅从语言角度预测下一个词与人类世界的真实实践是不相符的。比如一句话“我拿起一杯水”在现实世界是对应各种各样场景拿起一杯水的场景,而单纯的从词序角度预测显然与“再造真实”这一AI发展方向不符。这也是当下language-vision模型大火的原因,是高阶AI必须要达到的能力。

Cross-entropy的推导:

H(P):存储P序列的平均bit数;D_{KL}(P||Q):基于预测序列Q编码序列P所需额外bit数。

只衡量bit数有不足,缺少了bit直接特异性的区分

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值