摘要:我们提供了一键运行的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. Meteors 题解

    Meteors 蒟蒻初学整体二分,写一篇题解记录一下思考与看法. 题目大意 在一个环形的轨道上分别着若干国家的空间站,在接下来的一段时间内会出现若干次陨石,每次出现在环形的某一段轨道,每个国家都想收集 ...

  2. 入门篇-其之六-Java运算符(中)

    祝所有程序员,1024节日快乐!!! 一.自增/自减运算符 假设有一个变量intValue的值为10,如果想让这个值加1,有哪些方式? 首先,我们可以使用最原始的方式: int intValue = ...

  3. ASM字节码操作类库(打开java语言世界通往字节码世界的大门)

    前言:授人以鱼不如授人以渔,应用asm的文章有很多,简单demo的也很多,那么ASM都具备哪些能力呢?如何去学习编写ASM代码呢?什么样的情景需要用到ASM呢?让我们带着这些问题阅读这篇文章吧. 这里 ...

  4. C#简化工作之实现网页爬虫获取数据

    公众号「DotNet学习交流」,分享学习DotNet的点滴. 1.需求 想要获取网站上所有的气象信息,网站如下所示: 目前总共有67页,随便点开一个如下所示: 需要获取所有天气数据,如果靠一个个点开再 ...

  5. CentOS6-详细启动流程

    CentOS6的启动流程 第一步:硬件启动阶段 本步的流程: 1. 打开电源: 2. POST自检: 3. BIOS逐一排查设备启动顺序,如果是硬盘启动,读取硬盘的MBR的BootLoader.(这里 ...

  6. WPF应用开发之附件管理

    在我们之前的开发框架中,往往都是为了方便,对附件的管理都会进行一些简单的封装,目的是为了方便快速的使用,并达到统一界面的效果,本篇随笔介绍我们基于SqlSugar开发框架的WPF应用端,对于附件展示和 ...

  7. 如何将IPv4升级到IPv6?看完你就明白了

    引言: 随着互联网的快速发展,IPv4(Internet Protocol version 4)已经无法满足日益增长的设备和用户数量的需求. IPv6(Internet Protocol versio ...

  8. 文心一言 VS 讯飞星火 VS chatgpt (151)-- 算法导论12.2 7题

    七.用go语言,对于一棵有 n 个结点的二叉搜索树,有另一种方法来实现中序遍历,先调用 TREE-MINIMUM 找到这棵树中的最小元素,然后再调用 n-1 次的 TREE-SUCCESSOR.证明: ...

  9. C++ 邮件槽ShellCode跨进程传输

    在计算机安全领域,进程间通信(IPC)一直是一个备受关注的话题.在本文中,我们将探讨如何使用Windows邮件槽(Mailslot)实现ShellCode的跨进程传输.邮件槽提供了一种简单而有效的单向 ...

  10. 一招MAX降低10倍,现在它是我的了

    一.背景 性能优化是一场永无止境的旅程. 到家门店系统,作为到家核心基础服务之一,门店C端接口有着调用量高,性能要求高的特点. C端服务经过演进,核心接口先查询本地缓存,如果本地缓存没有命中,再查询R ...