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

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

Mar 20, 2025 am 10:53 AM

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

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

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

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

最佳AI艺术生成器(免费付款)创意项目 最佳AI艺术生成器(免费付款)创意项目 Apr 02, 2025 pm 06:10 PM

本文回顾了AI最高的艺术生成器,讨论了他们的功能,对创意项目的适用性和价值。它重点介绍了Midjourney是专业人士的最佳价值,并建议使用Dall-E 2进行高质量的可定制艺术。

开始使用Meta Llama 3.2 -Analytics Vidhya 开始使用Meta Llama 3.2 -Analytics Vidhya Apr 11, 2025 pm 12:04 PM

Meta的Llama 3.2:多模式和移动AI的飞跃 Meta最近公布了Llama 3.2,这是AI的重大进步,具有强大的视觉功能和针对移动设备优化的轻量级文本模型。 以成功为基础

最佳AI聊天机器人比较(Chatgpt,Gemini,Claude&更多) 最佳AI聊天机器人比较(Chatgpt,Gemini,Claude&更多) Apr 02, 2025 pm 06:09 PM

本文比较了诸如Chatgpt,Gemini和Claude之类的顶级AI聊天机器人,重点介绍了其独特功能,自定义选项以及自然语言处理和可靠性的性能。

顶级AI写作助理来增强您的内容创建 顶级AI写作助理来增强您的内容创建 Apr 02, 2025 pm 06:11 PM

文章讨论了Grammarly,Jasper,Copy.ai,Writesonic和Rytr等AI最高的写作助手,重点介绍了其独特的内容创建功能。它认为Jasper在SEO优化方面表现出色,而AI工具有助于保持音调的组成

10个生成AI编码扩展,在VS代码中,您必须探索 10个生成AI编码扩展,在VS代码中,您必须探索 Apr 13, 2025 am 01:14 AM

嘿,编码忍者!您当天计划哪些与编码有关的任务?在您进一步研究此博客之前,我希望您考虑所有与编码相关的困境,这是将其列出的。 完毕? - 让&#8217

向员工出售AI策略:Shopify首席执行官的宣言 向员工出售AI策略:Shopify首席执行官的宣言 Apr 10, 2025 am 11:19 AM

Shopify首席执行官TobiLütke最近的备忘录大胆地宣布AI对每位员工的基本期望是公司内部的重大文化转变。 这不是短暂的趋势。这是整合到P中的新操作范式

AV字节:Meta' llama 3.2,Google的双子座1.5等 AV字节:Meta' llama 3.2,Google的双子座1.5等 Apr 11, 2025 pm 12:01 PM

本周的AI景观:进步,道德考虑和监管辩论的旋风。 OpenAI,Google,Meta和Microsoft等主要参与者已经释放了一系列更新,从开创性的新车型到LE的关键转变

选择最佳的AI语音生成器:评论的顶级选项 选择最佳的AI语音生成器:评论的顶级选项 Apr 02, 2025 pm 06:12 PM

本文评论了Google Cloud,Amazon Polly,Microsoft Azure,IBM Watson和Discript等高级AI语音生成器,重点介绍其功能,语音质量和满足不同需求的适用性。

See all articles