> 기술 주변기기 > 일체 포함 > 8GB GPU RAM에서 플럭스 모델을 어떻게 실행합니까? - 분석 Vidhya

8GB GPU RAM에서 플럭스 모델을 어떻게 실행합니까? - 분석 Vidhya

Lisa Kudrow
풀어 주다: 2025-03-20 10:53:11
원래의
403명이 탐색했습니다.

Black Forest Labs의 최근 출시 된 플럭스 모델은 인상적인 이미지 생성 기능으로 인기를 얻었습니다. 그러나 크기는 처음에 표준 소비자 하드웨어에서의 사용을 방해하지 않았습니다. 이 제한은 로컬 모델로드를 피하기 위해 API 서비스의 사용을 자극했습니다. 그러나 GPU 요구 사항으로 인해 온 프레미스 배포는 비용이 많이 들었습니다. 다행스럽게도, Hugging Face의 Diffusers Library는 이제 Bitsandbytes를 통한 양자화를 지원하므로 8GB의 GPU RAM이있는 기계에서 플럭스 추론이 가능합니다.

8GB GPU RAM에서 플럭스 모델을 어떻게 실행합니까? - 분석 Vidhya

학습 목표 :

  • Colab 환경에서 플럭스 사용에 대한 종속성을 구성하십시오.
  • 메모리 효율을 위해 4 비트 양자화 된 텍스트 인코더를 사용하여 텍스트 프롬프트를 인코딩합니다.
  • 혼합 정밀도로 이미지 생성 모델을로드 및 실행하기위한 메모리 절약 기술을 구현하십시오.
  • Colab의 Flux 파이프 라인을 사용하여 텍스트 프롬프트에서 이미지를 생성합니다.

이 기사는 Data Science Blogathon의 일부입니다.

목차 :

  • 학습 목표
  • 플럭스 란 무엇입니까?
  • 양자화가 중요한 이유는 무엇입니까?
    • 비트 산비 테스를 사용한 양자화
    • Bitsandbytes는 어떻게 작동합니까?
  • 소비자 하드웨어에서 플럭스 실행
    • 1 단계 : 환경 설정
    • 2 단계 : GPU 메모리 관리
    • 3 단계 : 4 비트 T5 텍스트 인코더로드
    • 4 단계 : 텍스트 임베딩 생성
    • 5 단계 : 4 비트 변압기 및 VAE 로딩
    • 6 단계 : 이미지 생성
  • 기기 이미지 생성의 미래
  • 결론
    • 주요 테이크 아웃
  • 자주 묻는 질문

플럭스 란 무엇입니까?

Black Forest Labs (안정적인 확산의 제작자)가 개발 한 Flux는 텍스트-이미지 모델에서 중요한 발전을 나타냅니다. 안정적인 확산을 바탕으로 성능과 출력 품질을 향상시킵니다. 처음에는 리소스 집약적 인 반면 최적화는 소비자 하드웨어에서 효율적인 실행을 허용합니다. 이 기사는 양자화가 플럭스의 접근성을 향상시키는 방법을 보여줍니다. 아래 이미지는 창의적 잠재력과 계산 비용 사이의 상충 관계를 보여줍니다.

8GB GPU RAM에서 플럭스 모델을 어떻게 실행합니까? - 분석 Vidhya

Flux는 몇 가지 주요 아키텍처 구성 요소를 자랑합니다.

  • 두 개의 미리 훈련 된 텍스트 인코더 (클립 및 T5) : 이 인코더는 텍스트 프롬프트 이해와 이미지로 변환을 향상시킵니다.
  • 트랜스포머 기반 DIT 모델 : 이 비난 백본은 효율성과 정확성을 위해 변압기를 활용합니다.
  • VAE (Variational Auto-Encoder) : 잠복 공간에서 처리하면 이미지 품질을 유지하면서 계산 요구를 줄입니다.

Flux는 Flux-Schnell (Open-Source), Flux-DEV (보다 제한적인 라이센스가있는 Open) 및 Flux-Pro (폐쇄 소스, API-Accessible)의 여러 버전으로 제공됩니다.

8GB GPU RAM에서 플럭스 모델을 어떻게 실행합니까? - 분석 Vidhya

양자화가 중요한 이유는 무엇입니까?

비트가 적은 비트를 사용하여 매개 변수를 저장하여 모델 크기를 줄이는 기술인 양자화는 제한된 하드웨어에서 대형 모델을 실행하는 데 중요합니다. 이미지 생성에서는 덜 일반적이지만 실질적인 성능 손실없이 메모리 발자국을 크게 줄입니다. 신경망 매개 변수는 일반적으로 32 비트로 저장되지만 양자화는 이것을 4 비트로 줄일 수 있습니다.

비트 산비 테스를 사용한 양자화

Bitsandbytes 라이브러리는 Pytorch에 대한 효율적인 K- 비트 양자화를 가능하게합니다. 디퓨저 라이브러리에 통합하면 8GB GPU에서 플럭스가 실행 가능합니다.

Bitsandbytes는 어떻게 작동합니까?

Bitsandbytes는 8 및 4 비트 정밀도로 정량화됩니다. 8 비트 양자화는 특보를 다르게 처리하여 성능 저하를 최소화합니다. 4 비트 양자화는 추가로 미세 조정을 위해 Qlora와 함께 사용되는 모델을 추가로 압축합니다.

소비자 하드웨어에서 플럭스 실행

1 단계 : 환경 설정

GPU 지원 환경 (예 : Nvidia T4/L4 또는 Google Colab)을 확인하십시오. 필요한 패키지 설치 :

 ! pip install -uq git https://github.com/huggingface/diffusers@main
! pip install -uq git https://github.com/huggingface/transformers@main
! pip install -uq bitsandbytes
로그인 후 복사

수입 종속성 :

 디퓨저 가져 오기
수입 변압기
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 ()

플러시()
로그인 후 복사

3 단계 : 4 비트 T5 텍스트 인코더로드

4 비트 양자화를 사용하여 T5 인코더를로드하십시오.

 ckpt_id = "Black-Forest-Labs/Flux.1-dev"
CKPT_4BIT_ID = "HF-Internal-Testing/Flux.1-dev-nf4-pkg"
프롬프트 = "파리의 귀여운 개 사진 촬영"

text_encoder_2_4bit = t5encodermodel.from_pretraind (
    ckpt_4bit_id,
    subfolder = "text_encoder_2",
))
로그인 후 복사

4 단계 : 텍스트 임베딩 생성

양자화 된 인코더를 사용하여 프롬프트를 인코딩합니다.

 파이프 라인 = fluxpipeline.from_pretrained (
    "블랙 포스트 랩/플럭스 .1-dev",
    text_encoder_2 = text_encoder_2_4bit,
    변압기 = 없음,
    vae = 없음,
    Torch_dtype = Torch.float16,
))

Torch.no_grad ()로 :
    prompt_embeds, pooled_prompt_embeds, text_ids = pipeline.encode_prompt (
        프롬프트 = 프롬프트, 프롬프트 _2 = 없음, max_Sequence_length = 256
    ))

델 파이프 라인
플러시()
로그인 후 복사

5 단계 : 4 비트 변압기 및 VAE 로딩

4 비트 모드로 변압기와 VAE를로드하십시오.

 Transformer_4bit = fluxtransformer2dmodel.from_pretrained (ckpt_4bit_id, subfolder = "Transformer")
파이프 라인 = fluxpipeline.from_pretrained (
    ckpt_id,
    text_encoder = 없음,
    text_encoder_2 = 없음,
    Tokenizer = 없음,
    Tokenizer_2 = 없음,
    Transformer = Transformer_4bit,
    Torch_dtype = Torch.float16,
))

pipeline.enable_model_cpu_offload ()
로그인 후 복사

6 단계 : 이미지 생성

이미지 생성 :

 Print ( "Denoising 실행.")
높이, 너비 = 512, 768
이미지 = 파이프 라인 (
    promp_embeds = prompt_embeds,
    pooled_prompt_embeds = pooled_prompt_embeds,
    num_inference_steps = 50,
    Guidance_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으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿