自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

bqw的博客

没什么描述

  • 博客(454)
  • 资源 (2)
  • 收藏
  • 关注

原创 【自然语言处理】【大模型】BitNet:用1-bit Transformer训练LLM

​ 语言模型的规模不断扩大,这对部署带来了巨大的挑战。本文设计了一种可扩展且稳定的1-bit Transformer架构来实现大语言模型,称为BitNet。具体来说,使用BitLinear作为标准nn的替代品。实验结果表明BitNet能够显著减少存储占用和能力消耗,并且与最先进的8-bit量化和FP16 Transformer能力相当。此外,BitNet也表现出了类似于全精度Transformer的scaling law,这也表明其有潜力在保持效率和性能的同时,能够更加有效的扩展至更大的语言模型。

2024-03-06 21:31:40 1239

原创 【自然语言处理】BitNet b1.58:1bit LLM时代

论文地址:https://arxiv.org/pdf/2402.17764.pdf。

2024-03-03 10:42:15 1032

原创 【深度学习】神经正切核(NTK)理论

​ 本文来自于《Theory of Deep Learning》,主要是对神经正切核(NTK)理论进行介绍。这里主要是补充了一些基本概念以及部分推导过程。作为软件工程出身,数学不是特别好,有些基础知识和推导步骤没办法一次补足。若有机会,后续会逐步补全缺失的部分。​ 设X1,…,XnX_1,\dots,X_nX1​,…,Xn​为nnn个独立的随机变量,且XiX_iXi​的边界为[ai,bi][a_i,b_i][ai​,bi​]。令Xˉ=1n∑i=1nXi\bar{X}=\frac{1}{n}\sum_{i=1

2024-01-02 14:48:57 694

原创 【自然语言处理】【大模型】 ΨPO:一个理解人类偏好学习的统一理论框架

论文地址:https://arxiv.org/pdf/2310.12036.pdf​ 通过强化学习来学习人类偏好(RLHF)主要依赖于两个重要的近似。第一个假设是成对的偏好可以被单个奖励值所替代;第二个假设是基于奖励值训练的奖励模型能够泛化到分布外的数据上。近期,DPO方法已经可以从收集的数据中直接学习策略,而不需要奖励建模阶段。然而,这个方法严重依赖于第一个假设。​ 本文中,试图对这些实际中的算法进行更深入的理论理解。特别地,本文推导了一个新的通用目标函数ΨPO\Psi\text{PO}ΨPO来从人类偏好

2023-12-27 22:17:02 1094

原创 【强化学习】PPO:近端策略优化算法

近端策略优化算法论文地址:https://arxiv.org/pdf/1707.06347.pdf。

2023-12-24 20:51:32 939

原创 【自然语言处理】【大模型】VeRA:可调参数比LoRA小10倍的低秩微调方法

​ LoRA是降低微调LLM时降低可训练参数的一种方法,但是将其应用在更大的模型仍然面临着挑战。本文提出了了一种基于向量的随机矩阵适配(VeRA,Vector-based Random Matrix Adaptation)。与LoRA相比,其可以将训练参数的数量减少10倍,但保持相同的性能。​ LoRA微调两个低秩矩阵的乘积来适应LLM。正式来说,对于预训练权重矩阵W0∈Rm×nW0​∈Rm×n,权重更新矩阵被约束为低秩分解,即hW0xΔWxW0xBA。

2023-12-03 17:47:40 1007

原创 【自然语言处理】【大模型】赋予大模型使用工具的能力:Toolformer与ART

​ 本文介绍了两种赋予到模型使用工具能力的方法:Toolformer和ART。Toolformer的思路:通过prompt令语言模型生成一些能够调用工具的样本,然后利用语言模型对文本的困惑度来过滤这些样本,得到高质量的数据集。最后,利用高质量数据集微调语言模型,赋予其使用工具的能力。ART的思路:人工构建一下常见的工具使用样本,然后利用新任务与已有任务的相似性来辅助语言模型使用工具。(ART文章写的真是一言难尽)​ 两种方法虽然实现思路不同,但是仍然属于prompt工程范畴。

2023-11-19 12:50:58 941

原创 【自然语言处理】【长文本处理】RMT:能处理长度超过一百万token的Transformer

总的来说,RMT的思路简单。相比Transformer-XL来说,片段间传递的参数会少很多。RMT采用递归的方式传递信息,那么训练时梯度也需要回传,这导致训练时不太能并行。原始论文中采用decoder-only架构,但是在扩展至百万tokens的实验中采用了encoder-only架构,是decoder-only的效果不够好吗?评测的任务总体比较简单,迁移至当前的LLM上效果怎么样还比较难以确定。

2023-10-29 18:56:30 1140

原创 【自然语言处理】【大模型】MPT模型结构源码解析(单机版)

​ MPT是由MosaicML团队开源出来了英文预训练大模型,共开源了4个模型:MPT-7B Base、MPT-7B-StoryWriter-65k+、MPT-7B-Instruct、MPT-7B-Chat。

2023-09-23 13:11:28 755

原创 【自然语言处理】【大模型】RWKV:基于RNN的LLM

RWKV:基于RNN的LLM​ 基于Transformer的LLM已经取得了巨大的成功,但是其在显存消耗和计算复杂度上都很高。RWKV是一个基于RNN的LLM,其能够像Transformer那样高效的并行训练,也能够像RNN那样高效的推理。

2023-09-17 19:23:28 1057

原创 【深度学习】【分布式训练】一文捋顺千亿模型训练技术:流水线并行、张量并行和3D并行

一文捋顺流水线并行、张量并行与3D并行​ 流水线性并行和张量并行都是对模型本身进行划分,。简单来说,流水线并行划分模型,即按照对模型进行划分;张量并行则是划分模型。3D并行则是将流行线并行、张量并行和数据并行同时应用到模型训练中。

2023-09-03 20:40:44 324

原创 【Megatron-DeepSpeed】张量并行工具代码mpu详解(四):张量并行版Embedding层及交叉熵的实现及测试

张量并行版Embedding层及交叉熵的实现及测试​ Megatron-DeepSpeed是DeepSpeed版本的NVIDIA Megatron-LM。像BLOOM、GLM-130B等主流大模型都是基于Megatron-DeepSpeed开发的。这里以BLOOM版本的为例,介绍其模型并行代码mpu的细节(位于megatron/mpu下)。​。

2023-08-13 20:55:26 455

原创 【Megatron-DeepSpeed】张量并行工具代码mpu详解(三):张量并行层的实现及测试

Megatron-DeepSpeed:张量并行的实现及测试​ Megatron-DeepSpeed是DeepSpeed版本的NVIDIA Megatron-LM。像BLOOM、GLM-130B等主流大模型都是基于Megatron-DeepSpeed开发的。这里以BLOOM版本的为例,介绍其模型并行代码mpu的细节(位于megatron/mpu下)。​。

2023-08-06 21:07:22 524

原创 【Megatron-DeepSpeed】张量并行工具代码mpu详解(二):Collective通信操作的封装mappings

Collective通信操作的封装mappings​ Megatron-DeepSpeed是DeepSpeed版本的NVIDIA Megatron-LM。像BLOOM、GLM-130B等主流大模型都是基于Megatron-DeepSpeed开发的。这里以BLOOM版本的为例,介绍其张量并行代码mpu的细节(位于megatron/mpu下)。​

2023-07-15 16:48:13 539

原创 【Megatron-DeepSpeed】张量并行工具代码mpu详解(一):并行环境初始化

Megatron-DeepSpeed:并行环境初始化​ Megatron-DeepSpeed是DeepSpeed版本的NVIDIA Megatron-LM。像BLOOM、GLM-130B等主流大模型都是基于Megatron-DeepSpeed开发的。这里以BLOOM版本的为例,介绍其张量并行代码mpu的细节(位于megatron/mpu下)。

2023-07-04 21:13:16 920 3

原创 【深度学习】【分布式训练】DeepSpeed:AllReduce与ZeRO-DP

deepspeed核心技术ZeRO与AllReduce的关系

2023-06-24 18:56:47 1128

原创 【深度学习】混合精度训练与显存分析

混合精度训练与显存分析​ 关于参数精度的介绍可以见文章https://zhuanlan.zhihu.com/p/604338403相关博客。

2023-06-04 11:29:08 481

原创 【自然语言处理】【大模型】ChatGLM-6B模型结构代码解析(单机版)

ChatGLM-6B模型结构代码解析(单机版)​ 本文介绍ChatGLM-6B的模型结构,代码来自https://huggingface.co/THUDM/chatglm-6b/blob/main/modeling_chatglm.py。

2023-05-29 22:21:09 4828 3

原创 【自然语言处理】【大模型】BLOOM模型结构源码解析(单机版)

BLOOM模型结构源码解析(单机版)​ 本文基于transformers中BLOOM模型代码来解析BLOOM的原理及实现。

2023-05-15 22:19:44 1405 3

原创 【自然语言处理】【大模型】CodeGen:一个用于多轮程序合成的代码大语言模型

​ 程序合成(program synthesis)的目标是自动化编程过程,从而生成能够满足用户意图的计算机程序。程序合成面临两个关键的挑战:(1) 搜索空间难以处理;(2) 难以确定用户意图。为了解决搜索空间的问题,本文将程序合成任务形式化为语言建模过程,即基于前面的tokens预测下一个token的条件概率分布。​程序合成需要理解用户的意图。用户通常通过逻辑表达式、伪代码、输入-输出示例、或者自然语言表达意图。逻辑表达式和伪代码通常需要用户具有相关领域知识,成本比较高。输入-输出示例。

2023-05-09 22:42:56 1631

原创 【自然语言处理】【大模型】CodeGeeX:用于代码生成的多语言预训练模型

​ 代码生成的目标是:给定人类意图的描述(例如:“写一个阶乘函数”),系统自动生成可执行程序。这个任务由来已久,解决的方案也层出不穷。近期,通过将程序看作是语言序列,利用深度学习的transformer架构进行建模,显著的改善了代码生成的质量。特别是当大规模的开源代码数据与大语言模型相结合。​ OpenAI的12B模型CodeX证明了在数十亿行公开代码上预训练的大模型的潜力。通过使用生成式预训练的方式,CodeX能够很好地解决python中的入门级编程问题。

2023-05-07 16:27:27 5634 1

原创 【自然语言处理】【大模型】LaMDA:用于对话应用程序的语言模型

​ 语言模型的预训练是自然语言处理中非常有前景的研究方向。预训练会使用无标注的文本,能够结合大规模数据集和大模型来实现更好的效果或者新的能力。例如,GPT-3是一个在大规模无标注文本上训练的175B参数模型,并展现出令人影响深刻的few-shot learning能力。​ 对话模型(大语言模型最有趣的应用之一)成功利用了Transformers表示文本中长距离依赖的能力。与通用语言模型类似,对话模型也非常适合大规模。模型的尺寸和对话质量有很强的关联。

2023-04-24 21:43:13 1283

原创 【自然语言处理】【大模型】极低资源微调大模型方法LoRA以及BLOOM-LORA实现代码

极低资源微调大模型方法LoRA以及BLOOM-LORA实现代码。

2023-04-14 22:51:39 3197 2

原创 【自然语言处理】【大模型】DeepMind的大模型Gopher

​ 使用自然语言进行交流是智能的核心,因为其可以在人类和人工智能系统之间有效地分享想法。语言的普遍性使我们能够使用自然语言输入来表达许多智能任务,并产生自然语言输出。​ 使用语言模型作为智能的一部分与它最初的应用形成了鲜明的对比:通过有限带宽的通信信道来传输文本。香农的《Mathematical Theory of Communication》将自然语言的统计建模与压缩关联起来,表明衡量语言模型的交叉熵相当于衡量其压缩率。

2023-04-06 17:29:20 1747

原创 【自然语言处理】【大模型】DeepSpeed+Transformers:简单快捷上手百亿参数模型微调

​ 本文以百亿大模型FLAN-T5 XXL为例,展示如何使用DeepSpeed+Transformers来快速上手百亿参数模型的微调。​ FLAN-T5是经过instruction tuning的T5模型,关于instruction tuning可以看文章【自然语言处理】【ChatGPT系列】FLAN:微调语言模型是Zero-Shot学习器。本文选用FLAN-T5 XXL模型作为示例,该模型参数量约为11B。​ 此外,本文涉及到混合精度训练和ZeRO的配置,相关知识可以看文章:​ 为了简洁明了,模型训练相关

2023-03-29 23:31:21 1419

原创 【深度学习】【分布式训练】Collective通信操作及Pytorch示例

​ 大模型时代,单机已经无法完成先进模型的训练和推理,分布式训练和推理将会是必然的选择。各类分布式训练和推断工具都会使用到Collective通信。网络上大多数的教程仅简单介绍这些操作的原理,没有代码示例来辅助理解。本文会介绍各类Collective通信操作,并展示pytorch中如何使用。​ 将各个显卡的张量进行聚合(sum、min、max)后,再将结果写回至各个显卡。​ 将张量从某张卡广播至所有卡。​ 执行同AllReduce相同的操作,但结果仅写入具有的某个显卡。​ 每个显卡上有一个大小为N的张量,共

2023-03-26 11:35:52 1285 1

原创 【自然语言处理】【大模型】Chinchilla:训练计算利用率最优的大语言模型

​ 近期出现了一些列的大语言模型(Large Language Models, LLM),最大的稠密语言模型已经超过了500B的参数。这些大的自回归transformers已经在各个任务上展现出显著效果。​ 训练LLM的计算和能源消耗是巨大的,并且随着模型尺寸的增加而增加。实际中,分配的计算预算是提前知道的:有多少机器可用以及我们想使用它们多久。通常训练LLM只会训练一次,在给定计算预算的情况下准确估计最优模型的超参数是至关重要的。​展示了自回归语言模型的参数数量和其表现有着幂律关联。

2023-03-19 16:43:31 3992

原创 【自然语言处理】【大模型】大语言模型BLOOM推理工具测试

​ BLOOM的原理见​ BLOOM是由HuggingFace推出的大模型,其参数量达到176B(GPT-3是175B)。目前超过100B参数量且能够支持中文的开源大模型只有BLOOM和GLM-130B。由于HuggingFace是著名开源工具Transformers的开发公司,很多推理工具都会支持Transformers中的模型。​ LLM(大语言模型)推理的两个问题:(1) 单张显卡无法容纳整个模型;(2) 推理速度太慢。本文初步整理了一些推理大模型的工具和代码,并简单测试了推理速度。

2023-03-05 21:47:18 3373 3

原创 【自然语言处理】【大模型】GLM-130B:一个开源双语预训练语言模型

​ 大语言模型(LLMs),特别是参数超过100B的模型呈现出诱人的scaling laws,其会突然涌现出zero-shot和few-shot能力。具有175B参数的GPT-3率先对100B尺度的LLM进行了研究:在各种基准上,使用32个标注示例可以显著超越全监督的BERT-Large模型。然而,GPT-3本身以及如何训练仍然是无法公开获得的。训练出如此规模的高质量LLM,并对每个人分享模型和训练过程非常的有价值。​ 我们的目标是预训练一个开源且高准确率的100B模型。

2023-02-20 21:47:04 7707 1

原创 【自然语言处理】【大模型】用于大型Transformer的8-bit矩阵乘法介绍

​ 语言模型正变的越来越大,PaLM已有有540B的参数量,而OPT、GPT-3和BLOOM则大约有176B参数量。下图是近些年语言模型的尺寸。​ 这些模型很难在常用设备上运行。例如,仅仅推理BLOOM-176B就需要8x 80GB A00 GPUs。而为了微调BLOOM-176B则需要72个GPU。PaLM则需要更多的资源。​ 这些巨型模型需要太多GPUs才能运行,因此需要寻找方法来减少资源需求并保证模型的性能。已经有各种技术用来减小模型尺寸,例如量化、蒸馏等。

2023-02-13 20:37:13 2144

原创 【自然语言处理】【大模型】BLOOM:一个176B参数且可开放获取的多语言模型

​ 预训练语言模型已经成为了现代自然语言处理pipeline中的基石,因为其在少量的标注数据上产生更好的结果。随着ELMo、ULMFiT、GPT和BERT的开发,使用预训练模型在下游任务上微调的范式被广泛使用。随后发现预训练语言模型在没有任何额外训练的情况下任务能执行有用的任务,进一步证明了其实用性。此外,根据经验观察,语言模型的性能随着模型的增大而增加(有时是可预测的,有时是突然的),这也导致了模型规模越来越多的趋势。抛开环境的问题,训练大语言模型(LLM)的代价仅有资源丰富的组织可以负担的起。

2023-02-06 20:51:46 5628

原创 【自然语言处理】【大模型】PaLM:基于Pathways的大语言模型

​ 近些年,超大型神经网络在语言理解和生成的广泛任务上实现了令人惊讶的效果。这些模型通常是在大规模文本语料上,使用填充式的预训练目标和encoder-only或者encoder-decoder架构进行训练,然后通过微调来适应下游的具体任务。虽然这些模型在数千个自然语言任务上实现了state of the art,但缺点是其需要大量任务相关的训练样本来微调模型。此外,至少有一部分参数需要更新来拟合任务,这增加了模型训练和部署的复杂性。

2023-01-30 21:42:21 3914

原创 【自然语言处理】【分布式训练及推理】推理工具DeepSpeed-Inference

推理工具DeepSpeed-Inference​ DeepSpeed-Inference是DeepSpeed框架在推理方面的扩展。DeepSpeed-Inference合并了张量、流水线并行以及自定义优化cuda核等并行化技术。DeepSpeed提供了无缝推理模式来兼容DeepSpeed、Megatron和HuggingFace训练的Transformer模型。DeepSpeed-Inference集成了模型并行技术,从而使得可以在多个GPU上进行大模型的推理。

2023-01-28 16:51:36 6114 11

原创 【自然语言处理】【chatGPT系列】大语言模型可以自我改进

​ 规模(scaling)(scaling)能够使大语言模型(LLM)(LLM)在各类自然语言处理任务(NLP)(NLP)上实现了。使得大语言模型在未见过的任务上表现的很好;展示了大模型在各种任务上的推理能力;通过自评估多条推理路径进一步改善的效果。​ 尽管在大规模语料库上训练的模型具有令人难以置信的能力,根本性使模型超过仍然需要在大量的高质量监督数据集上进行微调。FLANFLAN和T0\text{T0}T0规划了数十个基准NLP\text{NLP}NLP。

2023-01-12 20:27:59 2462

原创 【自然语言处理】【ChatGPT系列】WebGPT:基于人类反馈的浏览器辅助问答

自动使用浏览器的大语言模型。

2023-01-05 21:56:14 6327 2

原创 【自然语言处理】【ChatGPT系列】FLAN:微调语言模型是Zero-Shot学习器

​ 大语言模型(例如GPT-3GPT-3)已经展现出了非常好的的能力。然而,在上并不成功。例如,GPT-3GPT-3在阅读理解、问答和自然语言推断上的zero-shotzero-shot效果远差于few-shotfew-shot。一个潜在的原因是,不使用few-shotfew-shot样例模型很难在与预训练数据形式不一样的promptsprompts上表现良好。​ 本文探索一种改善大语言模型zero-shotzero-shot效果的简单方法,这将扩大语言模型的受众。NLP。

2023-01-02 12:21:29 3755 7

原创 【自然语言处理】【ChatGPT系列】ChatGPT的智能来自哪里?

​ChatGPT火了!作为开放域对话系统,ChatGPT展示出了出乎意料的智能。在人们惊讶ChatGPT效果的同时,其"胡编乱造"的结果也让人担忧。​ChatGPT到底"只是"一个闲聊系统,还是意味着新的变革?如果只从使用者的角度分析,显然无法回答这个问题。不妨从"技术"的角度看看,ChatGPT到底是现有技术的极限还是新技术的起点?

2022-12-25 22:38:48 4329 2

原创 【自然语言处理】【ChatGPT系列】Chain of Thought:从大模型中引导出推理能力

​ 语言模型为自然语言处理带来了革命,而扩大语言模型规模可以提高下游任务效果、样本效率等一系列的好处。然而,单纯扩大语言模型的尺寸并不能够使算术、常识和符号推理获得更好的表现。文本尝试使用简单的方法来解锁大规模语言模型的推理能力,该方法主要来自于两个想法:(1) 算术推理能够从自然语言论据中受益,从而得到最终的答案。先前的研究通过从头训练或者微调预训练模型从而赋予模型生成自然语言中间步骤的能力。(2) 大规模语言模型通过promptingprompting提供了的能力。

2022-12-20 19:48:30 5653

原创 【自然语言处理】【ChatGPT系列】大模型的涌现能力

​ 语言模型已经彻底改变了自然语言处理(NLP)(NLP)。总所周知,增加语言模型的规模能够为一系列下游的NLP\text{NLP}NLP任务带来更好的效果和样本效率。在某些场景中,模型规模对于模型的效果可以通过预测。但是,某些下游任务的效果并没有随着规模的上升而改善。​ 本文讨论了大规模语言模型的涌现能力,一种不可预测的现象。涌现这一概念已经在物理、生物、计算机科学等领域被讨论了很长时间。本文考虑涌现的一般性定义,来自于诺贝尔物理学奖得主。

2022-12-11 09:28:23 9517 2

原创 【自然语言处理】【文本生成】CRINEG Loss:学习什么语言不建模

论文地址:https://arxiv.org/pdf/2211.05826.pdf​ 近些年来,随着Transformers\text{Transformers}Transformers的崛起,语言模型和对话代理变的越来越强大,以至于可以进行各种交互。然而,采用标准的语言模型训练、缩放模型尺寸和大量的训练数据仍然有大量的问题无法解决。特别地,模型仍然会遭受毒性和偏见的影响、缺乏连贯性以及不能解决用户的意图。相反,越来越多的工作正在研究如何将这些信息融入训练目标中,从而超越标准的语义建模目标函数。​ 在本文中

2022-12-05 08:29:47 1273

basic-miktex-2.9.6643-x64.exe

MikTeX是Tex/LaTex最新的实现程序,使用Anaconda将文档保存成PDF时需要安装。

2018-04-04

Linux下模拟软件互斥实现算法

在Linux下,模拟实现四种软件互斥算法:Dekker,Peterson,Lamport,Eisenburg-Mcguire.

2012-09-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除