- RoPE๋ ์ฟผ๋ฆฌ์ ํค ๋ฒกํฐ๋ฅผ ์์น์ ๋น๋กํ ๊ฐ๋๋ก ํ์ ์์ผ ์์น ์ ๋ณด๋ฅผ ์ธ์ฝ๋ฉํ๋ ๋ฐฉ์ (Su et al., 2021)
- ์ ๋ ์์น๋ ํ์ ํ๋ ฌ๋ก, ์๋ ์์น๋ ๋ด์ ์ ์์ ์ฐจ์ด๋ก ๋ ๊ฐ์ง๋ฅผ ๋์์ ํฌ์ฐฉ
- ์ถ๊ฐ ํ์ต ํ๋ผ๋ฏธํฐ๊ฐ ์๊ณ , ํ์ต ์ ๋ชป ๋ณธ ์ํ์ค ๊ธธ์ด๋ก ์ธ์ฝ์ด ๊ฐ๋ฅํ ์์น ์ธ์ฝ๋ฉ
ํด๋น ๊ฐ๋ ์ด ํ์ํ ์ด์
- ๊ธฐ์กด ์ ๋ ์์น ์๋ฒ ๋ฉ์ ํ์ต๋ ๊ณ ์ ๊ธธ์ด์ ๊ฐํ๋ฉฐ, ์๋ ์์น๋ฅผ ํฌ์ฐฉํ์ง ๋ชปํจ
- T5์ ์๋ ์์น ๋ฐ์ด์ด์ค๋ NรN ํ๋ ฌ ๊ตฌ์ฑ์ด ํ์ํด Flash Attention ๋ฑ ํจ์จ ์ดํ ์ ๊ณผ ๋นํธํ
- RoPE๋ ์ด ๋ ๋ฌธ์ ๋ฅผ ๋์์ ํด๊ฒฐ
ํต์ฌ ์๋ ์๋ฆฌ
d์ฐจ์ ๋ฒกํฐ์ ํน์ฑ(feature)์ d/2๊ฐ ์์ผ๋ก ๋ฌถ๊ณ , ๊ฐ ์์ 2D ํ๋ฉด์ ์ขํ๋ก ๊ฐ์ฃผํ๋ค. ํ ํฐ์ ์์น m์ ๋ฐ๋ผ ๊ฐ ์์ ฮธยทm ๋งํผ ํ์ ์ํจ๋ค.
# ์์น m์ ์ฟผ๋ฆฌ, ์์น n์ ํค
q_rotated = rotate(q, angle=theta * m) # ๊ฐ ์ฐจ์ ์๋ง๋ค ๋ค๋ฅธ theta
k_rotated = rotate(k, angle=theta * n)
# ๋ด์ ์ ์ ๋ ๊ฐ๋๋ ์์๋๊ณ ์์น ์ฐจ์ด๋ง ๋จ์
dot(q_rotated, k_rotated) โ f(m - n)์๋ง ์์กดํ๋์ ํ์ ๊ฐ๋๊ฐ ์๋๋ผ ์ฐจ์ ์๋ง๋ค ๋ค๋ฅธ ์ฃผํ์์ ๊ฐ๋๋ฅผ ์ฌ์ฉํ๋ค. ๋ด์ ์ ์ ๋ ๊ฐ๋๋ ์์๋๊ณ ๊ฐ๋ ์ฐจ์ด๋ง ๋จ์ผ๋ฏ๋ก ์์ฐ์ค๋ฝ๊ฒ ์๋ ์์น ์ธ์ฝ๋ฉ์ด ๋๋ค.
์์น ์ธ์ฝ๋ฉ ๋ฐฉ์ ๋น๊ต
| ๋ฐฉ์ | ํ๋ผ๋ฏธํฐ | ์๋ ์์น | ๊ธธ์ด ์ธ์ฝ | ํจ์จ ์ดํ ์ ํธํ |
|---|---|---|---|---|
| ํ์ต๋ ์ ๋ ์๋ฒ ๋ฉ | O (์์น๋ณ) | X | X | O |
| Sinusoidal (Vaswani) | X | ๋ถ๋ถ์ | ์ ํ์ | O |
| T5 Relative Bias | O (๊ฑฐ๋ฆฌ๋ณ) | O | X | X (NรN ํ์) |
| RoPE | X | O | O | O |
์๋ ๊ฑฐ๋ฆฌ์ ๋ฐ๋ฅธ ๊ฐ์
RoPE๋ ํ ํฐ ๊ฐ ์๋ ๊ฑฐ๋ฆฌ๊ฐ ๋ฉ์ด์ง์๋ก ์ดํ ์ ๊ธฐ์ฌ๊ฐ ์์ฐ์ค๋ฝ๊ฒ ๊ฐ์๋๋ ํน์ฑ์ ๊ฐ์ง๋ค. ์ด๋ ๋ณ๋์ ๋ง์คํน ์์ด๋ โ๊ฐ๊น์ด ํ ํฐ์ด ๋ ์ค์ํ๋คโ๋ ์ธ์ด์ ์ง๊ด์ ๋ฐ์ํ๋ค.
๊ธธ์ด ์ธ์ฝ์ ์ค์
ํ์ต ์ 4K ํ ํฐ ์๋์ฐ๋ก ํ์ตํ ์ฒดํฌํฌ์ธํธ๋ฅผ, ์ถ๋ก ์ 100K+ ํ ํฐ์ผ๋ก ํ์ฅํ ์ ์๋ค. ๊ฐ๋ ์ค์ผ์ผ๋ง ํธ๋ฆญ(angle-scaling trick)์ ์ ์ฉํ๋ฉด ์ถ๊ฐ ํ์ต ์์ด๋ ๊ธด ์ํ์ค ์ฒ๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ค. LLaMA, PaLM ๋ฑ ํ๋ LLM๋ค์ด ์ด ๋ฐฉ์์ ์ฑํํ ์ด์ ์ด๊ธฐ๋ ํ๋ค.