avatar
文章
40
標籤
20
分類
4

首頁
歸檔
標籤
分類
友鏈
開往
極東晝寢愛好家
首頁
歸檔
標籤
分類
友鏈
開往

極東晝寢愛好家

置顶|本站文章索引
發表於2024-07-14
生成式人工智能 Flow-based Models 笔记|Normalizing Flow 理论与实现(一)基础理论 笔记|扩散模型(一八)Flow Matching 理论详解 Diffusion Models:通用理论 笔记|扩散模型(一)DDPM 理论与实现 笔记|扩散模型(二)DDIM 理论与实现 笔记|扩散模型(三)Improved DDPM 理论与实现 笔记|扩散模型(四)Classifier Guidance 理论与实现 笔记|扩散模型(五)Classifier-Free Guidance 理论与实现 笔记|扩散模型(一七)扩散模型中的 Velocity Prediction Diffusion Models:文生图 笔记|扩散模型(六)DALL-E 理论与实现|自回归文生图 笔记|扩散模型(七)Latent Diffusion Models(Stable Diffusion)理论与实现 笔记|扩散模型(八)DALL-E 2 (unCLIP) 理论与实现 笔记|扩散模型(九)Imagen 理论与实现 笔记|扩散模型(一〇)Dreambooth 理论与实现|主题驱动 ...
笔记|大模型训练(三)数据并行与相关优化策略
發表於2025-09-02|Notes
本学习笔记是对 nanotron/ultrascale-playbook 的学习记录,该书涵盖分布式训练、并行技术以及一些优化策略。本文章是该系列笔记的第三篇,对应原书 Data Parallelism 一章的前半部分。 数据并行(Data Parallelism, DP)的核心思想是把模型复制到多个 GPU 上(可以把这些副本称为模型实例),并在每个 GPU 上并行地对不同的 micro-batch 进行前向和反向传播——这也是「数据并行」这个名称的来源。尽管这个方法已经非常常见,但在本节中我们将会更深入地探讨这一内容。 在每个 GPU 上使用不同的 micro-batch 意味着每个 GPU 上的梯度也各不相同。因此,为了保证不同 GPU 上的模型实例相互同步,我们需要使用 all-reduce 操作来平均来自所有模型实例的梯度。这个操作发生在反向传播期间、优化器执行更新之前。 一个朴素的数据并行实现会等待反向传播完成后获得所有的梯度,然后对所有的 DP 节点出发一次 all-reduce 来同步梯度。但这种先计算后通信的串行步骤是一个大忌,因为 GPU 在通信期间会处于空闲 ...
笔记|大模型训练(二)并行编程快速入门
發表於2025-09-01|Notes
本学习笔记是对 nanotron/ultrascale-playbook 的学习记录,该书涵盖分布式训练、并行技术以及一些优化策略。本文章是该系列笔记的第二篇,对应原书附录 A0: Parallel Programming Crash Course 一章。 后续会开始学习分布式训练相关知识,为此需要在机器之间进行权重、梯度以及数据的通信和同步。为了实现这一目标需要使用一些并行编程操作,例如 broadcast、all reduce、scatter 等,首先对这部分进行介绍,如果读者已经对这部分的内容比较熟悉,可以直接跳过本篇内容。 一般情况下,训练时会有多个独立的节点,这些节点可以是 CPU 核心,也可以是 GPU 或者其他节点。每个节点分别执行一些计算,然后将其结果同步到其他的节点或将这些结果全部相加来得到总体结果,如下图所示。通常来说会有一个地位较高的节点来扮演核心的角色,这里用根节点来表示,这个节点是这些操作的目标或者源头。 Broadcast/广播 首先是最简单的广播操作。想像这样一个场景:你在节点 1 上初始化了一些数据,现在你希望将这些数据发送给所有的其他节点,以便这 ...
笔记|大模型训练(一)单卡训练的分析与优化策略
發表於2025-08-29|Notes
本学习笔记是对 nanotron/ultrascale-playbook 的学习记录,该书涵盖分布式训练、并行技术以及一些优化策略。本文章是该系列笔记的第一篇,对应原书 First Steps: Training on One GPU 一章。 在开始学习分布式训练前,不妨先快速回顾一下模型训练的基础知识。在单 GPU 上训练模型时,训练通常包含三个步骤: 前向传播:将输入传递至模型并产生输出; 反向传播:进行梯度计算; 优化步骤:根据计算出的梯度对模型的参数进行更新。 总体上来说可以用下图表示。图中第一行和最后一行的紫色框可以看作模型的不同层,黑色箭头表示了这些层的连接关系。在训练时,首先对输入进行前向传播(青色箭头),随后反向传播计算梯度(橙色箭头)。使用得到的梯度对模型的参数进行更新,可以得到优化过的模型。 在模型训练过程中,batch size 是最重要的超参数之一,其影响模型训练的收敛速度以及吞吐量。具体来说,在训练初期,较小的 batch size 可以帮助模型快速地到达最佳的学习位置,然而随着训练的进行,小的 batch size 会导致梯度含有比较多的噪声,最终 ...
技术相关|使用 Certbot 为通配符域名签发 SSL 证书
發表於2025-05-26|Techniques
近期在腾讯云给 OSS 配置了自定义域名,并且因为我有两个桶,所以配置了两个不同的子域名。又为了让文件能支持 HTTPS 访问,需要在腾讯云后台给域名配置 SSL 证书。但非常坑的是腾讯云的 SSL 证书不仅需要花钱买而且非常贵,因此为了节能减排最后我选择在 Let's Encrypt 自己签发一个证书。 Let's Encrypt 推荐的客户端是 Certbot,而为了让多个子域名都能使用同一个证书,需要为通配符域名(也就是一个类似 *.my-domain.com 形式的域名)签发证书,这需要使用 DNS-01 模式进行签发。 从具体操作来说,首先需要访问 Certbot 的官方网站并且选择正确的选项。对于我来说,我并不需要在本地部署证书,因此我选的是 My HTTP website is running Other on Linux (snap)。选择之后一步步跟着官方的教程安装 certbot,对于我来说命令是下边这些,其他系统的命令可能有所不同: 123sudo apt-get remove certbotsudo snap install --classic certbots ...
开发记录|基于 CogVideoX 实现 DDIM Inversion
發表於2025-02-20|Techniques
近期正在基于 CogVideoX 实现一些视频编辑相关的功能,然而在尝试的时候发现了一个比较奇怪的问题:CogVideoX 无法直接使用和 Stable Diffusion 类似的方式实现 DDIM Inversion。 使用 DDIM 对扩散模型进行采样时,会形成一条「轨迹」。DDIM Inversion 就是从一条现有的视频出发,沿着这条轨迹逆向返回得到最初的噪声的过程。由于 DDIM 采样是确定性的过程,所以从这个得到的噪声出发再重新进行采样,应当能够得到原始视频;如果在采样过程中改变一些控制条件(例如修改视频描述)就可以实现对原始视频的编辑。 为了在 CogVideoX 上实现 DDIM Inversion,最初我的实现大概是这样: 123456789101112131415pipeline = CogVideoXPipeline.from_pretrained(model_path)original_scheduler = pipeline.schedulerinverse_scheduler = DDIMInverseScheduler(**original_schedul ...
笔记|扩散模型(一八)Flow Matching 理论详解
發表於2024-09-20|Notes
论文链接:Flow Matching for Generative Modeling 在 Stable Diffusion 3 中,模型是通过 Flow Matching 的方法训练的。从这个方法的名字来看,就知道它和 Flow-based Model 有比较强的关联,因此在正式开始介绍这个方法之前先交代一些 Flow-based Model 相关的背景知识。 Flow-based Models Normalizing Flow Normalizing Flow 是一种基于变换对概率分布进行建模的模型,其通过一系列离散且可逆的变换实现任意分布与先验分布(例如标准高斯分布)之间的相互转换。在 Normalizing Flow 训练完成后,就可以直接从高斯分布中进行采样,并通过逆变换得到原始分布中的样本,实现生成的过程。(有关 Normalizing Flow 的详细理论介绍可以移步我的这篇文章观看) 从这个角度看,Normalizing Flow 和 Diffusion Model 是有一些相通的,其做法的对比如下表所示。从表中可以看到,两者大致的过程是非常类似的,尽管依然有些地方不 ...
笔记|扩散模型(一七)扩散模型中的 Velocity Prediction
發表於2024-09-19|Notes
论文链接:Progressive Distillation for Fast Sampling of Diffusion Models 近期在研究 Rectified Flow 时发现 diffusers 中一个相关的 PR(#5397)训练用到了 Velocity Prediction,回想起之前某次面试还被问到了这个问题,决定来学习一下这究竟是什么东西。 对 CompVis 实现的 Stable Diffusion 代码比较熟悉的读者应该或多或少都在 scheduler 中读到过这样一段代码: 123456if self.parameterization == "eps": target = noiseelif self.parameterization == "x0": target = x_startelif self.parameterization == "v": target = self.get_v(x_start, noise, t) 这是在计算损失时,也就是 p_loss 函数中的几种 ...
笔记|扩散模型(一六)CogVideoX 论文解读|文生视频扩散模型
發表於2024-09-11|Notes
CogVideoX 是智谱近期发布的视频生成模型,和上一个工作 CogVideo 不同,这个方法是基于扩散模型实现的。从框架图来看,感觉 CogVideoX 同时吸取了 Sora 和 Stable Diffusion 3 的优势,不仅使用了 3D VAE,还引入了双路 DiT 的架构。 具体来说,CogVideoX 主要进行了以下几个方面的工作: 使用 3D VAE 编码视频,有效地压缩视频维度、保证视频的连续性; 引入双路 DiT 分别对文本和视频进行编码,并用 3D attention 进行信息交换; 开发了一个视频标注的 pipeline,用于对视频给出准确的文本标注; 提出了一种渐进式训练方法和一种均匀采样方法。 CogVideoX CogVideoX 的整体架构如下图所示,文本和视频分别经过文本编码器(这里是 T5)和 3D VAE 编码后输入主干网络。文本和视频分别经过一条支路,并在注意力部分进行交互。 3D Causal VAE 由于视频相比图像多了时序信息,所以需要对多出来的时间维度进行处理。先前的视频生成模型都采用 2D VAE,这样会导致生成的视频在时间上连续 ...
笔记|扩散模型(一五)CogVideo 论文解读|文生视频大模型
發表於2024-09-10|Notes
论文链接:CogVideo: Large-scale Pretraining for Text-to-Video Generation via Transformers 官方实现:THUDM/CogVideo(由于目前的仓库里,CogVideo 相关的代码已经被替换为 CogVideoX 的代码,所以如果希望浏览 CogVideo 的代码,包含该方法代码最后一个 commit 为 5f914b7,也就是 这个链接) 和本系列中的 DALL-E 一样,虽然 CogVideo 也并非基于扩散模型的方法,但由于其后续工作 CogVideoX 是基于扩散模型的,所以这篇文章也放到扩散模型系列里。 CogVideo 是基于大规模预训练 Transformer 进行视频生成的工作,也是近期推出的 CogVideoX 的前身。相比于文生图任务,文生视频的主要难点在于两个方面:首先是数据更加稀缺,视频-文本配对数据比较少;其次是视频多了时序信息。 本模型基于文生图模型 CogView2 进行训练,在训练时使用了 5.4 M 视频-文本对数据。在训练时,文本条件是通过 in context lea ...
12…4
avatar
LittleNyima
文章
40
標籤
20
分類
4
Follow Me
公告
欢迎来到 LittleNyima 的栖息地~(偶尔出没)
最新文章
笔记|大模型训练(三)数据并行与相关优化策略2025-09-02
笔记|大模型训练(二)并行编程快速入门2025-09-01
笔记|大模型训练(一)单卡训练的分析与优化策略2025-08-29
技术相关|使用 Certbot 为通配符域名签发 SSL 证书2025-05-26
开发记录|基于 CogVideoX 实现 DDIM Inversion2025-02-20
分類
  • Jottings3
  • Notes26
  • Techniques8
  • Tutorials2
標籤
Distributed Computing Animation engine Linux Genetative models Security Deep learning Large language models Manimgl Python Github Actions Writing Music theory SSL Certbot Hexo Diffusion models Generative models Generavie models Normalizing flow Pytorch
歸檔
  • 九月 20252
  • 八月 20251
  • 五月 20251
  • 二月 20251
  • 九月 20244
  • 八月 20246
  • 七月 20249
  • 六月 20243
網站資訊
文章數目 :
40
本站訪客數 :
本站總訪問量 :
最後更新時間 :
©2020 - 2025 By LittleNyima
框架 Hexo|主題 Butterfly
网站封面图作者よこ。