티스토리챌린지 21

Gradient Accumulation 문제 및 해결 방법과 Batch 비교

Transformer Gradient Accumulation 문제 및 해결 방법1. 문제 개요문제: Gradient Accumulation(GA)은 수학적으로 Full Batch Training과 동일해야 하지만, 실험 결과 특정 조건에서 Training Loss가 일치하지 않음.현상: GA 크기가 클수록 Training Loss가 증가하는 이상 현상 발생. 예를 들어 bsz=1, ga=16와 bsz=16, ga=1의 Training Loss가 다름.원인: Cross Entropy(CE) Loss의 Normalizer가 제대로 작동하지 않음. 이는 L2 Norm이 증가하는 결과를 초래. 2. 문제 원인 분석Cross Entropy Loss 정상화 문제:CE Loss의 정규화 과정에서 Gradient Ac..

SDXL 및 Flux 모델에서 세부적인 요소 퀄리티 올리는 방법

1. 프롬프트 엔지니어링 (Prompt Engineering)Text-To-Image 모델의 생성 품질은 프롬프트의 정보 밀도와 디테일 수준에 크게 의존합니다. 악세사리 디테일을 강화하려면 다음과 같은 고도화된 프롬프트 설계 기법을 적용합니다디스크립터 확장 (Descriptor Expansion):물리적 특성과 시각적 질감에 대한 상세한 서술을 포함시킵니다.예: “a hand-forged platinum bracelet with interwoven Celtic patterns, intricate gemstone inlays, glistening under soft ambient lighting”스타일 및 질감의 명시적 정의 (Explicit Style and Texture Specification)고유한..

UNet과 Text Encoder의 학습 방법

1. UNet의 기본 특성과 한계Computer Vision 모델의 Low-Level Pixel Space 특성으로 인해 복잡한 지식 표현이 어렵습니다.시각적 요소들이 유사도 기반으로 분산되어 있습니다:'손 그림', '발 그림', '다리 그림' 등이 연결 없이 흩어져 있습니다.비유하자면 주머니 속 각각의 구슬과 같습니다.학습 가능한 기초적 지식의 범위:눈, 코, 입의 기본적인 얼굴 배치인체의 기본 구조 (팔 2개, 다리 2개)신체 부위의 기본적 연결 관계 2. Text Encoder의 도입과 역할High-Level의 압축된 지식을 다룹니다.Semantic 특성으로 인간의 인식과 유사한 해석이 가능합니다.UNet과의 결합 효과:원하는 시각적 요소를 선택적으로 활용합니다.상황에 맞는 조합을 가이드합니다.이러..

Stable Diffusion 3.5 Large Fine-tuning Tutorial 정리

참고https://stabilityai.notion.site/Stable-Diffusion-3-5-Large-Fine-tuning-Tutorial-11a61cdcd1968027a15bdbd7c40be8c61. 환경 설정Python 환경 설정# Python 3.11.6 이상 필요python -m venv .venvsource .venv/bin/activatepip install -U poetry pip# Poetry 설정poetry config virtualenvs.create falsepoetry installCUDA 요구사항CUDA 12.2 이상 권장낮은 버전 사용시 수정된 설치 방법 필요:# CUDA 12.1 예시pip install torch==2.4.1+cu121 torchvision==0.19...

Stable Diffusion 3.5 Medium 모델 학습 최적화 가이드

Stable Diffusion 3.5 medium 모델 구조 1. 핵심 학습 방법 최적화노이즈 샘플링 전략Logit-normal 분포를 사용한 노이즈 샘플링 구현def logit_normal_sampling(t, m=0.0, s=1.0): u = torch.randn_like(t) * s + m return torch.sigmoid(u)파라미터 설정:위치 파라미터 m = 0.0스케일 파라미터 s = 1.0중간 타임스텝에 더 많은 학습 가중치 부여EDM이나 기존 확산 모델보다 우수한 성능 달성손실 함수 최적화Conditional Flow Matching (CFM) 손실 함수 사용: def compute_cfm_loss(model_output, noise, t): # v_θ(z, t) - u..

Flux perfermence improved by Flash attention3 + Triton

FlashAttention-3: 대규모 언어 모델을 위한 어텐션 메커니즘의 혁신1. 서론대규모 언어 모델(LLM)의 발전과 함께, 트랜스포머 구조의 핵심 요소인 어텐션 메커니즘의 효율성 개선이 중요한 과제로 대두되고 있습니다. 특히 긴 문맥(long-context)을 다루는 모델에서 어텐션 연산은 주요 병목 현상의 원인이 되어왔습니다. 이러한 맥락에서 FlashAttention 알고리즘의 발전, 특히 최근 발표된 FlashAttention-3는 주목할 만한 혁신을 가져왔습니다.하지만 들어가기에 앞서 현재 FlashAttention3는 Hopper 기반(H100)에서만 사용이 가능하고 ADA 기반(RTX4090, L4) GPU는 사용을 할 수가 없음으로 추후에 업데이트를 기다려야 합니다.2. FlashAt..

Flux 모델 최적화를 위한 TorchAO 및 torch.compile() 활용 가이드

1. 서론대규모 이미지 생성 모델인 Flux와 SDXL의 성능을 최적화하는 것은 실용적 응용에 있어 매우 중요합니다. 이 리서치글에서는 TorchAO와 PyTorch의 torch.compile() 기능을 활용하여 이러한 모델들의 추론 속도를 향상시키고 메모리 사용량을 줄이는 방법에 대해 살펴보겠습니다.2. TorchAO를 이용한 양자화2.1 기본 양자화 적용Flux나 SDXL 모델에 TorchAO의 양자화를 적용하는 기본적인 방법은 다음과 같습니다:from diffusers import FluxPipeline# 또는 StableDiffusionXLPipelinefrom torchao.quantization import autoquantimport torchpipeline = FluxPipeline.fro..

챗봇 시각화 솔루션 3종 Gradio, Streamlit, Dash

GradioGradio는 머신 러닝 모델 사용자 인터페이스를 만드는 데 사용되는 유용한 도구입니다. PyTorch 및 TensorFlow와 같은 여러 기계 학습 프레임워크와 완벽하게 호환되는 Python 패키지입니다. 또한 임의의 범 용 Python 스크립트를 중심으로 UI를 만드는 데 사용할 수도 있습니다.장점Gradio는 기계 학습 모델에 최적화된 몇 가지 사용자 지정 가능한 UI 구성 요소를 제공합니다. 예를 들 어, Gradio는 사용자에게 고도로 최적화된 사용하기 쉬운 드래그 앤 드롭 이미지 분류를 제공합니다.Gradio를 설정하는 것은 매우 쉽고 빠릅니다. pip를 통해 직접 설치할 수 있습니다.게다가, Gradio에서 인터페이스를 생성하려면 몇 줄의 코드만 있으면 됩니다.Gradio는 배포된..

Langchain 문서(Simple Start)

1. langchain 구성 요소 및 사전 세팅langchain에서는 전체적으로 Schema, Model, Prompt, Index, Memory, Chain, Agent 총 7가지의 컴포넌트를 제공합니다.환경 설정환경 세팅을 실시하기 위해 langchain과 openai의 SDK를 설치pip install langchainpip install openai환경 변수 설정export OPENAI_API_KEY = "SK-..."2.2) 변수로 api 세팅2.3) Jupyter notebook 활용 시, 환경 변수 설정import os os.environ["OPENAI_API_KEY"] = "..."api_key = "sk-..." chat_model = ChatOpenAI(openai_api_key=api..

Flux.1-dev 모델 구조와 작동 원리

입력 준비Latent : 이미지의 공간보다 낮은 공간을 차지하면서 계산 속도에 대해 영향을 끼침 + 시작하기 전에 랜덤 노이즈로 초기화 진행Text Prompt: 사용자가 입력한 텍스트, T5 Encoder와 CLIP으로 분리됨T5 Encoder는 언어의 문맥을 파악하는데 특화됨CLIP은 이미지-텍스트 쌍으로 학습이 진행되기 때문에 시각적 개념과 텍스트 상의 연관성을 잘 표현Scheduler → Timesteps: Diffusion Process stepsScheduler : Diffusion process에서 노이즈 제거 속도와 품질을 조절하는 파라미터 생성Timesteps : 각 Timestep은 노이즈 제거 과정의 특정 지점을 표Guidance: 생성 과정을 제어하는 파라미터Image Ids와 Te..