搜索
首页科技周边人工智能我如何在8GB GPU RAM上运行通量模型? - 分析Vidhya

Black Forest Labs最近发布的Flux模型因其令人印象深刻的图像产生功能而广受欢迎。但是,其尺寸最初阻止了其在标准消费硬件上的使用。此限制促使使用API​​服务以避免本地模型加载。但是,由于GPU的要求,本地部署的成本仍然很高。幸运的是,拥抱Face的扩散器库现在通过BitsandBytes支持量化,从而可以在仅8GB GPU RAM的机器上进行通量推断。

我如何在8GB GPU RAM上运行通量模型? - 分析Vidhya

学习目标:

  • 配置依赖关系,用于在Colab环境中使用通量。
  • 使用4位量化的文本编码器编码文本提示,以提高内存效率。
  • 实现保存内存的技术,以混合精度加载和运行图像生成模型。
  • 使用COLAB中的通量管道从文本提示中生成图像。

本文是数据科学博客马拉松的一部分。

目录:

  • 学习目标
  • 什么是通量?
  • 为什么量化很重要?
    • 用bitsandbytes进行量化
    • BitsandBytes如何工作?
  • 在消费者硬件上运行通量
    • 步骤1:环境设置
    • 步骤2:GPU内存管理
    • 步骤3:加载4位T5文本编码器
    • 步骤4:生成文本嵌入
    • 步骤5:加载4位变压器和VAE
    • 步骤6:图像生成
  • 设备图像生成的未来
  • 结论
    • 关键要点
  • 常见问题

什么是通量?

Black Forest Labs(稳定扩散的创造者)开发的Flux代表了文本到图像模型的重大进步。它以稳定的扩散为基础,提供了提高的性能和输出质量。虽然最初是资源密集型的,但优化允许对消费者硬件有效执行。本文演示了量化如何增强通量的可访问性。下图说明了创意潜力和计算成本之间的权衡。

我如何在8GB GPU RAM上运行通量模型? - 分析Vidhya

Flux拥有几个关键的建筑组件:

  • 两个预训练的文本编码器(剪辑和T5):这些编码器改善了文本及时理解和转换为图像。
  • 基于变压器的DIT模型:这种脱氧主链利用变压器提高效率和准确性。
  • 变性自动编码器(VAE):潜在空间中的处理可以减少计算需求,同时保持图像质量。

通量有多种版本:Flux-Schnell(开源),Flux-DEV(开放,具有更限制的许可)和Flux-Pro(封闭消息,可访问)。

我如何在8GB GPU RAM上运行通量模型? - 分析Vidhya

为什么量化很重要?

量化是一种通过使用较少位来存储参数来降低模型大小的技术,对于在有限的硬件上运行大型型号至关重要。虽然在图像生成中不太常见,但它会大大降低记忆足迹而没有大量性能损失。神经网络参数通常存储在32位,但量化可以将其降低到4位。

用bitsandbytes进行量化

BITSANDBYTES库实现了Pytorch的有效k位量化。它集成到扩散器库中,使8GB GPU的运行通量可行。

BitsandBytes如何工作?

BitsandBytes量化为8位和4位精度。 8位量化处理异常值不同,以最大程度地减少性能降解。 4位量化进一步压缩了该模型,该模型通常与Qlora一起用于微调。

在消费者硬件上运行通量

步骤1:环境设置

确保启用GPU的环境(例如NVIDIA T4/L4或Google Colab)。安装必要的软件包:

 !
!
!

导入依赖性:

导入扩散器
导入变压器
导入bitsandbytes作为BNB
从扩散器导入FluxPipeline,FluxTransFormer2DModel
从变形金刚导入t5encodermodel
导入火炬
导入GC

步骤2:GPU内存管理

定义一个函数以清除模型负载之间的GPU内存:

 def flush():
    gc.collect()
    TORCH.CUDA.EMPTY_CACHE()
    torch.cuda.Reset_max_memory_allocated()
    TORCH.CUDA.RESET_PEAK_MEMORY_STATS()

flush()

步骤3:加载4位T5文本编码器

使用4位量化加载T5编码器:

 ckpt_id =“黑色 - 林 -  luxs/flux.1-dev”
ckpt_4bit_id =“ hf内部测试/flux.1-dev-nf4-pkg”
提示=“巴黎照片中的一只可爱的狗”

text_encoder_2_4bit = t5encodermodel.from_pretrated(
    ckpt_4bit_id,
    subfolder =“ text_encoder_2”,
)

步骤4:生成文本嵌入

使用量化的编码器编码提示:

 pipeline = fluxpipeline.from_pretaining(
    “黑色 - 林 -  luxs/flux.1-dev”,
    text_encoder_2 = text_encoder_2_4bit,
    变压器=无,
    vae =无,
    TORCH_DTYPE = TORCH.FLOAT16,
)

使用Torch.no_grad():
    提示_embeds,pooled_prompt_embeds,text_ids = pipeline.encode_prompt(
        提示=提示,提示_2 = none,max_secorence_length = 256
    )

Del Pipeline
flush()

步骤5:加载4位变压器和VAE

将变压器和VAE加载到4位模式下:

 transformer_4bit = fluxtransformer2dmodel.from_pretrated(ckpt_4bit_id,subfolder =“ transformer”)
pipeline = fluxpipeline.from_pretaining(
    ckpt_id,
    text_encoder =无,
    text_encoder_2 =无,
    tokenizer = none,
    tokenizer_2 =无,
    变压器=变形金刚_4bit,
    TORCH_DTYPE = TORCH.FLOAT16,
)

pipeline.enable_model_cpu_offload()

步骤6:图像生成

生成图像:

打印(“奔跑denoising。”)
高度,宽度= 512,768
图像=管道(管道
    提示_embeds =提示_embeds,
    pooled_prompt_embeds = pooled_prompt_embeds,
    num_inference_steps = 50,
    gudance_scale = 5.5,
    高度=高度,
    宽度=宽度,
    output_type =“ pil”,
)。图像

图像[0] 

我如何在8GB GPU RAM上运行通量模型? - 分析Vidhya

设备图像生成的未来

量化和高效的模型处理为消费者硬件带来了强大的AI,使对高级图像生成的访问民主化。

结论

通量结合量化,可以在8GB GPU上产生高质量的图像生成。这一进步使更加精致的AI可以被更广泛的受众访问。

关键要点:

  • 通量使用4位量化和混合精度在Colab中有效运行。
  • diffuserstransformers简化了图像生成。
  • 有效的内存管理可以对有限的资源进行大型模型执行。

经常询问的问题(与原始问题相同,但重新格式化以提高可读性)

Q1。 4位量化的目的? 4位量化减少了内存使用情况,从而使大型模型在有限的资源上可以有效地运行。

Q2。更改文本提示?prompt变量替换为所需的文本描述。

Q3。调整图像质量/样式?调整管道调用中的num_inference_steps (质量)和guidance_scale (及时遵守)。

Q4。处理COLAB中的内存错误?确保使用GPU使用率,4位量化和混合精度。考虑降低num_inference_steps或使用CPU卸载。

Q5。在本地运行脚本?是的,但是请确保足够的GPU资源和内存。

以上是我如何在8GB GPU RAM上运行通量模型? - 分析Vidhya的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
如何在Excel中冷冻窗格?如何在Excel中冷冻窗格?Apr 17, 2025 am 09:56 AM

Excel冻结窗格功能详解:高效处理大型数据集 Microsoft Excel是组织和分析数据的优秀工具之一,而“冻结窗格”功能更是其一大亮点。此功能允许您固定特定行或列,使其在浏览其余电子表格时保持可见,从而简化数据监控和比较。本文将深入探讨Excel冻结窗格功能的使用方法,并提供一些实用技巧和示例。 功能概述 Excel的冻结窗格功能可在滚动浏览大型数据集时,保持特定行或列可见,方便数据监控和比较。 提升导航效率,保持标题可见,简化大型电子表格中的数据比较。 提供通过“视图”选项卡和“冻

NEO4J与亚马逊海王星:数据工程中的图形数据库NEO4J与亚马逊海王星:数据工程中的图形数据库Apr 17, 2025 am 09:52 AM

导航互连数据的复杂性:Neo4J与亚马逊海王星 在当今数据丰富的世界中,有效管理复杂的互连信息至关重要。尽管传统数据库仍然相关,但他们经常与HI斗争

META SAM 2:建筑,应用和局限性-Analytics VidhyaMETA SAM 2:建筑,应用和局限性-Analytics VidhyaApr 17, 2025 am 09:40 AM

Meta的细分段的任何模型2(SAM-2):实时图像和视频细分方面的巨大飞跃 Meta再次通过SAM-2推动了人工智能的界限,SAM-2是计算机视觉的开创性进步

人工智能工作流程和消费者体验的数据策略人工智能工作流程和消费者体验的数据策略Apr 17, 2025 am 09:39 AM

通过AI增强数字消费者体验:一种数据驱动的方法 数字景观具有激烈的竞争力。 本文探讨了人工智能(AI)如何显着改善数字平台上的消费者体验。我们会考试

稳定扩散中的位置编码是什么? - 分析Vidhya稳定扩散中的位置编码是什么? - 分析VidhyaApr 17, 2025 am 09:34 AM

稳定的扩散:在文本到图像中揭示位置编码的力量 想象一下,从简单的文本描述中产生令人叹为观止的高分辨率图像。 这是稳定扩散的力量,一种尖端的文本对图像模型

什么是SQL中的模式?组件,优势等什么是SQL中的模式?组件,优势等Apr 17, 2025 am 09:33 AM

了解SQL模式:综合指南 想象一下为新建筑设计蓝图。 就像建筑师创建详细的计划一样,SQL模式也提供了用于在数据库中组织数据的蓝图。 本指南说明了什么SQL模式

在边缘设备上的自托管破布应用程序在边缘设备上的自托管破布应用程序Apr 17, 2025 am 09:32 AM

在Raspberry Pi上部署强大的AI文档处理器:逐步指南 本文详细介绍了将Raspberry Pi转换为智能文档处理的强大工具的过程,利用了高级AI的功能。 我们将cov

ISRO启动的数据分析 - 分析VidhyaISRO启动的数据分析 - 分析VidhyaApr 17, 2025 am 09:31 AM

ISRO的综合激光雷达数据分析课程:免费的教育机会 印度太空研究组织(ISRO)启动了一系列免费的数据分析课程,包括有关激光雷达技术及其应用程序的详细计划

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
1 个月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它们
1 个月前By尊渡假赌尊渡假赌尊渡假赌

热工具

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),