ఇంటిగ్రేటెడ్ డెవలప్మెంట్ ఎన్విరాన్మెంట్స్ (IDEs) రంగంలో ఆటోకంప్లీషన్ ఫీచర్స్ ఎప్పటినుంచో ఒక పెద్ద శక్తిగా ఉన్నాయి. అయితే, ఇప్పుడు ఒక కొత్త పోటీదారు రంగంలోకి దిగింది: ఆర్టిఫిషియల్ ఇంటెలిజెన్స్ (AI). IDEలలో AI యొక్క అనుసంధానం పెరుగుతోంది, సాంప్రదాయ టూల్స్ను తిరిగి అంచనా వేసేలా చేస్తోంది. పాత పద్ధతులు ఇంకా పనిచేస్తున్నప్పటికీ, డెవలపర్లు ఇప్పుడు ఆశిస్తున్న అత్యాధునిక సహాయాన్ని అవి అందించకపోవచ్చు.
జెట్బ్రెయిన్స్ బ్లాగ్ పోస్ట్ నుండి స్వీకరించబడిన ఈ కథనం, క్లౌడ్ ఆధారిత ఆటోకంప్లీషన్కు ఆధారమైన మెల్లుమ్ యొక్క శిక్షణ మరియు సామర్థ్యాలను వివరిస్తుంది. జెట్బ్రెయిన్స్, ప్రోగ్రామర్ల కోసం రూపొందించిన దాని IDEలు మరియు కోడ్ ఎడిటర్లకు ప్రసిద్ధి చెందింది, వేగవంతమైన మరియు సమర్థవంతమైన కోడ్ ఆటోకంప్లీషన్ను అందించడానికి మెల్లుమ్ను అభివృద్ధి చేసింది. మెల్లుమ్ స్థానికంగా ఒక పరికరంలో సమర్థవంతంగా పనిచేసేలా రూపొందించబడింది, ఇది దాని తరగతిలో వేగవంతమైన మరియు అత్యంత కాంపాక్ట్ మోడల్స్లో ఒకటిగా నిలిచింది. కాన్సెప్చువల్గా ఇలాంటి ప్రాజెక్ట్ మైక్రోసాఫ్ట్ ఫి.
స్పష్టమైన సవాళ్లను పరిష్కరించడం
AI-శక్తితో కూడిన ఆటోకంప్లీషన్ను రూపొందించడంలో జెట్బ్రెయిన్స్ ఇంజనీర్లు అనేక కీలకమైన సవాళ్లను ఎదుర్కొన్నారు:
- వేగం మరియు ఖర్చు: సాంప్రదాయ చాట్ మోడల్స్ వాటి అధిక గణన ఖర్చులు మరియు నెమ్మదైన ప్రతిస్పందన సమయాల కారణంగా ఆచరణాత్మకం కాదని తేలింది. ఈ మోడల్స్కు ఫిల్-ఇన్-ది-మిడిల్ (FIM) లేదా టోకెన్ హీలింగ్ వంటి కోడ్-నిర్దిష్ట సాంకేతికతల గురించి అవగాహన లేదు.
- అవుట్పుట్ ఫార్మాటింగ్: ప్రధాన చాట్ మోడల్స్ తరచుగా స్థిరమైన ఫార్మాట్లలో డేటాను ఉత్పత్తి చేయలేదు, దీని వలన ప్రతిస్పందనలను విశ్లేషించడం మరియు వాటిని ఎడిటర్లో సజావుగా అనుసంధానించడం కష్టమైంది.
- డేటా మూలం: శిక్షణ డేటా యొక్క మూలాన్ని గుర్తించడం మరియు కాపీరైట్ ఉల్లంఘన సమస్యలను తగ్గించడం ఒక ముఖ్యమైన అడ్డంకిగా నిలిచింది.
మెల్లుమ్: ఒక అవలోకనం
జెట్బ్రెయిన్స్లోని డెవలప్మెంట్ టీమ్ సొంత మోడల్ను సృష్టించడం సరైన విధానమని గ్రహించింది. నాణ్యత, అనుమితి ఖర్చులు మరియు జాప్యం మధ్య సమతుల్యతను పాటించేలా మరియు స్పష్టమైన మూలాధారంతో డేటాపై శిక్షణ పొందిన ఒక మోడల్ను రూపొందించడం వారి లక్ష్యం. సుమారు 4 బిలియన్ పారామితులతో కూడిన ఒక మోడల్ విస్తృత శ్రేణి పరిస్థితులు మరియు వినియోగదారుల కోసం సమర్థవంతమైన ఆటోకంప్లీషన్ సామర్థ్యాలను అందిస్తుందని ప్రాథమిక పరిశోధన సూచించింది. అంతేకాకుండా, మోడల్కు ప్రత్యేకంగా కోడ్పై శిక్షణ ఇవ్వడం ద్వారా, వారు సంబంధిత డేటా లేకుండా టోకెన్ల ప్రత్యేక పదజాలాన్ని ఏర్పాటు చేయగలరు.
మెల్లుమ్ మోడల్ కోసం శిక్షణ ప్రక్రియ మూడు విభిన్న దశలను కలిగి ఉంటుంది, ప్రతి ఒక్కటి కొత్త జ్ఞానాన్ని అందిస్తుంది మరియు ఉత్పత్తి చేయబడిన కోడ్ నాణ్యతను పెంచుతుంది. ప్రారంభ దశలో వ్యక్తిగత ఫైల్ల యొక్క పెద్ద కార్పస్పై ప్రాథమిక ప్రీ-ట్రైనింగ్ ఉంటుంది. రెండవ దశలో ప్రత్యేక ఉదాహరణల యొక్క చిన్న సెట్తో మోడల్ను మెరుగుపరచడం ఉంటుంది. AI ఫీడ్బ్యాక్తో రీన్ఫోర్స్మెంట్ లెర్నింగ్ (RLAIF) మూడవ దశలో ఉపయోగించబడుతుంది, ఇది IDE-నిర్దిష్ట లక్షణాలకు మోడల్ను అనుగుణంగా మార్చడానికి మరియు అవాంఛిత అవుట్పుట్ను తొలగించడానికి ఉపయోగపడుతుంది.
ప్రీ-ట్రైనింగ్
సందిగ్ధమైన డేటా మూలాలకు సంబంధించిన సంభావ్య సమస్యలను నివారించడానికి, మోడల్ను మొదటి నుండి శిక్షణ ఇవ్వడం జరిగింది, దీనికి అనేక భాషలు, ప్రోగ్రామింగ్ సింటాక్స్, నమూనాలు మరియు ప్రధాన భావనల గురించి సమగ్ర పరిచయం అవసరం.
డేటాసెట్
ప్రీ-ట్రైనింగ్ కోసం ప్రాథమిక డేటా మూలం TheStack. ఈ డేటాసెట్ డేటా చట్టబద్ధంగా మరియు ఆచరణాత్మకంగా ప్రయోజనకరంగా ఉంటుందని నిర్ధారిస్తుంది.
ప్రీ-ట్రైనింగ్ ప్రాసెస్
ప్రీ-ట్రైనింగ్ సమయంలో, సుమారు 3 ట్రిలియన్ టోకెన్లను చేరుకోవడానికి డేటాసెట్ను చాలాసార్లు నమూనా చేశారు. 8192 టోకెన్ల సందర్భ విండో ఉపయోగించబడింది, డేటాసెట్ను ఈ పరిమాణంలో ముక్కలుగా విభజించారు. ప్రతి ముక్కలోని సగం ఫైళ్ళకు ఫిల్-ఇన్-ది-మిడిల్ (FIM) రూపాంతరం వర్తింపజేయబడింది, మోడల్ను ముందు మరియు తరువాత కోడ్ను పరిగణించమని ప్రోత్సహిస్తుంది. ఈ టెక్నిక్ వాస్తవ ప్రపంచ కోడ్ ఉత్పత్తి పరిస్థితులను దగ్గరగా అనుకరిస్తుంది.
ప్రీ-ట్రైనింగ్ దశ పదహారు నోడ్ల సమూహంలో నిర్వహించబడింది, ప్రతి ఒక్కటి ఎనిమిది H100 GPUలతో అమర్చబడి ఉంది. ఈ దశ పూర్తి చేయడానికి సుమారు 15 రోజులు పట్టింది, ఫలితంగా 4-బిలియన్-పారామీటర్ మెల్లుమ్-బేస్ మోడల్ ఏర్పడింది.
ప్రీ-ట్రైనింగ్ అనేక ప్రోగ్రామింగ్ భాషల గురించి విస్తృత జ్ఞానంతో సాధారణ-ప్రయోజన కోడ్ ఆటోకంప్లీషన్ మోడల్ను సృష్టిస్తుంది. అయితే, ఈ దశలో మోడల్ యాదృచ్ఛికంగా ఎంచుకున్న ఫైల్ విభాగంలో తదుపరి టోకెన్ను అంచనా వేయడానికి మాత్రమే శిక్షణ పొందుతుంది. అదనపు సందర్భం లేకుండా, మోడల్కు కోడ్ నిర్మాణం గురించి అవగాహన ఉండదు మరియు కోడ్ను ఉత్పత్తి చేయడం ఎప్పుడు ఆపాలో నిర్ణయించడానికి ఎటువంటి విధానం లేదు.
ఈ పరిమితులను పరిష్కరించడానికి ఫైన్-ట్యూనింగ్ దశ రూపొందించబడింది.
సందర్భోచిత ఫైన్-ట్యూనింగ్
మెరుగైన ఫిల్-ఇన్-ది-మిడిల్
యాదృచ్ఛికంగా ఎంచుకున్న కోడ్ ముక్కలను అంచనా వేయడానికి ఉపయోగించే ప్రీ-ట్రైనింగ్కు విరుద్ధంగా, ఫైన్-ట్యూనింగ్ మరింత అర్థవంతమైన పద్ధతిలో కోడ్ను విభజించడంపై దృష్టి పెడుతుంది, మోడల్కు ‘సహజంగా’ కనిపించే కోడ్ ముక్కలను సంగ్రహించడానికి శిక్షణ ఇస్తుంది.
ప్రత్యేక ఉదాహరణలు
ఆచరణలో, కోడ్ ఆటోకంప్లీషన్కు చుట్టుపక్కల ఉన్న ఫైల్లు మరియు విస్తృత సందర్భాలను అర్థం చేసుకోవడం అవసరం, ఇది మొత్తం ప్రాజెక్ట్లను కూడా కలిగి ఉండవచ్చు.
డేటా ప్రీప్రాసెసింగ్ కోసం, కంపెనీ కోడ్ ఇంజిన్ అనే అంతర్గత ప్రాజెక్ట్ను ప్రారంభించింది: పూర్తి ప్రాజెక్ట్ ఇండెక్సింగ్ అవసరం లేకుండా సాధారణ ఫైల్ల నుండి నేరుగా సందర్భాన్ని రూపొందించడానికి అభివృద్ధి చేయబడిన క్రాస్-ప్లాట్ఫాం SDK మరియు కన్సోల్ యుటిలిటీల సమితి. ఈ SDK అంతర్గత మ్యాప్రెడ్యూస్ క్లస్టర్లో విస్తరించబడింది మరియు సహేతుకమైన వ్యవధిలో శిక్షణ కోసం అనేక ఉపయోగకరమైన ఉదాహరణలను ఉత్పత్తి చేయడానికి వేలాది పబ్లిక్ రిపోజిటరీలను ప్రాసెస్ చేయడానికి ఉపయోగించబడింది.
సరైన అల్గారిథమ్లను కనుగొనడానికి కొంత ప్రయత్నం మరియు లోపం అవసరం.
నిర్దిష్ట భాషల కోసం ట్యూనింగ్
చిన్న మోడల్స్ నిర్దిష్ట భాషల కోసం ప్రత్యేకత సాధించడం ద్వారా చాలా ప్రయోజనం పొందవచ్చు. బేస్ మోడల్ 80 కంటే ఎక్కువ భాషలపై శిక్షణ పొందినప్పటికీ, చాలా మంది వినియోగదారులు సాధారణంగా ఒకటి లేదా రెండు భాషలతో మాత్రమే పనిచేస్తారు. దీనిని పరిష్కరించడానికి, జెట్బ్రెయిన్స్ అనేక ప్రత్యేక మోడల్స్ను సృష్టించింది:
- మెల్లుమ్-ఆల్: జెట్బ్రెయిన్స్ IDEలలో అందుబాటులో ఉన్న చాలా భాషలు మరియు మాండలికాలను సపోర్ట్ చేస్తుంది, కానీ ఆటోకంప్లీషన్ నాణ్యత ప్రత్యేక మోడల్స్ కంటే తక్కువగా ఉంటుంది.
- మెల్లుమ్-పైథాన్: పైథాన్ మరియు జూపిటర్లో ప్రత్యేకత కలిగి ఉంది.
- మెల్లుమ్-కోట్లిన్: జావా మరియు కోట్లిన్లో ప్రత్యేకత కలిగి ఉంది.
- మెల్లుమ్-వెబ్: వెబ్ టెక్నాలజీస్లో ప్రత్యేకత కలిగి ఉంది.
చివరి దశ: RLAIF
చివరగా, అభ్యాస లక్ష్యాలు వినియోగదారు అంచనాలకు సరిపోని సందర్భాలను పరిష్కరించాలి. అదనపు శిక్షణ దశ, RLAIF - AI ఫీడ్బ్యాక్తో రీన్ఫోర్స్మెంట్ లెర్నింగ్, ఇటువంటి సమస్యలను పరిష్కరించడానికి ఉపయోగించబడుతుంది.
వినియోగదారు పరస్పర చర్యల నుండి మోడల్ నేర్చుకుంటుంది మరియు వినియోగదారు ప్రాధాన్యతలను ఎలా బాగా ప్రతిబింబించాలో అర్థం చేసుకుంటుంది.
ఈ విధానం మొత్తం నాణ్యత స్కోర్ను మెరుగుపరచడమే కాకుండా, బాధించే ఉత్పత్తి కళాఖండాల సంఖ్యను కూడా తగ్గిస్తుంది.
మెల్లుమ్ ఎంత మంచిది?
మోడల్ దాని పరిమాణానికి చాలా బాగా పనిచేస్తుంది. దీనిని ఎలా అంచనా వేశారో ఇక్కడ ఉంది:
- మొదట, మోడల్ను ‘జెట్బ్రెయిన్స్ బిగ్కోడ్’ అనే అంతర్గత బెంచ్మార్క్పై అంచనా వేశారు.
- తర్వాత SAFIM వంటి ప్రసిద్ధ పబ్లిక్ బెంచ్మార్క్లపై పరీక్షించారు.
- చివరగా, ఫీచర్ల కోసం వినియోగ గణాంకాలను సేకరించి, వినియోగదారు మెట్రిక్లను లెక్కించారు.
ఆఫ్లైన్ మూల్యాంకనం
డేటాను సేకరించడం ఒక సంక్లిష్టమైన పని, అయితే న్యూరల్ నెట్వర్క్ ప్రతిపాదించిన కొత్త సలహాతో అసలైన సలహాను పోల్చే మంచి మెట్రిక్ను సృష్టించడం మరింత సవాలుగా ఉంటుంది. మేము ఒక చిన్న అధ్యయనం నిర్వహించాము మరియు చివరికి రెండు ప్రాథమిక మెట్రిక్ల కలయికపై స్థిరపడ్డాము:
EM:
- ఖచ్చితమైన సరిపోలిక ఒక చాలా జనాదరణ పొందిన ఆలోచన.
- కనిష్ట ప్రీప్రాసెసింగ్తో, పూర్తి చేసిన మొదటి పంక్తి అసలు పంక్తికి సరిపోలితే, అంచనా మంచిదిగా పరిగణించబడుతుంది.
KK:
- ఈ మెట్రిక్కు దాని రచయితల పేరు పెట్టారు.
- ప్రతిపాదిత పూర్తిలో పంక్తుల సంఖ్యతో భాగించబడిన అసలు నుండి ప్రతిపాదిత పంక్తుల సంఖ్య.
జెట్బ్రెయిన్స్ బిగ్కోడ్
మోడల్ను అంతర్గత జెట్బ్రెయిన్స్ బిగ్కోడ్ సాధనాన్ని ఉపయోగించి పొందిన బెంచ్మార్క్ డేటాసెట్తో అంచనా వేశారు.
బహిరంగ బెంచ్మార్క్లపై ఆధారపడకుండా మా డేటాసెట్పై పూర్తి నియంత్రణను నిర్వహించడం ద్వారా, వివిధ కోడింగ్ శైలులు మరియు పద్ధతుల కోసం మోడల్ నాణ్యతను విశ్వసనీయంగా అంచనా వేయడం సాధ్యమవుతుంది.
మా జెట్బ్రెయిన్స్ బిగ్కోడ్ మూల్యాంకన ఫలితాలు జనాదరణ పొందిన మోడల్స్తో సమానమైన నాణ్యతను చూపుతాయి, అయితే మెల్లుమ్ చిన్నది మరియు మరింత సమర్థవంతమైనది.
సింగిల్-లైన్ సలహాల నాణ్యత (EM మెట్రిక్)
పబ్లిక్ బెంచ్మార్క్లు
మోడల్ను అంతర్గత డేటాసెట్పై మాత్రమే కాకుండా, SAFIM (సింటాక్స్-అవేర్ ఫిల్ ఇన్ ది మిడిల్) వంటి వివిధ పబ్లిక్ బెంచ్మార్క్లపై కూడా అంచనా వేశారు.
ఆన్లైన్ మూల్యాంకనం
ప్రధాన మెట్రిక్ను పూర్తయిన కోడ్ నిష్పత్తి (RoCC) అంటారు. ఇది కోడ్ ఆటోకంప్లీషన్ను ఉపయోగించి వ్రాసిన కోడ్ అక్షరాల నిష్పత్తిగా మరియు ఎడిటర్లోని మొత్తం కోడ్ మొత్తానికి నిర్వచించబడుతుంది.
మరొక ముఖ్యమైన మెట్రిక్ ఆమోదం రేటు (AR), ఇది చూపిన అన్ని సలహాల సంఖ్యతో భాగించబడిన ఆమోదించబడిన సలహాల సంఖ్యగా లెక్కించబడుతుంది.
ఇది ఒక సంక్లిష్టమైన ప్రయాణం, కానీ జెట్బ్రెయిన్స్ నిపుణులు దీనిని గౌరవంగా పూర్తి చేశారు. చివరికి, ఒక సాధారణ మరియు అనేక ప్రత్యేక మోడల్స్ను పొందారు, ఇవి జెట్బ్రెయిన్స్ AI ప్లాట్ఫాం ద్వారా అందుబాటులో ఉన్నాయి. అవి ఇప్పుడు జెట్బ్రెయిన్స్ AI అసిస్టెంట్లో విజయవంతంగా పనిచేస్తున్నాయి.
తరువాత ఏమిటి?
- జెట్బ్రెయిన్స్ ఇంజనీర్లు ప్రస్తుతం వెబ్ డెవలప్మెంట్ భాషల కోసం ఒక మోడల్పై పనిచేస్తున్నారు. ఇది సమీప భవిష్యత్తులో ప్రజలకు అందుబాటులో ఉండవచ్చు.
- పారామితుల సంఖ్యను మరియు డేటా వైవిధ్యాన్ని ఏకకాలంలో పెంచడానికి ప్రణాళికలు ఉన్నాయి. కోడింగ్లో అనేక విభిన్న పనులు ఉన్నాయి - మెల్లుమ్ వాటిని కూడా నిర్వహించగలదు. సర్వీస్ పనితీరు ఇప్పటికీ ఒక కీలకమైన మెట్రిక్, కాబట్టి మోడల్ యొక్క విస్తరణ సహేతుకమైన పరిమితుల్లో ఉంటుంది.