LLM | GPT-NEOX论文详解

GPT-NEOX使用旋转位置编码。模型权重使用float16表示。最大序列长度为2048。

论文题目:2022.04.14_GPT-NeoX-20B: An Open-Source Autoregressive Language Model

论文地址:2204.06745.pdf (arxiv.org)

论文代码:EleutherAI/gpt-neox: An implementation of model parallel autoregressive transformers on GPUs, based on the DeepSpeed library. (github.com)

Demo:GPT-NeoX (huggingface.co)

论文详解

概述

介绍了 GPT-NeoX-20B,这是一个在**Pile【1】**数据集上训练的 200 亿参数自回归语言模型,其权重是开源的。在这项工作中,描述了 GPT-NeoX-20B 的架构和训练,并评估了其在一系列语言理解方面的性能, 数学和基于知识的任务。GPT-NeoX-20B 是一个特别强大的小样本推理器,并且 在评估时,性能比类似大小的 GPT-3 和 FairSeq 模型高得多。是开源训练和评估代码以及模型权重。

1.模型架构

  • GPT-NeoX-20B 是一种自回归 transformer 解码器模型,它在很大程度上遵循 了 GPT-3 的模型**,但有一些明显的偏差**。
  • 该模型有 200 亿个参数、44 层、隐藏维度大小为 6144 和 64 个头。

旋转位置嵌入

  • RoFormer 一样,使用旋转嵌入 代替 GPT 模型中使用的学习位置嵌入。

在基础的位置嵌入上,关于m位置的token,注意力在m-n上,做线性依赖的嵌入空间进行提取

也就是Xm和Xn是各位置出现的,已经处理之后的m和n的token嵌入,Wtq和Wk是下面公式的查询(query)和key的权重

换句话说,如下图,

如果Enhanced的位置编码是1,经过编码后如虚线部分位置,通过公式进行变换(回传)编码部分。

在GPT-NeoX-20B中旋转嵌入适作用于编码向量的前25%,早期实验结果中证明性能和计算的有效性相对来说比较好。

更加高效的训练

并行注意力和全连接层

为了提高计算效率,需要并行计算和添加注意力层和前馈层。

初始化

在前馈输出层中,使用了可定义为 2/L√d 的初始化架构。(为防止激活随着深度和宽度的增加而变大。

密集层

GPT3 在密集层和稀疏层之间交替,而 GPT-NeoX-20B 仅使用密集层来降低实现复杂性。

2.训练

基于数据集Pile训练

Tokenization: BPE

3.结果

3.1.自然语言任务

GPT-NeoX-20B在某些任务(如ARC、LAMBADA、PIQA、PROST)上的表现优于FairSeq 13B,而在其他任务上表现较差。(例如 HellaSwag、LogiQA Zero-Shot)。在 32 项任务中,22 项表现良好,4 项表现不佳,6 项在误差范围内。

GPT-NeoX-20B在HellaSwag上的性能最低,在Zero-Shot和Five-Shot设置下的得分比FairSeq 13B低四倍。

3.2.数学任务

对于数学问题,GPT-3 和 FairSeq 模型的表现相似,而 GPT-J 和 GPT-NeoX 模型的表现始终更好。鉴于 GPT-J 与 Pile 数据集中许多方程的相关性,可以假设这是由于数据造成的,由于训练数据不公开,因此很难验证它们。

3.3.高级任务

在基于知识的高级任务中,MMMLU(多学科多项选择题)GPT-NeoX 和 FairSeq 模型优于 GPT-3,在五轮学习中尤为突出。

在之前的研究中,Zero-Shot 和 Few-Shot 之间的性能差异并不显著,但在 GPT-NeoX 和 FairSeq 模型的情况下,发现 Zero-Shot 之间的差异可以忽略不计,而当增加到 Five-Shot 时,性能提升明显更大。

强大的小样本学习

实验结果表明,与FairSeq模型相比,GPT-J和GPT-NeoX在Few-Shot设置中具有明显更大的优势。

与Zero-Shot相比,GPT-J-6B和GPT-NeoX-20B分别提高了0.0526和0.0598,而FairSeq 6.7B和13B型号分别提高了0.0051和0.0183。

扩展

大模型训练流程

  • 数据并行:模型的参数被复制到每个GPU上。每个GPU负责处理一部分独立的训练数据,并计算梯度。然后,这些梯度被汇总并应用于更新模型参数。这样,每个GPU都在处理整个模型的一部分数据,从而加速训练。
  • **Batch Size:**批量大小通常被等分到每个GPU上。例如,如果你有4个GPU,每个GPU可能处理总批量大小的1/4。
  • **模型参数同步:**在训练过程中,模型参数需要在不同的GPU之间同步,以确保它们保持一致。这可以通过梯度汇总和模型参数更新来实现。在深度学习框架中,通常会使用反向传播算法来计算每个GPU上的梯度,然后将这些梯度汇总起来,最后应用于更新模型参数。
  • **数据分发:**训练数据需要被分发到不同的GPU上。这可以通过数据切片或数据分区的方式实现。确保每个GPU都有足够的训练数据以进行有效的学习。
  • **模型架构:**在训练大型语言模型时,通常会使用分层的模型结构,以便更好地适应多GPU的训练。例如,可以使用分布式的Transformer架构。
  • **内存管理:**确保每个GPU的显存都足够容纳模型参数、梯度和训练数据。对于大型语言模型,可能需要特别注意内存的管理,以避免显存不足的问题。

参考文献

【1】Datasheet for the Pile -- arXiv Vanity (arxiv-vanity.com)

【2】Review --- GPT-NeoX-20B: An Open-Source Autoregressive Language Model | by Sik-Ho Tsang | Medium【3】Relative Positional Encoding - Jake Tae

相关推荐
AI大模型3 小时前
小白 & 程序员速看!快速入行大模型应用开发的完整实战指南,建议收藏
程序员·llm·agent
阿正的梦工坊4 小时前
DreamGym:通过经验合成实现代理学习的可扩展化
人工智能·算法·大模型·llm
山顶夕景4 小时前
【LLM应用】Codex & Codex CLI使用
大模型·llm·ai编程
yaocheng的ai分身14 小时前
AI现状报告——基于OpenRouter的100万亿Token实证研究
llm
Wilber的技术分享15 小时前
【大模型实战笔记 7】RAG技术:从原理到实战——基于Streamlit的智能文档问答系统
人工智能·笔记·langchain·llm·问答系统·rag·知识库检索
deephub16 小时前
自愈型RAG系统:从脆弱管道到闭环智能体的工程实践
人工智能·python·大语言模型·rag
CoderJia程序员甲16 小时前
GitHub 热榜项目 - 日榜(2025-12-6)
ai·开源·llm·github·ai教程
陈 洪 伟16 小时前
Transformer彻底剖析(1):GPT中的Transformer架构
gpt·深度学习·transformer
七夜zippoe16 小时前
基于ReAct框架的智能体构建实战 - 从原理到企业级应用
前端·javascript·react.js·llm·agent·react
阿正的梦工坊18 小时前
τ-bench:重塑Agent评估的工具-代理-用户交互基准
人工智能·机器学习·大模型·llm