Sliding Window Attention Analysis
Sliding Window Attention ์ฌ์ธต ๋ถ์
๊ตญ์ ์ดํ ์ ์ํคํ ์ฒ ยท Receptive Field ยท Rolling Buffer Cache ยท LongformerยทMistralยทGemma ยท SWA vs StreamingLLM
Sliding Window Attention(SWA)์ ๊ฐ ํ ํฐ์ด ๋ชจ๋ ๊ณผ๊ฑฐ๊ฐ ์๋๋ผ '์ต๊ทผ W๊ฐ' ํ ํฐ๋ง ๋ณด๋๋ก ์ดํ ์ ์ ๊ตญ์ํํ๋ ์ํคํ ์ฒ์ ๋๋ค. ์ฐ์ฐ์ O(nยฒ)์์ O(nรW)๋ก ๋ฎ์ถฐ ๊ธด ์ํ์ค๋ฅผ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ๊ณ , KV ์บ์๋ฅผ W์ ๊ณ ์ ํฉ๋๋ค. ํต์ฌ ํต์ฐฐ์ ๊ตญ์ ์ดํ ์ ๋ ์ด์ด๋ฅผ ์์ผ๋ฉด CNN์ฒ๋ผ receptive field๊ฐ ๊น์ด์ ๋น๋กํด ์ปค์ง๋ค๋ ์ ์ ๋๋ค.
์ด ๋๋ฌธ์ ์๋์ฐ๋ณด๋ค ํจ์ฌ ๋ฉ๋ฆฌ๊น์ง ์ ๋ณด๊ฐ ์ ํ๋ ์ ์์ต๋๋ค. ์ค์ํ ๊ฒ์ SWA๊ฐ 'ํ์ต ์์ ์' ๋ชจ๋ธ์ ๋ด์ฅ๋๋ ์ํคํ ์ฒ๋ผ๋ ์ ์ผ๋ก, ์ถ๋ก ์์ KV ๊ด๋ฆฌ ๊ธฐ๋ฒ์ธ StreamingLLM๊ณผ๋ ๊ฒฐ์ ์ ์ผ๋ก ๋ค๋ฆ ๋๋ค. ์ค์ ๊ตฌํ์์๋ Longformer์ฒ๋ผ ๊ตญ์ window์ global ํ ํฐ์ ์๊ฑฐ๋, BigBird์ฒ๋ผ random ํจํด์ ๋ํด ์ฅ๊ฑฐ๋ฆฌ ์ ๊ทผ์ ๋ณด๊ฐํ ์ ์์ต๋๋ค. ๋ฐ๋๋ก Mistral 7B๋ ๋ชจ๋ ๋ ์ด์ด์ SWA๋ฅผ ์ ์ฉํ๊ณ , Gemma 2๋ local-global attentions๋ฅผ ์ธํฐ๋ฆฌ๋ธํด ํจ์จ๊ณผ ์ฅ๊ฑฐ๋ฆฌ recall์ ํจ๊ป ์ก์ต๋๋ค. ๋ณธ ๋ฌธ์๋ ํต์ฌ ์์ด๋์ด โ receptive field โ KV ์ด๋ โ ๋ณํยท๋ชจ๋ธ(LongformerยทMistralยทGemma) โ SWA vs StreamingLLM๊ณผ trade-off์ ์์๋ก ๋ถ์ํฉ๋๋ค.
1. ํต์ฌ ์์ด๋์ด โ Full vs Sliding Window ์ดํ ์
ํ์ค ์ดํ ์ ์ ๊ฐ ํ ํฐ์ด ๋ชจ๋ ๊ณผ๊ฑฐ ํ ํฐ์ ๋ด ๋๋ค. ์ํ์ค ๊ธธ์ด n์ ๋ํด O(nยฒ) ์ฐ์ฐยท๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ค์ด ๊ธด ์ ๋ ฅ์์ ๋น์ธ์ง๋๋ค. Sliding Window Attention์ ๊ฐ ํ ํฐ์ด ์ต๊ทผ W๊ฐ๋ง ๋ณด๋๋ก ์ดํ ์ ์ ๊ตญ์ํํฉ๋๋ค.
๊ทธ๋ฆผ 1. Full attention(์ผ๊ฐ ๋ง์คํฌ, O(nยฒ))๊ณผ Sliding Window Attention(๋ ๋ง์คํฌ, O(nรW))
Sliding Window Attention์ด๋
-
๊ตญ์ ์ดํ ์ (local attention) โ ๊ฐ ํ ํฐ์ด ์ต๊ทผ W๊ฐ ํ ํฐ๋ง ๋ด ๋๋ค. ์ดํ ์ ๋ง์คํฌ๊ฐ ๋๊ฐ์ ์ ๋ฐ๋ผ ํญ W์ '๋ ' ๋ชจ์์ด ๋ฉ๋๋ค.
-
์ฐ์ฐ๋ โ O(nรW)๋ก, W๋ฅผ ๊ณ ์ ํ๋ฉด ์ํ์ค ๊ธธ์ด์ ์ ํ์ ๋๋ค(full์ O(nยฒ) ๋๋น ๊ธด ์ ๋ ฅ์ ์ ๋ฆฌ).
-
์ํคํ ์ฒ ์ ํ โ SWA๋ ๋ชจ๋ธ์ ํ์ต ์์ ์ ์ด ํจํด์ผ๋ก ์ค๊ณํ๋ ๊ฒ์ ๋๋ค. ์ถ๋ก ์์ ์ KV๋ฅผ ์๋ฅด๋ ํธ๋ฆญ์ด ์๋๋ฉฐ, ์ด ์ ์ด StreamingLLM๊ณผ ๋๋น๋ฉ๋๋ค.
-
๊ธฐ์ โ Sparse Transformers(Child et al. 2019)์ Longformer(Beltagy et al. 2020)๊ฐ ๋์ ํ๊ณ , Mistral 7B๊ฐ LLM์ ๋ณธ๊ฒฉ ์ ์ฉํ์ต๋๋ค. '๊ตญ์๋ง ๋ณด๋ฉด ๋จผ ํ ํฐ์ ๋ชป ๋ณด์ง ์๋'๋ผ๋ ์๋ฌธ์ ๋ค์ ์ (receptive field)์์ ํด์๋ฉ๋๋ค.
2. ํต์ฌ ํต์ฐฐ โ Receptive Field๊ฐ ๋ ์ด์ด๋ก ์ปค์ง๋ค
SWA์ ํต์ฌ์ ๋จ์ผ ๋ ์ด์ด๊ฐ ์๋๋ผ ์์ธ ๋ ์ด์ด ์ ์ฒด์์ ๋ด์ผ ํฉ๋๋ค. ํ ๋ ์ด์ด์์๋ W๊ฐ๋ง ์ง์ ๋ณด์ง๋ง, ๋ ์ด์ด๋ฅผ ๊ฑฐ์น๋ฉด ์ ๋ณด๊ฐ ์๋์ฐ ๊ฒฝ๊ณ๋ฅผ ๋์ด ์ ํ๋ฉ๋๋ค.
๊ทธ๋ฆผ 2. ๋ ์ด์ด๋ฅผ ์์ผ๋ฉด receptive field๊ฐ Wรk๋ก ์ปค์ง๋ ์๋ฆฌ(CNN๊ณผ ์ ์ฌ)
์ ๊ตญ์ ์ดํ ์ ์ผ๋ก๋ ๋ฉ๋ฆฌ ๋ณด๋๊ฐ
-
์ฌ๊ท์ ์ ํ โ ๋ ์ด์ด k์ ํ ํฐ i๋ ์ง์ ๋ ์ด์ด์ [i-W, i]๋ฅผ ๋ณด๊ณ , ๊ทธ ํ ํฐ๋ค์ ๋ค์ ๋ ์ด์ ๋ ์ด์ด์ ์ต๊ทผ W๊ฐ๋ฅผ ๋ด ๋๋ค. ์ฌ๊ท์ ์ผ๋ก ์ ๋ ฅ์ธต ๊ธฐ์ค ์ฝ Wรk ๊ฑฐ๋ฆฌ์ ํ ํฐ๊น์ง ๊ฐ์ ์ ๊ทผํฉ๋๋ค.
-
CNN๊ณผ ๊ฐ์ ์๋ฆฌ โ ์์ ์ปค๋(์๋์ฐ)์ ์ฌ๋ฌ ์ธต ์์ ๋์ ์์ฉ ์์ญ(receptive field)์ ๋ง๋๋ ๊ฒ๊ณผ ๋์ผํฉ๋๋ค.
-
Mistral 7B ์ฌ๋ก โ W=4096, 32 ๋ ์ด์ด๋ฉด ์ต์ข ๋ ์ด์ด์ ์ด๋ก ์ ์ดํ ์ ๋ฒ์๋ ์ฝ 131K ํ ํฐ์ ๋๋ค(4096ร32). '์๋์ฐ ๋ฐ ํ ํฐ๋ ๋ค์ ๋จ์ด ์์ธก์ ์ํฅ์ ์ค๋ค'๋ ๊ฒ์ด ํต์ฌ์ ๋๋ค.
ํจ์จ๊ณผ ํํ๋ ฅ์ ์ ์ถฉ โ ์ฐ์ฐ์ O(nรW)๋ก ์ธ๊ฒ ์ ์งํ๋ฉด์ ์ ๋ณด ํ๋ฆ์ ๊น์ด๋ฅผ ํตํด ๋ฉ๋ฆฌ ๋ฟ๊ฒ ํ๋ค. ๋ค๋ง ์ด๋ '๊ฐ์ ' ๊ฒฝ๋ก๋ค โ ์ง์ ์ดํ ์ ์ด ์๋๋ฏ๋ก, ๋จผ ๊ฑฐ๋ฆฌ์ ์ ๋ฐํ recall์ ์ฝํด์ง๋ค(๋ค์ trade-off์์ ๋ค๋ฃฌ๋ค).
3. KV ์บ์ ์ด๋ โ Rolling Buffer Cache
๊ณ ์ ๋ ์ดํ ์ ๋ฒ์๋ ๋ฉ๋ชจ๋ฆฌ์ ์ง์ ์ ์ธ ์ด์ ์ ์ค๋๋ค. ๊ฐ ๋ ์ด์ด์์ ์ต๊ทผ W๊ฐ ํ ํฐ์ KV๋ง ์์ผ๋ฉด ๋๋ฏ๋ก, KV ์บ์๋ฅผ W ํฌ๊ธฐ์ ๊ณ ์ ํ ์ ์์ต๋๋ค.
๊ทธ๋ฆผ 3. ์ํ ๋ฒํผ(rolling buffer)์ ๋ฉ๋ชจ๋ฆฌ ๋น๊ต(Full์ O(n) ์ฆ๊ฐ, SWA๋ bounded)
์ํ ๋ฒํผ ๊ฐ๋ โ W ํฌ๊ธฐ์ circular buffer๋ฅผ ์ฌ์ฉํฉ๋๋ค.
Rolling Buffer Cache์ ํต์ฌ
-
์ํ ๋ฒํผ โ ํฌ๊ธฐ W์ ๋ฒํผ์ KV๋ฅผ ์ ์ฅํ๊ณ , ๊ฐ๋ ์ฐจ๋ฉด ๊ฐ์ฅ ์ค๋๋ ํญ๋ชฉ์ ๋ฎ์ด์๋๋ค. KV ์บ์ ํฌ๊ธฐ๊ฐ ์ํ์ค ๊ธธ์ด์ ๋ฌด๊ดํ๊ฒ ์ผ์ (bounded)ํ์ฌ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์์ธก ๊ฐ๋ฅํ๊ณ OOM์ ํํผํฉ๋๋ค.
-
Mistral ๋ณด๊ณ โ ์ํ์ค ๊ธธ์ด 8192์์ ์บ์ ๋ฉ๋ชจ๋ฆฌ 50% ์ ๊ฐ, ํ์ง ์ ํ ์์. ์ฐ์ฐ๋ O(nรW)๋ก ์ ํ์ด๋ฉฐ, FlashAttentionยทxFormers ์ต์ ํ๋ก 16KยทW=4K์์ 2๋ฐฐ ์๋ ํฅ์์ด ๋ณด๊ณ ๋ฉ๋๋ค.
-
์ฃผ์ โ rolling buffer๋ ์ธ๋ฑ์ค ๊ด๋ฆฌ๊ฐ ๊น๋ค๋ก์ speculative decoding ๋ฑ ์ผ๋ถ ์ถ๋ก ๊ธฐ๋ฒ๊ณผ๋ ์กฐ์ ์ด ํ์ํฉ๋๋ค. ์ด๊ฒ์ KV ์ ๊ฐ์ 'ํ ํฐ' ์ถ์ด๋, ์ถ๋ก ํธ๋ฆญ์ด ์๋๋ผ ์ํคํ ์ฒ๋ก ๋ด์ฅ๋๋ค๋ ์ ์ด StreamingLLM๊ณผ์ ์ฐจ์ด์ ๋๋ค.
4. ๋ณํ๊ณผ ๋ชจ๋ธ โ ๊ตญ์ + ์ ์ญ์ ์กฐํฉ
์์ ๊ตญ์ ์ดํ ์ ๋ง์ผ๋ก๋ ๋จผ ๊ฑฐ๋ฆฌ ์ง์ ์ ๊ทผ์ด ์ฝํ๋ฏ๋ก, ์ค์ ๋ชจ๋ธ๋ค์ ์ ์ญ(global) ์ดํ ์ ์ ์๊ฑฐ๋ ๊ตญ์ยท์ ์ญ ๋ ์ด์ด๋ฅผ ๋ฒ๊ฐ์ ๋ก๋๋ค.
๊ทธ๋ฆผ 4. ํจํด ๋ณํ(window+global+dilated+random), ์ธํฐ๋ฆฌ๋ธ, ์ฑํ ๋ชจ๋ธ
ํจํด ๋ณํ๊ณผ ์ธํฐ๋ฆฌ๋ธ
-
Longformer โ ๊ตญ์ window + dilated(๋์๋์ ๋๊ฒ ๋ณด๋) window + ํน์ ํ ํฐ์ global ์ดํ ์ ์ ์กฐํฉํฉ๋๋ค(์ฅ๋ฌธ ๋ฌธ์์ฉ).
-
BigBird โ ๊ตญ์ window + global + random(์์) ์ดํ ์ ์ ์กฐํฉ์ผ๋ก full attention์ ๊ทผ์ฌํฉ๋๋ค.
-
์ธํฐ๋ฆฌ๋ธ(Gemma 2) โ ๊ตญ์ SWA ๋ ์ด์ด์ ์ ์ญ full ๋ ์ด์ด๋ฅผ ๋งค ๋ ์ด์ด ๋ฒ๊ฐ์ ๋ก๋๋ค(์ ๋ฐ์ฉ). 2๋ ์ด์ด๋ง๋ค ์ ์ฒด ์์ฉ์ด ๋์ด, ์ ๋ฐ์ ์ ์ฒด๋ฅผ ๋ณด๋ฏ๋ก long-context ํ์ง์ ์งํค๋ฉด์ ์ ๋ฐ์ ์ฐ์ฐยท์บ์๋ฅผ ์ ์ฝํฉ๋๋ค.
์ฑํ ๋ชจ๋ธ
์ถ์ธ๋ '๊ตญ์ ๋ค์ + ์ ์ญ ์์'์ ํ์ด๋ธ๋ฆฌ๋์ ๋๋ค โ ๋๋ถ๋ถ์ ๋ ์ด์ด๋ ํจ์จ์ ์ธ SWA๋ก ๋๊ณ ์ผ๋ถ ๋ ์ด์ด์ ์ ์ญ ์ดํ ์ ์ ๋์ด, ํจ์จ๊ณผ ์ฅ๊ฑฐ๋ฆฌ recall์ ์ ์ถฉํ๋ ๊ฒ์ด ์ฌ์ค์ ํ์ค์ด ๋์์ต๋๋ค.
5. SWA vs StreamingLLM, ๊ทธ๋ฆฌ๊ณ ์ ๋ฆฌ
๊ทธ๋ฆผ 5. SWA์ StreamingLLM์ ์ฐจ์ด, trade-off, ๊ทธ๋ฆฌ๊ณ SWA์ ์์น
SWA vs StreamingLLM โ ์์ฃผ ํผ๋๋๋ ๊ตฌ๋ถ
์ค์ํ ์ ์ StreamingLLM์ด ๋ณด์ธ '์๋์ฐ ์ดํ ์ ์ ์คํจ'๋ full๋ก ํ์ต๋ ๋ชจ๋ธ์ ์ถ๋ก ๋ ๋จ์ํ ์๋ฅธ ๊ฒฝ์ฐ๋ผ๋ ๊ฒ์ ๋๋ค. SWA๋ก ์ฒ์๋ถํฐ ํ์ต๋ ๋ชจ๋ธ(Mistral)์ ๊ตญ์ ํจํด์ ์ตํ ์ ์ ๋์ํฉ๋๋ค(๋ค๋ง attention sink๋ก ์ถ๊ฐ ๋ณด๊ฐํ ์ ์์ต๋๋ค). ์ฆ ๋์ ๋ฐฐํ์ ์ด์ง ์๊ณ ์ธต์๊ฐ ๋ค๋ฆ ๋๋ค.
์ฅ๋จ์
-
์ฅ์ โ ์ฐ์ฐ๊ณผ KV๊ฐ ์ ํ/์ผ์ (bounded)ํ์ฌ ๊ธด ์ํ์ค๋ฅผ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ๊ณ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์์ธก ๊ฐ๋ฅํฉ๋๋ค.
-
๋จ์ โ ๋จผ ๊ฑฐ๋ฆฌ ํ ํฐ์ ์ง์ ์ ๊ทผ์ด ์ฝํฉ๋๋ค(๊ฐ์ ๊ฒฝ๋ก์ ์์กด). ์ฅ๊ฑฐ๋ฆฌ ์ ๋ฐ recall์์ ์ํด๊ฐ ์์ด, ์ ์ญ ๋ ์ด์ด ์ธํฐ๋ฆฌ๋ธ(Gemma) ๋ฑ์ผ๋ก ๋ณด์ํฉ๋๋ค.
๊ด๋ จ ๊ธฐ์
Longformer: The Long-Document Transformer(https://arxiv.org/abs/2004.05150)Big Bird: Transformers for Longer Sequences(https://arxiv.org/abs/2007.14062)Mistral 7B(https://arxiv.org/abs/2310.06825)Gemma 2: Improving Open Language Models at a Practical Size(https://arxiv.org/abs/2408.00118)StreamingLLM Analysis(llm_0055_streamingllm_analysis.html)KV Cache Offloading Analysis(llm_0040_kv_cache_offloading_analysis.html)Memory Centric LLM Serving Survey(llm_0003_memory_centric_llm_serving_survey.html)Speculative Decoding Analysis(llm_0070_speculative_decoding_analysis.html)
ํต์ฌ ์ ๋ฆฌ
Sliding Window Attention์ ๊ฐ ํ ํฐ์ด ์ต๊ทผ W๊ฐ๋ง ๋ณด๋ ๊ตญ์ ์ดํ ์ ์ํคํ ์ฒ๋ก, ์ฐ์ฐ์ O(nรW)๋ก ๋ฎ์ถ๊ณ KV ์บ์๋ฅผ W์ ๊ณ ์ (bounded)ํฉ๋๋ค. ํต์ฌ ํต์ฐฐ์ ๋ ์ด์ด๋ฅผ ์์ผ๋ฉด receptive field๊ฐ Wรk๋ก ์ปค์ง๋ค๋ ์ (CNN๊ณผ ์ ์ฌ)์ผ๋ก, ๊ตญ์ ์ดํ ์ ์ผ๋ก๋ ๋ฉ๋ฆฌ๊น์ง ์ ๋ณด๊ฐ ์ ํ๋ฉ๋๋ค. rolling buffer cache๋ก KV๋ฅผ W์ ๊ณ ์ ํด ๋ฉ๋ชจ๋ฆฌ 50% ์ ๊ฐ๊ณผ 2๋ฐฐ ์๋๊ฐ ๋ณด๊ณ ๋์์ต๋๋ค. SWA(์ํคํ ์ฒยทํ์ต ์์ )๋ StreamingLLM(์ถ๋ก ์์ KV ๊ด๋ฆฌ)๊ณผ ์ธต์๊ฐ ๋ค๋ฅด๋ฉฐ, LongformerยทBigBirdยทGemma ๊ฐ์ ํ์ด๋ธ๋ฆฌ๋ ๋ณํ์ ์ฅ๊ฑฐ๋ฆฌ ์ ๊ทผ์ ๋ณด์ํฉ๋๋ค. KV ์ ๊ฐ์ 'ํ ํฐ' ์ถ(์ํคํ ์ฒ ๋ฒ์ )์ผ๋ก, ์์ํ(๋นํธ)ยทGQA/MLA(ํค๋/์์ถ)ยทPagedAttention(๋ญ๋น)๊ณผ ์ง๊ตํฉ๋๋ค.
๋ฉ๋ชจ๋ฆฌ ์์คํ ๊ด์ (์ฐ๊ตฌ ํ์ฅ) โ SWA์ ๊ฐ์ฅ ํฐ ์์คํ ์ ํจ์๋ KV ์บ์ ํฌ๊ธฐ๊ฐ ์ํ์ค ๊ธธ์ด์ ๋ฌด๊ดํ๊ฒ ์ผ์ (bounded)ํ๋ค๋ ์ ์ ๋๋ค. ๊ธด ์ ๋ ฅ์์๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํญ์ฆํ์ง ์์ ์์ธก ๊ฐ๋ฅํ๊ณ , ์ธํฐ๋ฆฌ๋ธ ๋ชจ๋ธ์์๋ ๊ตญ์ ๋ ์ด์ด์ ์ ์ญ ๋ ์ด์ด์ ํํ๋ฆฐํธ ์ฐจ์ด๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ ์ด์ด๋ณ ๋ฐฐ์นยท์คํ๋ก๋ฉยทํฐ์ด๋ง์ ์ค๊ณํ ์ ์์ต๋๋ค. StreamingLLM(์ถ์ถ)๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก '๋ฒ๋ฆด ๊ฒ์ ๋ฒ๋ฆฌ๋ ํ์ํ๋ฉด ์ด๋ ๋๋'๋ผ๋ ์ถ์ถ/๊ตญ์ํ โ ์คํ๋ก๋ฉ์ ํธ๋ ์ด๋์คํ๊ฐ ์ ์ฉ๋ฉ๋๋ค.
์ฃผ์ โ ๋ณธ๋ฌธ ์์น๋ ์๋ ผ๋ฌธยท๊ธฐ์ ์๋ฃ(Mistral 7B arXiv 2310.06825, Longformer arXiv 2004.05150, BigBird arXiv 2007.14062, Gemma 2 arXiv 2408.00118 ๋ฑ)์ ๋ณด๊ณ ๊ฐ์ ๋๋ค. 'W=4096', '131K ํ ํฐ', '50% ์บ์ ์ ๊ฐ', '2๋ฐฐ ์๋', 'Gemma ๊ตญ์ 4096/์ ์ญ 8192'๋ ํน์ ๋ชจ๋ธยท์กฐ๊ฑด์ ๋ณด๊ณ ๊ฐ์ผ๋ก ์ผ๋ฐํ์ ์ฃผ์๊ฐ ํ์ํฉ๋๋ค. ์๋์ฐ ํฌ๊ธฐยท๊ตญ์/์ ์ญ ๋น์จ์ ์ต์ ๊ฐ์ ๋ชจ๋ธยท์ํฌ๋ก๋์ ๋ฐ๋ผ ๋ค๋ฅด๋ฉฐ, SWA ์ฑํ ์ฌ๋ถ๋ ๋ชจ๋ธ ์ธ๋๋ง๋ค ๋ฌ๋ผ์ง๋๋ค(์ผ๋ถ ๋ชจ๋ธ์ ์ดํ SWA๋ฅผ ๋นผ๊ธฐ๋ ํฉ๋๋ค). receptive field๋ '์ด๋ก ์ ' ๋ฒ์๋ก ์ค์ ์ฅ๊ฑฐ๋ฆฌ ํ์ฉ๋์๋ ์ฐจ์ด๊ฐ ์์ ์ ์์ต๋๋ค.
์ํ ๋ฒํผ ๊ฐ๋
slot = position % W
cache[slot] = (key, value) # ๊ฐ๋ ์ฐจ๋ฉด ๊ฐ์ฅ ์ค๋๋ ๊ฒ์ ๋ฎ์ด์
attn = attention(query, cache[recent_W_slots]) # ์ต๊ทผ W๊ฐ KV์ ๋ํด์๋ง ์ํ
| ๋ชจ๋ธ | ๋ฐฉ์ |
|---|---|
| Longformer | window + dilated + global (์ฅ๋ฌธ ๋ฌธ์) |
| BigBird | window + global + random |
| Mistral 7B | ์ ๋ ์ด์ด SWA(W=4096) + GQA + rolling buffer cache |
| Gemma 2 / 3 | ๊ตญ์ SWA(4096) โ ์ ์ญ full(8192) ์ธํฐ๋ฆฌ๋ธ(์ ๋ฐ์ฉ) |
| ๊ตฌ๋ถ | Sliding Window Attention | StreamingLLM |
|---|---|---|
| ์ฑ๊ฒฉ | ์ํคํ ์ฒ(ํ์ต ์์ ์ ๋ด์ฅ) | ์ถ๋ก ์์ KV ๊ด๋ฆฌ ๊ธฐ๋ฒ |
| ์ ์ฉ | ๋ชจ๋ธ์ด ๊ตญ์ ํจํด์ผ๋ก ํ์ต๋จ | ๊ธฐ์กด ๋ชจ๋ธ์ sink + ์๋์ฐ ์ ์ฉ |
| ํ์ต | ํด๋น ํจํด์ผ๋ก ์ฌ์ ํ์ต ํ์ | ๋ฌดํ์ต(์ฌํ์ต ๋ถํ์) |
| ์์ | Mistral, Gemma | ๊ธฐ์กด full-attention ๋ชจ๋ธ์ ์ ์ฉ |