[AI Study] LoRA Training
์ ๋ด์ฉ์ ๋ํ ํ์ต์ ์ถ๊ฐ๋ก ์ดํด๋ฅผ ๋๊ธฐ ์ํ ๋ค๋ฅธ ๋ด์ฉ๋ค๋ ์ถ๊ฐํ์.
ย
Stable Diffusion
Stable Diffusion์ ํ๋ฅ ์ ์ผ๋ก ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๋ ๋ชจ๋ธ ์ค ํ๋๋ค. ์คํ ์์ค์ด๊ธฐ์ ํ์ ๋ชจ๋ธ๋ค์ด ๋ง๊ณ ์ปค๋ฎค๋ํฐ๋ ํฌ๋ค.
๊ตฌ๊ธ์ Imagen์ด๋ OpenAI์ Dall-e๋ ํฝ์
ํ๋ํ๋๋ฅผ ๋ค๋ฃฌ๋ค. ๊ทผ๋ฐ ์ด๊ฑด ์์ฒญ๋ ์ปดํจํ
ํ์๊ฐ ํ์ํ๋ค. ์๋ฅผ๋ค์ด 512x512 ์ด๋ฏธ์ง๊ฐ RGB ๊ฐ์ ๋ค๋ฃฌ๋ค๋ฉด ์ด๊ฑด 512x512x3์ ๊ฒฝ์ฐ์ ์๋ฅผ ๋ค๋ฃฌ๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค. ์ฆ, ์ด์ด์ด์ด์ด์์ฒญ ๋๋ฆด ์ ๋ฐ์ ์๋ค.
Stable Diffusion ๋ชจ๋ธ์ ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ โLatent Diffusion Modelโ์ด๋ค. ํฝ์
ํ๋ํ๋๋ฅผ ๋ค๋ฃจ์ง ์๊ณ ์ด๋ฏธ์ง๋ฅผ โLatent Spaceโ๋ผ๊ณ ๋ถ๋ฅด๋ ์ด๋ฏธ์ง๋ก ์์ถํ๋ค. ์ด Latent Space ์ด๋ฏธ์ง๋ ์๋ณธ ์ด๋ฏธ์ง์ ๋นํด 48๋ฐฐ ์ ๋ ์์์ง๋ค. ์ด๋ ์ฌ์ฉํ๋ ๊ธฐ์ ์ด โVAE(Variational Autoencoderโ ์ด๋ค.
ย
Stable Diffusion Training ์ฌํํ ์๋ ์๋ฆฌ
- Training ์ด๋ฏธ์ง๋ฅผ ์ ํํ๋ค. (ex. ๊ณ ์์ด ์ฌ์ง)
- ๋๋ค Noise ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๋ค.
- Training ์ด๋ฏธ์ง์ Noise ์ด๋ฏธ์ง๋ฅผ ์ถ๊ฐํด์ ์๋ณธ ์ด๋ฏธ์ง์ ๋ ธ์ด์ฆ๊ฐ ๋ผ๊ฒ ๋ง๋ ๋ค.
- ์ต์ข ์ ์ผ๋ก ์์ฑ๋ ๋ ธ์ด์ฆ ์ด๋ฏธ์ง๊ฐ ์๋ณธ ์ด๋ฏธ์ง์์ ์ผ๋ง๋งํผ์ Noise๊ฐ ์ถ๊ฐ๋์ด ๋ง๋ค์ด์ก๋์ง ์ถ์ธกํ๋ค.
- ์ด๋ Noise Predictor๋ผ๊ณ ๋ถ๋ฆฌ๋ โU-Net ๋ชจ๋ธโ์ ์ด์ฉํ๋ค.
- ํธ๋ ์ด๋์ด ์๋ฃ๋๋ฉด ์ฐ๋ฆฌ๋ ๊ฒฐ๊ณผ๋ฌผ๋ก Noise Predictor๋ฅผ ํ๋ํ๋ค.
ย
Stable Diffusion Inference ์๋ ์๋ฆฌ
- ๋๋คํ๊ฒ Noise ์ด๋ฏธ์ง๋ฅผ ์์ฑํ๋ค.
- Noise Predictor์๊ฒ ์ด Noise ์ด๋ฏธ์ง์์ ์ด๋ค Noise๊ฐ ๊ผ๋์ง ์ถ์ธกํ๊ฒ ํ๋ค.
- Noise Predictor๊ฐ ์ถ์ธกํ Noise๋ฅผ Noise ์ด๋ฏธ์ง์์ ํ๋์ฉ ์ ๊ฑฐํ๋ค.
ย
Stable Diffusion์ ์ง์ง ์๋ ์๋ฆฌ
Stable Diffusion์์์ ํต์ฌ์ โVAEโ๋ค. VAE๋ Encoder์ Decoder๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. Encoding์ ์ด๋ฏธ์ง ์์ถ, Decoding์ ์ด๋ฏธ์ง ๋ณต์์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ค.
Encoding์ ์ด๋ฏธ์ง๋ฅผ ์์ถํด โLatent Spaceโ๋ผ๋ ๊ณณ์ ํ์์ ๋ง๊ฒ ๋ณํํ๋๋ฐ Latent Space์๋ ์ด๋ฏธ์ง์ ํน์ง์ ๋ํ๋ด๋ ๊ฐ๋ค์ ๊ฐ์ง๊ฒ ๋๋ค. ์๋ฅผ๋ค์ด โtype: ๊ณ ์์ด, ์: ํ์โ ๋ฑ์ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ๋ฌผ๋ก ์ด๋ฌํ ํน์ง์ ๋ํ๋ด๋ ๊ฐ์ ์ข
๋ฅ๋ ์ด์ด์ด์ด์ด์ด์ด์์ฒญ ๋ง๋ค.
Decoding์ ์ด๋ฌํ ํน์ง์ ๋ฐํ์ผ๋ก ์ด๋ฏธ์ง๋ฅผ ๋ณต์ํ๋๋ฐ ์ข์ ๋์ฝ๋๋ ๊ณ ํ์ง ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค์ด๋ผ ์ ์๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค.
์ด๋ Latent Space์๋ ์๋ง์ ์ ๋ณด๊ฐ ์ ์ฅ๋๊ฒ ๋๋๋ฐ ์ฌ์ฉ์๊ฐ Prompt๋ฅผ ์
๋ ฅํ๋ฉด ๊ทธ Prompt๋ฅผ Latent Space ์์์ ํน์ ๋ฒกํฐ์ ์ฐ๊ฒฐํ์ฌ
๊ทผ๋ฐ ์ด๋ป๊ฒ ์์ถ์ ํ์์๋ ๋ถ๊ตฌํ๊ณ ์๋ณธ ์ด๋ฏธ์ง์ ํน์ฑ์ ์ ์ ์งํ ์ ์์๊น? ์ด์ ๋ ๋๋ถ๋ถ์ ์ด๋ฏธ์ง๊ฐ ์์ ํ ๋๋ค์ ์๋๊ณ ๋๋ถ๋ถ ๊ณตํต๋ ํน์ง์ ์ง๋๊ณ ์๊ธฐ ๋๋ฌธ์ด๋ค. ์๋ฅผ๋ค์ด ์ผ๊ตด์ ๋, ์ฝ, ์
๋ฑ์ ๊ด๊ณ, ๋ฉ๋ฉ์ด๋ 4๊ฐ ๋ค๋ฆฌ ๋ฑ์ ํน์ง ๋ง์ด๋ค.
ย
Reverse Diffusion์์๋ ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ๋์ํจ
- ๋๋คํ Latent Space ๋งคํธ๋ฆญ์ค ์์ฑ
- Noise predictor๊ฐ Noise ์์ธกํด์ Latent Matrix์์ ์ ๊ฑฐ
- 2๋ฅผ ๊ณ์ ๋ฐ๋ณตํ๊ณ ๋ง์ง๋ง์ Latent Matrix๋ฅผ ์ด๋ฏธ์ง๋ก ๋ณํ
ย
VAE ํ์ผ์ ๋์ด๋ ์ผ๊ตด์ ๋ ์ ๊ทธ๋ฆด ์ ์๊ฒ ๋์์ฃผ๊ธฐ๋ ํจ
๋์ฝ๋๋ฅผ ํ์ธํ๋ ์ ํ๋ฉด ๋ํ
์ผ์ ๋ ์ ํํํ ์๋ ์์
ย
Stable Diffusion์ 512x512์ ํ์ธํ๋ ๋์ด์๊ธฐ์ ์ฌ๊ธฐ์ ๋ฒ์ด๋๋ฉด ์ด๋ฏธ์ง ์ค๋ณต์ด ๋๊ฑฐ๋ ์ด์๊ฐ ๋ฐ์ํ ํ๋ฅ ์ด ์ฌ๋ผ๊ฐ๋ค.
SDXL์ 1024x1024์ ํ์ธํ๋ ๋์ด์๋ค.
ย
512 x 512 x 3
64 x 64 x 4 x 16 x 3
ย
Conditioning
text๊ฐ ์์ผ๋ฉด Stable Diffusion์ ๋๋คํ๊ฒ ๊ฐ๋ ๊ณ ์์ด ์ฌ์ง์ ๋ด๋์ ๊ฒ์ด๋ค. ์ฐ๋ฆฌ๋ ์ํ๋ ์ด๋ฏธ์ง๋ฅผ ์ป์ด๋ด๊ธฐ ์ํด โConditioningโ์ ํด์ผ ํ๋ค.
Conditiong์ ํ๋ค๋ ์๋ฏธ๋ Noise Predictor๋ฅผ ์กฐ์ ํด ์ฐ๋ฆฌ๊ฐ ์ํ๋ ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค๊ธฐ ์ํ Noise๋ฅผ ์์ธกํ๊ฒ ํ๋ค๋ ๊ฒ์ด๋ค.
ย
ย
VAE (variational autoencoder)
VAE๋ ์๋ณธ ์ด๋ฏธ์ง์ ํน์ง๋ง ๋ฝ์๋ด๊ธฐ ์ํด ์ฌ์ฉํ๋ค.
์ ์ด๋ฏธ์ง์์ ์ผ์ชฝ ์๋ณธ ์ด๋ฏธ์ง๋ 512x512, ์ค๋ฅธ์ชฝ ์ด๋ฏธ์ง๋ 64x64์ด๋ค. VAE๋ ์๋ณธ ์ด๋ฏธ์ง์ ํด์๋๋ฅผ ๋ฎ์ถฐ ํน์ง๋ง ๋ฝ์๋ผ ์ ์๋๋ก ํ๋ค.
Training์ Prompt๋ฅผ ํตํด ์ค๋ฅธ์ชฝ ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค์ด๋ด๋ ๊ฒ์ ์๋ฏธํ๋ค. ์ผ์ชฝ ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค์ด๋ด๋ ๊ฒ์ด ์๋๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ Stable Diffusion์ ํตํด ๋ง๋ค์ด๋ธ ์ด๋ฏธ์ง๊ฐ
ย
ย
Stable Diffusion v1 โ v2 โ SDXL
- parameter ์ ์ฆ๊ฐ (v1.5๋ 0.98b, SDXL์ 6.6b)
- v2๋ ์ ์์. v1.5 ํน์ SDXL ์
ย
ย
Noise Schedule
๋
ธ์ด์ฆ ์ค์ผ์ฅด์ Training, Inference ๊ณผ์ ์์ ๋
ธ์ด์ฆ๋ฅผ ์ด๋ป๊ฒ ์ถ๊ฐํ๊ณ ์ ๊ฑฐํ๋ ์ง๋ฅผ ๊ฒฐ์ ํ๋ ์ญํ ์ ํ๋ค.
ย
ย
ย
CFG - Classifier Free Guidance
CFG๋ ๊ฒฐ๊ณผ ์ด๋ฏธ์ง์ ํ
์คํธ Prompt์ ์ผ์น๋๋ฅผ ๋์ด๋ ๊ธฐ๋ฒ์ ์๋ฏธํ๋ค.
Classifier Guidance๋ ๋น์ทํ ์ด๋ฏธ์ง๋ค์ ๊ตฌ๋ถํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค. ์๋ ์ด๋ฏธ์ง์์ ์ผ์ชฝ์ guidance๊ฐ ์๊ณ ์ค๋ฅธ์ชฝ์ผ๋ก ๊ฐ ์๋ก Guidance Scale์ด ๋์์ง๋ค. Guidance Scale์ด ๋์ ์๋ก โdogโ์ ๋ํ ์์ฒญ์ ์๋ง๋ โdogโ์ด๋ฏธ์ง๋ฅผ ์ค ํ๋ฅ ์ด ์ฌ๋ผ๊ฐ๋ค.
๊ทผ๋ฐ Guidance Scale์ ์ฌ์ฉํ๊ธฐ ์ํด์๋ Guidance๋ฅผ ์ ๊ณตํด์ฃผ๋ ์ถ๊ฐ ๋ชจ๋ธ์ ์ฌ์ฉํด์ผ๋ง ํ๋ค. ์ด ๋๋ฌธ์ Training์ ๋์ด๋๊ฐ ์ฌ๋ผ๊ฐ๋ค.
ย
CFG Scale ๊ฐ์ โText Promptโ๊ฐ ๊ฒฐ๊ณผ์ ์ผ๋ง๋ ์ํฅ์ ๋ผ์น๋ ์ง๋ฅผ ๊ฒฐ์ ํ๋ค. 0์ผ๋ก ์ค์ ๋๋ฉด ์ด๋ฏธ์ง๋ Guidance Scale์์ด ์์ฑ๋๊ณ CFG Scale์ด ๋์ ์๋ก prompt์ ๋ง๋ ์ด๋ฏธ์ง๋ฅผ ๋ฝ์๋ผ ์ ์๋๋ก ํ๋ค.
CFG๊ฐ ๋ฎ์ผ๋ฉด ์ข ๋ ์ฐฝ์์ ์ธ ์ด๋ฏธ์ง๋ฅผ ์์ฑํ ๊ฐ๋ฅ์ฑ์ด ์ฌ๋ผ๊ฐ๋๋ฐ ์ฌ์ฉ์๊ฐ ๊ตฌ์ฒด์ ์ธ ํ๋กฌํํธ๋ฅผ ์ ๊ณตํ์ง ์์ ๋ ์ ์ฉํ๋ค. ๋ CFG๊ฐ ๋๋ฌด ๋์ผ๋ฉด ํ
์คํธ๋ฅผ ๊ณผ๋ํ๊ฒ ๋ฐ์ํ๋ ค ํ๋ฉด์ ๋นํ์ค์ ์ด๊ฑฐ๋ ์ด์ํญ ์ด๋ฏธ์ง๋ฅผ ๋ง๋ค์ด๋ผ ์๋ ์๋ค.
ย
ย