Stable Diffusion 模型技术架构与原理

Stable Diffusion 是一个文本到图像(txt2img)的潜在扩散模型(LDM),是由 CompVis、Stability AI 和 LAION 的研究人员实现并开源的。我们站在 Stable Diffusion 模型应用用户的角度来看,其实没有多么复杂,核心就是根据文本生成图像,其中可以通过一些技巧,或通过调整用户参数,来改变文本生成图像的过程,从而达到优化最终生成图像的目的。但是,从 Stable Diffusion 底层技术的角度看,这个过程非常非常复杂,所以我们这里先给出模型的 Architecture Overview,先从总体上看整个架构(或结构)是什么样的,然后深入到每一个部分去了解具体的技术细节和原理。 1 模型架构概览 从 High-level 的视角,Stable Diffusion 模型都包含哪些主要组件,以及整体的处理流程,我们引用了 The Illustrated Stable Diffusion 一文中的一个图,并在原图上做了微小改动(为了方便理解添加了表示三个核心步骤的数字序号),来表示 Stable Diffusion 模型的处理机制,如下图所示: 基于上图,我们分步骤描述一下 txt2image 处理的整个过程: 首先,输入 Prompt 提示词 “para

体验 Stable Diffusion 模型生成图像

Stable Diffusion 是 2022 年发布的深度学习文本到图像生成模型,是主要用于“文本生成图像”的深度学习模型,也就是常说的 txt2img 的应用场景中:通过给定文本提示词(text prompt),该模型会输出一张匹配提示词的图片。Stable Diffusion 模型能够根据文本的描述生成图像,另外它也可以应用于其他任务,如内补绘制、外补绘制,以及在提示词指导下生成图像。 Stable Diffusion 是基于“潜在扩散模型”(Latent Diffusion Model,LDM)的模型,Diffusion 是扩散的意思,通常我们简称 Stable Diffusion 模型为 SD 模型。SD 模型是开源的,我们可以在 Github 上找到它的源码和使用方法:https://github.com/Stability-AI/StableDiffusion,也可以在 Huggingface 网站上获取到相关资源:https://huggingface.co/stabilityai。 实验环境 我们实验的基础环境的基本配置,作为参考,如下所示: CentOS 7.6 64 Anaconda3-2023.07-1-Linux-x86_64 Python 3.11.3 GPU Tesla P40(显存24 G/1 core) CPU 6 vCore/56G 我们使用的 Anaconda,需要安装对应的 Python 模块:

BERT 模型架构

BERT 是 Bidirectional Encoder Representations from Transformers 的缩写,是由 Google 发布的先进的嵌入模型,BERT 是自然语言处理领域的一个重大突破,它在许多自然语言处理任务中取得了突出的成果,比如问答任务、文本生成、句子分类等。BERT 之所以能够成功,主要是因为它是基于上下文的嵌入模型,不同于像 word2vec 等其他一些流行的嵌入模型。 从 BERT 的含义来看,它使用多个 Transformer 表示,而且是基于双向 Encoder 的,我们要知道 BERT 的架构是只包含 Encoder 的 Transformer 模型架构。 BERT 模型配置 BERT 在发布模型的时候,给出了多种不同的配置,其中两种标准的配置为 BERT-base 和 BERT-large,另外还有一些小型的配置,如下表所示: BERT 模型配置 Encoder 层数(L) 注意力头个数(A) FFN 层隐藏神经元个数(H) BERT-base 12 12 768 BERT-large 24 16 1024 BERT-tiny 2 – 128 BERT-mini 4 – 256 BERT-small 4 – 512 BERT-medium 8 – 512 BERT-base 模型的网络参数总数可达 1.1 亿个,而

Transformer 模型架构详解

2017 年 Google 在论文《Attention Is All You Need》中提出 Transformer 模型架构,该架构是基于 Encoder-Decoder (编码器-解码器)的架构。作为当下最先进的深度学习架构之一,Transformer 被广泛应用于自然语言处理领域,它不仅替代了以前流行的循环神经网络(RNN)和长短期记忆网络(LSTM),而且后来的 BERT、GPT-3 等网络架构也是基于 Transformer 架构演化而来。 RNN 和 LSTM 已经在时序任务方面有了广泛的的应用,例如像文本预测、机器翻译、文章生成等等,但是这些应用都面临着如何记录长期依赖的问题,而使用 Transformer 架构就能解决这类问题。 自注意力(Self-Attention) Transformer 架构的核心主要是基于自注意力机制(Self-Attention),在详解 Transformer 架构之前,我们有必要理解一下自注意力这个概念,我们以《BERT 基础教程:Transformer 大模型实战》这本书的讲解来概述,这本书中的讲解非常浅显易懂。 给定一个英文句子: A dog ate the food because it was hungry. 句子中的代词 it 可能代表句子里的名词 food 或者 dog,虽然我们人类非

开源对话模型 ChatGLM2-6B 安装部署与微调实践

ChatGLM2-6B 是清华大学KEG和数据挖掘小组(THUDM)开源中英双语对话模型,这个模型能够实现低门槛部署,对话流畅,并且非常方便研究和探索下游应用场景。具体介绍,我们引用官网的详细介绍,如下所示: 更强大的性能:基于 ChatGLM 初代模型的开发经验,我们全面升级了 ChatGLM2-6B 的基座模型。ChatGLM2-6B 使用了 GLM 的混合目标函数,经过了 1.4T 中英标识符的预训练与人类偏好对齐训练,评测结果显示,相比于初代模型,ChatGLM2-6B 在 MMLU(+23%)、CEval(+33%)、GSM8K(+571%) 、BBH(+60%)等数据集上的性能取得了大幅度的提升,在同尺寸开源模型中具有较强的竞争力。 更长的上下文:基于 FlashAttention 技术,我们将基座模型的上下文长度(Context Length)由 ChatGLM-6B 的 2K 扩展到了 32K,并在对话阶段使用 8K 的上下文长度训练,允许更多轮次的对话。但当前版本的 ChatGLM2-6B 对单轮超长文档的理解能力有限,我们会在后续迭代升级中着重进行优化。 更高效的推理:基于 Multi-Query Attention 技术,ChatGLM2-6B 有更高效的推理速度和更低的显存占