深度学习
文章平均质量分 95
我就算饿死也不做程序员
欢迎关注同名公众号:"我就算饿死也不做程序员"。
交个朋友,一起交流,一起学习,一起进步。
展开
-
AI绘画Stable Diffusion原理之扩散模型DDPM
1. DMs在训练阶段逐步为干净的图片加入高斯噪声,并去拟合这个噪声,而在采样生成(推理)阶段则是由随机的噪声开始,逐步预测噪声然后去去噪,直至得到高质量的图片,而这主要是通过DDPM来实现;2. LDMs则是在DMs的基础上引入了Autoencoder能够将图像从像素空间压缩到隐空间,极大提升计算效率;3. 并且LDMs还具有引入文本控制条件的建模能力,通过UNet与文本表征进行注意力交叉,实现文生图的能力。原创 2023-09-14 22:17:16 · 985 阅读 · 0 评论 -
分类模型-类别不均衡问题之loss设计
数据类别不均衡是很多场景任务下会遇到的一种问题。针对这种类别不均衡的场景设计一种loss,能够兼顾数据少的类别,这其实是一种更理想的做法,因为不会破坏原数据的分布,并且不会带来性能问题原创 2022-11-11 18:00:00 · 1294 阅读 · 0 评论 -
炼丹系列2: Stochastic Weight Averaging (SWA) & Exponential Moving Average(EMA)
EMA(Exponential Moving Average)全称为指数移动平均,主要作用是平滑模型权重,平滑可以带来更好的泛化能力。简单的在常规的SGD过程中,对多个权重点进行平均,这种方法称为Stochastic Weight Averaging(SWA),可以比传统的训练的到更好的泛化能力。原创 2022-08-24 20:50:27 · 1277 阅读 · 0 评论 -
炼丹系列1: 分层学习率&梯度累积
深度学习trick:变量初始化、分层学习率、梯度累积原创 2022-08-13 19:30:00 · 856 阅读 · 0 评论 -
BERT句向量(一):Sentence-BERT
前言句向量:能够表征整个句子语义的向量,目前效果比较好的方法还是通过bert模型结构来实现,也是本文的主题。有了句向量,我们可以用来进行聚类,处理大规模的文本相似度比较,或者基于语义搜索的信息检索。例如搜索系统中的输入query和匹配文档document、Q&A任务的问题和答案等等,都可以转化为计算两个句子的语义相似/相关度,相关度最高的n个作为模型的返回结果。题外话这种类似的模型一般称为passage retrieval models,即段落检索,有两个代表:sparse model原创 2022-04-26 09:30:00 · 10478 阅读 · 0 评论 -
TensorRT&Triton学习笔记(一):triton和模型部署+client
前言先介绍TensorRT、Triton的关系和区别:TensorRT:为inference(推理)为生,是NVIDIA研发的一款针对深度学习模型在GPU上的计算,显著提高GPU上的模型推理性能。即一种专门针对高性能推理的模型框架,也可以解析其他框架的模型如tensorflow、torch。主要优化手段如下:Triton:类似于TensorFlow Serving,但triton包括server和client。triton serving能够实现不同模型的统一部署和服务,提供http和grpc协原创 2022-03-17 09:00:00 · 17183 阅读 · 0 评论 -
多任务学习模型MTL: MMoE、PLE
常见的监督学习包括:回归:预测值为连续值,如销售额;二分类:预测值为离散值,且只有两种取值,如性别,要么是男,要么是女;多分类:预测值为离散值,且多于两种取值,如动物分类,可能有猫、狗、狮子等等;还有另外一种,也是本文的主角:多任务学习(Multi Task Learning)。MTL介绍首先,介绍什么是多任务学习,例如之前文章提到的微信视频场景,同时包含多个学习目标(task):是否转发、是否点赞、是否关注等。微信大数据挑战赛以往的做法可能会对不同的task分别建立对应的模型,但这样会原创 2021-10-25 19:00:00 · 5821 阅读 · 0 评论 -
TensorFlow Serving:深度学习模型在生产环境的部署&上线
TensorFlow Serving简单来说就是一个适合在生产环境中对tensorflow深度学习模型进行部署,然后可以非常方便地通过restful形式的接口进行访问。除此之外,它拥有许多有点:支持配置文件的定期轮询更新(periodically poll for updated),无需重新启动;优秀的模型版本控制;支持并发;支持批处理;基于docker,部署简单。(这些优点我们在下面会逐一提到)安装官方极力推荐通过docker的方式进行安装,所以,首先我们需要进行docker的原创 2021-09-07 21:53:55 · 3259 阅读 · 2 评论 -
强大的向量数据库:Milvus
在推荐系统中,向量的最邻近检索是极为关键的一步,特别是在召回流程中。一般常用的如Annoy、faiss都可以满足大部分的需求,今天再来介绍另外一个:MilvusMilvusMilvus不同于Annoy、faiss这类型的向量检索工具,它更是一款开源向量数据库,赋能 AI 应用和向量相似度搜索。涉及的术语Filed:类似表字段,可以是结构化数据,当然还可以是向量;Entity:一组Filed,类似表的一条数据;Collection:一组Entity,类似于表;亮点Milvus不单单是向.原创 2021-09-01 21:50:59 · 7289 阅读 · 1 评论 -
TensorFlow Serving:深度学习模型在生产环境的部署&上线
TensorFlow Serving简单来说就是一个适合在生产环境中对tensorflow深度学习模型进行部署,然后可以非常方便地通过restful形式的接口进行访问。除此之外,它拥有许多有点:支持配置文件的定期轮询更新(periodically poll for updated),无需重新启动;优秀的模型版本控制;支持并发;支持批处理;基于docker,部署简单。(这些优点我们在下面会逐一提到)安装官方极力推荐通过docker的方式进行安装,所以,首先我们需要进行docker的原创 2020-11-25 19:07:08 · 1176 阅读 · 0 评论 -
Transformer原理解析及机器翻译的应用
基于Seq2Seq模型的机器翻译引入Attention的Seq2Seq模型-机器翻译Transformer首先,可以思考为什么会需要Transformer?大部分的机器翻译等序列生成任务都是基于Encoder-Decoder的模式,而Encoder和Decoder一般是由RNN、LSTM、GRU其中一种,它们的特点就是:每个时刻的输出是根据上一时刻隐藏层state和当前时刻的输入,由这样的方式来实现产生序列。那这样的特点就会导致无法并行计算,因为每次计算都需要等待上一时刻的计算完成。每个原创 2020-09-15 21:01:01 · 3999 阅读 · 1 评论 -
引入Attention的Seq2Seq模型-机器翻译
在上一篇博客中,我们介绍了 基于Seq2Seq模型的机器翻译。今天,在此基础上,对模型加入注意力机制Attention。模型结构首先,我们先了解一下模型的结构,基本与Seq2Seq模型大体一致:首先,第一部分是编码器Encoder,它接收source sentence,然后Encoder将其转换为一个包含具体语义信息的中间向量;加入Attention机制,接收Encoder的输出和隐藏层,得到attention weights、context vector和attention vector;最后原创 2020-09-08 22:08:02 · 666 阅读 · 0 评论 -
深度学习模型训练小技巧
这篇文章主要介绍一些在深度学习模型训练时的一些小技巧。一、warmupwarmup可以理解为预热、热身的意思,它的思想是一开始以较小的学习率去更新参数,然后逐步提高学习率。这样的好处是:有助于减缓模型在初始阶段对mini-batch的提前过拟合现象,保持分布的平稳;有助于保持模型深层的稳定性。# 线性warmup# num_warmup_steps:warmup的步数# init_lr:预设的学习率global_step = tf.train.get_or_create_global原创 2020-09-03 22:25:13 · 1199 阅读 · 0 评论 -
tensorflow是如何实现RNN的递归计算
我们都知道RNN是一种循环神经网络,其实可以认为是一种递归计算,每一个时刻的输出都是根据上一个时刻的输出和本时刻的输入得到:Ht+1(xt+1)=f(Ht,xt)H_{t+1}(x_{t+1}) = f(H_t, x_t)Ht+1(xt+1)=f(Ht,xt)那么在tensorflow是如何实现这种递归计算的呢?RNNCell + dynamic_rnn结合上图和下面的代码,首先,我们需要自定义一个RNN类,并继承tf.nn.rnn_cell.RNNCell其中,必须实现state_原创 2020-09-01 22:17:56 · 270 阅读 · 0 评论 -
BERT等复杂深度学习模型加速推理方法——模型蒸馏
参考《Distilling the Knowledge in a Neural Network》Hinton等蒸馏的作用首先,什么是蒸馏,可以做什么?正常来说,越复杂的深度学习网络,例如大名鼎鼎的BERT,其拟合效果越好,但伴随着推理(预测)速度越慢。此时,模型蒸馏酒派上用场了,其目的就是为了在尽量减少模型精度的损失的前提下,大大的提升模型的推理速度。实现方法其实,模型蒸馏的思想很简单。第一步,训练好原本的复杂网络模型,如BERT,我们称为Teacher模型;第二步,用一个较为简单的模型去拟原创 2020-08-11 21:44:47 · 1104 阅读 · 0 评论 -
深度学习中的注意力机制(Attention)
注意力模型最近几年在深度学习各个领域被广泛使用,无论是图像处理、语音识别还是自然语言处理的各种不同类型的任务中,都很容易遇到注意力模型的身影。所以,了解注意力机制的工作原理对于关注深度学习技术发展的技术人员来说有很大的必要。人类的视觉注意力从注意力模型的命名方式看,很明显其借鉴了人类的注意力机制,因此,我们首先简单介绍人类视觉的选择性注意力机制。图1 人类的视觉注意力视觉注意力机制是人类...转载 2019-08-04 11:04:49 · 2071 阅读 · 0 评论