𝗦𝗽𝗮𝗿𝘀𝗲 𝗞𝗩 𝗖𝗮𝗰𝗵𝗲𝘀 𝗔𝘁𝘁𝗲𝗻𝘁𝗶𝗼𝗻 𝗦𝗰𝗮𝗹𝗶𝗻𝗴 ਨੂੰ ਘਟਾਉਂਦੇ ਹਨ

ਸਟੈਂਡਰਡ ਅਟੈਂਸ਼ਨ ਮਾਡਲ ਲੰਬੀਆਂ ਸੀਕੁਐਂਸਾਂ (sequences) ਨਾਲ ਸੰਘਰਸ਼ ਕਰਦੇ ਹਨ। ਜਿਵੇਂ-ਜਿਵੇਂ ਟੈਕਸਟ ਲੰਬਾ ਹੁੰਦਾ ਹੈ, ਮੈਮੋਰੀ ਅਤੇ ਕੰਪਿਊਟਿੰਗ ਦੀ ਲਾਗਤ ਬਹੁਤ ਤੇਜ਼ੀ ਨਾਲ ਵਧਦੀ ਹੈ। ਇਹ ਕੰਟੈਕਸਟ ਵਿੰਡੋਜ਼ (context windows) ਨੂੰ ਕੁਝ ਹਜ਼ਾਰ ਟੋਕਨਾਂ ਤੱਕ ਸੀਮਤ ਕਰ ਦਿੰਦਾ ਹੈ।

Sparse KV caches ਇਸ ਨੂੰ ਬਦਲ ਦਿੰਦੇ ਹਨ। ਉਹ ਕੁਆਡ੍ਰੈਟਿਕ (quadratic) ਲਾਗਤਾਂ ਨੂੰ ਲਗਭਗ ਲੀਨੀਅਰ (linear) ਲਾਗਤਾਂ ਵਿੱਚ ਬਦਲ ਦਿੰਦੇ ਹਨ। ਹਰ ਮੈਮੋਰੀ ਬਲਾਕ ਨੂੰ ਸਕੈਨ ਕਰਨ ਦੀ ਬਜਾਏ, ਹਰੇਕ ਕੁਐਰੀ (query) ਡੇਟਾ ਦੇ ਇੱਕ ਛੋਟੇ ਹਿੱਸੇ ਨੂੰ ਦੇਖਦੀ ਹੈ।

ਇਹ ਤਬਦੀਲੀ ਇੱਕ ਸਿੰਗਲ GPU 'ਤੇ ਵਿਸ਼ਾਲ ਕੰਟੈਕਸਟ ਵਿੰਡੋਜ਼ ਨੂੰ ਵਿਹਾਰਕ ਬਣਾਉਂਦੀ ਹੈ।

MiniMax ਅਧਿਐਨ ਦੇ ਮੁੱਖ ਨਤੀਜੇ:

• MSA ਇੱਕ ਮਿਲੀਅਨ-ਟੋਕਨ ਕੰਟੈਕਸਟ 'ਤੇ ਪ੍ਰਤੀ-ਟੋਕਨ ਅਟੈਂਸ਼ਨ ਕੰਪਿਊਟ ਨੂੰ 28.4x ਘਟਾਉਂਦਾ ਹੈ। • KV ਮੈਮੋਰੀ ਦੀ ਵਰਤੋਂ 50% ਤੱਕ ਘਟ ਜਾਂਦੀ ਹੈ। • Perplexity ਡੈਂਸ (dense) ਮਾਡਲਾਂ ਵਾਂਗ ਹੀ ਰਹਿੰਦੀ ਹੈ, ਜਿਸਦਾ ਮਤਲਬ ਹੈ ਕਿ ਸ਼ੁੱਧਤਾ (accuracy) ਵਿੱਚ ਕੋਈ ਕਮੀ ਨਹੀਂ ਆਉਂਦੀ। • H800 GPU 'ਤੇ Prefill 14.2x ਤੇਜ਼ੀ ਨਾਲ ਚੱਲਦਾ ਹੈ। • H800 GPU 'ਤੇ Decoding 7.6x ਤੇਜ਼ੀ ਨਾਲ ਚੱਲਦਾ ਹੈ।

ਇਹ ਤੇਜ਼ੀ ਇੱਕ ਨਵੇਂ Top-k selector ਅਤੇ ਬਿਹਤਰ tensor-core ਦੀ ਵਰਤੋਂ ਤੋਂ ਆਉਂਦੀ ਹੈ।

ਇਸ ਵਿੱਚ ਕੁਝ ਸਮਝੌਤੇ (trade-offs) ਵੀ ਹਨ। ਇਹ ਨਤੀਜੇ ਇੱਕ ਖਾਸ 109B-ਪੈਰਾਮੀਟਰ ਮਾਡਲ ਤੋਂ ਪ੍ਰਾਪਤ ਕੀਤੇ ਗਏ ਹਨ। ਸਾਨੂੰ ਅਜੇ ਇਹ ਨਹੀਂ ਪਤਾ ਕਿ ਕੀ ਇਹ ਫਾਇਦੇ ਸਾਰੇ ਹਾਰਡਵੇਅਰ ਜਾਂ ਮਾਡਲ ਕਿਸਮਾਂ 'ਤੇ ਕੰਮ ਕਰਦੇ ਹਨ। ਇਸ ਤੋਂ ਇਲਾਵਾ, ਇਹ ਵਿਧੀ ਮੰਨਦੀ ਹੈ ਕਿ ਮਹੱਤਵਪੂਰਨ ਟੋਕਨ ਇੱਕ ਖਾਸ ਰੇਂਜ ਦੇ ਅੰਦਰ ਰਹਿੰਦੇ ਹਨ। ਗਲੋਬਲ ਅਟੈਂਸ਼ਨ (global attention) ਦੀ ਲੋੜ ਵਾਲੇ ਕੰਮਾਂ ਨੂੰ ਸਮੱਸਿਆਵਾਂ ਦਾ ਸਾਹਮਣਾ ਕਰਨਾ ਪੈ ਸਕਦਾ ਹੈ।

ਜੇਕਰ ਇਹ ਵਿਧੀਆਂ ਵਿਆਪਕ ਤੌਰ 'ਤੇ ਕੰਮ ਕਰਦੀਆਂ ਹਨ, ਤਾਂ ਤੁਸੀਂ ਸਟੈਂਡਰਡ GPU 'ਤੇ ਆਪਣੇ ਕੰਟੈਕਸਟ ਵਿੰਡੋਜ਼ ਨੂੰ ਦੁੱਗਣਾ ਜਾਂ ਤਿੰਨ ਗੁਣਾ ਕਰ ਸਕਦੇ ਹੋ। ਤੁਸੀਂ ਵਾਧੂ ਹਾਰਡਵੇਅਰ ਤੋਂ ਬਿਨਾਂ ਪੂਰੀਆਂ ਰੈਪੋਜ਼ਟਰੀਆਂ (repositories) 'ਤੇ ਕੋਡ ਵਿਸ਼ਲੇਸ਼ਣ ਕਰ ਸਕਦੇ ਹੋ ਜਾਂ ਲੰਬੀਆਂ ਗੱਲਬਾਤ ਦੀਆਂ ਯਾਦਾਂ (conversational memories) ਨੂੰ ਬਣਾਈ ਰੱਖ ਸਕਦੇ ਹੋ।

Source: https://dev.to/olaughter/sparse-kv-caches-cut-attention-scaling-795

Optional learning community: https://t.me/GyaanSetuAi