自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Hanscal

关注NLP领域,聚集于QA,对话和知识图谱。

  • 博客(168)
  • 收藏
  • 关注

原创 SORA和大语言模型的区别

OpenAI的文生视频模型SORA与大语言模型(LLM)的主要区别在于它们的应用领域和处理的数据类型,数据处理能力、技术架构、多模态能力和创新点。SORA作为一款专注于视频生成的模型,展现了在处理视觉数据方面的独特优势和创新能力。

2024-03-10 22:36:32 437

原创 大语言模型的“大”体现在哪里

​上图中我们可以看到一台8卡的A100(80G)的服务器大概可以提供的计算量为5PFlop/s-day,假设GPT4有万亿参数量,其大概需要的计算量为75352 PFlop/s-day,如果需要15天训练完成的话,估计需要万卡的GPU集群。所以,大语言模型的规模不仅体现在参数数量上,还包括训练数据、计算资源上,这些“大”使得大规模语言模型的泛化能力和应用领域等都得到极大增强。大语言模型通常是通过大规模的文本数据进行训练的,这些数据包含了丰富的语言信息,有助于模型学习更准确的语言表示。

2024-03-09 22:00:01 449

原创 Transformer中的FlashAttention

因为Transformer的自注意力机制(self-attention)的计算的时间复杂度和空间复杂度都与序列长度有关,所以在处理长序列的时候会变的更慢,同时内存会增长更多,Transformer模型的计算量和内存占用是序列长度N的二次方。attention算法也是IO敏感的,从上面的图可以看出,通过对GPU显存访问的改进来对attention算法的实现进行优化,可以减少高带宽内存(High Bandwidth Memory,HBM)的访问,来提升模型的训练和推理速度。PS:欢迎扫码头像关注公众号^_^.

2024-03-08 10:29:11 952

原创 Transformer中的位置编码

在Transformer模型中,位置编码是一种特殊的编码方式,用于向模型提供关于输入序列中单词位置的信息。由于Transformer模型没有循环结构,无法像循环神经网络那样从输入序列中推断单词的位置顺序,因此需要引入位置编码来帮助模型理解单词在序列中的位置信息。Transformer 架构由于其自注意力机制 (Self-Attention Mechanism) 的特性,对序列中的元素没有固有的顺序感知。这意味着,如果不加以处理,Transformer 无法区分序列中的元素的相对位置。

2024-03-07 10:34:04 927

原创 大模型分布式并行技术--数据并行优化

也就是说上一个梯度的通信和下一个梯度的计算间并没有依 赖,通信和计算可以并行,让两者的耗时相互重叠掩盖,减少反向的耗时,下图为通信计算并行相互重叠示例。减少总的通信消耗, 可以通过减少通信频率来实现, 通信融合是一个可 行的手段,通过将 N 个梯度的 Allreduce 通信合并成一次 Allreduce 通信,可以减少 N- 1 次通信延迟时间。通信算子调度到通信流, 计 算算子调度到计算流, 同一个流上的算子间是顺序执行的, 不同流上的算子可以并行执行, 从而实现反向中梯 度通信和计算的并行重叠。

2023-11-01 19:21:17 242

原创 大模型分布式并行技术--数据并行

数据并行是最常见的并行形式, 因为它很简单。在数据并行训练中, 数据集被分割成几个碎片, 每个碎片被 分配到一个设备上。这相当于沿批次(Batch) 维度对训练过程进行并行化。每个设备将持有一个完整的模型副 本, 并在分配的数据集碎片上进行训练。在反向传播之后, 模型的梯度将被全部减少, 以便在不同设备上的模 型参数能够保持同步。主要分为两个操作: 输入数据切分和模型参数同步。数据并行示例。

2023-10-29 14:23:28 317

原创 大模型分布式并行技术--分布式系统

近年来, 大多数出现在顶级人工智能会议上的模型都是在多个 GPU 上训练的, 特别是随着基于 Transformer 的语言模型的提出。当研究人员和工程师开发人工智能模型时, 分布式训练无疑是一种常见的做法。传统的单 机单卡模式已经无法满足超大模型进行训练的要求,这一趋势背后有几个原因。模型规模迅速增加。2018 年的 BERT-Large 有 3.45 亿的参数, 2018 年的 GPT-2 有 15 亿的参数, 而 2020 年 的 GPT-3 有 1750 亿个参数。

2023-10-26 17:59:26 288

原创 大规模语言模型--灾难性遗忘

造成灾难性遗忘的一个主要原因是, 传统模型假设数据分布是固定或平稳的, 训练样本是独立同分布的, 所 以模型可以一遍又一遍地看到所有任务相同的数据, 但当数据变为连续的数据流时, 训练数据的分布就是非平稳的, 模型从非平稳的数据分布中持续不断地获取知识时, 新知识会干扰旧知识, 从而导致模型性能的快速下 降, 甚至完全覆盖或遗忘以前学习到的旧知识。灾难遗忘问题多年来一 直被人们所认识并被广泛报道,尤其是在计算机视觉领域,现在微调大语言模型也面临灾难性遗忘的问题,这个问题也出现在LLM微调和训练中。

2023-10-23 23:22:13 531

原创 大规模语言模型人类反馈对齐--PPO算法代码实践

在前面的章节我们已经知道,人类反馈强化学习机制主要包括策略模型、奖励模型、评论模型以及参考模型等部分。需要考 虑奖励模型设计、环境交互以及代理训练的挑战, 同时叠加大语言模型的高昂的试错成本。对于研究人员来说, 使用人类反馈强化学习面临非常大的挑战。RLHF 的稳定训练需要大量的经验和技巧。RLHF 的稳定训练需要大 量的经验和技巧,下面针对 PPO 算法的内部工作原理进行代码示意性分析。

2023-10-22 21:59:13 259

原创 大规模语言模型人类反馈对齐--RLAIF

这个 AI 标注的偏好是研究人员使用PaLM 2L 生成的, 然后在完整的偏好上训练 RM 数据集, 训练reward 模型 rϕ 的损失如下所示, yw 和 yl 分别代表人类偏好的和非偏好的回复。此外, 还有一些有趣的问题值得研究, 例如 RLHF 与 RLAIF 相结合是否可以优于单一的一种方法, 使用 LLM 直接分配奖励的效果如何, 改进 AI 标注器对齐是否会转化为改进的最终策略, 以及是否使用 LLM 与策略模型大小相同的标注器可以进一步改进策略(即模型是否可以“自我改进”)。

2023-10-17 18:20:24 177

原创 大规模语言模型人类反馈对齐--RLHF

大规模语言模型在进行监督微调后, 模型具备了遵循指令和多轮对话的能力, 具备了初步与用户进行对话 的能力。然而, 大规模语言模由于庞大的参数量和训练语料, 其复杂性往往难以理解和预测。当这些模型被部署 时, 它们可能会产生严重的后果, 尤其是当模型变得日渐强大、应用更加广泛、并且频繁地与用户进行互动。因 此,研究者追求将人工智能与人类价值观进行对齐, 提出了大语言模型输出的结果应该满足帮助性 (Helpfulness)、 真实性 (Honesty) 以及无害性 (Harmless) 的 3H 原则。

2023-10-16 17:54:25 333

原创 大规模语言模型人类反馈对齐--近端策略优化PPO

近端策略优化算法 (Proximal Policy Optimization,PPO) 即属于 AC 框架下的算法, 在采样策略梯度算法训练 方法的同时, 重复利用历史采样的数据进行网络参数更新, 提升了策略梯度方法的学习效率。实际计算时, 需 要从环境中采样很多轨迹 τ ,然后按照上述策略梯度公式 (或者添加各种可能优化) 对策略函数参数 θ 进行更新。

2023-10-15 23:25:23 132

原创 大规模语言模型人类反馈对齐--策略梯度

之前采样出来的数据都不能用了, 换句话说, 过程中的数据都只能用一次。但是在 PG 中, 对于某次策略更新的太大或者太小, 就会得到一个不好的 Policy,一个不好的和环境交互 就会得到一个不好的数据, 用这些不好的数据更新的策略很大概率也是不好的。其中, p(s1 ) 是初始状态 s1 发生的概率, pθ (at |st ) 为给定状态 st 策略函数采取动作 at 的概率, p(st+1|st , at ) 为 给定当前状态 st 和动作 at ,环境转移到状态 st+1 的概率。

2023-10-13 23:26:52 61

原创 大规模语言模型人类反馈对齐--强化学习

​OpenAI 推出的 ChatGPT 对话模型掀起了新的 AI 热潮, 它面对多种多样的问题对答如流, 似乎已经打破了 机器和人的边界。这一工作的背后是大型语言模型 (Large Language Model,LLM) 生成领域的新训练范式:RLHF (Reinforcement Learning from Human Feedback) ,即以强化学习方式依据人类反馈优化语言模型。过去几年里各种 LLM 根据人类输入提示 (prompt) 生成多样化文本的能力令人印象深刻。

2023-10-11 18:39:33 147

原创 大规模语言模型高效调参--混合高效微调系列(MAM Adapter,UniPELT)

近年来提出了多种参数高效的迁移学习方法, 这些方法仅微调少量(额外) 参数即可获得强大的性能。虽 然有效, 但人们对为什么有效的关键要素以及各种高效微调方法之间的联系知之甚少。Adapter 、Prefix Tuning、 LoRA (在结构上和公式上)看起来都不太一样,但是这三种方法有近似的效果?

2023-10-11 00:52:38 189

原创 大规模语言模型高效参数微调--LoRA 微调系列

前面提到, Adapter Tuning 存在训练和推理延迟, Prefix Tuning 难训且会减少原始训练数据中的有效文 字长度, 那是否有一种微调办法, 能改善这些不足呢, 在这样的动机驱动下, 有研究者提出了 LoRA(论文:LoRA: Low-Rank Adaptation of Large Language Models) ,LoRA 是 Low-Rank Adaptation 的简写, 它冻结了预先训练好的 模型权重, 通过低秩分解来模拟参数的改变量, 大大减少了下游任务的可训练参数的数量,

2023-10-09 23:52:00 1527

原创 大规模语言模型高效参数微调--Adapter 微调系列

至于 adapter 引进的模型参数, 假设 adapter 的输入的特征维度是 d,而中间的特征维度是 m,那么新增的模 型参数有:down-project 的参数 d*m+m ,up_project 的参数 m*d+d,总共 2md+m+d, 由于 m 远小于 d,所以真 实情况下, 一般新增的模型参数都只占语言模型全部参数量的 0.5%~8%。前者的一大问题是需要先验知识来确定顺序, 且模型容易遗忘之前任务 学到的知识,后者的问题是不同的任务会互相影响,也难以平衡数据集大小差距很大的任务。

2023-10-09 00:20:55 320

原创 大规模语言模型高效参数微调--P-Tuning 微调系列

同时, 近来的自动化搜索模版工作成本也比较高, 以前这种 离散化的 token 的搜索出来的结果可能并不是最优的, 导致性能不稳定。缺少深度提示优化: 在 Prompt Tuning 和 P-tuning 中,连续提示只被插入 transformer 第一层的输入 embedding 序列中, 在接下来的 transformer 层中, 插入连续提示的位置的 embedding 是由之前的 transformer 层计算出 来的, 这些会带来优化挑战, 因为序列长度的限制, 导致可调参数的数量是有限的;

2023-10-07 23:36:08 354

原创 大规模语言模型高效参数微调--BitFit/Prefix/Prompt 微调系列

Prompt token 的长度在 20 左右时的表现已经不错(超过 20 之后, 提升Prompt token 长度, 对模型的性能提升不明显了),同样的, 这个 gap 也会随着模型参数规模的提升而减小(即对于超大 规模模型而言,即使 Prompt token 长度很短,对性能也不会有太大的影响)。那么 prefix 的含义是什么呢?参数高效微调是指微调少量或额外的模型参数, 固定大部分预训练模型(LLM) 参数, 从而大大降低了计 算和存储成本, 同时, 也能实现与全量参数微调相当的性能。

2023-10-07 09:51:47 238

原创 大规模语言模型--提示学习和语境学习

有监督微调 (Supervised Finetuning, SFT) 又称指令微调 (Instruction Tuning) ,是指在已经训练好的语言模型 的基础上, 通过使用有标注的特定任务数据进行进一步的微调, 从而使得模型具备遵循指令的能力。经过海量 数据预训练后的语言模型虽然具备了大量的“知识”,但是由于其训练时的目标仅是进行下一个词的预测, 此时 的模型还不能够理解并遵循人类自然语言形式的指令。为了能够使得模型具有理解并响应人类指令的能力, 还 需要使用指令数据对其进行微调。

2023-10-06 00:05:20 336

原创 大规模语言模型--训练成本

目前,基于 Transformers 架构的大型语言模型 (LLM),如 GPT、T5 和 BERT,已经在各种自然语言处理 (NLP) 任务中取得了 SOTA 结果。将预训练好的语言模型(LM) 在下游任务上进行微调已成为处理 NLP 任务的一种 范式。与使用开箱即用的预训练 LLM (例如: 零样本推理) 相比, 在下游数据集上微调这些预训练 LLM 会带来 巨大的性能提升。但是, 随着模型变得越来越大, 在消费级硬件上对模型进行全部参数的微调(full fine-tuning) 变得不可行。

2023-10-03 18:47:04 683

原创 大规模语言模型--中文 LLaMA和Alpaca

如: Today is sunday. 则会分割成 [t,o,d,a,y, .... ,s,u,n ,d ,a,y ,.],对于 character 粒度分词, 其优点是词表极小, 比如: 26 个英文字母几乎可以 组合出所有词, 5000 多个中文常用字基本也能组合出足够的词汇;为了解决这个问题, 中文版的 LLaMA 在原始 LLaMA 模型的基础上, 扩充了包含 20K 中文 token 的中文词典, 提升了编码效率, 从而提升了模型处理和生成中文文本的能力, 增强了基础语义理 解能力。

2023-10-01 09:47:39 517

原创 大规模语言模型--LLaMA 家族

LLaMA 模型集合由 Meta AI 于 2023 年 2 月推出, 包括四种尺寸(7B 、13B 、30B 和 65B)。由于 LLaMA 的 开放性和有效性, 自从 LLaMA 一经发布, 就受到了研究界和工业界的广泛关注。LLaMA 模型在开放基准的各 种方面都取得了非常出色的表现, 已成为迄今为止最流行的开放语言模型。大批研究人员通过指令调整或持续 预训练扩展了 LLaMA 模型。特别需要指出的是, 指令调优 LLaMA 已成为一种主要开发定制专门模型的方法, 由于相对较低的计算成本。

2023-09-28 23:37:09 858 5

原创 大规模语言模型的模型结构--解码器结构(PaLM,BLOOM,InstructGPT系列)

与编码器结构(encoder-only) 的语言模型结构相反, 解码器结构(decoder-only) 的语言模型结构只包含trans- former 结构里的 decoder 部分。在 BERT 发布之前的 GPT- 1 就是 decoder-only 的语言模型, 但在 GPT-3 发布并展 示其惊人表现后, decoder-only 的语言模型数量呈现井喷式地增长, 直到现在依旧是占比最大的模型类型。

2023-09-27 17:14:00 334

原创 大规模语言模型的模型结构---编码器-解码器结构(GLM,UL2系列)

2020 年 Open AI 发布了由包含 1750 亿参数的神经网络构成的生成式大规模预训练语言模型 GPT-3 (Gener- ative Pre-trained Transformer 3)。开启了大规模语言模型的新时代。由于大规模语言模型的参数量巨大, 如果在 不同任务上都进行微调需要消耗大量的计算资源, 因此预训练微调范式不再适用于大规模语言模型。

2023-09-26 17:57:51 781

原创 从统计语言模型到预训练语言模型---预训练语言模型(BERT,GPT,BART系列)

基于 Transformer 架构以及 Attention 机制,一系列预训练语言模型被不断提出。

2023-09-23 15:27:16 338

原创 从统计语言模型到预训练语言模型---预训练语言模型(Transformer)

预训练模型的概念在计算机视觉领域并不陌生, 通常我们可以在大规模图像数据集上预先训练出一个通用 模型, 之后再迁移到类似的具体任务上去, 这样在减少对图像样本需求的同时, 也加速了模型的开发速度。计 算机视觉领域采用 ImageNet 对模型进行一次预选训练, 使得模型可以通过海量图像充分学习如何提取特征, 然 后再根据任务目标进行模型精调的范式影响, 自然语言处理领域基于预训练语言模型(Pre-trained Model,PLM ) 的方法也逐渐成为主流。

2023-09-22 13:18:03 133

原创 从统计语言模型到预训练语言模型---神经网络语言模型

随着神经网络的发展,神经语言模型(Neural Network Language Models,NNLM)展现出了比统计语言模型更强的学习能力,克服了N-gram语言模型的维度灾难,并且大大提升了传统语言模型的性能。神经网络先进的结构使其能有效的建模长距离上下文依赖,以词向量(Word Embedding)为代表的分布式表示的语言模型,深刻地影响了自然语言处理领域的其他模型与应用。神经网络语言模型的主要代表。

2023-09-21 07:51:55 94

原创 从统计语言模型到预训练语言模型---统计语言模型

统计语言模型语言模型, 是当前非规则自然语言处理的根基, 也是自然语言处理学科的精髓所在, 当我们在 判定一句话是否合适的时候, 可以通过计算概率的方式来判断该句子是否成立, 如果一个句子成立的概率很大, 那么这个句子是一个成立的句子概率就越大。实际运用中, 由于语言具备无穷多可能性, 再庞大的训练语料也无法覆盖所有的 n 元语法, 而语料中的零 频次并不等于零概率, 因此还需要使用平滑技术来解决这一问题, 产生更合理的概率, 对所有可能出现的字符 串都分配一个非零概率值, 从而避免零概率问题。

2023-09-20 10:48:52 64

原创 大模型值得探索的十个研究方向

随着大模型的规模增大,能力增强,极大的冲击了人工智能领域的研究方向,特别是对于自然语言处理研 究者来说,有很多老的问题解决了、消失了,有研究者在大模型时代没法找到自己的研究方向,感到焦虑和迷 茫,不过,在我看来,在像大模型这样的技术变革出现时,我们认识世界、改造世界的工具也变强了,会有更多 全新的问题和场景出现,等待我们探索。所以,不论是自然语言处理还是其他相关人工智能领域的研究者,都 应该庆幸技术革命正发生在自己的领域,发生在自己的身边,自己无比接近这个变革的中心,比其他人都更做 好了准备迎接这个新的时代

2023-09-19 10:28:53 548

原创 大语言模型的机遇和挑战

然而, 不同于通常的深度学习方法, 以 ChatGPT 为代表的生成式大模型, 除了能高质量完成自然语言生成类任务之外, 还具备以生成式框架完成各种开放域自然语言理解任务的能力. 只需要将模型输出转换为任务特定的输出格式, 无需针对特定任务标注大量的训练数据, ChatGPT 即可在少样本乃至零样本上, 达到令人满意的性能, 甚至可在某些任务上超过了特别设计并使用监督数据进行训练的模型. 因此, ChatGPT 对各种自然语言处理核心任务带来了巨大的, 不可避免的冲击和影响, 也酝酿着新的研究机遇.

2023-09-19 00:34:09 479

原创 语言建模的发展阶段以及大规模语言模型的背景介绍

通常,大型语言模型(LLM)是指包含数百亿(或更多)参数的语言模型,这些参数是在大量无标注文本数据上自监督学习方法训练的,例如模型 GPT-3、PaLM、Galactica 和 LLaMA。最近,通过在大规模语料库上预训练Transformer 模型,提出了预训练语言模型(PLMs),在解决各种自然语言处理(NLP)任务方面表现出强大的能力。有趣的是,当参数规模超过一定水平时,这些大型语言模型不仅能够显著提高性能,还展现了一些小型语言模型所没有的特殊能力。ps: 欢迎扫码头像关注微信公众号^-^.

2023-09-19 00:26:33 338

原创 python去掉中文直接空格,保留英文单词之间空格

python去掉中文直接空格,保留英文单词之间空格

2022-09-22 14:12:30 1030 1

原创 ubuntu查看显存占用信息

nvidia-smi命令可以输出显存占用进程:如果已经没有进程占用某个GPU,但是某个GPU显存仍然是被占用的。这个时候使用该命令,可以查看GPU被使用情况,列出使用的用户和进程信息。

2022-07-12 23:05:52 3515

原创 无需编写代码即可使用Python内置库的方法

下面介绍 8 个无需编写任何代码即可使用 Python 内置功能的例子。首先从 Python CLI(命令行界面)开始谈起。只要我们的电脑上安装了 Python 环境,我们就可以在 Python 命令行界面输入python --help显示所有支持的参数。由于命令输出的内容太长,上图仅显示了部分内容。这里最想强调的是-m mod参数,它会将 Python 模块以脚本的形式运行。因此,如果该模块的实现支持命令行操作,我们就可以在命令行直接使用它。有时候,我们想测试 ip 端口的出站网络流量,通常 telnet

2022-06-20 00:04:16 292

原创 docker中neo4j数据导入和导出

执行导出参数说明:-v:/data/neo4j本机数据目录;/data容器内数据目录--to:数据保存的路径(容期的绝对路径)[需要将数据拷贝到导入容器能见的位置进行导入】--database:数据库导入 首先停止要导入的neo4j数据库 执行导入参数说明:-v:/data/neo4j本机数据目录;/data容器内数据目录--from:数据保存的路径(容期的绝对路径)--database:数据库--force:强制覆盖原来的数据库...

2022-06-17 07:21:58 993

原创 github文件夹有白色箭头、文件夹不能打开的解决办法

一个架构系统的demo中,因为里面有几个子系统是clone别人的项目,导致github这个文件夹上显示白色箭头并且不能打开。原来是因为这个文件夹里面有.git隐藏文件,github就将该文件夹视为一个子系统模块了。解决办法就是:1、删除文件夹里面的.git文件夹2、执行git rm --cached [文件夹名]3、执行git add [文件夹名]4、执行git commit -m "msg"5、执行git push origin [branch_name]...

2022-06-12 18:21:36 2069 1

原创 Python操作selenium模拟网页点击

Selenium是一个用电脑模拟人操作浏览器网页,可以实现自动化,测试等!1. 安装2. 下载浏览器驱动Firefox浏览器驱动:geckodriverChrome浏览器驱动:chromedriver ,CNPM Binaries Mirror (npmmirror.com), taobao备用地址IE浏览器驱动:IEDriverServerEdge浏览器驱动:MicrosoftWebDriverOpera浏览器驱动:operadriverPhantomJS浏览器驱动:phantomjs需要把浏览器驱

2022-06-08 22:39:11 15484 1

原创 Pandas图解

下面将借助可视化的过程,讲解Pandas的各种操作。执行步骤:size列筛选出部分行然后将行的类型进行转换按照type列进行分组,计算中位数执行步骤:将数据按照size进行分组在分组内进行聚合操作执行步骤按照size列对数据进行排序按照size进行分组对分组内的height进行计算mergingpivot table...

2022-06-07 16:40:41 199

原创 Matplotlib学习(三)--其他格式数据可视化

结果如下图所示:结果如下图所示:结果如下图所示:若将8改成100,结果非常魔幻结果如下图所示:结果如下图所示:结果如下图:图1图2三种方法对应的结果如下图所示:图1图2图3结果如下图所示:......

2022-06-06 21:21:20 180

空空如也

空空如也

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

TA关注的人

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