GPT解读(论文 + TensorFlow实现)

GPT这篇论文,我还是在GPT-2出来了之后,被它能续写《红楼梦》这一事件而震惊,所以才统一看了一下这两篇论文。这俩都是OpenAI出的,也是用pretrain+fintune的套路进行处理。

一. GPT原理

GPT的训练分为两个阶段:1)无监督预训练语言模型;2)各个任务的微调。

1. 无监督pretrain

这一步论文里面用的是Transformer的decoder作为LM。它的目的是优化如下的损失函数:

L 1 ( U ) = ∑ i l o g P ( u i ∣ u i − k , . . . , u i − 1 ; Θ ) L_1(U) = \sum_i logP(u_i | u_{i-k}, ..., u_{i-1}; \Theta) L1(U)=ilogP(uiuik,...,ui1;Θ)

对于transformer的decoder,可以简写为如下的样子:

h 0 = U W e + W p h_0 = UW_e + W_p h0=UWe+Wp

h l = t r a n s f o r m e r _ b l o c k ( h l − 1 ) ∀ i ∈ [ 1 , n ] h_l = transformer\_block(h_{l-1}) \forall i \in [1, n] hl=transformer_block(hl1)i[1,n]

P ( u ) = s o f t m a x ( h n W e T ) P(u) = softmax(h_n W_e^T) P(u)=softmax(hnWeT)

熟悉Transformer的读者应该都知道,这里就不再赘述,不熟悉的可以看笔者之前的博客

2. 有监督finetune

以分类任务为例,在用前面的LM得到最后一个timestep的输出之后,可以用如下的方式去进行finetune:

P ( y ∣ x 1 , . . . , x m ) = s o f t m a x ( h l m

### 使用 AutoGPTQ 库量化 Transformer 模型 为了使用 `AutoGPTQ` 对 Transformer 模型进行量化,可以遵循如下方法: 安装所需的依赖包是必要的操作。通过 pip 安装 `auto-gptq` 可以获取最新版本的库。 ```bash pip install auto-gptq ``` 加载预训练模型并应用 GPTQ (General-Purpose Tensor Quantization) 技术来减少模型大小和加速推理过程是一个常见的流程。下面展示了如何利用 `AutoGPTQForCausalLM` 类来进行这一工作[^1]。 ```python from transformers import AutoModelForCausalLM, AutoTokenizer from auto_gptq import AutoGPTQForCausalLM model_name_or_path = "facebook/opt-350m" quantized_model_dir = "./quantized_model" tokenizer = AutoTokenizer.from_pretrained(model_name_or_path) model = AutoModelForCausalLM.from_pretrained(model_name_or_path) # 加载已经量化的模型或者创建一个新的量化器对象用于量化未压缩过的模型 gptq_model = AutoGPTQForCausalLM.from_pretrained(quantized_model_dir, model=model, tokenizer=tokenizer) ``` 对于那些希望进一步优化其部署环境中的模型性能的人来说,`AutoGPTQ` 提供了多种配置选项来自定义量化参数,比如位宽(bit-width),这有助于平衡精度损失与运行效率之间的关系。 #### 注意事项 当处理特定硬件平台上的部署时,建议查阅官方文档以获得最佳实践指导和支持信息。此外,在实际应用场景之前应该充分测试经过量化的模型以确保满足预期的质量标准。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值