મેં મારા લેપટોપ પર 270M મોડલને Fine-Tune કર્યું

હું મોડલ્સને fine-tune કરવાની ત્રણ રીતોનું પરીક્ષણ કરી રહ્યો છું. હું ત્રણેય માટે એક જ કાર્યનો ઉપયોગ કરું છું. હું સૌથી નાના મોડલથી લઈને સૌથી મોટા મોડલ સુધી સ્કેલ કરું છું.

આ શ્રેણી આ માર્ગ અનુસરે છે:

  • Full Fine-Tuning (270M parameters)
  • LoRA (1.5B parameters)
  • QLoRA (7B parameters)

હું તેની કાર્યપદ્ધતિ સમજવા માંગુ છું. હું કોઈ ટ્યુટોરીયલનું આંધળું અનુકરણ કરવા નથી માંગતો.

આ પ્રથમ પગલામાં, મેં full fine-tuning નો ઉપયોગ કર્યો. આ પદ્ધતિ મોડલમાં દરેક weight ને અપડેટ કરે છે. તાલીમ આપવાની આ સૌથી ખર્ચાળ રીત છે.

મેં Banking77 dataset નો ઉપયોગ કર્યો. તેમાં 13,000 કસ્ટમર સપોર્ટ મેસેજ છે. ધ્યેય 77 અલગ-અલગ intents ઓળખવાનો છે, જેમ કે ખોવાયેલા કાર્ડ અથવા એક્સચેન્જ રેટ્સ.

મેં Gemma 3 (270M) પસંદ કર્યું. Apple Silicon નો ઉપયોગ કરીને લેપટોપ પર તાલીમ આપવા માટે આ મોડલ પૂરતું નાનું છે. Full fine-tuning માટે gradients અને optimizer states સ્ટોર કરવા માટે મેમરીમાં મોડલના કદ કરતાં ચાર ગણી જગ્યાની જરૂર પડે છે.

Classification head ઉમેરવાને બદલે, મેં મોડલને intent ને ટેક્સ્ટ તરીકે જનરેટ કરવા માટે સેટ કર્યું. આ પ્રક્રિયાને instruction tuning જેવી જ બનાવે છે. તે પ્રોજેક્ટને આગામી પગલાઓ માટે તૈયાર કરે છે.

એક મહત્વપૂર્ણ પગલું loss ને mask કરવાનું છે. તમારે મોડલને prompt ને અવગણવા અને ફક્ત label પર જ પોતાનું મૂલ્યાંકન કરવા માટે કહેવું જોઈએ. જો તમે આને છોડી દેશો, તો મોડલ તમારા prompt ને રિપીટ કરતા શીખવામાં મહેનત વેડફશે.

મેં 5e-5 નો નીચો learning rate વાપર્યો. Full fine-tuning દરમિયાન ઊંચા learning rates પ્રી-ટ્રેઈન્ડ જ્ઞાનને નષ્ટ કરી દે છે. 2e-4 ના રેટને કારણે મોડલ નિષ્ફળ ગયું હતું.

પરિણામો:

  • સામાન્ય intents પર 96% accuracy.
  • મોડલ લેપટોપ પર સારી રીતે કામ કરે છે.
  • તે હજુ પણ કાર્ડના આગમન અને ડિલિવરીના અંદાજ વચ્ચે મૂંઝવણ અનુભવે છે.

ભાગ 2 માં, હું પાંચ ગણું મોટું મોડલ વાપરીશ. હું LoRA નો ઉપયોગ કરીને તેના 1% થી પણ ઓછા weights ને તાલીમ આપીશ. હું જોઈશ કે શું હું સમાન accuracy મેળવી શકું છું.

સ્ત્રોત: https://dev.to/sumanpro/i-fine-tuned-a-270m-model-on-my-laptop-full-fine-tuning-from-scratch-3p4l

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