深度学习
文章平均质量分 87
舒克与贝克
AI 学习与生活
展开
-
LLM分布式训练---流水线并行
所谓流水线并行,就是由于模型太大,无法将整个模型放置到单张GPU卡中;因此,将模型的不同层放置到不同的计算设备,降低单个计算设备的显存消耗,从而实现超大规模模型训练。流水线并行PP(Pipeline Parallelism),是一种最常用的并行方式,也是最初Deepspeed和Megatron等大模型训练框架都支持的一种并行方式。如下图所示,模型共包含四个模型层(如:Transformer层),被切分为三个部分,分别放置到三个不同的计算设备。原创 2024-05-06 14:00:53 · 987 阅读 · 0 评论 -
[LLM]大模型训练DeepSpeed(三)
在训练脚本中导入 DeepSpeed 模块:在训练脚本中导入 Trainer 模块:创建 Trainer 对象,将模型、训练数据集、优化器等参数传入:args=args,使用 DeepSpeed 命令行工具运行训练脚本(单机):其中,--num_gpus表示使用的 GPU 数量。hostfile增加hostfile文件,填写host的相应的gpu数量(slots=4代表有4个gpu)include参数,指定机器和gpu,如下代表使用host1机器的3号和host2的2、3号gpu。原创 2024-04-28 12:59:26 · 674 阅读 · 0 评论 -
[LLM]大模型基础知识点--大模型与LLM
定义:LLM是一种特定类型的大模型,专门用于处理和理解自然语言。大型语言模型(LLM)是基于人工智能的先进模型,经过训练,它可以密切反映人类自然交流的方式处理和生成人类语言。这些模型利用深度学习技术和大量训练数据来全面理解语言结构、语法、上下文和语义。特点:LLM通过学习庞大的文本数据集,能够执行多种语言任务,如文本生成、翻译、摘要、问答等。示例:ChatGPT的GPT-3是一个典型的LLM,它拥有1750亿个参数,能够处理各种复杂的语言任务。原创 2024-03-20 14:22:35 · 970 阅读 · 0 评论 -
[LLM]大模型八股知识点(一)
LLM(Large Language Model,大型语言模型)是指基于大规模数据和参数量的语言模型。具体的架构可以有多种选择,以下是一种常见的大模型LLM的架构介绍:Transformer架构:大模型LLM常使用Transformer架构,它是一种基于自注意力机制的序列模型。Transformer架构由多个编码器层和解码器层组成,每个层都包含多头自注意力机制和前馈神经网络。这种架构可以捕捉长距离的依赖关系和语言结构,适用于处理大规模语言数据。原创 2024-03-19 20:55:45 · 1277 阅读 · 0 评论 -
[LLM]大模型八股知识点(六)
💡提示学习(Prompting)是一种在机器学习中使用人类编写的提示或示例来辅助模型进行学习和推理的技术。在自然语言处理任务中,提示通常是一段文字或问题,用于指导模型生成或理解特定的输出。提示学习可以用于各种自然语言处理任务,包括文本分类、命名实体识别、情感分析、机器翻译等。在这些任务中,模型需要根据输入的文本来进行预测或生成输出。通过提供明确的提示,可以引导模型关注特定的信息或完成特定的任务。提示可以采用不同的形式,例如:通过提示学习,可以改善模型的性能,提高其准确性和鲁棒性。原创 2024-03-20 14:09:36 · 754 阅读 · 0 评论 -
[LLM]大模型八股知识点(五)
位置编码是一种用于在序列数据中为每个位置添加位置信息的技术。在自然语言处理中,位置编码通常用于处理文本序列。由于传统的神经网络无法直接捕捉输入序列中的位置信息,位置编码的引入可以帮助模型更好地理解和处理序列数据。在Transformer模型中,位置编码通过为输入序列中的每个位置分配一个固定的向量来实现。这些向量会与输入序列中的词向量相加,以融合位置信息。位置编码的设计目的是使模型能够区分不同位置的输入。在Transformer模型中,使用了一种特殊的位置编码方式,即正弦和余弦函数的组合。原创 2024-03-20 14:06:02 · 971 阅读 · 0 评论 -
[LLM]大模型八股知识点(四)
大语言模型进行推理时,显存涨得很多且一直占着显存不释放的原因主要有以下几点:模型参数占用显存:大语言模型通常具有巨大的参数量,这些参数需要存储在显存中以供推理使用。因此,在推理过程中,模型参数会占用相当大的显存空间。输入数据占用显存:进行推理时,需要将输入数据加载到显存中。对于大语言模型而言,输入数据通常也会占用较大的显存空间,尤其是对于较长的文本输入。中间计算结果占用显存:在推理过程中,模型会进行一系列的计算操作,生成中间结果。这些中间结果也需要存储在显存中,以便后续计算使用。原创 2024-03-20 14:03:04 · 737 阅读 · 0 评论 -
[LLM]大模型八股知识点(三)
PEFT(Performance Estimation and Modeling for Fine-Tuning)是一种用于微调任务的性能估计和建模方法。它的目的是帮助研究人员和从业者在微调过程中更好地理解和预测模型的性能,并进行更有效的模型选择和调优。PEFT的主要思想是通过预测模型在微调任务上的性能,提供对不同模型和参数设置的性能估计。这样可以避免在大规模数据集上进行昂贵的微调实验,从而节省时间和计算资源。原创 2024-03-20 13:59:54 · 795 阅读 · 0 评论 -
[LLM]大模型八股知识点(二)
查询内容:根据文档的特点和领域知识,确定用户可能会查询的内容。总之,通过领域特定训练、增加领域知识、优化检索算法、数据增强和样本平衡、引入外部知识库以及收集用户反馈和迭代优化等方法,可以改进基于LLM和向量库的文档对话在垂直领域中的表现。微调和优化:使用预训练的模型作为起点,通过在特定任务上进行微调和优化,使模型能够更好地理解query和context,并生成更准确、连贯的response。评估和反馈:定期评估模型的性能,使用一些评估指标,如BLEU、ROUGE等,来衡量生成的response的质量。原创 2024-03-20 09:59:03 · 614 阅读 · 0 评论 -
[LLM] 大模型基础|预训练|有监督微调SFT | 推理
向量来屏蔽不希望计算loss的部分,下面就是数据构造的一个示意:做的事情就是拼接prompt和answer,并在answer两侧添加一个开始和结束的符号,算一下prompt/instruction的长度,以及后面需要pad的长度,然后生成一个mask向量,answer部分为1,其他部分为0。,也就是transformer(X)的维度还是(1,10,768),接下来就是基于它来进行预测了,因为要预测哪个词,词的可能情况就是词表的大小,所以做的就是一个。通常LLM的预训练是无监督的,但微调过程往往是有监督的。原创 2024-03-18 16:45:22 · 1609 阅读 · 1 评论 -
[LLM]大语言模型文本生成—解码策略(Top-k & Top-p & Temperature)
在大模型训练好之后,如何对训练好的模型进行解码(decode)是一个火热的研究话题。在自然语言任务中,我们通常使用一个预训练的大模型(比如GPT)来根据给定的输入文本(比如一个开头或一个问题)生成输出文本(比如一个答案或一个结尾)。为了生成输出文本,我们需要让模型逐个预测每个 token ,直到达到一个终止条件(如一个标点符号或一个最大长度)。在每一步,模型会给出一个概率分布,表示它对下一个单词的预测。原创 2024-03-18 12:59:03 · 1711 阅读 · 0 评论 -
[深度学习]让你的PyTorch模型更快地训练的一些技巧
This blog post outlines techniques for improving the training performance of your PyTorch model without compromising its accuracy. To do so, we will wrap a PyTorch model in a LightningModule and use the Trainer class to enable various training optimization原创 2023-05-04 18:27:14 · 103 阅读 · 0 评论 -
[深度学习]人工智能论文阅读网站
一个读人工智能的论文网站:Paperswithcodepaperswithcode.com/https://link.zhihu.com/?target=https%3A//paperswithcode.com/类别丰富,涵盖了各个人工智能的方向文章,当然也包括各领域的经典论文原创 2022-06-09 16:36:19 · 2227 阅读 · 1 评论 -
[深度学习] AutoDis --- KDD2021 连续特征的Embedding学习框架
论文名:An Embedding Learning Framework for Numerical Features in CTR Prediction开源代码:AutoDis1. 背景介绍在CTR预估模型中,大多数模型都遵守Embedding & Feature Interaction(FI)的范式。以往的大多数研究都聚焦于网络结构的设计,以更好的捕获显式或隐式的特征交互,如Wide&Deep的wide部分,DCN中的CrossNet, DeepFM的FM部分,DIN的注意原创 2021-10-19 14:45:59 · 1828 阅读 · 2 评论 -
[深度学习] FM & FFM 算法基本原理
在推荐系统和计算广告业务中,点击率CTR(click-through rate)和转化率CVR(conversion rate)是衡量流量转化的两个关键指标。准确的估计CTR、CVR对于提高流量的价值,增加广告及电商收入有重要的指导作用。无论使用什么类型的模型,点击率这个命题可以被归纳到二元分类的问题,我们通过单个个体的特征,计算出对于某个内容,是否点击了,点击了就是1,没点击就是0。对于任何二元分类的问题,最后我们都可以归结到逻辑回归上面。早期的人工特征工程 + LR(Logisti...原创 2021-06-23 10:39:41 · 1454 阅读 · 1 评论 -
[深度学习] 自然语言处理 --- Self-Attention(三) 知识点与源码解析
在当前的 NLP 领域,Transformer / BERT 已然成为基础应用,而 Self-Attention 则是两者的核心部分,下面尝试用 Q&A 和源码的形式深入 Self-Attention 的细节。一 Q&A1. Self-Attention 的核心是什么?Self-Attention 的核心是用文本中的其它词来增强目标词的语义表示,从而更好的利用上下文的信息。2. Self-Attention 的时间复杂度是怎么计算的?Self-Attention ..原创 2021-04-20 20:09:59 · 1887 阅读 · 2 评论 -
[深度学习] 自然语言处理 --- Self-Attention(二) 动画与代码演示
一 Self AttentionSelf Attention也经常被称为intra Attention(内部Attention),最近一年也获得了比较广泛的使用,比如Google最新的机器翻译模型内部大量采用了Self Attention模型。在一般任务的Encoder-Decoder框架中,输入Source和输出Target内容是不一样的,比如对于英-中机器翻译来说,Source是英文句子,Target是对应的翻译出的中文句子,Attention机制发生在Target的元素Query和Source原创 2021-04-20 14:35:38 · 721 阅读 · 1 评论 -
资源 | 普通程序员如何自学机器学习
机器学习工程师自学指南 本文将会介绍机器学习的方方面面,从简单的线性回归到最新的神经网络,你不仅仅能学会如何使用它们,并且还能从零进行构建。 以下内容以计算机视觉为导向,这是学习一般知识的最快方法,并且你从中获得的经验可以很容易地迁移到机器学习的其他领域。 本文我们将会使用TensorFlow作为机器学习框架。 学习是一个多维因素作用的结果,所以如果能基于学习资料,...转载 2018-01-14 20:10:08 · 936 阅读 · 0 评论 -
[深度学习]CTR模型如何加入稠密连续型|多值类别特征
CTR预估任务中除了广泛使用的稀疏离散型特征外,还会用到稠密连续型以及一些序列类型的特征,本文为大家简要梳理几种特征的处理方式一 稠密连续类型特征的处理在点击率预估问题中,可以尝试的几种方法 归一化后直接拼接到embedding向量侧dnn部分,不参与fm部分交叉 不归一化经过bn后直接拼接到embedding向量侧dnn部分,不参与fm部分交叉 离散化后作为id feature 类别特征, embedding后与其他sparse feature的embedding 一起参原创 2020-11-24 11:40:24 · 2839 阅读 · 1 评论 -
[深度学习] DeepFM 介绍与Pytorch代码解释
1. DeepFM算法的提出由于DeepFM算法有效的结合了因子分解机与神经网络在特征学习中的优点:同时提取到低阶组合特征与高阶组合特征,所以越来越被广泛使用。在DeepFM中FM算法负责对一阶特征以及由一阶特征两两组合而成的二阶特征进行特征的提取 DNN算法负责对由输入的一阶特征进行全连接等操作形成的高阶特征进行特征的提取具有以下特点:结合了广度和深度模型的优点,联合训练FM模型和DNN模型,同时学习低阶特征组合和高阶特征组合。 端到端模型,无需特征工程。 DeepFM 共享相同的原创 2020-10-21 11:02:31 · 5337 阅读 · 1 评论 -
[深度学习] Deep & Cross Network (DCN)
Deep & Cross Network(DCN)在 2017 年由 google 和 Stanford 共同发表的一篇论文中被提出,类似于Wide & Deep Network(WDL),是用复杂网络预估CTR的一种方法。特征工程一直是许多预测模型成功的关键。许多有效的特征都来自于原始特征的交叉组合。在WDL中,wide侧的交叉组合特征依然需要依靠hand-craft来完成。而DCN能对sparse和dense的输入自动学习特征交叉,可以有效地捕获有限阶(bounded degrees原创 2020-10-15 17:17:36 · 4102 阅读 · 0 评论 -
[深度学习] 面试常见问题+解析汇总
一、为什么深层神经网络难以训练?1、梯度消失。梯度消失是指通过隐藏层从后向前看,梯度会变得越来越小,说明前面层的学习会显著慢于后面层的学习,所以学习会卡主,除非梯度变大。梯度消失的原因:学习率的大小,网络参数的初始化,激活函数的边缘效应等。在深层神经网络中,每一个神经元计算得到的梯度都会传递给前一层,较浅层的神经元接收到的梯度受到之前所有层梯度的影响。如果计算得到的梯度值非常小,随着...原创 2020-04-07 17:14:55 · 3803 阅读 · 0 评论 -
[深度学习] 自然语言处理 --- 从BERT, XLNet, RoBERTa, ERNIE2到ALBERT2
谷歌Lab发布了一个新的预训练模型"ALBERT"全面在SQuAD 2.0、GLUE、RACE等任务上超越了BERT、XLNet、RoBERTa再次刷新了排行榜!ALBERT是一种轻量版本的BERT,利用更好的参数来训练模型,但是效果却反而得到了很大提升!ALBERT的核心思想是采用了两种减少模型参数的方法,比BERT占用的内存空间小很多,同时极大提升了训练速度,更重要的是效果上也有很大的提升!...原创 2020-01-11 10:13:47 · 4194 阅读 · 1 评论 -
[深度学习] 自然语言处理 --- ALBERT 介绍
一、简介随着Transfomer结构的普及,一时间大语料、大参数量的预训练模型成为主流。当在实际部署BERT等模型时,往往需要使用蒸馏、压缩或其他优化技术对模型进行处理。ALBERT模型来自论文 Google 最近公布的论文 《ALBERT: A LITE BERT FOR SELF-SUPERVISED LEARNING OF LANGUAGE REPRESENTATIONS》从名字就可...原创 2020-01-06 18:28:22 · 6432 阅读 · 0 评论 -
[深度学习] 自然语言处理 --- Bert开发实战 (Transformers)
本文主要介绍如果使用huggingface的transformers 2.0 进行NLP的模型训练除了transformers,其它兼容tf2.0的bert项目还有:我的博客里有介绍使用方法 [深度学习] 自然语言处理--- 基于Keras Bert使用(上)keras-bert(Star:1.4k) 支持tf2,但它只支持bert一种预训练模型 bert4keras (Sta...原创 2020-01-06 17:14:24 · 16271 阅读 · 10 评论 -
[深度学习] 自然语言处理--- 基于Keras Bert使用(下)
bert4keras 使用最新版本本文所用bert4keras时间:2019-12-23https://github.com/bojone/bert4keras使用bert4keras(TF2.0)import os#使用tf2.0.0 版本os.environ['TF_KERAS'] = '1' import numpy as npimport jsoni...原创 2019-12-27 16:10:46 · 4771 阅读 · 1 评论 -
[深度学习] 自然语言处理--- 基于Keras Bert使用(上)
1. bert ---- keraskeras_bert 是 CyberZHG 封装好了Keras版的Bert,可以直接调用官方发布的预训练权重。github:https://github.com/CyberZHG/keras-bert快速安装:pip install keras-bertbert4keras是封装好了Keras版的Bert,可以直接调用官方发布的预训...原创 2019-12-23 18:29:51 · 12466 阅读 · 3 评论 -
[深度学习] 自然语言处理 --- NLP入门指南
NLP的全称是Natuarl Language Processing,中文意思是自然语言处理,是人工智能领域的一个重要方向自然语言处理(NLP)的一个最伟大的方面是跨越多个领域的计算研究,从人工智能到计算语言学的多个计算研究领域都在研究计算机与人类语言之间的相互作用。它主要关注计算机如何准确并快速地处理大量的自然语言语料库。什么是自然语言语料库?它是用现实世界语言表达的语言学习,是从文本和语言...原创 2019-12-15 11:01:55 · 37642 阅读 · 0 评论 -
[深度学习] 自然语言处理 --- Self-Attention(一) 基本介绍
一 Self AttentionSelf Attention也经常被称为intra Attention(内部Attention),最近一年也获得了比较广泛的使用,比如Google最新的机器翻译模型内部大量采用了Self Attention模型。在一般任务的Encoder-Decoder框架中,输入Source和输出Target内容是不一样的,比如对于英-中机器翻译来说,Source是英文句...原创 2019-10-22 13:38:34 · 4087 阅读 · 1 评论 -
[深度学习]自然语言处理 --- ELMo
原文链接:Deep contextualized word representationsELMO,是Embedding from Language Model的缩写( Peters等人,2018年),通过无监督预训练多层双向LSTM模型来学习带上下文信息的(Contextualized)单词表示。1. Motivation词向量在目前NLP技术发展和应用中具有重要作用,高质量的词向量...原创 2019-09-24 17:53:30 · 2931 阅读 · 1 评论 -
[深度学习] 自然语言处理 --- 1.Attention
目录Attention简介Encoder-Decoder框架Attention模型Attention 的优点Attention 不同类型1. 计算区域2. 所用信息3. 结构层次4. 模型方面5. 相似度计算方式Attention详细介绍Soft Attention 模型 图解Attention机制第一步:准备隐藏状态第二步:获取每个编...原创 2019-09-28 17:01:37 · 1968 阅读 · 1 评论 -
[深度学习] 自然语言处理 --- BERT模型原理
BERT简介NLP:自然语言处理(NLP)是信息时代最重要的技术之一。理解复杂的语言也是人工智能的重要组成部分。Google AI 团队提出的预训练语言模型 BERT(Bidirectional Encoder Representations from Transformers)BERT,全称是 Pre-training of Deep Bidirectional Transformers...原创 2019-12-12 16:34:14 · 5571 阅读 · 2 评论 -
[深度学习] 自然语言处理---Transformer实现(二)
目录Encoder-Decoder框架一 整体架构动态流程图二 Encoder2.1 Encoder Layer和残差网络Residual Connection2.2 AttentionSelf AttentionMulti-head Attention2.3 Add & NormLayerNormalization 层归一化2.4 前馈网络...原创 2019-08-02 13:27:07 · 6946 阅读 · 6 评论 -
[深度学习] 自然语言处理 --- 文本分类模型总结
文本分类包括基于word2vec预训练的文本分类,与及基于最新的预训练模型(ELMO,BERT等)的文本分类fastText 模型 textCNN 模型 charCNN 模型 Bi-LSTM 模型 Bi-LSTM + Attention 模型 RCNN 模型 Adversarial LSTM 模型 Transformer 模型 ELMO 预训练模型 BERT 预训练模型...原创 2019-07-23 21:59:03 · 14560 阅读 · 1 评论 -
[深度学习] 自然语言处理 --- 基于Attention机制的Bi-LSTM文本分类
Peng Zhou等发表在ACL2016的一篇论文《Attention-Based Bidirectional Long Short-Term Memory Networks for Relation Classification》。论文主要介绍了在关系分类任务中应用双向LSTM神经网络模型并加入Attention机制,从而避免了传统工作中复杂的特征工程,并在该任务中取得比较优秀的效果。一...原创 2019-07-21 15:26:47 · 17587 阅读 · 5 评论 -
[深度学习] Pytorch nn.CrossEntropyLoss()和nn.NLLLoss() 区别
函数 Softmax(x) 是一个 non-linearity, 但它的特殊之处在于它通常是网络中一次操作. 这是因为它接受了一个实数向量并返回一个概率分布.其定义如下.定义 x 是一个实数的向量(正数或负数都无所谓, 没有限制). 然后, 第i个 Softmax(x) 的组成是输出是一个概率分布: 每个元素都是非负的, 并且所有元素的总和都是1.NLLLoss...原创 2019-07-17 10:48:49 · 7113 阅读 · 0 评论 -
[深度学习] RNN对于变长序列的处理方法, 为什么RNN需要mask
一 Padding文本数据在处理的时候,由于各样本的长度并不一样,有的句子长有的句子短。抛开动态图、静态图模型的差异,由于需要进行矩阵运算,句长需要是等长的才可以,这就需要padding操作。padding一般是用最长的句子长度为最大长度,然后其他样本补0到最大长度,这样样本就是等长的了。但是注意padding后的样本如果不作处理只用普通的循环神经网络来做的话其实是有影响的,因为即使输入...原创 2019-07-08 11:56:42 · 14647 阅读 · 0 评论 -
[深度学习] PyTorch 实现双向LSTM 情感分析
一 前言情感分析(Sentiment Analysis),也称为情感分类,属于自然语言处理(Natural Language Processing,NLP)领域的一个分支任务,随着互联网的发展而兴起。多数情况下该任务分析一个文本所呈现的信息是正面、负面或者中性,也有一些研究会区分得更细,例如在正负极性中再进行分级,区分不同情感强度.文本情感分析(Sentiment Analysis)是自...原创 2019-07-05 19:10:37 · 24967 阅读 · 11 评论 -
[深度学习] Normalization 模型
目录一 Batch Normalization“Internal Covariate Shift”问题训练阶段如何做BatchNormBatchNorm的好处二 LayerNormalization一 Batch NormalizationBatchNormalization的出现无疑是广大AI调参侠的福音,将大家从繁琐的权重初始化、学习率调节中释放出来。它不仅...原创 2019-10-23 14:53:30 · 871 阅读 · 1 评论 -
PyTorch常用代码段整理合集
本文代码基于PyTorch 1.0版本,需要用到以下包import collectionsimport osimport shutilimport tqdmimport numpy as npimport PIL.Imageimport torchimport torchvision1. 基础配置检查PyTorch版本torch.__version__ ...转载 2019-05-16 10:53:02 · 2871 阅读 · 0 评论