法慧嘉良网

中山大学开源Diffusion模子不同代码框架,增长AIGC规模化运用

2024-10-30 19:29:32 来源:

近些年来 ,中山增长基于散漫模子(Diffusion Models)的大学代码图像天生模子层出不穷,揭示出使人惊艳的开源框架天生下场。可是不同,现有相关钻研模子代码框架存在偏激碎片化的规模下场 ,缺少不同的化运框架系统 ,导致泛起「迁移难」 、中山增长「门槛高」、大学代码「品质差」的开源框架代码实现难题 。

为此,不同中山大学人机物智能融会试验室(HCP Lab)构建了 HCP-Diffusion 框架,规模零星化地实现为了模子微调 、化运特色化磨炼、中山增长推理优化、大学代码图像编纂等基于 Diffusion 模子的开源框架相关算法,妄想如图 1 所示。

图 1 HCP-Diffusion 框架妄想图,经由不同框架不同现有 diffusion 相关措施,提供多种模块化的磨炼与推理优化措施 。

HCP-Diffusion 经由格式不同的配置装备部署文件调配各个组件以及算法  ,大幅后退了框架的锐敏性以及可扩展性  。开拓者像搭积木同样组合算法  ,而无需一再实今世码细节 。

好比,基于 HCP-Diffusion,咱们可能经由重大地更正配置装备部署文件即可实现 LoRA ,DreamArtist,ControlNet 等多种罕有算法的部署与组合 。这不光飞腾了立异的门槛,也使患上框架可能兼容种种定制化妄想 。

  • HCP-Diffusion 代码工具 :https://github.com/7eu7d7/HCP-Diffusion

  • HCP-Diffusion 图形界面 :https://github.com/7eu7d7/HCP-Diffusion-webui

HCP-Diffusion:功能模块介绍

框架特色

HCP-Diffusion 经由将当初主流的 diffusion 磨炼算法框架模块化,实现为了框架的通用性,主要特色如下  :

  • 不同架构:搭建 Diffusion 系列模子不同代码框架

  • 算子插件 :反对于数据 、磨炼 、推理、功能优化等算子算法 ,如 deepspeed, colossal-AI 以及 offload 等减速优化

  • 一键配置装备部署:Diffusion 系列模子可经由高锐敏度地更正配置装备部署文件即可实现模子实现

  • 一键磨炼:提供 Web UI ,一键磨炼 、推理

数据模块

HCP-Diffusion 反对于界说多个并行数据集,每一个数据集可接管差距的图像尺寸与标注格式 ,每一次磨炼迭代会从每一个数据会集各抽取一个 batch 妨碍磨炼,如图 2 所示 。此外 ,每一个数据集可配置装备部署多种数据源 ,反对于 txt  、json、yaml 等标注格式或者自界说标注格式,具备高度锐敏的数据预处置与加载机制  。

图 2 数据集妄想展现图图 2 数据集妄想展现图

数据集处置部份提供带自动聚类的 aspect ratio bucket,反对于处置图像尺寸各异的数据集 。用户无需对于数据集尺寸做格外处置以及对于齐 ,框架会凭证宽高比或者分说率自动抉择最优的分组方式 。该技术大幅飞腾数据处置的门槛 ,优化用户体验  ,使开拓者更专一于算法自己的立异 。

而对于图像数据的预处置,框架也兼容 torch vision, albumentations 等多种图像处置库。用户可能凭证需要在配置装备部署文件中间接配置装备部署预处置方式,或者是在此根基上拓展自界说的图像处置措施 。

图 3 数据集配置装备部署文件示例

HCP-Diffusion 在文本标注方面 ,妄想了锐敏且清晰的 prompt 模板尺度,可支端庄大多样的磨炼措施与数据标注。其对于运用上述配置装备部署文件 source 目录下的 word_names  ,概况可自界说下图大括号中的特殊字符对于应的嵌入词向量与种别形貌,以与 DreamBooth、DreamArtist 等模子兼容。

图 4 prompt 模板

而且对于文本标注,也提供了按句擦除了 (TagDropout) 或者按句打乱 (TagShuffle) 等多种文本增强措施 ,可能削减图像与文本数据间的过拟分解绩,使天生的图像更多样化 。

模子框架模块

HCP-Diffusion 经由将当初主流的 diffusion 磨炼算法框架模块化,实现为了框架的通用性。详细而言 ,Image Encoder,Image Decoder 实现图像的编解码 ,Noise Generator 发生前向历程的噪声 ,Diffusion Model 实现份散历程 ,Condition Encoder 对于天生条件妨碍编码,Adapter 微调模子与卑劣使命对于齐,positive 与 negative 双通道代表正负条件对于图像的操作天生。

图 5 模子妄想示例配置装备部署 (模子插件,自界说单词等)

如图 5 所示 ,HCP-Diffusion 在配置装备部署文件中经由浅易的组合,即可实现 LoRA 、ControlNet、DreamArtist 等多种主流磨炼算法。同时反对于对于上述算法妨碍组合,好比 LoRA 以及 Textual Inversion 同时磨炼 ,为 LoRA 绑定专有触发词等 。此外 ,经由插件模块,可能轻松自界说恣意插件,业已经兼容当初所有主流措施接入 。经由上述的模块化 ,HCP-Diffusion 实现为了对于恣意主流算法的框架搭建,飞腾了开拓门槛,增长了模子的协同立异 。

HCP-Diffusion 将 LoRA 、ControlNet 等种种 Adapter 类算法不同抽象为模子插件,经由界说一些通用的模子插件基类  ,可能将所有这种算法不同看待 ,飞腾用户运用老本以及开拓老本,将所有 Adapter 类算法不同 。

框架提供四种规范的插件,可能轻松反对于当初所有主流算法:

+ SinglePluginBlock: 单层插件 ,凭证该层输入修正输入,好比 lora 系列。反对于正则表白式 (re: 前缀) 界说插入层, 不反对于 pre_hook: 前缀。

+ PluginBlock: 输入层以及输入层都惟独一个,好比界说残差衔接 。反对于正则表白式 (re: 前缀) 界说插入层 , 输入输入层都反对于 pre_hook: 前缀。

+ MultiPluginBlock: 输入层以及输入层都可能有多个 ,好比 controlnet 。不反对于正则表白式 (re: 前缀), 输入输入层都反对于 pre_hook: 前缀。

+ WrapPluginBlock: 交流原有模子的某个层 ,将原有模子的层作为该类的一个工具。反对于正则表白式 (re: 前缀) 界说交流层 ,不反对于 pre_hook: 前缀。

磨炼  、推理模块

图 6 自界说优化器配置装备部署图 6 自界说优化器配置装备部署

HCP-Diffusion 中的配置装备部署文件反对于界说 python 工具,运行时自动实例化。该妄想使患上开拓者可能轻松接入任何 pip 可装置的自界说模块,好比自界说优化器,损失函数 ,噪声采样器等 ,无需更正框架代码 ,如上图所示。配置装备部署文件妄想清晰,易于清晰 ,可复现性强 ,有助于滑腻衔接学术钻研以及工程部署。

减速优化反对于

HCP-Diffusion 反对于 Accelerate 、DeepSpeed、Colossal-AI 等多种磨炼优化框架 ,可能清晰削减磨炼时的显存占用 ,减速磨炼速率。反对于 EMA 操作 ,可能进一步后退模子的天生下场以及泛化性 。在推理阶段 ,反对于模子 offload 以及 VAE tiling 等操作,最低仅需 1GB 显存即可实现图像天生 。

图 7 模块化配置装备部署文件

经由上述重大的文件配置装备部署 ,即可无需破费大批肉体查找相关框架资源实现模子的配置装备部署,如上图所示 。HCP-Diffusion 模块化的妄想方式,将模子措施界说 ,磨炼逻辑 ,推理逻辑等残缺分说 ,配置装备部署模子时无需思考磨炼与推理部份的逻辑,辅助用户更好的聚焦于措施自己。同时 ,HCP-Diffusion 已经提供大少数主流算法的框架配置装备部署样例,惟独对于其中部份参数妨碍更正,就能实现部署 。

HCP-Diffusion :Web UI 图像界面

除了可直接更正配置装备部署文件  ,HCP-Diffusion 已经提供了对于应的 Web UI 图像界面 ,搜罗图像天生,模子磨炼等多个模块,以提升用户体验,大幅飞腾框架的学习门槛 ,减速算法从实际到实际的转化。

图 8 HCP-Diffusion Web UI 图像界面图 8 HCP-Diffusion Web UI 图像界面

试验室简介

中山大学人机物智能融会试验室 (HCP Lab) 由林倞教授于 2010 年停办 ,近些年来在多模态内容清晰 、因果及认知推理  、具身学习等方面取患上丰硕学术下场,数次取患上国内外科技奖项及最佳论文奖 ,并自动于打造产物级的AI技术及平台 。试验室网站:http://www.sysu-hcp.net