머신러닝 & 딥러닝/딥러닝 25

[딥러닝] Flux.1 파인튜닝 모델 Chroma의 특징 및 아키텍쳐 설명 가이드

Chroma는 FLUX.1-schnell에서 파생된 8.9B(89억) 파라미터 모델로, 접근성과 자유, 혁신을 최우선으로 하는 강력한 오픈 소스 AI 모델입니다. Apache 2.0 라이선스로 출시되어 누구나 자유롭게 사용할 수 있으며, 수정 및 확장이 가능하고 기업의 제약 없이 활용할 수 있습니다.현재 오픈소스로 공개가 되어있고 학습 중인 Chroma는 방대한 데이터셋을 활용하여 생성형 AI의 한계를 확장하는 것을 목표로 하고 있다고 합니다. 이번 블로그에서는 Chroma 프로젝트의 목표, 기술적 혁신, 모델 구조, 그리고 오픈 소스 커뮤니티와 협력하는 방법을 자세히 살펴보겠습니다.Chroma의 목표Chroma는 2천만 개의 원본 샘플 중 5백만 개의 고품질 데이터를 엄선하여 학습되었습니다. 데이터셋에..

[LLM] 기반 모델(FM) vs. 강화 학습(RL) 플래너 및 계획 생성(Plan Generation)

1. 기반 모델(FM) vs. 강화 학습(RL) 플래너📌 FM(Foundation Model)과 RL(Reinforcement Learning) 에이전트의 차이점✅ 기반 모델(FM) 플래너:대형 언어 모델(LLM) 기반프롬프트 엔지니어링을 통해 계획을 생성일반적으로 사전 학습된 모델을 활용즉시 활용 가능하지만, 계획 성능이 최적화되지 않을 수 있음✅ 강화 학습(RL) 플래너:강화 학습을 통해 지속적으로 성능이 개선됨환경과 상호작용하며 최적의 계획을 학습훈련에 많은 데이터와 시간이 필요특정 작업에 맞춘 최적화가 가능💡 결론:FM 플래너는 즉시 사용 가능하지만, RL 플래너는 장기적으로 더 최적화된 결과를 제공미래에는 FM과 RL 플래너가 결합하여 더욱 강력한 AI 시스템이 탄생할 가능성이 높음2. 계획..

[LLM] 희소 검색(Sparse Retrieval) vs. 밀집 검색(Dense Retrieval)

1. 검색 알고리즘의 두 가지 접근 방식검색 알고리즘은 크게 두 가지 방식으로 나뉩니다.1️⃣ 희소 검색(Sparse Retrieval): 단어 기반(Term-Based) 검색2️⃣ 밀집 검색(Dense Retrieval): 임베딩(Embedding) 기반 검색이 블로그에서는 "용어 기반(Term-Based) 검색"을 중심으로 다루고 있지만, 실제로 검색 알고리즘을 분류할 때는 희소 vs. 밀집 검색 기준이 자주 사용됩니다.2. 희소 검색(Sparse Retrieval)희소 검색은 단어(Term) 자체를 벡터로 변환하여 검색하는 방식입니다.전통적인 TF-IDF(Term Frequency-Inverse Document Frequency), BM25 등의 검색 기법이 포함됨문서의 단어를 0과 1이 포함된 벡..

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

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