నేను నా ల్యాప్టాప్లో 270M మోడల్ను ఫైన్-ట్యూన్ చేశాను
నేను మోడల్లను ఫైన్-ట్యూన్ చేయడానికి మూడు పద్ధతులను పరీక్షిస్తున్నాను. మూడింటికీ నేను ఒకే టాస్క్ను ఉపయోగిస్తున్నాను. నేను అతి చిన్న మోడల్ నుండి అతి పెద్ద మోడల్ వరకు స్కేల్ చేస్తున్నాను.
ఈ సిరీస్ ఈ క్రింది మార్గాన్ని అనుసరిస్తుంది:
- Full Fine-Tuning (270M పారామీటర్లు)
- LoRA (1.5B పారామీటర్లు)
- QLoRA (7B పారామీటర్లు)
నేను దీని వెనుక ఉన్న మెకానిక్స్ను అర్థం చేసుకోవాలనుకుంటున్నాను. నేను కేవలం ఒక ట్యుటోరియల్ను గుడ్డిగా అనుసరించాలని అనుకోవడం లేదు.
ఈ మొదటి దశలో, నేను ఫుల్ ఫైన్-ట్యూనింగ్ను ఉపయోగించాను. ఈ పద్ధతి మోడల్లోని ప్రతి వెయిట్ను (weight) అప్డేట్ చేస్తుంది. శిక్షణ ఇవ్వడానికి ఇది అత్యంత ఖరీదైన పద్ధతి.
నేను Banking77 డేటాసెట్ను ఉపయోగించాను. ఇందులో 13,000 కస్టమర్ సపోర్ట్ మెసేజ్లు ఉన్నాయి. కోల్పోయిన కార్డులు లేదా ఎక్స్ఛేంజ్ రేట్లు వంటి 77 రకాల ఇంటెంట్లను (intents) గుర్తించడమే దీని లక్ష్యం.
నేను Gemma 3 (270M)ని ఎంచుకున్నాను. Apple Silicon ఉపయోగించి ల్యాప్టాప్లో శిక్షణ ఇవ్వడానికి ఈ మోడల్ తగినంత చిన్నదిగా ఉంది. గ్రేడియంట్లు (gradients) మరియు ఆప్టిమైజర్ స్టేట్లను (optimizer states) నిల్వ చేయడానికి ఫుల్ ఫైన్-ట్యూనింగ్కు మోడల్ పరిమాణం కంటే నాలుగు రెట్లు ఎక్కువ మెమరీ అవసరం.
క్లాసిఫికేషన్ హెడ్ను (classification head) జోడించడానికి బదులుగా, మోడల్ ఇంటెంట్ను టెక్స్ట్గా జనరేట్ చేసేలా చేశాను. ఇది ప్రక్రియను ఇన్స్ట్రక్షన్ ట్యూనింగ్తో (instruction tuning) సమానంగా మారుస్తుంది. ఇది ప్రాజెక్ట్ను తదుపరి దశలకు సిద్ధం చేస్తుంది.
లాస్ను మాస్కింగ్ (masking the loss) చేయడం ఒక కీలకమైన దశ. ప్రాంప్ట్ను విస్మరించి, కేవలం లేబుల్పై మాత్రమే మోడల్ తనను తాను గ్రేడ్ చేసుకోవాలని మీరు చెప్పాలి. మీరు దీనిని వదిలేస్తే, మోడల్ మీ ప్రాంప్ట్ను తిరిగి చెప్పడం నేర్చుకోవడానికే తన శ్రమను వృథా చేస్తుంది.
నేను 5e-5 అనే తక్కువ లెర్నింగ్ రేట్ను ఉపయోగించాను. ఫుల్ ఫైన్-ట్యూనింగ్ సమయంలో ఎక్కువ లెర్నింగ్ రేట్లు ప్రీ-ట్రైన్డ్ నాలెడ్జ్ను (pretrained knowledge) నాశనం చేస్తాయి. 2e-4 రేట్ వల్ల మోడల్ విఫలమైంది.
ఫలితాలు:
- సాధారణ ఇంటెంట్లపై 96% ఖచ్చితత్వం (accuracy).
- ఈ మోడల్ ల్యాప్టాప్లో బాగా పనిచేస్తుంది.
- ఇది ఇంకా కార్డు రాకను (card arrival) డెలివరీ అంచనాలతో (delivery estimates) కన్ఫ్యూజ్ చేస్తోంది.
పార్ట్ 2లో, నేను ఐదు రెట్లు పెద్ద మోడల్ను ఉపయోగిస్తాను. LoRA ఉపయోగించి దాని వెయిట్స్లో 1% కంటే తక్కువ భాగాన్ని మాత్రమే ట్రైన్ చేస్తాను. నేను అదే ఖచ్చితత్వాన్ని పొందగలనో లేదో చూస్తాను.
మూలం: https://dev.to/sumanpro/i-fine-tuned-a-270m-model-on-my-laptop-full-fine-tuning-from-scratch-3p4l
ఐచ్ఛిక లెర్నింగ్ కమ్యూనిటీ: https://t.me/GyaanSetuAi