딥러닝 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..

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..

[AI 기초 다지기] Kolmogorov Complexity and Algorithmic Randomness

Algorithmic Statistics와 복잡도 이론의 심층 분석1. 이론적 기초1.1 Kolmogorov 복잡도의 정의Kolmogorov 복잡도 C(x)는 문자열 x를 출력하는 가장 짧은 프로그램의 길이로 정의됩니다.C(x) = min{|p| : U(p) = x}여기서 U는 universal Turing machine이고, |p|는 프로그램 p의 길이입니다.1.2 조건부 복잡도조건부 복잡도 C(x|y)는 y가 주어졌을 때 x를 생성하는 최소 프로그램 길이입니다:C(x|y) = min{|p| : U(p,y) = x}2. 통계적 모델링의 기본 프레임워크2.1 무작위성 결핍(Randomness Deficiency)집합 A에 대한 문자열 x의 무작위성 결핍:d(x|A) = log|A| - C(x|A)주요 특..

[AI 기초 다지기] Transformer & The Annotated Transformer & Scaling Laws for Neural Language Models 논문 분석 및 코드 구현

Transformer 아키텍처 및 구현 상세 분석1. Transformer 전체 구조1.1 기본 구성인코더 6개 층디코더 6개 층모델 차원 d_model = 512내부 Feed-Forward Network 차원 = 2048Multi-Head Attention의 헤드 수 = 8Layer Normalization과 Residual Connection 사용1.2 전체 데이터 흐름[입력 시퀀스] ↓[입력 임베딩 (d_model=512)] ↓[포지셔널 인코딩 추가] ↓[인코더 스택 (x6)] ↓[인코더 출력] ↓ ↘ ↓ [디코더 입력 임베딩] ↓ ↓ ↓ [포지셔널 인코딩 추가] ↓ ↓ ↓ [디코더 스택 ..