88๋ฐฉ๋ฒ์ ์๊ฐํฉ๋๋ค. ๋ชจ๋ธ์ด ์๋ ์ํฉ์์ ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ(Out of Memory, OOM)
99์ค๋ฅ๋ฅผ ๋ฐฉ์งํ๊ณ ์ถ๊ฑฐ๋, GPU์ ์ฑ๋ฅ์ ์ต๋ํ ํ์ฉํ๊ณ ์ถ์ ๊ฒฝ์ฐ ์ด ๋ฐฉ๋ฒ์ด
1010๋์์ด ๋ ์ ์์ต๋๋ค. (๋ณํ๋๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ผ๋ถ(partition)๋ฅผ ์ฐจ์งํ๊ณ ์์ผ๋ฉฐ,
11- ๋ณํ๋ ๋์ (accumulation)์ด ํ์ํ์ง ์์ ๊ฒฝ์ฐ๋ผ๋ฉด ๋ง์
๋๋ค. )
11+ ๋ณํ๋ ๋์ (accumulation)์ด ํ์ํ์ง ์์ ๊ฒฝ์ฐ๋ผ๋ฉด ๋ง์
๋๋ค)
1212์ด ํํ ๋ฆฌ์ผ์ ๋ค์ ๋ด์ฉ์ ๋ค๋ฃน๋๋ค:
1313
14141. ํ์ต ๋๋ ๋ฏธ์ธ์กฐ์ (finetuning) ๋ฃจํ ์ค ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฐจ์งํ๋ ์์๋ค,
2323 ๋ฉ๋ชจ๋ฆฌ ์๊ฐํ๋ฅผ ์ ์ธํ๋ฉด ์ด ๋ฐฉ๋ฒ์ ๋ชจ๋ ์ฅ์น์์ ์ ์ฌํ ์ด์ ์ ์ ๊ณตํฉ๋๋ค.
2424
2525๋จผ์ ํ์ํ ๋ชจ๋๊ณผ ๋ชจ๋ธ์ import ํ๊ฒ ์ต๋๋ค. ์ฌ๊ธฐ์์๋ torchvision์ ๋น์
26- ํธ๋์คํฌ๋จธ ๋ชจ๋ธ์ ์ฌ์ฉํ์ง๋ง, ๋ค๋ฅธ ๋ชจ๋ธ๋ก ๋์ฒดํด๋ ์ข์ต๋๋ค.๋ ์ตํฐ๋ง์ด์ ๋ก
26+ ํธ๋์คํฌ๋จธ ๋ชจ๋ธ์ ์ฌ์ฉํ์ง๋ง, ๋ค๋ฅธ ๋ชจ๋ธ๋ก ๋์ฒดํด๋ ์ข์ต๋๋ค. ๋ ์ตํฐ๋ง์ด์ ๋ก
2727``torch.optim.Adam`` ์ ์ฌ์ฉํ์ง๋ง, ๋ง์ฐฌ๊ฐ์ง๋ก ๋ค๋ฅธ ์ตํฐ๋ง์ด์ ๋ก ๋์ฒดํด๋
2828๋ฉ๋๋ค.
2929
@@ -99,8 +99,8 @@ def train(model, optimizer):
9999#
100100# ๋ชจ๋ธ ํ๋ผ๋ฏธํฐ๋ ์ด๋ฏธ ํ์ต ๋ฃจํ ์ด์ ์ ๋ฉ๋ชจ๋ฆฌ์ ๋ก๋๋์์ผ๋ฏ๋ก,
101101# ์ฒ์๋ถํฐ ๊ฐ์ค์น(weights)์ ํ ๋น๋ ๋ฉ๋ชจ๋ฆฌ ๋ฉ์ด๋ฆฌ๊ฐ ๋ณด์
๋๋ค.
102- # ์์ ํ๋ฅผ ์์ํ๋ฉด, ๋ฉ๋ชจ๋ฆฌ๋ ํ์ฑํ๊ฐ์ ์ํด ์ ์ฐจ ํ ๋น๋ฉ๋๋ค.
103- # ์ด ํ์ฑํ๊ฐ์ ์ญ์ ํ ๋จ๊ณ์์ ๋ณํ๋๋ฅผ ๊ณ์ฐํ๊ธฐ ์ํด ์ ์ฅํ๋ tensor์
๋๋ค.
102+ # ์์ ํ๋ฅผ ์์ํ๋ฉด, ๋ฉ๋ชจ๋ฆฌ๋ ํ์ฑํ ๊ฐ์ ์ํด ์ ์ฐจ ํ ๋น๋ฉ๋๋ค.
103+ # ์ด ํ์ฑํ ๊ฐ์ ์ญ์ ํ ๋จ๊ณ์์ ๋ณํ๋๋ฅผ ๊ณ์ฐํ๊ธฐ ์ํด ์ ์ฅํ๋ tensor์
๋๋ค.
104104# ์ญ์ ํ๋ฅผ ์์ํ๋ฉด, ํ์ฑํ ๊ฐ์ด ์ ์ฐจ ํด์ ๋๋ฉด์ ๋ณํ๋๊ฐ ์ฐจ์งํ๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ
105105# ์์ด๊ธฐ ์์ํฉ๋๋ค.
106106#
@@ -120,10 +120,10 @@ def train(model, optimizer):
120120# ์ฌ์ค, ``Adam(model.parameters(), foreach=False)`` ๋ก ์ค์ ํ๋ฉด ์ตํฐ๋ง์ด์ ์ค๊ฐ
121121# ๋ฉ๋ชจ๋ฆฌ์ธ ๋ง์ง๋ง 1.2GB๋ฅผ ์ ๊ฑฐํ ์ ์๋๋ฐ, ์ด๋ ๋ฉ๋ชจ๋ฆฌ ๋์ ์คํ ์๊ฐ์ ํฌ์ํ๋
122122# ๋ฐฉ์์
๋๋ค. ๋ง์ฝ ์ด ``foreach`` ์ต์ ํ๋ง์ผ๋ก๋ ์ถฉ๋ถํ ํ์ํ๋งํผ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ ์ฝ๋์๋ค๋ฉด
123- # ์ ๋ ์ผ์ด์ง๋ง, ๋ ๋์ ๋ฐฉ๋ฒ์ ๋ํด ์๊ณ ์ถ๋ค๋ฉด ์ด ํํ ๋ฆฌ์ผ์ ๊ณ์ ์ฝ์ด๋ณด์ธ์!
123+ # ์๋ ์ผ์ด์ง๋ง, ๋ ๋์ ๋ฐฉ๋ฒ์ ๋ํด ์๊ณ ์ถ๋ค๋ฉด ์ด ํํ ๋ฆฌ์ผ์ ๊ณ์ ์ฝ์ด๋ณด์ธ์!
124124#
125125# ์ด์ ๊ณง ์๊ฐํ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค๋ฉด, ~1.2GB์ **๋ณํ๋ ๋ฉ๋ชจ๋ฆฌ** ์ **์ตํฐ๋ง์ด์ ์ค๊ฐ
126- # ๋จ๊ณ ๋ฉ๋ชจ๋ฆฌ** ๊ฐ ํ์์๊ฒ ๋์ด ์ต๋ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ๋ฎ์ถ ์ ์์ต๋๋ค.
126+ # ๋จ๊ณ ๋ฉ๋ชจ๋ฆฌ** ๊ฐ ํ์ ์๊ฒ ๋์ด ์ต๋ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ๋ฎ์ถ ์ ์์ต๋๋ค.
127127# ๊ทธ๋ ๋ค๋ฉด, ์๋ก์ด ์ต๋ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ผ๋ง๊ฐ ๋ ๊น์?
128128# ์ ๋ต์ `๋ค์` ์ค๋
์ท์์ ๊ณต๊ฐ๋ฉ๋๋ค.
129129#
@@ -134,9 +134,9 @@ def train(model, optimizer):
134134# ์ตํฐ๋ง์ด์ ๋จ๊ณ๋ฅผ ์ญ์ ํ ๊ณผ์ ์ ํฉ์น๋ ์ด ๋ฐฉ๋ฒ์ *๋ณํ๋* ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ์๋ง์ ๋ชฉํ๋ก
135135# ํฉ๋๋ค (๊ทธ๋ฆฌ๊ณ ๋ถ์์ ์ผ๋ก ์ตํฐ๋ง์ด์ ์ค๊ฐ ๋จ๊ณ ๋ฉ๋ชจ๋ฆฌ๋ ์ค์
๋๋ค).
136136# ๋ฐ๋ผ์ ๋ณํ๋๊ฐ ์ฐจ์งํ๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํด์๋ก, ๋ฉ๋ชจ๋ฆฌ ์ ๊ฐ ํจ๊ณผ๊ฐ ๋์ฑ ์ปค์ง๋๋ค.
137- # ์์ ์์์์ ๋ณํ๋๋ ๋ฉ๋ชจ๋ฆฌ ์ด๋์ 20%๋ฅผ ์ฐจ์งํ๋๋ฐ,
138- # ์ด๋ ๊ฝค๋ ํฐ ๋น์จ์ด์ฃ !
139- # ๊ทธ๋ฌ๋ ๊ฒฝ์ฐ์ ๋ฐ๋ผ ์ด๋ฌํ ์ํฉ์ ํด๋นํ์ง ์์ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ด๋ฏธ
137+ # ์์ ์์์์ ๋ณํ๋๋ ๋ฉ๋ชจ๋ฆฌ ์ด๋์ 20%๋ฅผ ์ฐจ์งํ๋๋ฐ, ์ด๋ ๊ฝค๋ ํฐ ๋น์จ์ด์ฃ !
138+ #
139+ # ๊ทธ๋ฌ๋ ๋์ ๋ฐ๋ผ ์ด๋ฌํ ์ํฉ์ ํด๋นํ์ง ์์ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ด๋ฏธ
140140# ๊ฐ์ค์น๊ฐ ๋งค์ฐ ์๋ค๋ฉด (LoRa ์ ์ฉ ๋ฑ์ ์ด์ ๋ก), ๋ณํ๋๊ฐ ํ์ต ๋ฃจํ์์ ๊ณต๊ฐ์ ๋ง์ด
141141# ์ฐจ์งํ์ง ์์ ๊ฒ์ด๊ณ , ๊ทธ๋ ๋ค๋ฉด ์ด ๋ฐฉ๋ฒ์ ์ด์ ์ด ๊ทธ๋ค์ง ํฌ์ง ์์ ์ ์์ต๋๋ค.
142142# ์ด๋ฐ ๊ฒฝ์ฐ์๋ ๋จผ์ ํ์ฑํ ์ฒดํฌํฌ์ธํ
, ๋ถ์ฐ ํ์ต, ์์ํ, ๋ฐฐ์น ํฌ๊ธฐ ์ถ์์ ๊ฐ์
0 commit comments