0%

Diffusers 是huggingface开源的应用扩散模型的python库,用于生成图像、音频甚至分子的3D结构。Diffusers提供简单的推理解决方案以及训练自己的扩散模型,使用起来具有较好的可用性,同时非常的简单,支持多种diffusion模型以及算法,只需几行代码就可以实现diffusion的效果,同时对于civitai等开源模型可以无缝对接。


阅读全文 »

Triton是Nvidia发布的一个高效的部署工具,支持多种部署方式,包括gpu、cpu等等,采用rpc调用方式,方便模型的部署,同时在性能优化方面,支持多实例、动态组batchsize等操作,实现动态批处理,并支持多种后端,支持多种模型,多实例间采用多进程处理实现模型并行,可以高效的提高服务速度。


阅读全文 »

CVPR2022的作品,Diffusion model在图像合成表现非常的出色,但是由于其是在图像像素空间进行的去噪等操作,所以相当的费时,本文通过两步走,先训练一个autoencoder将图像空间映射到latent空间,减少了图像的维度,再利用标准的difusion模型来进行加噪声去噪声过程,减少计算量,提高生成速度。另外,作者引入了cross-attention layers,将不同的任务的promt引入,比如:text 或者 bounding box等,使其实现不同的能力。本算法在多个任务上表现sota,比如:image inpainting、class-conditional imagesynthesis等

阅读全文 »

kernl是一个针对Pytorch transformer模型进行GPU加速的一个框架,利用OpenAI的Triton接口,利用Torch2.0的新特性,而不再使用CUDA来实现,加速方法也是非常的简单,只需简单几行即可完成,故而在本地进行了一些尝试,测试结果显示,其对cuda版本以及显卡型号有较高的要求,同时python也需要较高版本的适配,对于transformer加速效果,当len比较短的时候,会取得比较好的效果,当len比较长的时候,不一定比tensorrt会更好,期待起进一步发展吧,持续跟进。


阅读全文 »

Resnet是2015年ImageNet比赛的冠军,不仅在分类上标线优秀,在目标检测中同样取得好成绩,Resnet将网络层数进一步加深,甚至达到1000+层。ResNet的表现以至于后面的网络都是在其基础上进行修改得到的,可以说ResNet是一个划时代的网络,被广泛应用于工业界。

阅读全文 »

很多时候,外界同学管深度学习算法工程师叫做调参工程师,简单直接的概括了深度学习工程师的工作,搞深度学习的同学自己也经常自嘲,称自己的工作是炼丹,的确,深度学习模型有时候确实很奇妙,而调参在一个模型的优化中起着至关重要的作用,正因为如此,也有越来越多的研究放在了调参这件事上,比如:学习率的优化算法,模型初始化算法等等。
其实,拿一个别人已经训练好的模型(比如ImageNet上预训练的ResNet),直接在自己的数据集上进行finetune,不需要怎么调参,一般都会得到不错的效果,这就是站在巨人的肩膀上,但是如果想继续提高模型的精度,该怎么做?继续调参?还是有一些其他的方法可以采用?本篇文章就介绍了Amazon工程师总结的分类模型的调参技巧。

阅读全文 »

这篇论文表现比较好,论文的创新点还是比较多的。blip不仅可以实现文本-图像的匹配,同时还可以根据图像生成文本,以及根据图像进行问答等。作者在预训练的时候,一方面采用了像clip中那样的图像-文本对比学习,同时增加了一个encoder,进行multi-task任务用来预训练ITM以及LM,这些任务是共享encoder的参数的。ITM任务就比较简单,就是设计个分类头,进行二分类的判断。LM采用的是自回归的方式进行生成的。

另外,作者发现,网络采集的图像-文本对,由于没有标注,很多是错误的,所以作者又在预训练好的模型上finetune了一个清洗过滤模型,生成新的图像-文本信息。取得了更好的效果。

在预训练结束后,可以根据各自的任务,在预训练模型上进行finetune,实现不一样的功能。


阅读全文 »

这篇是openai在多模态领域的一大力作,关注度很高,也掀起了大家对自然语言监督视觉训练的一个浪潮,文章中的方法其实比较简单,利用图像文本对,利用对比学习进行训练而已,训练完了之后,利用文本进行检索就可以了,实现了zero-shot,并且效果还很好,就很惊人。并且文章中新建了一个4亿的图像文本对,也起了大作用。前面也有人是这么干的,没有这么好的效果,主要是因为数据量不够。


阅读全文 »

dino最惊艳的地方在于,作者发现,dino+vit的结果对图像的弱监督具有很好的效果,效果很惊艳,也是这个结果吸引了我。另外,本文的思想跟byol比较像,主要创新点在于:1.将vit应用到了self-supervise中,提出了dino. 2.dino没有采用负样本,跟byol一样,dino避免训练坍塌的方式是采用了centering + sharping + momentum,另外还有一个值得提到的点是,dino不仅仅在linear evaluation表现比较好,在knn上表现也是比较好的


阅读全文 »

BYOL使用了Teacher-Student架构进行自监督训练(其中Teacher Network是Student Network的历史版本的EMA),在没有任何负样本约束的情况下达到了不错的效果。本篇文章最大的创新点在于,没有使用对比学习常用的负样本,只是使用了正样本对来进行训练,关键点在于其增加的predictor,加了这个,相当于给了projection的输出结果一个缓冲,predictor是不会把参数传递给target网络的,所以这就相当于不再需要target网络的输出与online网络的输出是完全一致的,predictor还能做一轮映射,这个在减少坍塌上应该也起到了一定的作用(虽然在论文中的实验结果显示,有负样本参加训练的时候去掉predictor没掉几个点,但是只采用正样本的时候影响应该是比较大的,这个论文中没看到证明)


阅读全文 »