<a href="https://github.com/ashleve/lightning-hydra-template"><img alt="Template" src="https://img.shields.io/badge/-Lightning--Hydra--Template-017F2F?style=flat&logo=github&labelColor=gray"></a>
条件流匹配(CFM)是一种快速训练连续标准化流(CNF)模型的方法。CFM是一种无需模拟的连续标准化流训练目标,它允许条件生成建模并加速训练和推理。CFM的性能缩小了CNF和扩散模型之间的差距。为了在机器学习社区中推广其使用,我们构建了一个专注于流匹配方法的库:TorchCFM。TorchCFM是一个展示如何训练和使用流匹配方法来处理图像生成、单细胞动力学、表格数据以及即将推出的SO(3)数据的库。
<p align="center"> <img src="https://yellow-cdn.veclightyear.com/835a84d5/238155bf-f162-404e-aa63-17dbc51c54e8.png" width="600"/> <img src="https://yellow-cdn.veclightyear.com/835a84d5/bcf4a6df-9d2c-4acc-8456-71b15f20d347.gif" /> </p>无模拟CNF训练方案的密度、向量场和轨迹:将8个高斯分布映射到两个月牙形(上图)和将单个高斯分布映射到两个月牙形(下图)。使用相同架构(3x64 MLP with SeLU激活)的动作匹配在ReLU、SiLU和SiLU激活下欠拟合,如示例代码所示,但在我们的训练设置下(Action-Matching (Swish))似乎拟合得更好。
生成GIF的模型存储在examples/models中,可以使用此笔记本进行可视化:。
我们还在examples/notebooks/mnist_example.ipynb中包含了一个无条件MNIST生成的示例,包括确定性和随机生成。。
在我们的版本1更新中,我们将相关流匹配变体的实现提取到了torchcfm包中。这允许抽象条件分布q(z)的选择。torchcfm提供以下损失函数:
ConditionalFlowMatcher:$z = (x_0, x_1)$,$q(z) = q(x_0) q(x_1)$ExactOptimalTransportConditionalFlowMatcher:$z = (x_0, x_1)$,$q(z) = \pi(x_0, x_1)$,其中$\pi$是精确的最优传输联合分布。这在[Tong et al. 2023a]和[Poolidan et al. 2023]中被称为"OT-CFM"和"带批量OT的多样本FM"。TargetConditionalFlowMatcher:$z = x_1$,$q(z) = q(x_1)$,如Lipman et al. 2023中定义,学习从标准正态高斯分布到数据的流,使用条件流将高斯分布最优传输到数据点(注意这不会导致边际流成为最优传输)。SchrodingerBridgeConditionalFlowMatcher:$z = (x_0, x_1)$,$q(z) = \pi_\epsilon(x_0, x_1)$,其中$\pi_\epsilon$是熵正则化的OT计划,尽管在实践中这通常通过小批量OT计划来近似(参见Tong et al. 2023b)。边际等价于薛定谔桥边际的流匹配变体称为SB-CFM[Tong et al. 2023a]。当分数也已知且桥是随机的时称为[SF]2M [Tong et al. 2023b]。VariancePreservingConditionalFlowMatcher:$z = (x_0, x_1)$ $q(z) = q(x_0) q(x_1)$,但使用条件高斯概率路径,通过三角插值在时间上保持方差,如[Albergo et al. 2023a]中所述。此存储库包含重现两个预印本的主要实验和图示的代码:
如果您在研究中发现此代码有用,请引用以下论文(展开获取BibTeX):
<details> <summary> A. Tong, N. Malkin, G. Huguet, Y. Zhang, J. Rector-Brooks, K. Fatras, G. Wolf, Y. Bengio. 通过小批量最优传输改进和推广基于流的生成模型, 2023. </summary></details> <details> <summary> A. Tong, N. Malkin, K. Fatras, L. Atanackovic, Y. Zhang, G. Huguet, G. Wolf, Y. Bengio. 通过分数和流匹配的无模拟薛定谔桥, 2023. </summary>@article{tong2024improving, title={Improving and generalizing flow-based generative models with minibatch optimal transport}, author={Alexander Tong and Kilian FATRAS and Nikolay Malkin and Guillaume Huguet and Yanlei Zhang and Jarrid Rector-Brooks and Guy Wolf and Yoshua Bengio}, journal={Transactions on Machine Learning Research}, issn={2835-8856}, year={2024}, url={https://openreview.net/forum?id=CD9Snc73AW}, note={Expert Certification} }
</details>@article{tong2023simulation, title={Simulation-Free Schr{\"o}dinger Bridges via Score and Flow Matching}, author={Tong, Alexander and Malkin, Nikolay and Fatras, Kilian and Atanackovic, Lazar and Zhang, Yanlei and Huguet, Guillaume and Wolf, Guy and Bengio, Yoshua}, year={2023}, journal={arXiv preprint 2307.03672} }
主要变更:
torchcfm pip可安装包pytorch-lightning实现和实验移至runner目录notebooks -> examplesexamples中的笔记本中添加了图像生成实现已实现论文列表:
在这里运行一个简单的最小示例 。或者按照以下步骤在本地安装更高效的代码。
TorchCFM现已在pypi上发布!你可以通过以下命令安装:
pip install torchcfm
要使用完整的库及不同示例,你可以安装依赖项:
# 克隆项目 git clone https://github.com/atong01/conditional-flow-matching.git cd conditional-flow-matching # [可选] 创建conda环境 conda create -n torchcfm python=3.10 conda activate torchcfm # 按照说明安装pytorch # https://pytorch.org/get-started/ # 安装requirements pip install -r requirements.txt # 安装torchcfm pip install -e .
安装我们的包后,使用以下命令运行我们的jupyter notebooks。
# 安装ipykernel conda install -c anaconda ipykernel # 在jupyter notebook中安装conda环境 python -m ipykernel install --user --name=torchcfm # 使用torchcfm内核启动我们的notebooks
目录结构如下:
│
├── examples <- Jupyter notebooks
| ├── cifar10 <- Cifar10实验
│ ├── notebooks <- 各种示例notebooks
│
│── runner <- 与库原始版本(V0)相关的所有内容
│
|── torchcfm <- 我们的流匹配方法的代码库
| ├── conditional_flow_matching.py <- CFM类
│ ├── models <- 模型架构
│ │ ├── models <- 2D示例的模型
│ │ ├── Unet <- 图像示例的Unet模型
|
├── .gitignore <- git忽略的文件列表
├── .pre-commit-config.yaml <- 代码格式化的预提交钩子配置
├── pyproject.toml <- 测试和代码检查的配置选项
├── requirements.txt <- 安装python依赖项的文件
├── setup.py <- 将项目作为包安装的文件
└── README.md
这个工具箱由以下人员创建和维护:
它最初源自一个更大的私有代码库,因此失去了原始提交历史,其中包含论文其他作者的工作。
在提出问题之前,请确认:
main分支上仍然存在。我们随时欢迎改进建议!
TorchCFM的开发和维护得到了以下机构的财务支持:
<p align="center"> <picture> <source media="(prefers-color-scheme: dark)" srcset="assets/DF_logo_dark.png" width="300"/> <img alt="DF logo changing depending on mode.'" src="https://yellow-cdn.veclightyear.com/835a84d5/d3249af1-6a5c-4663-acbe-6bec47db771d.png" width="300"/> </picture> </p>Conditional-Flow-Matching采用MIT许可证。
MIT许可证
版权所有 (c) 2023 Alexander Tong
特此免费授予任何获得本软件副本和相关文档文件("软件")的人不受限制地处理本软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售本软件副本的权利,以及允许向其提供本软件的人这样做,但须符合以下条件:
上述版权声明和本许可声明应包含在本软件的所有副本或实质性部分中。
本软件按"原样"提供,不提供任何明示或暗示的保证,包括但不限于对适销性、特定用途适用性和非侵权性的保证。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是在合同诉讼、侵权行为还是其他方面,均不得超出与本软件或本软件的 使用或其他交易有关的范围。


全球首个AI音乐社区
音述AI是全球首个AI音乐社区,致力让每个人都能用音乐表达自我。音述AI提供零门槛AI创作工具,独创GETI法则帮助用户精准定义音乐风格,AI润色功能支持自动优化作品质感。音述AI支持交流讨论、二次创作与价值变现。针对中文用户的语言习惯与文化背景进行专门优化,支持国风融合、C-pop等本土音乐标签,让技术更好地承载人文表达。


阿里Qoder团队推出的桌面端AI智能体
QoderWork 是阿里推出的本地优先桌面 AI 智能体,适配 macOS14+/Windows10+,以自然语言交互实现文件管理、数据分析、AI 视觉生成、浏览器自动化等办公任务,自主拆解执行复杂工作流,数据本地运行零上传,技能市场可无限扩展,是高效的 Agentic 生产力办公助手。


一站式搞定所有学习需求
不再被海量信息淹没,开始真正理解知识。Lynote 可摘要 YouTube 视频、PDF、文章等内容。即时创建笔记,检测 AI 内容并下载资料,将您的学习效率提升 10 倍。


为AI短剧协作而生
专为AI短剧协作而生的AniShort正式发布,深度重构AI短剧全流程生产模式,整合创意策划、制作执行、实时协作、在线审片、资产复用等全链路功能,独创无限画布、双轨并行工业化工作流与Ani智能体助手,集成多款主流AI大模型,破解素材零散、版本混乱、沟通低效等行业痛点,助力3人团队效率提升800%,打造标准化、可追溯的AI短剧量产体系,是AI短剧团队协同创作、提升制作效率的核心工具。


能听懂你表达的视频模型
Seedance two是基于seedance2.0的中国大模型,支持图像、视频、音频、文本四种模态输入,表达方式更丰富,生成也更可控。


国内直接访问,限时3折
输入简单文字,生成想要的图片,纳米香蕉中文站基于 Google 模型的 AI 图片生成网站,支持文字生图、图生图。官网价格限时3折活动


职场AI,就用扣子
AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!


多风格AI绘画神器
堆友平台由阿里巴巴设计团队创建,作为一款AI驱动的设计工具,专为设计师提供一站式增长服务。功能覆盖海量3D素材、AI绘画、实时渲染以及专业抠图,显著提升设计品质和效率。平台不仅提供工具,还是一个促进创意交流和个人发展的空间,界面友好,适合所有级别的设计师和创意工作者。


零代码AI应用开发平台
零代码AI应用开发平台,用户只需一句话简单描述需求,AI能自动生成小程序、APP或H5网页应用,无需编写代码。


免费创建高清无水印Sora视频
Vora是一个免费创建高清无水印Sora视频的AI工具
最新AI工具、AI资讯
独家AI资源、AI项目落地

微信扫一扫关注公众号