ਨੁਕਸਾਨ ਰਹਿਤ, ਪਰ ਮੁਫ਼ਤ ਨਹੀਂ: ਜਦੋਂ Speculative Decoding ਕੰਮ ਕਰਦਾ ਹੈ
Speculative Decoding LLM inference ਵਿੱਚ ਇੱਕ ਗਰਮ ਵਿਸ਼ਾ ਹੈ।
DSpark ਵਰਗੀਆਂ ਕੰਪਨੀਆਂ 60% ਤੋਂ 85% ਤੱਕ ਦੀ ਰਫ਼ਤਾਰ ਵਧਣ ਦਾ ਦਾਅਵਾ ਕਰਦੀਆਂ ਹਨ। Google ਵੀ ਇਸ ਵਿਧੀ 'ਤੇ ਖੋਜ ਪ੍ਰਕਾਸ਼ਿਤ ਕਰਦਾ ਹੈ।
ਸੰਕਲਪ ਸਰਲ ਹੈ: ਇੱਕ ਛੋਟਾ draft model tokens ਲਿਖਦਾ ਹੈ। ਇੱਕ ਵੱਡਾ target model ਇੱਕੋ ਵਾਰ ਵਿੱਚ ਉਹਨਾਂ ਦੀ ਪੁਸ਼ਟੀ ਕਰਦਾ ਹੈ। ਇਹ generation ਨੂੰ ਤੇਜ਼ ਬਣਾਉਂਦਾ ਹੈ।
ਪਰ ਇੱਕ ਇੰਜੀਨੀਅਰ ਵਜੋਂ, ਤੁਹਾਨੂੰ ਦੋ ਸਵਾਲ ਪੁੱਛਣੇ ਚਾਹੀਦੇ ਹਨ:
- ਕੀ ਇਹ hallucinations ਨੂੰ ਵਧਾਉਂਦਾ ਹੈ?
- ਕੀ ਵਾਧੂ model compute ਨੂੰ ਬਰਬਾਦ ਕਰਦਾ ਹੈ?
ਆਓ ਤੱਥਾਂ ਵੱਲ ਦੇਖੀਏ।
ਪਹਿਲਾਂ, ਗੁਣਵੱਤਾ ਨੁਕਸਾਨ ਰਹਿਤ (lossless) ਹੈ। Target model ਹਰ token ਦੀ ਪੁਸ਼ਟੀ ਕਰਦਾ ਹੈ। ਜੇਕਰ draft model token 3 'ਤੇ ਕੋਈ ਗਲਤੀ ਕਰਦਾ ਹੈ, ਤਾਂ target model ਇਸਨੂੰ ਰੱਦ ਕਰ ਦਿੰਦਾ ਹੈ ਅਤੇ ਉਸੇ ਬਿੰਦੂ ਤੋਂ ਦੁਬਾਰਾ ਤਿਆਰ ਕਰਦਾ ਹੈ। ਆਉਟਪੁੱਟ ਗਣਿਤਕ ਤੌਰ 'ਤੇ ਸਿਰਫ਼ target model ਦੇ ਬਰਾਬਰ ਹੁੰਦਾ ਹੈ। ਇਹ hallucinations ਨੂੰ ਵਧਾਉਂਦਾ ਨਹੀਂ ਹੈ।
ਦੂਜਾ, ਲਾਗਤ ਅਸਲ ਹੈ। ਇੱਕ ਛੋਟੇ model ਨੂੰ ਚਲਾਉਣ ਦੀ ਲਾਗਤ ਇੱਕ ਵੱਡੇ model ਨਾਲੋਂ ਬਹੁਤ ਘੱਟ ਹੁੰਦੀ ਹੈ। ਇੱਕ 7B model ਦੀ ਲਾਗਤ 70B model ਦੀ 1/10ਵੀਂ ਹੋ ਸਕਦੀ ਹੈ।
Speculative Decoding ਇੱਕ ਦਾਅ ਹੈ।
- ਜੇਕਰ ਇਹ ਪੂਰੀ ਤਰ੍ਹਾਂ ਸਹੀ (hit) ਹੁੰਦਾ ਹੈ, ਤਾਂ ਤੁਸੀਂ ਬਹੁਤ ਸਾਰਾ compute ਬਚਾਉਂਦੇ ਹੋ।
- ਜੇਕਰ ਇਹ ਪੂਰੀ ਤਰ੍ਹਾਂ ਗਲਤ (miss) ਹੁੰਦਾ ਹੈ, ਤਾਂ ਤੁਹਾਨੂੰ ਨੁਕਸਾਨ ਹੁੰਦਾ ਹੈ। ਤੁਸੀਂ draft model ਦੇ ਨਾਲ-ਨਾਲ ਵਾਧੂ target model ਦੇ ਕਦਮ ਚਲਾਉਂਦੇ ਹੋ। ਇਹ standard inference ਨਾਲੋਂ ਹੌਲੀ ਹੁੰਦਾ ਹੈ।
ਜਿੱਤਣ ਲਈ, ਤੁਹਾਨੂੰ ਇਸ ਨਿਯਮ ਦੀ ਪਾਲਣਾ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ: ਸਵੀਕਾਰ ਕੀਤੇ ਗਏ tokens ਦੀ ਔਸਤ ਸੰਖਿਆ 1 ਤੋਂ ਵੱਧ ਅਤੇ draft model ਦੇ overhead ਤੋਂ ਵੱਧ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ।
ਜੇਕਰ ਤੁਹਾਡਾ draft model ਕਿਸੇ ਖਾਸ ਕੰਮ ਵਿੱਚ ਮਾੜਾ ਹੈ, ਤਾਂ ਤੁਹਾਡੀ acceptance rate ਡਿੱਗ ਜਾਂਦੀ ਹੈ। ਜੇਕਰ ਇਹ ਬਹੁਤ ਘੱਟ ਹੋ ਜਾਂਦੀ ਹੈ, ਤਾਂ Speculative Decoding ਤੁਹਾਡੇ ਸਿਸਟਮ ਨੂੰ ਹੌਲੀ ਕਰ ਦਿੰਦਾ ਹੈ।
ਇਹ ਕਿਵੇਂ ਫੈਸਲਾ ਕਰੀਏ ਕਿ ਤੁਹਾਨੂੰ ਇਸਦੀ ਵਰਤੋਂ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ ਜਾਂ ਨਹੀਂ:
- ਆਪਣੀ acceptance rate ਨੂੰ ਮਾਪੋ। ਆਮ benchmarks 'ਤੇ ਭਰੋਸਾ ਨਾ ਕਰੋ। ਆਪਣੇ ਡੇਟਾ ਅਤੇ ਕੰਮਾਂ ਦੀ ਵਰਤੋਂ ਕਰੋ।
- ਆਪਣੇ ਕੰਮ ਦੀ ਕਿਸਮ ਦੀ ਜਾਂਚ ਕਰੋ। ਇਸਦੀ ਵਰਤੋਂ code completion ਵਰਗੇ ਅਨੁਮਾਨਿਤ ਕੰਮਾਂ ਲਈ ਕਰੋ। Creative writing ਵਰਗੇ ਅਨੁਮਾਨ ਨਾ ਲਗਾਉਣ ਵਾਲੇ ਕੰਮਾਂ ਲਈ ਇਸ ਤੋਂ ਬਚੋ।
- ਆਪਣੀ p99 latency ਦੀ ਨਿਗਰਾਨੀ ਕਰੋ। ਇੱਕ ਪੂਰੀ miss ਕਾਰਨ latency ਵਿੱਚ ਅਚਾਨਕ ਵਾਧਾ ਹੋ ਸਕਦਾ ਹੈ।
ਸਭ ਤੋਂ ਵਧੀਆ optimization ਉਹ ਨਹੀਂ ਹੈ ਜੋ ਹਮੇਸ਼ਾ ਜਿੱਤਦੀ ਹੈ। ਇਹ ਉਹ ਹੈ ਜਿਸ ਬਾਰੇ ਤੁਹਾਨੂੰ ਪਤਾ ਹੋਵੇ ਕਿ ਇਸਨੂੰ ਕਦੋਂ ਬੰਦ ਕਰਨਾ ਹੈ।
ਇਸਦੀ ਵਰਤੋਂ ਉਦੋਂ ਕਰੋ ਜਦੋਂ hit rate ਉੱਚਾ ਹੋਵੇ। ਜਦੋਂ hit rate ਬਹੁਤ ਘੱਟ ਹੋ ਜਾਵੇ ਤਾਂ ਇਸਦੀ ਵਰਤੋਂ ਬੰਦ ਕਰ ਦਿਓ।
ਵਿਕਲਪਿਕ ਸਿੱਖਣ ਕਮਿਊਨਿਟੀ: https://t.me/GyaanSetuAi