ટૂંકો જવાબ: AI મોડેલ્સને ઑપ્ટિમાઇઝ કરવા માટે, એક પ્રાથમિક અવરોધ (લેટન્સી, ખર્ચ, મેમરી, ગુણવત્તા, સ્થિરતા અથવા થ્રુપુટ) પસંદ કરો, પછી કંઈપણ બદલતા પહેલા વિશ્વસનીય બેઝલાઇન મેળવો. પહેલા પાઇપલાઇન અવરોધો દૂર કરો, પછી મિશ્ર ચોકસાઇ અને બેચિંગ જેવા ઓછા જોખમી લાભો લાગુ કરો; જો ગુણવત્તા જળવાઈ રહે, તો કમ્પાઇલર/રનટાઇમ ટૂલિંગ પર આગળ વધો અને પછી જ જરૂર પડે ત્યારે ક્વોન્ટાઇઝેશન અથવા ડિસ્ટિલેશન દ્વારા મોડેલનું કદ ઘટાડો.
મુખ્ય બાબતો:
અવરોધ : એક કે બે લક્ષ્ય મેટ્રિક્સ પસંદ કરો; ઑપ્ટિમાઇઝેશન એ ટ્રેડ-ઓફનો લેન્ડસ્કેપ છે, મફત જીતનો નહીં.
માપન : p50/p95/p99, થ્રુપુટ, ઉપયોગિતા અને મેમરી શિખરો સાથે વાસ્તવિક વર્કલોડનું પ્રોફાઇલ.
પાઇપલાઇન : મોડેલને સ્પર્શ કરતા પહેલા ટોકનાઇઝેશન, ડેટાલોડર્સ, પ્રીપ્રોસેસિંગ અને બેચિંગને ઠીક કરો.
સર્વિંગ : કેશીંગ, ઇરાદાપૂર્વક બેચિંગ, કોનકરન્સી ટ્યુનિંગનો ઉપયોગ કરો અને ટેલ લેટન્સી પર નજીકથી નજર રાખો.
ગાર્ડરેલ્સ : દરેક કામગીરીમાં ફેરફાર પછી ગોલ્ડન પ્રોમ્પ્ટ્સ, ટાસ્ક મેટ્રિક્સ અને સ્પોટ ચેક ચલાવો.

🔗 AI મોડેલોનું અસરકારક રીતે મૂલ્યાંકન કેવી રીતે કરવું
મોડેલોનું ન્યાયી અને વિશ્વસનીય રીતે મૂલ્યાંકન કરવા માટેના મુખ્ય માપદંડો અને પગલાં.
🔗 વાસ્તવિક મેટ્રિક્સ સાથે AI પ્રદર્શનને કેવી રીતે માપવું
સરખામણી કરવા માટે બેન્ચમાર્ક, લેટન્સી, ખર્ચ અને ગુણવત્તા સંકેતોનો ઉપયોગ કરો.
🔗 ઉત્પાદન પહેલાં AI મોડેલ્સનું પરીક્ષણ કેવી રીતે કરવું.
વ્યવહારુ પરીક્ષણ વર્કફ્લો: ડેટા સ્પ્લિટ, સ્ટ્રેસ કેસો અને મોનિટરિંગ.
🔗 સામગ્રી બનાવવા માટે AI નો ઉપયોગ કેવી રીતે કરવો.
સ્ટ્રક્ચર્ડ પ્રોમ્પ્ટ અને પુનરાવર્તન સાથે વિચારોને ઝડપથી ડ્રાફ્ટમાં ફેરવો.
૧) વ્યવહારમાં "ઑપ્ટિમાઇઝ" નો અર્થ શું થાય છે (કારણ કે દરેક વ્યક્તિ તેનો ઉપયોગ અલગ રીતે કરે છે) 🧠
જ્યારે લોકો કહે છે કે "એઆઈ મોડેલને ઑપ્ટિમાઇઝ કરો", ત્યારે તેમનો અર્થ આ હોઈ શકે છે:
-
તેને ઝડપી બનાવો (ઓછી વિલંબતા)
-
તેને સસ્તું બનાવો (ઓછા GPU-કલાક, ઓછો ક્લાઉડ ખર્ચ)
-
તેને નાનું બનાવો (મેમરી ફૂટપ્રિન્ટ, એજ ડિપ્લોયમેન્ટ)
-
તેને વધુ સચોટ બનાવો (ગુણવત્તામાં સુધારો, ઓછા ભ્રમ)
-
તેને વધુ સ્થિર બનાવો (ઓછો તફાવત, ઉત્પાદનમાં ઓછી નિષ્ફળતા)
-
સેવા આપવાનું સરળ બનાવો (થ્રુપુટ, બેચિંગ, અનુમાનિત પ્રદર્શન)
અહીં થોડું હેરાન કરનારું સત્ય છે: તમે આ બધાને એકસાથે મહત્તમ કરી શકતા નથી. ઑપ્ટિમાઇઝેશન એ ફુગ્ગાને દબાવવા જેવું છે - એક બાજુ અંદર ધકેલી દો અને બીજી બાજુ બહાર નીકળી જાય છે. હંમેશા નહીં, પરંતુ ઘણી વાર એટલું પૂરતું છે કે તમારે ટ્રેડઓફ માટે યોજના બનાવવી જોઈએ.
તેથી કંઈપણ સ્પર્શ કરતા પહેલા, તમારી પ્રાથમિક મર્યાદા :
-
જો તમે વપરાશકર્તાઓને લાઈવ સેવા આપી રહ્યા છો, તો તમારે p95 લેટન્સી ( AWS ક્લાઉડવોચ પર્સન્ટાઇલ્સ ) અને ટેલ પર્ફોર્મન્સ ( "ટેલ લેટન્સી" શ્રેષ્ઠ પ્રથા ) ની કાળજી લેવી પડશે 📉
-
જો તમે તાલીમ લઈ રહ્યા છો, તો તમારે સમય-થી-ગુણવત્તા અને GPU ઉપયોગની કાળજી લેવી પડશે 🔥
-
જો તમે ઉપકરણો પર ઉપયોગ કરી રહ્યા છો, તો તમારે RAM અને પાવરની 🔋
૨) AI મોડેલ ઑપ્ટિમાઇઝેશનનું કેટલું સારું વર્ઝન દેખાય છે ✅
ઑપ્ટિમાઇઝેશનનું સારું સંસ્કરણ ફક્ત "ક્વોન્ટાઇઝેશન લાગુ કરો અને પ્રાર્થના કરો" નથી. તે એક સિસ્ટમ છે. શ્રેષ્ઠ સેટઅપમાં સામાન્ય રીતે આ હોય છે:
-
એક આધારરેખા જેના પર તમે વિશ્વાસ કરી શકો છો
જો તમે તમારા વર્તમાન પરિણામોનું પુનરુત્પાદન કરી શકતા નથી, તો તમે જાણી શકતા નથી કે તમે કંઈપણ સુધાર્યું છે. સરળ... પણ લોકો તેને છોડી દે છે. પછી તેઓ સર્પિલ થાય છે. -
એ સ્પષ્ટ લક્ષ્ય મેટ્રિક
અસ્પષ્ટ છે. "સમાન ગુણવત્તા સ્કોર પર p95 લેટન્સીને 900ms થી 300ms સુધી ઘટાડવી" એ એક વાસ્તવિક લક્ષ્ય છે. -
ગુણવત્તા માટે ગાર્ડરેલ્સ
દરેક પ્રદર્શન જીત શાંત ગુણવત્તા રીગ્રેશનનું જોખમ લે છે. તમારે પરીક્ષણો, મૂલ્યાંકન, અથવા ઓછામાં ઓછું સેનિટી સ્યુટની જરૂર છે. -
હાર્ડવેર જાગૃતિ
એક GPU પરનું "ઝડપી" મોડેલ બીજા GPU પર ક્રોલ થઈ શકે છે. CPU એ પોતાનો ખાસ પ્રકારનો અરાજકતા છે. -
પુનરાવર્તિત ફેરફારો, મોટા પાયે પુનર્લેખન નહીં.
જ્યારે તમે એકસાથે પાંચ વસ્તુઓ બદલો છો અને પ્રદર્શન સુધરે છે, ત્યારે તમને ખબર નથી હોતી કે શા માટે. જે... અસ્વસ્થતાજનક છે.
ઑપ્ટિમાઇઝેશન ગિટારને ટ્યુન કરવા જેવું લાગવું જોઈએ - નાના ગોઠવણો, ધ્યાનથી સાંભળો, પુનરાવર્તન કરો 🎸. જો તે છરીઓ ચલાવવા જેવું લાગે છે, તો કંઈક ખોટું છે.
૩) સરખામણી કોષ્ટક: AI મોડેલ્સને ઑપ્ટિમાઇઝ કરવા માટેના લોકપ્રિય વિકલ્પો 📊
નીચે સામાન્ય ઑપ્ટિમાઇઝેશન ટૂલ્સ/અભિગમોની એક ઝડપી અને થોડી અસ્પષ્ટ સરખામણી કોષ્ટક છે. ના, તે સંપૂર્ણપણે "વાજબી" નથી - વાસ્તવિક જીવનમાં પણ એવું નથી.
| સાધન / વિકલ્પ | પ્રેક્ષક | કિંમત | તે કેમ કામ કરે છે |
|---|---|---|---|
પાયટોર્ચ ટોર્ચ.કમ્પાઇલ ( પાયટોર્ચ દસ્તાવેજો ) |
પાયટોર્ચ લોકો | મફત | ગ્રાફ કેપ્ચર + કમ્પાઇલર યુક્તિઓ ઓવરહેડ ઘટાડી શકે છે… ક્યારેક તે જાદુઈ હોય છે ✨ |
| ONNX રનટાઇમ ( ONNX રનટાઇમ દસ્તાવેજો ) | જમાવટ ટીમો | મુક્ત-પ્રેમી | મજબૂત અનુમાન ઑપ્ટિમાઇઝેશન, વ્યાપક સપોર્ટ, પ્રમાણિત સેવા માટે સારું |
| ટેન્સરઆરટી ( NVIDIA ટેન્સરઆરટી દસ્તાવેજો ) | NVIDIA જમાવટ | ચૂકવેલ વાઇબ્સ (ઘણીવાર બંડલ કરેલ) | આક્રમક કર્નલ ફ્યુઝન + ચોકસાઇ હેન્ડલિંગ, ક્લિક થાય ત્યારે ખૂબ જ ઝડપી |
| ડીપસ્પીડ ( ઝીરો દસ્તાવેજો ) | તાલીમ ટીમો | મફત | મેમરી + થ્રુપુટ ઑપ્ટિમાઇઝેશન (ઝીરો વગેરે). જેટ એન્જિન જેવું લાગે છે |
| FSDP (પાયટોર્ચ) ( પાયટોર્ચ FSDP દસ્તાવેજો ) | તાલીમ ટીમો | મફત | શાર્ડ્સ પેરામીટર્સ/ગ્રેડિયન્ટ્સ, મોટા મોડેલ્સને ઓછા ડરામણા બનાવે છે |
| બિટ્સએન્ડબાઇટ્સ ક્વોન્ટાઇઝેશન ( બિટ્સએન્ડબાઇટ્સ ) | એલએલએમ ટિંકરર્સ | મફત | ઓછા બીટ વજન, મોટી મેમરી બચત - ગુણવત્તા પર આધાર રાખે છે, પણ વાહ 😬 |
| નિસ્યંદન ( હિન્ટન એટ અલ., 2015 ) | ઉત્પાદન ટીમો | "સમય-ખર્ચ" | નાના વિદ્યાર્થી મોડેલને વારસામાં વર્તન મળે છે, સામાન્ય રીતે શ્રેષ્ઠ ROI લાંબા ગાળા માટે |
| કાપણી ( પાયટોર્ચ કાપણી ટ્યુટોરીયલ ) | સંશોધન + ઉત્પાદન | મફત | ડેડ વેઇટ દૂર કરે છે. ફરીથી તાલીમ સાથે જોડવામાં આવે ત્યારે વધુ સારું કાર્ય કરે છે |
| ફ્લેશ એટેન્શન / ફ્યુઝ્ડ કર્નલો ( ફ્લેશએટેન્શન પેપર ) | પ્રદર્શનના શોખીનો | મફત | ઝડપી ધ્યાન, સારી યાદશક્તિ. ટ્રાન્સફોર્મર્સ માટે વાસ્તવિક જીત |
| ટ્રાઇટોન ઇન્ફરન્સ સર્વર ( ડાયનેમિક બેચિંગ ) | ઑપ્સ/ઇન્ફ્રા | મફત | ઉત્પાદન સેવા, બેચિંગ, મલ્ટી-મોડેલ પાઇપલાઇન્સ - એન્ટરપ્રાઇઝ જેવું લાગે છે |
ફોર્મેટિંગની વિચિત્ર કબૂલાત: "કિંમત" અવ્યવસ્થિત છે કારણ કે ઓપન-સોર્સ હજુ પણ તમને ડીબગીંગનો એક સપ્તાહનો ખર્ચ કરી શકે છે, જે... એક કિંમત છે. 😵💫
૪) માપનથી શરૂઆત કરો: પ્રોફાઇલ તમારા મતે 🔍
જો તમે આ આખી માર્ગદર્શિકામાંથી ફક્ત એક જ વસ્તુ કરો છો, તો આ કરો: યોગ્ય રીતે માપ લો.
મારા પોતાના પરીક્ષણમાં, સૌથી મોટી "ઓપ્ટિમાઇઝેશન સફળતાઓ" શરમજનક રીતે સરળ કંઈક શોધવાથી આવી જેમ કે:
-
ડેટા લોડર GPU ને ખતમ કરી રહ્યું છે
-
CPU પ્રીપ્રોસેસિંગ બોટલનેક
-
નાના બેચ કદ કર્નલ લોન્ચ ઓવરહેડનું કારણ બને છે
-
ધીમું ટોકનાઇઝેશન (ટોકનાઇઝર્સ શાંત ખલનાયક હોઈ શકે છે)
-
મેમરી ફ્રેગમેન્ટેશન ( PyTorch CUDA મેમરી એલોકેટર નોંધો )
-
ગણતરી પર પ્રભુત્વ ધરાવતું એક સ્તર
શું માપવું (લઘુત્તમ સેટ)
-
લેટન્સી (p50, p95, p99) ( લેટન્સી પર્સન્ટાઇલ્સ પર SRE )
-
થ્રુપુટ (ટોકન્સ/સેકન્ડ, વિનંતીઓ/સેકન્ડ)
-
GPU ઉપયોગ (કમ્પ્યુટ + મેમરી)
-
VRAM / RAM ટોચ પર
-
પ્રતિ 1k ટોકન (અથવા અનુમાન દીઠ)
વ્યવહારુ પ્રોફાઇલિંગ માનસિકતા
-
તમને ગમતું હોય તેવું દૃશ્ય બનાવો (રમકડાંનો સંકેત નહીં).
-
એક નાના "પરફેક્ટ ડાયરી" માં બધું રેકોર્ડ કરો.
હા, તે કંટાળાજનક છે... પણ તે તમને પછીથી પોતાને ગેસલાઇટ કરવાથી બચાવે છે.
(જો તમે કોઈ ચોક્કસ સાધન ઇચ્છતા હોવ તો: PyTorch પ્રોફાઇલર ( torch.profiler docs ) અને Nsight સિસ્ટમ્સ ( NVIDIA Nsight સિસ્ટમ્સ ) સામાન્ય રીતે શંકાસ્પદ છે.)
૫) ડેટા + તાલીમ ઑપ્ટિમાઇઝેશન: શાંત મહાશક્તિ 📦🚀
લોકો મોડેલ આર્કિટેક્ચર પ્રત્યે ઉત્સાહિત થઈ જાય છે અને પાઇપલાઇન ભૂલી જાય છે. દરમિયાન પાઇપલાઇન શાંતિથી અડધા GPU ને બાળી નાખે છે.
સરળ જીત જે ઝડપથી દેખાય છે
-
મિશ્ર ચોકસાઇનો ઉપયોગ કરો (જ્યાં સ્થિર હોય ત્યાં FP16/BF16) ( PyTorch AMP / torch.amp )
સામાન્ય રીતે ઝડપી, ઘણીવાર સારું - પરંતુ આંકડાકીય ક્વિર્ક્સ માટે જુઓ. -
જ્યારે બેચનું કદ મર્યાદિત હોય ત્યારે ગ્રેડિયન્ટ સંચય 🤗 એક્સિલરેટ માર્ગદર્શિકા )
મેમરીને વિસ્ફોટ કર્યા વિના ઑપ્ટિમાઇઝેશનને સ્થિર રાખે છે. -
ગ્રેડિયન્ટ ચેકપોઇન્ટિંગ ( torch.utils.checkpoint )
મેમરી માટે ગણતરીનો વેપાર કરે છે - મોટા સંદર્ભોને શક્ય બનાવે છે. -
કાર્યક્ષમ ટોકનાઇઝેશન ( 🤗 ટોકનાઇઝર્સ )
ટોકનાઇઝેશન મોટા પાયે અવરોધ બની શકે છે. તે આકર્ષક નથી; તે મહત્વનું છે. -
ડેટાલોડર ટ્યુનિંગ
વધુ વર્કર્સ, પિન કરેલી મેમરી, પ્રીફેચિંગ - અસ્પષ્ટ પણ અસરકારક 😴➡️💪 ( પાયટોર્ચ પર્ફોર્મન્સ ટ્યુનિંગ માર્ગદર્શિકા )
પરિમાણ-કાર્યક્ષમ ફાઇન-ટ્યુનિંગ
જો તમે મોટા મોડેલોને ફાઇન-ટ્યુન કરી રહ્યા છો, તો PEFT પદ્ધતિઓ (જેમ કે LoRA-શૈલીના એડેપ્ટરો) આશ્ચર્યજનક રીતે મજબૂત રહીને તાલીમ ખર્ચમાં મોટા પ્રમાણમાં ઘટાડો કરી શકે છે ( 🤗 ટ્રાન્સફોર્મર્સ PEFT માર્ગદર્શિકા , LoRA પેપર ). આ "આપણે આ પહેલા કેમ ન કર્યું?" ક્ષણોમાંથી એક છે.
૬) આર્કિટેક્ચર-લેવલ ઑપ્ટિમાઇઝેશન: મોડેલને જમણું-કદ આપો 🧩
ક્યારેક ઑપ્ટિમાઇઝ કરવાનો શ્રેષ્ઠ રસ્તો એ છે કે... એવા મોડેલનો ઉપયોગ બંધ કરવો જે કામ માટે ખૂબ મોટું હોય. મને ખબર છે, અપવિત્રતા 😄.
કેટલીક મૂળભૂત બાબતો પર કૉલ કરો:
-
નક્કી કરો કે તમને સંપૂર્ણ સામાન્ય-બુદ્ધિશાળી અનુભવની જરૂર છે, કે નિષ્ણાતની.
-
સંદર્ભ વિન્ડોને જેટલી મોટી હોવી જોઈએ તેટલી મોટી રાખો, મોટી નહીં.
-
હાથમાં રહેલા કામ માટે તાલીમ પામેલા મોડેલનો ઉપયોગ કરો (વર્ગીકરણ કાર્ય માટે વર્ગીકરણ મોડેલો, વગેરે).
વ્યવહારુ જમણા કદ બદલવાની વ્યૂહરચનાઓ
-
મોટાભાગની વિનંતીઓ માટે
નાના બેકબોન પર સ્વેપ કરો. પછી "હાર્ડ ક્વેરીઝ" ને મોટા મોડેલ પર રૂટ કરો. -
બે-તબક્કાના સેટઅપનો ઉપયોગ કરો
ઝડપી મોડેલ ડ્રાફ્ટ્સ, મજબૂત મોડેલ ચકાસે છે અથવા સંપાદિત કરે છે.
તે એક મિત્ર સાથે લખવા જેવું છે જે પસંદગીયુક્ત છે - હેરાન કરે છે, પરંતુ અસરકારક છે. -
આઉટપુટ લંબાઈ ઘટાડો
આઉટપુટ ટોકન્સ પૈસા અને સમય ખર્ચ કરે છે. જો તમારું મોડેલ રેમ્બલ કરે છે, તો તમારે રેમ્બલ માટે ચૂકવણી કરવી પડશે.
મેં ટીમોને ટૂંકા આઉટપુટ લાગુ કરીને ખર્ચમાં નાટ્યાત્મક ઘટાડો કરતા જોયા છે. તે તુચ્છ લાગે છે. તે કામ કરે છે.
૭) કમ્પાઇલર + ગ્રાફ ઑપ્ટિમાઇઝેશન: ઝડપ ક્યાંથી આવે છે 🏎️
આ "કમ્પ્યુટરને વધુ સ્માર્ટ કમ્પ્યુટર બનાવવા" સ્તર છે.
સામાન્ય તકનીકો:
-
ઓપરેટર ફ્યુઝન (કર્નલોને જોડો) ( NVIDIA TensorRT “લેયર ફ્યુઝન” )
-
સતત ફોલ્ડિંગ (પ્રિકમ્પ્યુટ ફિક્સ્ડ વેલ્યુઝ) ( ONNX રનટાઇમ ગ્રાફ ઑપ્ટિમાઇઝેશન )
-
કર્નલ પસંદગી હાર્ડવેર સાથે ટ્યુન કરેલ છે
-
પાયથોન ઓવરહેડ ઘટાડવા માટે ગ્રાફ કેપ્ચર
torch.compileઓવરવ્યૂ )
સરળ શબ્દોમાં કહીએ તો: તમારું મોડેલ ગાણિતિક રીતે ઝડપી હોઈ શકે છે, પરંતુ કાર્યાત્મક રીતે ધીમું હોઈ શકે છે. કમ્પાઇલર્સ તેમાંના કેટલાકને સુધારે છે.
વ્યવહારુ નોંધો (ઉર્ફે ડાઘ)
-
આ ઑપ્ટિમાઇઝેશન મોડેલ આકાર ફેરફારો પ્રત્યે સંવેદનશીલ હોઈ શકે છે.
-
કેટલાક મોડેલો ખૂબ ઝડપ વધારે છે, કેટલાક ભાગ્યે જ હલે છે.
-
ક્યારેક તમને સ્પીડઅપ અને મૂંઝવણભર્યો બગ મળે છે - જેમ કે ગ્રેમલિન અંદર ઘુસી ગયું 🧌
છતાં, જ્યારે તે કામ કરે છે, ત્યારે તે સૌથી સ્વચ્છ જીતમાંની એક છે.
૮) ક્વોન્ટાઇઝેશન, કાપણી, નિસ્યંદન: રડ્યા વિના નાનું (ખૂબ વધારે) 🪓📉
આ તે વિભાગ છે જે લોકો ઇચ્છે છે... કારણ કે તે મફત પ્રદર્શન જેવું લાગે છે. તે હોઈ શકે છે, પરંતુ તમારે તેને સર્જરીની જેમ સારવાર કરવી પડશે.
ક્વોન્ટાઇઝેશન (ઓછી ચોકસાઇ વજન/સક્રિયકરણ)
-
અનુમાન ગતિ અને યાદશક્તિ માટે ઉત્તમ
-
જોખમ: ગુણવત્તામાં ઘટાડો, ખાસ કરીને એજ કેસોમાં
-
શ્રેષ્ઠ પ્રથા: વાસ્તવિક પરીક્ષણ સેટ પર મૂલ્યાંકન કરો, વાઇબ્સ પર નહીં
સામાન્ય સ્વાદો જેના વિશે તમે સાંભળશો:
-
INT8 (ઘણીવાર ઘન) ( ટેન્સરઆરટી ક્વોન્ટાઇઝ્ડ પ્રકારો )
-
INT4 / લો-બીટ (મોટી બચત, ગુણવત્તા જોખમ વધે છે) ( બિટ્સએન્ડબાઇટ્સ k-બીટ ક્વોન્ટાઇઝેશન )
-
મિશ્ર જથ્થો (દરેક વસ્તુને સમાન ચોકસાઈની જરૂર હોતી નથી)
કાપણી (પરિમાણો દૂર કરો)
-
"બિનમહત્વપૂર્ણ" વજન અથવા માળખાં દૂર કરે છે ( પાયટોર્ચ પ્રુનિંગ ટ્યુટોરીયલ )
-
ગુણવત્તા પુનઃપ્રાપ્ત કરવા માટે સામાન્ય રીતે ફરીથી તાલીમની જરૂર પડે છે
-
લોકો વિચારે છે તેના કરતાં વધુ સારી રીતે કામ કરે છે... જ્યારે કાળજીપૂર્વક કરવામાં આવે છે
નિસ્યંદન (વિદ્યાર્થી શિક્ષક પાસેથી શીખે છે)
આ મારો વ્યક્તિગત પ્રિય લાંબા ગાળાનો લિવર છે. નિસ્યંદન એક નાનું મોડેલ ઉત્પન્ન કરી શકે છે જે સમાન રીતે વર્તે છે, અને તે ઘણીવાર આત્યંતિક ક્વોન્ટાઇઝેશન ( ન્યુરલ નેટવર્કમાં જ્ઞાનનું નિસ્યંદન ) કરતાં વધુ સ્થિર હોય છે.
એક અપૂર્ણ રૂપક: નિસ્યંદન એ ફિલ્ટર દ્વારા જટિલ સૂપ રેડવા અને ... એક નાનો સૂપ મેળવવા જેવું છે. સૂપ આ રીતે કામ કરતું નથી, પણ તમને ખ્યાલ આવે છે 🍲.
9) સેવા અને અનુમાન: વાસ્તવિક યુદ્ધ ક્ષેત્ર 🧯
તમે મોડેલને "ઓપ્ટિમાઇઝ" કરી શકો છો અને છતાં પણ તેને ખરાબ રીતે સેવા આપી શકો છો. સેવા એ છે જ્યાં વિલંબ અને ખર્ચ વાસ્તવિક બને છે.
સેવા આપવાથી જીત થાય છે, એ મહત્વનું છે
-
બેચિંગ
થ્રુપુટ સુધારે છે. પરંતુ જો તમે તેને વધુ પડતું કરો છો તો લેટન્સી વધે છે. તેને સંતુલિત કરો. ( ટ્રાઇટોન ડાયનેમિક બેચિંગ ) -
કેશીંગ
વારંવાર સંદર્ભો માટે પ્રોમ્પ્ટ કેશીંગ અને KV-કેશ પુનઃઉપયોગ મોટા પાયે થઈ શકે છે. ( KV કેશ સમજૂતી ) -
સ્ટ્રીમિંગ આઉટપુટ
વપરાશકર્તાઓને લાગે છે કે કુલ સમય સમાન હોવા છતાં પણ તે ઝડપી છે. ધારણા મહત્વપૂર્ણ છે 🙂. -
ટોકન-બાય-ટોકન ઓવરહેડ ઘટાડો
કેટલાક સ્ટેક્સ પ્રતિ ટોકન વધારાનું કામ કરે છે. તે ઓવરહેડ ઘટાડો અને તમે મોટી જીત મેળવો છો.
ટેઇલ લેટન્સી પર ધ્યાન આપો
તમારી સરેરાશ સારી દેખાઈ શકે છે જ્યારે તમારો p99 એક આપત્તિ છે. કમનસીબે, વપરાશકર્તાઓ પૂંછડીમાં રહે છે. ( "પૂંછડી લેટન્સી" અને સરેરાશ શા માટે જૂઠું બોલે છે )
૧૦) હાર્ડવેર-જાગૃત ઑપ્ટિમાઇઝેશન: મોડેલને મશીન સાથે મેચ કરો 🧰🖥️
હાર્ડવેર જાગૃતિ વિના ઑપ્ટિમાઇઝ કરવું એ ટાયર તપાસ્યા વિના રેસ કારને ટ્યુન કરવા જેવું છે. ખાતરી કરો કે, તમે તે કરી શકો છો, પરંતુ તે થોડું મૂર્ખ છે.
GPU વિચારણાઓ
-
મેમરી બેન્ડવિડ્થ ઘણીવાર મર્યાદિત પરિબળ હોય છે, કાચો ગણતરી નહીં
-
મોટા બેચ કદ મદદ કરી શકે છે, જ્યાં સુધી તેઓ મદદ ન કરે
-
ટ્રાન્સફોર્મર્સ માટે કર્નલ ફ્યુઝન અને ધ્યાન ઑપ્ટિમાઇઝેશન ખૂબ જ મહત્વપૂર્ણ છે ( ફ્લેશએટેન્શન: IO-અવેર ચોક્કસ ધ્યાન )
CPU વિચારણાઓ
-
થ્રેડીંગ, વેક્ટરાઇઝેશન અને મેમરી લોકેલિટી ખૂબ મહત્વ ધરાવે છે
-
ટોકનાઇઝેશન ઓવરહેડ પ્રભુત્વ મેળવી શકે છે ( 🤗 "ઝડપી" ટોકનાઇઝર્સ )
-
તમને GPU કરતાં અલગ ક્વોન્ટાઇઝેશન વ્યૂહરચનાઓ જોઈએ છે
એજ / મોબાઇલ વિચારણાઓ
-
મેમરી ફૂટપ્રિન્ટ પ્રાથમિકતા નંબર વન બની જાય છે
-
લેટન્સી વેરિઅન્સ મહત્વપૂર્ણ છે કારણ કે ઉપકરણો... મૂડીવાળા હોય છે
-
નાના, વિશિષ્ટ મોડેલો ઘણીવાર મોટા સામાન્ય મોડેલોને હરાવી દે છે
૧૧) ગુણવત્તાયુક્ત ગાર્ડરેલ્સ: તમારી જાતને કોઈ જંતુમાં "ઑપ્ટિમાઇઝ" ન કરો 🧪
દરેક સ્પીડ જીત ગુણવત્તા ચકાસણી સાથે આવવી જોઈએ. નહીં તો તમે ઉજવણી કરશો, મોકલશો, અને પછી "સહાયક અચાનક ચાંચિયાની જેમ કેમ વાત કરે છે?" જેવો સંદેશ મળશે 🏴☠️
વ્યવહારિક રેલિંગ:
-
ગોલ્ડન પ્રોમ્પ્ટ્સ (તમે હંમેશા પરીક્ષણ કરો છો તે પ્રોમ્પ્ટ્સનો નિશ્ચિત સમૂહ)
-
કાર્ય મેટ્રિક્સ (ચોકસાઈ, F1, BLEU, જે પણ યોગ્ય હોય તે)
-
માનવ સ્પોટ ચેક (હા, ગંભીરતાથી)
-
રીગ્રેશન થ્રેશોલ્ડ ("X% થી વધુ ડ્રોપ માન્ય નથી")
નિષ્ફળતા મોડ્સ પણ ટ્રૅક કરો:
-
ફોર્મેટિંગ ડ્રિફ્ટ
-
ઇનકાર વર્તનમાં ફેરફાર
-
ભ્રામકતા આવર્તન
-
પ્રતિભાવ લંબાઈ ફુગાવો
ઑપ્ટિમાઇઝેશન આશ્ચર્યજનક રીતે વર્તન બદલી શકે છે. વિચિત્ર રીતે. ચીડવનારી રીતે. અનુમાનિત રીતે, પાછળ જોતાં.
૧૨) ચેકલિસ્ટ: AI મોડેલ્સને સ્ટેપ-બાય-સ્ટેપ કેવી રીતે ઑપ્ટિમાઇઝ કરવા ✅🤖
"હાઉ ટુ ઑપ્ટિમાઇઝ એઆઈ મોડેલ્સ" માટે કામગીરીનો સ્પષ્ટ ક્રમ જોઈતો હોય , તો અહીં વર્કફ્લો છે જે લોકોને સ્વસ્થ રાખવાનું વલણ ધરાવે છે:
-
સફળતા વ્યાખ્યાયિત કરો
1-2 પ્રાથમિક મેટ્રિક્સ (લેટન્સી, ખર્ચ, થ્રુપુટ, ગુણવત્તા) પસંદ કરો. -
બેઝલાઇન પ્રોફાઇલ વાસ્તવિક વર્કલોડ, રેકોર્ડ p50/p95, મેમરી, કિંમત માપો
. ( PyTorch પ્રોફાઇલર ) -
પાઇપલાઇન અવરોધોને ઠીક કરો
ડેટા લોડિંગ, ટોકનાઇઝેશન, પ્રીપ્રોસેસિંગ, બેચિંગ. -
ઓછા જોખમવાળા કમ્પ્યુટ વિન્સ લાગુ કરો
મિશ્ર ચોકસાઇ, કર્નલ ઑપ્ટિમાઇઝેશન, વધુ સારી બેચિંગ. -
કમ્પાઇલર/રનટાઇમ ઑપ્ટિમાઇઝેશન
ગ્રાફ કેપ્ચર, ઇન્ફરન્સ રનટાઇમ, ઓપરેટર ફ્યુઝન અજમાવો. (ટોર્ચ.કમ્પાઇલટ્યુટોરીયલ , ONNX રનટાઇમ દસ્તાવેજો ) -
મોડેલની કિંમત ઘટાડો
કાળજીપૂર્વક માત્રા બનાવો, જો શક્ય હોય તો નિસ્યંદન કરો, જો યોગ્ય હોય તો કાપણી કરો. -
ટ્યુન સર્વિંગ
કેશીંગ, કોનકરન્સી, લોડ ટેસ્ટિંગ, ટેલ લેટન્સી ફિક્સેસ. -
ગુણવત્તા માન્ય કરો
રીગ્રેશન પરીક્ષણો ચલાવો અને આઉટપુટની સાથે-સાથે સરખામણી કરો. -
પુનરાવર્તન
નાના ફેરફારો, સ્પષ્ટ નોંધો, પુનરાવર્તન. અસ્પષ્ટ - અસરકારક.
અને હા, આ હજુ પણ " હાઉ ટુ ઓપ્ટિમાઇઝ એઆઈ મોડેલ્સ" , ભલે તે "હાઉ ટુ સ્ટોપ સ્ટેપ ઓન રેક્સ" જેવું લાગે. વાત પણ એ જ છે.
૧૩) સામાન્ય ભૂલો (જેથી તમે તેને આપણા બાકીના લોકોની જેમ પુનરાવર્તન ન કરો) 🙃
-
માપતા પહેલા ઑપ્ટિમાઇઝ કરવું
તમે સમય બગાડશો. અને પછી તમે ખોટી વસ્તુને આત્મવિશ્વાસથી ઑપ્ટિમાઇઝ કરશો... -
એક જ બેન્ચમાર્કનો પીછો કરતા
બેન્ચમાર્ક ભૂલથી જ મળે છે. તમારું કાર્યભાર જ સત્ય છે. -
મેમરી સમસ્યાઓને અવગણવાથી
મેમરી ધીમી પડી જાય છે, ક્રેશ થાય છે અને જીટર થાય છે. ( PyTorch માં CUDA મેમરી વપરાશને સમજવું ) -
ખૂબ વહેલા
વધારે પડતું ક્વોન્ટાઇઝ કરવું લો-બીટ ક્વોન્ટ અદ્ભુત હોઈ શકે છે, પરંતુ પહેલા સલામત પગલાંથી શરૂઆત કરો. -
રોલબેક પ્લાન નથી
જો તમે ઝડપથી પાછા ન ફરી શકો, તો દરેક જમાવટ તણાવપૂર્ણ બની જાય છે. તણાવ ભૂલો બનાવે છે.
સમાપન નોંધ: ઑપ્ટિમાઇઝ કરવાની માનવ રીત 😌⚡
AI મોડેલ્સને કેવી રીતે ઑપ્ટિમાઇઝ કરવું તે એક જ હેક નથી. તે એક સ્તરવાળી પ્રક્રિયા છે: માપો, પાઇપલાઇન ઠીક કરો, કમ્પાઇલર્સ અને રનટાઇમનો ઉપયોગ કરો, સર્વિંગને ટ્યુન કરો, પછી જો તમને જરૂર હોય તો ક્વોન્ટાઇઝેશન અથવા ડિસ્ટિલેશન સાથે મોડેલને સંકોચો. તે પગલું-દર-પગલાં કરો, ગુણવત્તાયુક્ત રેલ રાખો, અને મેટ્રિક તરીકે "તે ઝડપી લાગે છે" પર વિશ્વાસ ન કરો (તમારી લાગણીઓ સુંદર છે, તમારી લાગણીઓ પ્રોફાઇલર નથી).
જો તમને ટૂંકી ટેકઅવે જોઈતી હોય તો:
-
પહેલા માપ લો 🔍
-
આગળ પાઇપલાઇન ઑપ્ટિમાઇઝ કરો 🧵
-
પછી મોડેલને ઑપ્ટિમાઇઝ કરો 🧠
-
પછી સર્વિંગને ઑપ્ટિમાઇઝ કરો 🏗️
-
ગુણવત્તાની તપાસ હંમેશા કરતા રહો ✅
અને જો તે મદદ કરે છે, તો તમારી જાતને યાદ કરાવો: ધ્યેય "સંપૂર્ણ મોડેલ" નથી. ધ્યેય એક એવું મોડેલ છે જે ઝડપી, સસ્તું અને એટલું વિશ્વસનીય હોય કે તમે રાત્રે સૂઈ શકો... મોટાભાગની રાત્રે 😴.
વારંવાર પૂછાતા પ્રશ્નો
વ્યવહારમાં AI મોડેલને ઑપ્ટિમાઇઝ કરવાનો અર્થ શું છે?
"ઑપ્ટિમાઇઝ" નો અર્થ સામાન્ય રીતે એક પ્રાથમિક અવરોધને સુધારવાનો થાય છે: લેટન્સી, ખર્ચ, મેમરી ફૂટપ્રિન્ટ, ચોકસાઈ, સ્થિરતા, અથવા સર્વિંગ થ્રુપુટ. મુશ્કેલ ભાગ ટ્રેડઓફ્સ છે - એક ક્ષેત્રને આગળ વધારવાથી બીજા ક્ષેત્રને નુકસાન થઈ શકે છે. એક વ્યવહારુ અભિગમ એ છે કે સ્પષ્ટ લક્ષ્ય (જેમ કે p95 લેટન્સી અથવા સમય-થી-ગુણવત્તા) પસંદ કરવું અને તેના તરફ ઑપ્ટિમાઇઝ કરવું. લક્ષ્ય વિના, "સુધારવું" અને ગુમાવવું સરળ છે.
ગુણવત્તાને શાંતિથી નુકસાન પહોંચાડ્યા વિના AI મોડેલ્સને કેવી રીતે ઑપ્ટિમાઇઝ કરવું
દરેક ગતિ અથવા ખર્ચમાં ફેરફારને સંભવિત શાંત રીગ્રેશન તરીકે ગણો. ગોલ્ડન પ્રોમ્પ્ટ, ટાસ્ક મેટ્રિક્સ અને ઝડપી માનવ સ્પોટ ચેક જેવા ગાર્ડરેલ્સનો ઉપયોગ કરો. સ્વીકાર્ય ગુણવત્તા ડ્રિફ્ટ માટે સ્પષ્ટ થ્રેશોલ્ડ સેટ કરો અને આઉટપુટની સાથે-સાથે સરખામણી કરો. આ "તે ઝડપી છે" ને "ઉત્પાદનમાં અચાનક વિચિત્ર કેમ બન્યું?" માં ફેરવાતા અટકાવે છે. તમે શિપિંગ પછી.
ઑપ્ટિમાઇઝ કરવાનું શરૂ કરતા પહેલા શું માપવું
લેટન્સી પર્સન્ટાઇલ્સ (p50, p95, p99), થ્રુપુટ (ટોકન્સ/સેકન્ડ અથવા વિનંતીઓ/સેકન્ડ), GPU ઉપયોગ અને પીક VRAM/RAM થી શરૂઆત કરો. જો ખર્ચ અવરોધ હોય તો અનુમાન દીઠ ખર્ચ અથવા 1k ટોકન્સ દીઠ ખર્ચને ટ્રૅક કરો. રમકડાના પ્રોમ્પ્ટ નહીં, પરંતુ તમે જે વાસ્તવિક દૃશ્ય પ્રદાન કરો છો તેનું રૂપરેખા બનાવો. એક નાનું "પરફેક્ટ જર્નલ" રાખવાથી તમને અનુમાન લગાવવા અને ભૂલોનું પુનરાવર્તન ટાળવામાં મદદ મળે છે.
તાલીમ પ્રદર્શન માટે ઝડપી, ઓછા જોખમવાળી જીત
મિશ્ર ચોકસાઇ (FP16/BF16) ઘણીવાર સૌથી ઝડપી પ્રથમ લીવર હોય છે, પરંતુ આંકડાકીય વિચિત્રતાઓ પર ધ્યાન આપો. જો બેચનું કદ મર્યાદિત હોય, તો ગ્રેડિયન્ટ સંચય મેમરીને ઉડાવી દીધા વિના ઑપ્ટિમાઇઝેશનને સ્થિર કરી શકે છે. ગ્રેડિયન્ટ ચેકપોઇન્ટિંગ ઓછી મેમરી માટે વધારાના કમ્પ્યુટનો વેપાર કરે છે, જે મોટા સંદર્ભોને સક્ષમ કરે છે. ટોકનાઇઝેશન અને ડેટાલોડર ટ્યુનિંગને અવગણશો નહીં - તેઓ શાંતિથી GPU ને ભૂખમરો કરી શકે છે.
torch.compile, ONNX Runtime, અથવા TensorRT નો ઉપયોગ ક્યારે કરવો
આ સાધનો ઓપરેશનલ ઓવરહેડને લક્ષ્ય બનાવે છે: ગ્રાફ કેપ્ચર, કર્નલ ફ્યુઝન અને રનટાઇમ ગ્રાફ ઑપ્ટિમાઇઝેશન. તેઓ સ્વચ્છ અનુમાન ગતિવિધિઓ પ્રદાન કરી શકે છે, પરંતુ પરિણામો મોડેલ આકાર અને હાર્ડવેર દ્વારા બદલાય છે. કેટલાક સેટઅપ્સ જાદુ જેવા લાગે છે; અન્ય ભાગ્યે જ હલનચલન કરે છે. આકાર ફેરફારો અને પ્રસંગોપાત "ગ્રેમલિન" બગ્સ પ્રત્યે સંવેદનશીલતાની અપેક્ષા રાખો - તમારા વાસ્તવિક વર્કલોડ પર પહેલા અને પછી માપો.
શું ક્વોન્ટાઇઝેશન યોગ્ય છે, અને વધુ પડતું જવાનું કેવી રીતે ટાળવું
ક્વોન્ટાઇઝેશન મેમરીને ઘટાડી શકે છે અને અનુમાનને ઝડપી બનાવી શકે છે, ખાસ કરીને INT8 સાથે, પરંતુ ગુણવત્તા ધાર પર લપસી શકે છે. લોઅર-બીટ વિકલ્પો (જેમ કે INT4/k-bit) ઊંચા જોખમ સાથે મોટી બચત લાવે છે. સૌથી સલામત આદત એ છે કે વાસ્તવિક પરીક્ષણ સેટ પર મૂલ્યાંકન કરવું અને આઉટપુટની તુલના કરવી, આંતરડાની લાગણી નહીં. પહેલા સલામત પગલાંથી શરૂઆત કરો, પછી જો જરૂરી હોય તો જ ઓછી ચોકસાઇ પર જાઓ.
મોડેલના કદમાં ઘટાડો કરવા માટે કાપણી અને નિસ્યંદન વચ્ચેનો તફાવત
કાપણી "ડેડ વેઇટ" પરિમાણોને દૂર કરે છે અને ગુણવત્તા પુનઃપ્રાપ્ત કરવા માટે ઘણીવાર ફરીથી તાલીમની જરૂર પડે છે, ખાસ કરીને જ્યારે આક્રમક રીતે કરવામાં આવે છે. નિસ્યંદન નાના વિદ્યાર્થી મોડેલને મોટા શિક્ષકના વર્તનનું અનુકરણ કરવા માટે તાલીમ આપે છે, અને તે આત્યંતિક ક્વોન્ટાઇઝેશન કરતાં વધુ મજબૂત લાંબા ગાળાના ROI હોઈ શકે છે. જો તમે એક નાનું મોડેલ ઇચ્છતા હોવ જે સમાન રીતે વર્તે અને સ્થિર રહે, તો નિસ્યંદન ઘણીવાર સ્વચ્છ માર્ગ છે.
સર્વિંગ સુધારાઓ દ્વારા અનુમાન ખર્ચ અને વિલંબ કેવી રીતે ઘટાડવો
સર્વિંગ એ એવી જગ્યા છે જ્યાં ઑપ્ટિમાઇઝેશન મૂર્ત બને છે: બેચિંગ થ્રુપુટને વધારે છે પરંતુ જો વધુ પડતું કરવામાં આવે તો લેટન્સીને નુકસાન પહોંચાડી શકે છે, તેથી તેને કાળજીપૂર્વક ટ્યુન કરો. જ્યારે સંદર્ભો પુનરાવર્તિત થાય છે ત્યારે કેશિંગ (પ્રોમ્પ્ટ કેશિંગ અને KV-કેશ પુનઃઉપયોગ) મોટા પાયે થઈ શકે છે. કુલ સમય સમાન હોય તો પણ સ્ટ્રીમિંગ આઉટપુટ કથિત ગતિને સુધારે છે. તમારા સ્ટેકમાં ટોકન-બાય-ટોકન ઓવરહેડ માટે પણ જુઓ - નાનું પ્રતિ-ટોકન કાર્ય ઝડપથી ઉમેરાય છે.
AI મોડેલ્સને ઑપ્ટિમાઇઝ કરતી વખતે ટેલ લેટન્સી શા માટે આટલી મહત્વપૂર્ણ છે
સરેરાશ સારી દેખાઈ શકે છે જ્યારે p99 એક આપત્તિ છે, અને વપરાશકર્તાઓ ટેઈલમાં રહેવાનું વલણ ધરાવે છે. ટેઈલ લેટન્સી ઘણીવાર જીટરથી આવે છે: મેમરી ફ્રેગમેન્ટેશન, CPU પ્રીપ્રોસેસિંગ સ્પાઇક્સ, ટોકનાઇઝેશન સ્લોડાઉન અથવા ખરાબ બેચિંગ વર્તણૂક. એટલા માટે માર્ગદર્શિકા પર્સેન્ટાઇલ્સ અને વાસ્તવિક વર્કલોડ્સ પર ભાર મૂકે છે. જો તમે ફક્ત p50 ને ઑપ્ટિમાઇઝ કરો છો, તો પણ તમે એક અનુભવ મોકલી શકો છો જે "રેન્ડમલી ધીમો લાગે છે."
સંદર્ભ
-
એમેઝોન વેબ સર્વિસીસ (AWS) - AWS ક્લાઉડવોચ પર્સન્ટાઇલ્સ (આંકડા વ્યાખ્યાઓ) - docs.aws.amazon.com
-
ગુગલ - ધ ટેઈલ એટ સ્કેલ (ટેઈલ લેટન્સી શ્રેષ્ઠ પ્રથા) - sre.google
-
ગુગલ - સર્વિસ લેવલ ઓબ્જેક્ટિવ્સ (SRE બુક) - લેટન્સી પર્સન્ટાઇલ્સ - sre.google
-
પાયટોર્ચ - ટોર્ચ.કમ્પાઇલ - docs.pytorch.org
-
પાયટોર્ચ - ફુલ્લીશાર્ડેડડેટાપેરેલલ (FSDP) - docs.pytorch.org
-
PyTorch - PyTorch પ્રોફાઇલર - docs.pytorch.org
-
પાયટોર્ચ - CUDA સિમેન્ટિક્સ: મેમરી મેનેજમેન્ટ (CUDA મેમરી એલોકેટર નોટ્સ) - docs.pytorch.org
-
પાયટોર્ચ - ઓટોમેટિક મિક્સ્ડ પ્રિસિઝન (torch.amp / AMP) - docs.pytorch.org
-
પાયટોર્ચ - ટોર્ચ.યુટિલ્સ.ચેકપોઇન્ટ - docs.pytorch.org
-
પાયટોર્ચ - પર્ફોર્મન્સ ટ્યુનિંગ માર્ગદર્શિકા - docs.pytorch.org
-
પાયટોર્ચ - કાપણી ટ્યુટોરીયલ - docs.pytorch.org
-
PyTorch - PyTorch માં CUDA મેમરી વપરાશને સમજવું - docs.pytorch.org
-
પાયટોર્ચ - ટોર્ચ.કમ્પાઇલ ટ્યુટોરીયલ / ઝાંખી - docs.pytorch.org
-
ONNX રનટાઇમ - ONNX રનટાઇમ દસ્તાવેજીકરણ - onnxruntime.ai
-
NVIDIA - TensorRT દસ્તાવેજીકરણ - docs.nvidia.com
-
NVIDIA - TensorRT ક્વોન્ટાઇઝ્ડ પ્રકારો - docs.nvidia.com
-
NVIDIA - Nsight સિસ્ટમ્સ - developer.nvidia.com
-
NVIDIA - ટ્રાઇટોન ઇન્ફરન્સ સર્વર - ડાયનેમિક બેચિંગ - docs.nvidia.com
-
ડીપસ્પીડ - ઝેરો સ્ટેજ 3 દસ્તાવેજીકરણ - deepspeed.readthedocs.io
-
બિટ્સએન્ડબાઇટ્સ (બિટ્સએન્ડબાઇટ્સ-ફાઉન્ડેશન) - બિટ્સએન્ડબાઇટ્સ - github.com
-
હગિંગ ફેસ - એક્સિલરેટ: ગ્રેડિયન્ટ એક્યુમ્યુલેશન ગાઇડ - huggingface.co
-
આલિંગન ચહેરો - ટોકનાઇઝર્સ દસ્તાવેજીકરણ - huggingface.co
-
હગિંગ ફેસ - ટ્રાન્સફોર્મર્સ: PEFT માર્ગદર્શિકા - huggingface.co
-
હગિંગ ફેસ - ટ્રાન્સફોર્મર્સ: KV કેશ સમજૂતી - huggingface.co
-
હગિંગ ફેસ - ટ્રાન્સફોર્મર્સ: "ફાસ્ટ" ટોકનાઇઝર્સ (ટોકનાઇઝર વર્ગો) - huggingface.co
-
arXiv - ન્યુરલ નેટવર્કમાં જ્ઞાનનું નિસ્યંદન (હિન્ટન એટ અલ., 2015) - arxiv.org
-
arXiv - LoRA: મોટા ભાષા મોડેલોનું નીચા-ક્રમનું અનુકૂલન - arxiv.org
-
arXiv - ફ્લેશએટેન્શન: IO-અવેરનેસ સાથે ઝડપી અને મેમરી-કાર્યક્ષમ ચોક્કસ ધ્યાન - arxiv.org