મેં Speculative Decoding નું બેન્ચમાર્કિંગ કર્યું — a = 3.5 પૂરતું નહોતું

Speculative Decoding (SD) એક સરળ ગાણિતિક નિયમ પર આધારિત છે: a > 1 + α + β

એક્સેપ્ટન્સ લેન્થ (a) એ 1 પ્લસ કમ્પ્યુટ રેશિયો (α) અને વેરિફિકેશન ઓવરહેડ (β) કરતા વધારે હોવી જોઈએ. જો તે હોય, તો SD જીતે છે. જો ન હોય, તો તે નિષ્ફળ જાય છે.

મેં આ સિદ્ધાંતનું વાસ્તવિક મશીન પર પરીક્ષણ કર્યું. મેં 64GB RAM સાથેના 12th Gen Intel CPU નો ઉપયોગ કર્યો. મેં એક નાના Qwen2.5-0.5B ડ્રાફ્ટ મોડેલને મોટા Qwen2.5-1.5B ટાર્ગેટ મોડેલ સાથે જોડ્યું.

પરિણામો આશ્ચર્યજનક હતા. SD કાચા જનરેશન (raw generation) કરતા 49% થી 62% ધીમું હતું.

અહીં કાર્ય (task) મુજબ એક્સેપ્ટન્સ લેન્થ (a) માં થયેલો ફેરફાર છે:

• JSON (Structured): a = 3.50. ડ્રાફ્ટ મોડેલે ફોર્મેટનું સારી રીતે અનુમાન લગાવ્યું. • Code (Semi-structured): a = 3.00. સારું હતું, પરંતુ નામકરણની પેટર્ન અલગ-અલગ હતી. • Story (Creative): a = 2.11. ડ્રાફ્ટ મોડેલ શબ્દ પસંદગીમાં સંઘર્ષ કરતું હતું.

જ્યારે "a" ઊંચું હતું ત્યારે પણ, CPU પર SD નિષ્ફળ ગયું. શા માટે?

સૌથી મોટી સમસ્યા 'ઝીરો-એક્સેપ્ટ રેટ' (zero-accept rate) હતી. 15% થી 30% રાઉન્ડમાં શૂન્ય ટોકન્સ સ્વીકારવામાં આવ્યા હતા.

આ રાઉન્ડ્સમાં, ડ્રાફ્ટ મોડેલ કામ કરે છે, ટાર્ગેટ મોડેલ વેરિફાય કરે છે, અને તમને કંઈ નવું મળતું નથી. તમે એક ટોકન મેળવવા માટે બે રન માટે ચૂકવણી કરી. આના કારણે સમાન આઉટપુટ માટે SD નો ખર્ચ 2 ગણો વધી જાય છે.

આ બાબત સ્પષ્ટ કરે છે કે SD એ GPU ઓપ્ટિમાઇઝેશન શા માટે છે.

GPU પર, ડ્રાફ્ટ મોડેલ લગભગ મફત છે. કમ્પ્યુટ રેશિયો (α) ખૂબ જ ઓછો છે. CPU પર, ડ્રાફ્ટ મોડેલ મેમરી બેન્ડવિડ્થ (memory bandwidth) માટે સ્પર્ધા કરે છે. તે મફત નથી. CPU પર આ અસમાનતા (inequality) નિષ્ફળ જાય છે.

જો તમે CPU પર SD નો ઉપયોગ કરવા માંગતા હોવ, તો તે ન કરો. આ આંકડાઓ કામ કરતા નથી.

તમારા ડિપ્લોયમેન્ટ્સ માટે મુખ્ય બાબતો:

  • તમારા પોતાના "a" મૂલ્યનું માપન કરો. વેન્ડરના દાવાઓ પર વિશ્વાસ ન કરો.
  • તમારા ડેટાને કાર્યના પ્રકાર મુજબ વિભાજિત કરો. કોડ અને ચેટના એક્સેપ્ટન્સ રેટ અલગ-અલગ હોય છે.
  • ઝીરો-એક્સેપ્ટ રેટ પર ધ્યાન આપો. વધુ પડતો તફાવત (variance) તમારી p99 લેટન્સી બગાડી શકે છે.
  • GPU પર SD નો ઉપયોગ કરો જ્યાં ડ્રાફ્ટ મોડેલનો ખર્ચ ન્યૂનતમ હોય.

શ્રેષ્ઠ ઓપ્ટિમાઇઝેશન એ જાણવામાં છે કે તેને ક્યારે બંધ કરવું.

સ્ત્રોત: https://dev.to/zxpmail/i-benchmarked-speculative-decoding-a-35-wasnt-enough-1geb

વૈકલ્પિક લર્નિંગ કોમ્યુનિટી: https://t.me/GyaanSetuAi