Understanding and Mitigating Numerical Sources of Nondeterminism in LLM Inference
Review
| ๋๋ค์ | ํ์คํ | ๋ณ์ (0/5) |
|---|---|---|
| ์ฐฐ๋ | ์ค์ ๋ก LLM ๋๋ ค๋ณด๋ฉด, ๋๋ฆด ๋๋ง๋ค ๋ฌ๋ผ์ง๋ ๊ฒ ๋ณด์ด๊ธด ํจ. ์ด๋ ๊ฒ ๊ตฌ์ฒด์ ์ผ๋ก ์ ๋ฐ์ํ๋์ง๋ฅผ ๋ฐํ๋ ๊ฒ์ ์ ๋ง ์ด๋ ต์ง๋ง, ๋ ผ๋ฌธ์ ๊ด์ ์์๋ ์ ๋ง ์ข์ ๋ฐฉํฅ์ด๋ผ๊ณ ์๊ฐํจ. ์ด๋ฐ ์ฐ๊ตฌ ํ๊ณ ์ถ๋ค๊ณ ์๊ฐํ๊ฒ ๋ ๋ ผ๋ฌธ์ด์ง๋ง, ๋ ผ๋ฌธ ์์ฒด์ ์ผ๋ก ๋ดค์ ๋๋ ํด๊ฒฐ ๋ฐฉ๋ฒ๊ณผ ์์ด๋์ด๊ฐ ์์ฒญ ๋๋ผ๋งํฑํ๋ค๊ณ ๋ณด๊ธด ์ด๋ ค์ธ ๊ฒ ๊ฐ์. ๊ฒฐ๊ตญ LLM์ ์ฐ๊ณ ํ์ฉํ๋ ์ ์ฅ์์ ์ด ์ ๋ ์ค์ฐจ๋ ๊ฐ๋นํ ๋งํ ์์ค์ด๋ผ๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ. | 4.0 |
| ์์ฌ๋น๊ฝ๊ฒ๋ | ๊ธฐ์กด์๋ LLM ์ถ๋ก ๊ฒฐ๊ณผ๊ฐ ๋ฌ๋ผ์ง๋ ํ์์ '๊ทธ๋ฐ ํ์์ด ์๋ค' ์ ๋๋ก๋ง ์๊ฐํ๋๋ฐ ์ด๋ฅผ ์ฒด๊ณ์ ์ผ๋ก ์ ๋ถ์ํ ๋ฏ. LLM๋ high-level๋ก ๋ณด๋ฉด ์๊น๋ป์ฉํ reasoniong๋ฅ๋ ฅ ๋ฑ๋ฑ์ ๋ณด์ฌ์ฃผ์ง๋ง ์ฌ์ค ๊ทผ๋ณธ์ ์ผ๋ก๋ ๊ฑฐ๋ํ ๊ณ์ฐ์์คํ ์ด๋ผ๋๊ฒ์ ๋ค์ํ๋ฒ ์๊ธฐ์์ผ์ฃผ๋๊ฒ ๊ฐ๋ค | 3.8 |
| ๋ฉ๊ฐ์ปคํผ | ์ปดํจํฐ์ ์๋ฏผํจ, ๋ฏผ๊ฐ๋??๋ฅผ ์๊ฐํ์ ๋ ์ด๋์ ๋ ์์ธก์ด ๊ฐ๋ฅํ ๊ฒฐ๊ณผ์ธ ๊ฒ ๊ฐ๋ค. ๊ทธ๋ฆฌ๋ ๋์ฝ๋ฉ์ ๊ฒฝ์ฐ์๋ ์ถ๋ ฅ์ด ๋ฌ๋ผ์ง๋ ๊ฑด ์์ผ ๋๋๋ค | 3.5 |
| ์๋ฆฌ๊ดด๋ฌผ | ๋ญ๊ฐ ๋ ผ๋ฌธ ์์ฑ guideline์ ๋ค์ด๊ฐ๋ฒํ ๋ด์ฉ..? ๊ณต์ ํ ๋น๊ต๋ฅผ ์ํด์ ๋์ผํ ์ ๋ฐ๋๋ฅผ ํ์ฉํ๋ ๊ฒ์ด ์ค์ํ๋ค๋๊ฑธ ๊ฐ์กฐํ ๋ ผ๋ฌธ์ด๋ค. ๊ณ์ฐ๋ง FP32๋ก ๋ฐ๊พธ๋ ๊ฐ๋จํ ๋ฐฉ์์ผ๋ก ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ๊ฝค ์ค์ธ๊ฑฐ๋ ์ ์๋ฏธํ ๊ฒฐ๊ณผ์ด๋ค. ์ถํ ์์ํ ๋ชจ๋ธ์๋ ์ ์ฉํด๋ณผ ์ ์์ ๋ฏ | 3.9 |
| ์์ฐ๊นก | ์ ์ฅ์ ์ ๋ฐ๋ ๊ทธ๋๋ก ์ ์งํด๋ ๊ณ์ฐ ๋ ์ ๋ฐ๋ ๋๊ฒ ํ๋ฉด ๋ ์ ํํ ํ ์ ์๋ค๋ ๊ฒ ์ง๊ด์ ์ผ๋ก ์ดํด๊ฐ ๋๋ฉด์๋ ์๋๋ค.. ์ ๊ธฐํ๋ค. ์์น ๋ฑ์ ์ธ์ด๋ชจ๋ธ์ด ๋ค๋ฃจ๊ฒ ํ ๋ ํนํ ์ ์ฉํ ์ ์์ด๋ณด์ธ๋ค | 3.9 |
| ์์ฑ์ฌ | ์ฐ๊ตฌ์๋ค์ ์ข ์ข ์ฐฝ์์ ์ธ ์ ๊ทผ์ ์์ ์ background(์ํ, ์ฌ๋ฆฌํ, etc.)์์ ๋์ด์ค๋๋ฐ, ์ด ์ฐ๊ตฌ๋ ์ ๋ง ๋ด๋ฐฑํ computer scientist๊ฐ ์ด ๋๋์ด ๋๋ค์. ์์กด์ ๋๋ค | 4.3 |
| ๊ณ ๊ตฌ๋ง๋ง๋๋ฆฌ | ์ฐ๋ฆฌ๊ฐ LLM์ผ๋ก ์คํํ ๋ ํ์คํธ์ฐจ๋ฅผ ๊ผญ ๋ฃ์ด์ผ ํ๋ ์ด์ ! GPT3๊ฐ ๋์์ ๋ ๋ถํฐ ๊ถ๊ธํ๋ ๋ด์ฉ์ ์ ๊ผฌ์ง์ด์ ๋ณด์ฌ์ค ๋ ผ๋ฌธ. ์ฆ๋ช ํ๊ธฐ์๋ ๋ง์ ์ฒด๊ณ์ฑ๊ณผ ๋ ผ๋ฆฌ์ฑ์ ์ํด์ ๋๊ตฐ๊ฐ๋ ํด์ฃผ๊ธธ ๋ฐ๋ ์ฐ๊ตฌ๋ผ ์ฌ๋ฐ๊ฒ ์ฝ์๋น | 4 |
| ์คํ๋ฒ ์ค | LLM์ ์ถ๋ก ๊ฒฐ๊ณผ๊ฐ ๋ฌ๋ผ์ง๋ ํ์์ ์์น ํ์์ ๊ด์ ์์ ๋ถ์ํ ๊ฒฐ๊ณผ๋ก ์๋ฏธ๊ฐ ์๋ ๊ฒ ๊ฐ๋ค. ์ ๋ฐ๋์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ ์์์ ๋ณด์ด๋๋ฐ ๊ทธ๋ผ ๋ค๋ฅธ ๋ ผ๋ฌธ์ ์คํ ๊ฒฐ๊ณผ๋ ์ ๋ฐ๋์ ๋ฐ๋ผ ์ ํํ๊ฒ ๋น๊ต๋ฅผ ํ๋๊ฒ ์ค์ํ ๊ฒ ๊ฐ๋ค. | 4.1 |
TL; DR
๐ก
LLM ์ถ๋ก ์ ๊ณ์ฐ ๊ณผ์ ์์์ ์ค์ฐจ๋ก ์ธํ์ฌ ๋ฌ๋ผ์ง ์ ์์! โ ์ ๋ฐ๋ ๊ด์ ์์ ์ฌํด์, ์ค์ ๋ก ์ผ๋ง๋ ๋ฌ๋ผ์ง๋์ง, ์ด๋ป๊ฒ ํด๊ฒฐํด์ผ ํ๋์ง?
๊ณ์ฐ ๊ณผ์ ์์์ ๋ฌธ์ ๋๊น, ๊ณ์ฐ ๊ณผ์ ์์๋ง ๋ ์ ํํ๊ฒ ๋ณด๋ฉด ๋๋๊ฑฐ ์๋๊น?โ ์คํ ๊ฒฐ๊ณผ, ๊ทธ๋ ๋ค!
Summary
๋ถ๋ ์์์ ?
- sign(๋ถํธ): 0/1 (์/์)
- Range(์ง์,E): ์์ ๋ฒ์(์๋ฆฟ์)
- 18.875 โ ์ด์ง์ ํํ (10010.111)
- ์์์ ์์ผ๋ก 4์๋ฆฌ ๋๊ณ ์ค๊ธฐ (1.0010111) * Range(4)
- ์ด๊ฑธ fp 32๋ก ํํ?
- 0 00000100 00101110000000000โฆ
- Precision(๊ฐ์)
- ์ค์ ์ ํํ
์ฆ, precision์ด ํฌ๋ค? โ ํํ๋ ฅ์ด ์ข๋ค!
range๊ฐ ํฌ๋คโ ์ค๋ฒํ๋ก์ฐ/์ธ๋ํ๋ก์ฐ๊ฐ ์ค์ด๋ ๋ค!
Mixed Precision Training (ICLRโ2018) โ ์ ๋ช ํจ!
- sign(๋ถํธ): 0/1 (์/์)
Rounding Error?
- ์ปดํจํฐ๋ ๋ฐ์ฌ๋ฆผ ํจ.(์ ํํ ์ ์ฅํ ์ ์๊ธฐ ๋๋ฌธ)
- ๊ทธ๋์ ์ต์ํ์ ์ค์ฐจ๋ ์ธ์ ๋ ์กด์ฌํจ.โ Rounding error
Motivation
- LLM ์ถ๋ก ์ ์ผ๊ด๋ ํ๊ฐ๊ฐ ๊ฐ๋ฅํ๊ฐ?
- Greddy decoding (temperatre ๋ฑ 0์ผ๋ก ์ค์ ํ) + fixed seed โ ์ฌํ ๊ฐ๋ฅ?
โ ์ค์ ๋ก๋ ์์คํ ์ค์ ์กฐ๊ธ๋ง ๋ฐ๊ฟ๋ ๊ณ์ ๋ฌ๋ผ์ง๋ค.
- ๊ฐ LLM์ ํ๊ฐ๋ฅผ ์ฌํํ ์ ์์ผ๋, ๋ฏฟ์์๋ ์๋ค. (์ฐ์ฐ์ผ ์ ์๋ค)
- ๋ฌผ๋ก , 10% ์ด์ ์ฐจ์ด๋๋ฉด ๊ทธ๋ฌ๋ ค๋ ํ ์ ์์. but, 1%, 2% ์ฐจ์ด๋ผ๋ฉด?
- ๋ํ, reasoning ๋ชจ๋ธ์์๋ ๋ ํฐ ์ฐจ์ด๋ฅผ ๋ถ๋ฌ์ด.
- 5๋จ๊ณ ์ถ๋ก ์์, 1๋จ๊ณ์์ ๋ฏธ์ธํ๊ฒ ๋ฌ๋ผ์ง๋ฉด ? โ ๋๋นํจ๊ณผ์ฒ๋ผ ์ฐจ์ด๊ฐ ์ฆํญ๋ ์ ์์
Idea
- ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๊ฐ ์๋๋ผ, ์์น ์ฐ์ฐ์ ์ฐจ์ด ์๋๊น?
- ๋ง์
์์๊ฐ ๋ฌ๋ผ์ง๋ฉด, ๊ฒฐ๊ณผ๊ฐ ๋ฌ๋ผ์ง๋ค!
- GPU ๋ณ๋ ฌ๋ก ์ฐ๋๋ฐ, ๊ทธ๋ผ ์ด๋ ์ค๋ ๋, GPU์ ๋ฐ์ดํฐ๊ฐ ์ฌ๋ผ๊ฐ๊ณ , ์ด๋ค ์์๋ก ์ฒ๋ฆฌ๋์ด์ ๊ณ์ฐ๋๋์ง์ ๋ฐ๋ผ ๋ฌ๋ผ์ง์ง ์์๊น?
- ๋ง์
์์๊ฐ ๋ฌ๋ผ์ง๋ฉด, ๊ฒฐ๊ณผ๊ฐ ๋ฌ๋ผ์ง๋ค!
Method
- ์ํฅ์ ๋ฏธ์น ๋งํ ๊ฒ๋ค์ ๋ฐ๊ฟ๊ฐ๋ฉด์ ์คํํด๋ณด์!
- FP16/BF16/FP32
- ๋ง์ ์์ ๊ฒฐ๊ณผ ์ฐจ์ด
- attention, softmax, logit ๊ณ์ฐ์์ ๋ฐ์ํ๋ rounding error
- ์ด๋ป๊ฒ?
- ์กฐ์
- GPU ๊ฐ์
- GPU ์ข ๋ฅ(A100 vs L40s)
- batch size
- precision format
- ๊ณ ์
- ๋ชจ๋ธ
- prompt
- decoding strategy(greedy)
- ์กฐ์
- ํด๊ฒฐ์ฑ
?
- LayerCast
- FP32๋ ๋๋ฌด ๋น์ธ๊ณ , BF/FP16์ ๊ฒฐ๊ณผ๊ฐ ๋ฌ๋ผ์ง๋ค.
- ์ค์ฐจ๊ฐ ์ธ์ ์๊ธฐ๋๊ฐ?
- ๋ชจ๋ธ ํ๋ผ๋ฏธํฐ ์ ์ฅ์ ๋ฌธ์ ์์! โ ๊ณ์ฐ ๊ณผ์ ์์์ ๋ฌธ์
- BF16 ์ ์ง
- Weight ์ ์ฅ
- FP32
- Activation, Attention, Softmax, logits, Accumulation (๊ณ์ฐ ๋๋ง FP32๋ก)
- LayerCast












