머신러닝 & 딥러닝/딥러닝 22

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

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

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)] ↓[인코더 출력] ↓ ↘ ↓ [디코더 입력 임베딩] ↓ ↓ ↓ [포지셔널 인코딩 추가] ↓ ↓ ↓ [디코더 스택 ..