摘要:我们提供了一键运行的notebook AI作画 Dreambooth 生成自定义主体,可以在ModelArts平台上调试开发自己的文生图模型。

本文分享自华为云社区《DreamBooth+LoRA微调生成主体》,作者: 杜甫盖房子 。

DreamBooth+LoRA微调生成主体

文生图风靡一时,但预训练的文生图模型无法控制生成特定的主体。DreamBooth提供了一种方法,只需要特定主体的几张图就可以微调文生图模型,生成包含特定主体的图片。例如,提供如下主体图片,给定主体名称为biu model:

微调文生图模型后,使用"biu model in the garden"作为prompt推理,将生成包含该主体的图片:

我们提供了一键运行的notebook AI作画 Dreambooth 生成自定义主体,可以在ModelArts平台上调试开发自己的文生图模型。此外,我们还提供了零代码运行的Workflow DreamBooth自定义生成主体,可以通过简单的可视化配置完成模型训练、AI应用打包、在线推理服务部署等全流程,无需任何开发即可玩转个性化文生图模型微调。

DreamBooth

DreamBooth 是一种生成个性化文生图模型的方法,用户可以给定3~5张某个主体的图像及该主体的名称,微调文生图模型(本案例使用的是Stable Diffusion v1-4),微调后的模型可以使用主体名称作为prompt,生成对应主体的图像,如图:

图源:DreamBooth: Fine Tuning Text-to-Image Diffusion Models for Subject-Driven Generation

DreamBooth想要将定义的主体名称与特定主体绑定,同时保留主体对应类别的细节特征。因此,在构建主体名称时可以加入大类别名,如主体是一只可爱的小猫,则主体名称可以定义为"a [V] cat",其中大类名"cat"可以保留大类特征,[V]作为稀有标识符,可以避免主体受通用词组先验知识的影响。

为了减少微调导致的语义漂移,以及保持扩散模型生成内容的多样性,DreamBooth引入了prior preservation loss,利用大类的先验知识生成与训练主体相同大类的不同实例对模型进行监督:

图源:DreamBooth: Fine Tuning Text-to-Image Diffusion Models for Subject-Driven Generation

LoRA

Low-Rank Adaptation of Large Language Models (LoRA) 是一种训练方法,可以在消耗较少内存的同时加速大模型的训练。大模型通常具有很多参数,直接微调大模型将是一个缓慢而昂贵的过程。在Intrinsic Dimensionality Explains the Effectiveness of Language Model Fine-Tuning中提出一个洞见:预训练语言模型微调后,权重矩阵中表征特征的部分其实是很低秩的。作者受此启发,认为模型微调时,更新的权重表征特征的部分应该也是低秩的,即在模型微调时,权重可以表示为:W=W0+ΔWW=W0​+ΔW,其中,W0W0​为不更新的预训练权重矩阵,ΔWΔW为实际更新的、可以进行低秩分解的权重矩阵,如图,蓝色部分为不更新的预训练权重,橙色部分为分解为两个低秩矩阵的微调权重:

图源:LoRA: Low-Rank Adaptation of Large Language Models

LoRA有几个显而易见的优势:

  • 预训练权重保持不变,因此模型不容易发生灾难性的遗忘;
  • 秩分解矩阵的参数明显少于原始模型,微调部分的权重更小,易于移植;
  • 预训练模型可以共享,不同的任务只需要提供很小的LoRA模块,可以高效的切换任务,显著降低存储需求;
  • 微调成本大幅降;
  • 在推理时可以将橙色部分与蓝色部分合并,不会引入额外的推理时延。

案例

我们提供了两种形式的案例:一键运行的notebook AI作画 Dreambooth 生成自定义主体 和零代码运行的Workflow DreamBooth自定义生成主体

notebook使用上灵活程度更高,适合有一定代码能力的朋友玩一下。Workflow封装程度更高,提供了详细的使用文档,同时包含了AI应用等节点,不需要写任何代码也可以生成自己的模型并在线测试。

点击关注,第一时间了解华为云新鲜技术~

身未动心已远,AI带你流浪地球的更多相关文章

  1. Visual Studio 2015 未响应/已停止工作的问题解决

    在我把之前项目从10版本升级到15版本的时候,一打开转换的项目过几分钟立马卡死,出现未响应/已停止工作的问题,我试过了很多方法: 1.升级操作系统,8.1升级10,没用! 2.重装VS,没用! 3.卸 ...

  2. 阿里云朱照远: AI打开新视界 8K时代已来!

    2018年4月11-12日,2018亚太CDN峰会在北京隆重召开,大会由亚太CDN领袖论坛.电视云论坛.短视频论坛.视频云论坛.新技术论坛.运营商论坛.国际云论坛等7大部分组成.在亚太CDN领袖峰会上 ...

  3. 超级大佬已提前布局AI域名,人工智能时代真的来临了?

    近日,郭盛华公司巨资收购的ai域名引起了业界深度关注,ai人工智能行业想必大家都熟悉不会陌生,但是ai域名你知道吗?了解域名行业的米友,对于ai域名肯定都熟悉,为什么今天小编要突然提到ai域名?因为a ...

  4. 【动态规划】盖房子(house)--未提交--已提交

    问题 D: 盖房子(house) 时间限制: 1 Sec  内存限制: 64 MB提交: 27  解决: 16[提交][状态][讨论版] 题目描述 FJ最近得到了面积为n*m的一大块土地,他想在这块土 ...

  5. AI带你省钱旅游!精准预测民宿房源价格!

    作者:韩信子@ShowMeAI 数据分析实战系列:https://www.showmeai.tech/tutorials/40 机器学习实战系列:https://www.showmeai.tech/t ...

  6. 2106 Problem F Shuffling Along 中石油-未提交-->已提交

    题目描述 Most of you have played card games (and if you haven’t, why not???) in which the deck of cards ...

  7. 2078 Problem H Secret Message 中石油-未提交-->已提交

    题目描述 Jack and Jill developed a special encryption method, so they can enjoy conversations without wo ...

  8. 最美应用API接口分析

    最美应用API接口分析html, body {overflow-x: initial !important;}.CodeMirror { height: auto; } .CodeMirror-scr ...

  9. History of AI

    人工智能的历史源远流长.在古代的神话传说中,技艺高超的工匠可以制作人造人,并为其赋予智能或意识.[1]现代意义上的AI始于古典哲学家用机械符号处理的观点解释人类思考过程的尝试.20世纪40年代基于抽象 ...

  10. TCP带外数据

    传输层协议使用带外数据(out-of-band,OOB)来发送一些重要的数据,如果通信一方有重要的数据需要通知对方时,协议能够将这些数据快速地发送到对方.为了发送这些数据,协议一般不使用与普通数据相同 ...

随机推荐

  1. Anaconda虚拟环境配置Python库与Spyder编译器

      本文介绍在Anaconda中,为Python的虚拟环境安装第三方库与Spyder等配套软件的方法.   在文章创建Anaconda虚拟Python环境的方法中,我们介绍了在Anaconda环境下, ...

  2. IEDA-Maven项目开发步骤

    1. 打开IDEA 界面,选择"New Project" 2. 输入项目名称和基本信息 输入项目名称.选择存放路径.JDK版本.以及GroupId.ArtifactId. Grou ...

  3. splay + 垃圾回收 知识点与例题的简要讲解

    splay 简要讲解 前置芝士:普通二叉树 splay tree是一个越处理越灵活的数据结构,通过splay(伸展)操作,使整棵树的单次查询时间复杂度接近于O(log n),整棵树的高度也接近于log ...

  4. nodejs修改npm包安装位置

    适用于非个人电脑.便携使用 npm config set cache D:\nodejs\node_cache npm config set prefix D:\nodejs npm config s ...

  5. Java Web程序在Tomcat上是如何运行的

    https://blog.csdn.net/fuzhongmin05/article/details/104379514 一个JVM是一个进程,JVM上跑Tomcat,Tomcat上可以部署多个应用. ...

  6. C#winform中使用SQLite数据库

    公众号「DotNet学习交流」,分享学习DotNet的点滴. SQLite简介 SQLite是一种轻量级的关系型数据库管理系统(RDBMS),它以一个C库的形式提供.以下是SQLite数据库的一些关键 ...

  7. RPN FPN ROIPooling

    RPN(Region Proposal Network)介绍---> 特点从backbone 生成的Feture Map中 用一个 3x3 的Conv卷积核 遍历FeatureMap的每个点然后 ...

  8. 分享一个LCD驱动框架

    首先需要说明的是本篇文章不是关于如何点亮一块LCD屏的教程,而是介绍一个LCD开发框架,更准确的说是介绍一个LCD的中间件(Middlwware),用来连接UI和不同类型的LCD屏.笔者本人的工作内容 ...

  9. 【开源项目推荐】通用SQL数据血缘分析工具——Sqllineage

    大家好,我是独孤风,从本周开始,争取每周为大家带来一个优秀的开源项目推荐. 开源项目不仅促进了技术的发展和普及,还为全球范围内的开发者和用户社区建立了一个共享知识.协作和创新的平台.站在巨人的肩膀上才 ...

  10. BASE和最终一致性

    四种性质: 基本可用性,软状态,强一致性,弱一致性 更据更新数据后各进程访问到数据的时间和方式不同: 如何实现各种类型的一致性: 对于HBase数据库来讲: