```html ஆசிரியர்கள்: Mayank Mishra⋆, IBM Matt Stallone⋆, IBM Gaoyuan Zhang⋆, IBM Yikang Shen, IBM Aditya Prasad, IBM Adriana Meza Soria, IBM Michele Merler, IBM Parameswaran Selvam, IBM Saptha Surendran, IBM Shivdeep Singh, IBM Manish Sethi, IBM Xuan-Hong Dang, IBM Pengyuan Li, IBM Kun-Lung Wu, IBM Syed Zawad, IBM Andrew Coleman, IBM Matthew White, IBM Mark Lewis, IBM Raju Pavuluri, IBM Yan Koyfman, IBM Boris Lublinsky, IBM Maximilien de Bayser, IBM Ibrahim Abdelaziz, IBM Kinjal Basu, IBM Mayank Agarwal, IBM Yi Zhou, IBM Chris Johnson, IBM Aanchal Goyal, IBM Hima Patel, IBM Yousaf Shah, IBM Petros Zerfos, IBM Heiko Ludwig, IBM Asim Munawar, IBM Maxwell Crouse, IBM Pavan Kapanipathi, IBM Shweta Salaria, IBM Bob Calio, IBM Sophia Wen, IBM Seetharami Seelam, IBM Brian Belgodere, IBM Carlos Fonseca, IBM Amith Singhee, IBM Nirmit Desai, IBM David D. Cox, IBM Ruchir Puri†, IBM Rameswar Panda†, IBM சுருக்கம் குறியீட்டில் பயிற்சி பெற்ற பெரிய மொழி மாதிரிகள் (LLMs) மென்பொருள் மேம்பாட்டு செயல்முறையில் புரட்சியை ஏற்படுத்துகின்றன. மேலும், மனித நிரலாளர்களின் உற்பத்தித்திறனை மேம்படுத்த, குறியீடு LLM-கள் மென்பொருள் மேம்பாட்டு சூழல்களில் ஒருங்கிணைக்கப்படுகின்றன, மேலும் LLM-அடிப்படையிலான முகவர்கள் சிக்கலான பணிகளை சுயமாகக் கையாளும் திறனைக் காட்டுகின்றன. குறியீடு LLM-களின் முழுமையான திறனை உணர, குறியீடு உருவாக்கம், பிழைகளை சரிசெய்தல், குறியீட்டை விளக்குதல் மற்றும் ஆவணப்படுத்துதல், களஞ்சியங்களைப் பராமரித்தல் மற்றும் பலவற்றைக் கொண்ட பரந்த அளவிலான திறன்கள் தேவைப்படுகின்றன. இந்த வேலையில், 116 நிரலாக்க மொழிகளில் எழுதப்பட்ட குறியீட்டில் பயிற்சி பெற்ற, குறியீடு உருவாக்கும் பணிகளுக்கான டெகோடர்-மட்டும் குறியீடு மாதிரிகளின் கிரானைட் தொடரை நாங்கள் அறிமுகப்படுத்துகிறோம். கிரானைட் குறியீடு மாதிரிகள் குடும்பம் 3 முதல் 34 பில்லியன் அளவுருக்கள் வரை அளவுகளில் மாதிரிகளைக் கொண்டுள்ளது, இது சிக்கலான பயன்பாட்டு நவீனமயமாக்கல் பணிகளிலிருந்து சாதனம் சார்ந்த நினைவகக் கட்டுப்பாடுகள் உள்ள பயன்பாட்டு நிகழ்வுகள் வரை பொருத்தமானது. பணிகளின் விரிவான தொகுப்பில் மதிப்பீடு, கிரானைட் குறியீடு மாதிரிகள் கிடைக்கக்கூடிய திறந்த மூல குறியீடு LLM-களில் தொடர்ந்து அதிநவீன செயல்திறனை அடைகின்றன. கிரானைட் குறியீடு மாதிரி குடும்பம் நிறுவன மென்பொருள் மேம்பாட்டு பணிப்பாய்வுகளுக்கு உகந்ததாக இருந்தது மற்றும் பல்வேறு குறியீட்டு பணிகளில் (எ.கா., குறியீடு உருவாக்கம், சரிசெய்தல் மற்றும் விளக்கம்) நன்றாக செயல்படுகிறது, இது ஒரு பல்துறை "அனைத்து ரவுண்ட்" குறியீடு மாதிரியாக ஆக்குகிறது. ஆராய்ச்சி மற்றும் வணிக பயன்பாட்டிற்காக எங்கள் கிரானைட் குறியீடு மாதிரிகள் அனைத்தையும் அப்பாச்சி 2.0 உரிமத்தின் கீழ் நாங்கள் வெளியிடுகிறோம். https://github.com/ibm-granite/granite-code-models 1 அறிமுகம் கடந்த பல தசாப்தங்களாக, மென்பொருள் நமது சமூகத்தின் ஒவ்வொரு அம்சத்தின் கட்டமைப்பிலும் நெய்யப்பட்டுள்ளது. மென்பொருள் மேம்பாட்டுக்கான தேவை அதிகரித்து வருவதால், மென்பொருள் மேம்பாட்டு உற்பத்தித்திறனை அதிகரிப்பது முன்னெப்போதையும் விட முக்கியமானது, மேலும் LLM-கள் மனித நிரலாளர்களை மேம்படுத்துவதற்கான ஒரு சிறந்த வழியை வழங்குகின்றன. மென்பொருள் மேம்பாட்டு உற்பத்தித்திறனில் LLM-களின் குறிப்பிடத்தக்க நிறுவன பயன்பாட்டு நிகழ்வுகளில் குறியீடு உருவாக்கம், குறியீடு விளக்கம், குறியீடு சரிசெய்தல், அலகு சோதனை மற்றும் ஆவண உருவாக்கம், பயன்பாட்டு நவீனமயமாக்கல், பாதிப்பு கண்டறிதல், குறியீடு மொழிபெயர்ப்பு மற்றும் பல அடங்கும். சமீபத்திய ஆண்டுகளில் LLM-களின் குறியீட்டை உருவாக்குதல் மற்றும் கையாளுதல் ஆகியவற்றின் திறனில் விரைவான முன்னேற்றம் ஏற்பட்டுள்ளது, மேலும் ஈர்க்கக்கூடிய குறியீட்டு திறன்களைக் கொண்ட பல மாதிரிகள் இன்று கிடைக்கின்றன. மாதிரிகள் ஒற்றை இலக்க பில்லியன் அளவுருக்கள் (எ.கா., Llama-7B (Touvron et al., 2023), Gemma-7B (Gemma-Team et al., 2024), போன்றவை) முதல் நூற்றுக்கணக்கான பில்லியன் வரை: DBRX (Databricks), Arctic (Snowflake), Grok, Mixtral 8x22B (MistralAI), Command R+ (Cohere), மற்றும் குறியீட்டிற்கு வெளியே பரந்த அளவிலான பயன்பாடுகளை உள்ளடக்கியதாக நோக்கமாகக் கொண்ட சில மாதிரிகளுடன், நோக்கம் கொண்ட பயன்பாட்டின் பொதுத்தன்மையில் வேறுபடுகின்றன, மற்றவை முதன்மையாக குறியீட்டு தொடர்பான பணிகளில் கவனம் செலுத்துகின்றன (எ.கா., StarCoder (Li et al., 2023a; Lozhkov et al., 2024), CodeGen (Nijkamp et al., 2023), CodeLlama (Rozie`re et al., 2023), மற்றும் CodeGemma (CodeGemma Team et al., 2024)). இருப்பினும், குறியீட்டிற்கான LLM-களின் தற்போதைய துறையில், குறிப்பாக நிறுவன மென்பொருள் மேம்பாட்டுச் சூழலில், முக்கியமான இடைவெளிகள் உள்ளன. முதலாவதாக, மிகவும் பெரிய, பொதுவான LLM-கள் சிறந்த குறியீட்டு செயல்திறனை அடைய முடியும் என்றாலும், அவற்றின் அளவு வரிசைப்படுத்த மிகவும் விலை உயர்ந்ததாக ஆக்குகிறது. சிறிய குறியீடு-கவனம் செலுத்தும் மாதிரிகள் ( , ; , ; , ; , ; , ) சிறிய மற்றும் மிகவும் நெகிழ்வான தொகுப்பில் சிறந்த குறியீடு உருவாக்கும் செயல்திறனை அடைய முடியும், ஆனால் தலைமுறைக்கு அப்பாற்பட்ட குறியீட்டு பணிகளில் செயல்திறன் (எ.கா., சரிசெய்தல் மற்றும் விளக்கம்) குறியீடு உருவாக்கும் செயல்திறனை விட பின்தங்கியிருக்கலாம். Li et al. 2023a Lozhkov et al. 2024 Nijkamp et al. 2023 Rozie`re et al. 2023 CodeGemma Team et al. 2024 பல நிறுவனச் சூழல்களில், குறியீடு LLM தத்தெடுப்பு மாதிரிகளின் செயல்திறனுக்கு அப்பாற்பட்ட காரணிகளால் மேலும் சிக்கலாகலாம். உதாரணமாக, திறந்த மாதிரிகள் கூட சில சமயங்களில் தரவு ஆதாரங்கள் மற்றும் மாதிரிக்குள் சென்ற தரவு செயலாக்க முறைகள் பற்றிய வெளிப்படைத்தன்மை இல்லாததால் பாதிக்கப்படுகின்றன, இது பணி-முக்கிய மற்றும் ஒழுங்குபடுத்தப்பட்ட சூழல்களில் மாதிரிகளில் நம்பிக்கையை குறைக்கக்கூடும். மேலும், இன்றைய திறந்த LLM-களில் உரிம விதிமுறைகள் ஒரு மாதிரியைப் பயன்படுத்துவதற்கான நிறுவனத்தின் திறனைச் சிக்கலாக்கலாம். இங்கே, நாங்கள் கிரானைட் குறியீடு மாதிரிகளை முன்வைக்கிறோம், இது குறியீடு LLM-களின் ஒரு தொடர், இது பரந்த அளவிலான குறியீட்டு பணிகளில் நிறுவன மென்பொருள் மேம்பாட்டிற்கு ஆதரவளிக்க வடிவமைக்கப்பட்டுள்ளது. கிரானைட் குறியீடு மாதிரிகள் நான்கு வெவ்வேறு அளவுகளில் (3B, 8B, 20B, மற்றும் 34B) நாங்கள் வெளியிடும் இரண்டு முக்கிய வகைகளைக் கொண்டுள்ளன: குறியீடு தொடர்பான பணிகளுக்கான அடிப்படை அடித்தள மாதிரிகள்; கிரானைட் குறியீடு அடிப்படை: Git கமிட் செய்யப்பட்ட மனித அறிவுறுத்தல்களுடன் இணைக்கப்பட்ட அறிவுறுத்தல் பின்பற்றும் மாதிரிகள் மற்றும் திறந்த மூல செயற்கையாக உருவாக்கப்பட்ட குறியீடு அறிவுறுத்தல் தரவுத்தொகுப்புகள். கிரானைட் குறியீடு அறிவுறுத்தல்: தொடரின் அடிப்படை மாதிரிகள் இரண்டு-கட்ட பயிற்சி உத்தியுடன் புதிதாகப் பயிற்சி பெற்றுள்ளன. கட்டம் 1 இல், எங்கள் மாதிரி 116 நிரலாக்க மொழிகளிலிருந்து பெறப்பட்ட 3 முதல் 4 டிரில்லியன் டோக்கன்களில் பயிற்சி பெற்றுள்ளது, நிரலாக்க மொழிகள் மற்றும் தொடரியல் பற்றிய விரிவான புரிதலை உறுதி செய்கிறது. கட்டம் 2 இல், எங்கள் மாதிரி 500 பில்லியன் டோக்கன்களில் குறியீடு மற்றும் இயற்கை மொழி டொமைன்களிலிருந்து உயர்தர தரவின் கவனமாக வடிவமைக்கப்பட்ட கலவையுடன் மேலும் பயிற்சி பெற்றுள்ளது, இது மாதிரியின் பகுத்தறியும் திறனை மேம்படுத்துகிறது. இந்த இரண்டு கட்டங்களில் உள்ள அடிப்படை மாதிரிகளைப் பயிற்றுவிக்க நாங்கள் மேற்பார்வையற்ற மொழி மாடலிங் நோக்கத்தைப் பயன்படுத்துகிறோம். அறிவுறுத்தல் மாதிரிகள், CommitPack ( , ) இன் வடிகட்டப்பட்ட மாறுபாடு, இயற்கை மொழி அறிவுறுத்தல் பின்பற்றும் தரவுத்தொகுப்புகள் (OASST ( , ), HelpSteer ( , )) மற்றும் திறந்த மூல கணித தரவுத்தொகுப்புகள் (MathInstruct ( , ) மற்றும் MetaMathQA ( , )), அறிவுறுத்தல் பின்பற்றுதல் மற்றும் பகுத்தறியும் திறன்களை மேம்படுத்துவதற்கான செயற்கையாக உருவாக்கப்பட்ட குறியீடு தரவுத்தொகுப்புகள் உட்பட, ஆகியவற்றின் கலவையின் மீது மேலே பயிற்சி பெற்ற அடிப்படை மாதிரிகளை மேலும் ஃபைன்-ட்யூன் செய்வதன் மூலம் பெறப்படுகின்றன. Muennighoff et al. 2023 Ko¨ pf et al. 2023 Wang et al. 2023 Yue et al. 2023 Yu et al. 2023 HumanEvalPack ( , ), MBPP(+) ( , ; , ), RepoBench ( , ), ReCode ( , ), மற்றும் பலவற்றை உள்ளடக்கிய விரிவான அளவுகோல்களின் தொகுப்பில் எங்கள் குறியீடு LLM-களின் விரிவான மதிப்பீடுகளை நாங்கள் நடத்துகிறோம். இந்த அளவுகோல்களின் தொகுப்பு பைத்தானில் குறியீடு தொகுப்புக்கு அப்பாற்பட்ட பலவிதமான குறியீட்டு பணிகளை உள்ளடக்கியது, எ.கா., குறியீடு சரிசெய்தல், குறியீடு விளக்கம், குறியீடு திருத்துதல், குறியீடு மொழிபெயர்ப்பு, முதலியன, பெரும்பாலான முக்கிய நிரலாக்க மொழிகளில் (பைதான், ஜாவாஸ்கிரிப்ட், ஜாவா, கோ, சி++, ரஸ்ட், முதலியன). Muennighoff et al. 2023 Austin et al. 2021 Liu et al. 2023a Liu et al. 2023b Wang et al. 2022 எங்கள் கண்டுபிடிப்புகள், திறந்த மூல மாதிரிகளில், கிரானைட் குறியீடு மாதிரிகள் ஒட்டுமொத்தமாக அனைத்து மாதிரி அளவுகள் மற்றும் அளவுகோல்களிலும் மிகவும் வலுவான செயல்திறனைக் காட்டுகின்றன (பெரும்பாலும் கிரானைட்டை விட இரு மடங்கு பெரியதாக இருக்கும் மற்ற திறந்த மூல குறியீடு மாதிரிகளை விட சிறப்பாக செயல்படுகின்றன). உதாரணமாக, படம் (மேல்) கிரானைட்-8B-Code-Base-ஐ மற்ற திறந்த மூல அடிப்படை குறியீடு LLM-களுடன், சமீபத்திய உயர்-செயல்திறன் கொண்ட பொது நோக்கு அடிப்படை LLM-களான Mistral ( , ) மற்றும் LLama-3 ( , ) HumanEvalPack ( , ) இல் ஒப்பிடுகிறது. CodeGemma மற்றும் StarCoder2 குறியீட்டை உருவாக்குவதில் நியாயமான செயல்திறனைக் கொண்டிருந்தாலும், அவை HumanEvalPack-ன் குறியீடு சரிசெய்தல் மற்றும் விளக்க வகைகளில் குறிப்பிடத்தக்க வகையில் மோசமாக செயல்படுகின்றன. சராசரியாக, கிரானைட்-8B-Code-Base, HumanEvalPack இல் (33.2% vs 21.3%) கிட்டத்தட்ட 12 புள்ளிகள் வரை மிகவும் போட்டித்தன்மை வாய்ந்த CodeGemma-8B மாதிரியை விட சிறப்பாக செயல்படுகிறது, இது கணிசமாகக் குறைந்த டோக்கன்களில் (4.5T vs 7.5T டோக்கன்கள்) பயிற்சி பெற்றிருந்தாலும். அடிப்படை மாதிரிகளைத் தவிர, எங்கள் கிரானைட் குறியீடு மாதிரிகளின் அறிவுறுத்தல் ட்யூன் செய்யப்பட்ட வகைகள் HumanEvalPack இல் வலுவான செயல்திறனைக் காட்டுகின்றன, மற்ற திறந்த மூல (குறியீடு) அறிவுறுத்தல் மாதிரிகளை விட சிறப்பாக செயல்படுகின்றன, இயற்கை மொழி அறிவுறுத்தல்களுடன் பரந்த அளவிலான குறியீட்டு பணிகளுக்கு நன்மைகளை நிரூபிக்கின்றன (படம் (கீழ்) பார்க்கவும்). 1 Jiang et al. 2023b AI@Meta 2024 Muennighoff et al. 2023 1 மேலும், பகுத்தறிவு சிக்கலான கேள்விகள் மற்றும் பணிகளைத் தீர்ப்பதற்கு முக்கியமானதாக இருப்பதால், எங்கள் கிரானைட்-8B-Code-Base மாதிரியை ஆறு கணித அளவுகோல்களிலும், MATH ( , ), GSM8K ( , ) மற்றும் கணினி கருவிகளுக்கான அணுகலுடன் கூடிய சிக்கல் தீர்க்கும் திறன் ஆகியவற்றையும் நாங்கள் சோதிக்கிறோம், அங்கு எங்கள் கிரானைட் 8B மாதிரி பெரும்பாலான அதிநவீன 7B அல்லது 8B LLM-களை விட சிறந்த செயல்திறனை அடைகிறது. உதாரணமாக, கிரானைட்-8B-Code-Base GSM8K இல் ∼12 புள்ளிகள் மற்றும் MATH இல் ∼6 புள்ளிகள் வரை Llama-3-8B-Base ஐ விட சிறப்பாக செயல்படுகிறது (அட்டவணை பார்க்கவும்). Cobbe et al. 2021 Cobbe et al. 2021 15 கிரானைட் குறியீடு மாதிரிகளின் முக்கிய நன்மைகள்: : கிரானைட் குறியீடு மாதிரிகள் குறியீடு உருவாக்கம், விளக்கம், சரிசெய்தல், திருத்துதல், மொழிபெயர்ப்பு, முதலியன உள்ளிட்ட பல்வேறு வகையான குறியீடு தொடர்பான பணிகளில் போட்டித்தன்மை வாய்ந்த அல்லது அதிநவீன செயல்திறனை அடைகின்றன, இது பல்வேறு குறியீட்டு பணிகளைத் தீர்க்கும் திறனை நிரூபிக்கிறது; அனைத்து ரவுண்டர் குறியீடு LLM : எங்கள் மாதிரிகள் அனைத்தும் IBM-ன் AI நெறிமுறைக் கொள்கைகளின்படி சேகரிக்கப்பட்ட உரிமம்-அனுமதிக்கப்பட்ட தரவுகளில் பயிற்சி பெற்றுள்ளன மற்றும் நம்பகமான நிறுவன பயன்பாட்டிற்காக IBM-ன் கார்ப்பரேட் சட்டக் குழுவால் வழிநடத்தப்படுகிறது. அனைத்து கிரானைட் குறியீடு மாதிரிகளும் அப்பாச்சி 2.0 உரிமத்தின் கீழ் வெளியிடப்படுகின்றன. நம்பகமான நிறுவன-தர LLM 1 எங்கள் முழு தரவு சேகரிப்பு, வடிகட்டுதல் மற்றும் முன் செயலாக்க பைப்லைனைப் பிரிவில் விவரிக்கிறோம் . பிரிவில் மாதிரி கட்டமைப்பு விவரங்களை விவரிக்கிறது, அதைத் தொடர்ந்து பிரிவு இல் பயிற்சி விவரங்கள் உள்ளன. பிரிவு அறிவுறுத்தல் ஃபைன்-ட்யூனிங் பற்றிய விவரங்களை வழங்குகிறது, மேலும் பிரிவு கிரானைட் குறியீடு மாதிரிகளை மற்ற திறந்த மூல LLM-களுடன் ஒப்பிடும் சோதனைகள் மற்றும் முடிவுகளை விவரிக்கிறது. 2 3 4 5 6 2 தரவு சேகரிப்பு இந்த பிரிவில், மாதிரி பயிற்சிக்கு குறியீடு தரவைத் தயாரிக்கப் பயன்படுத்தப்படும் க்ராலிங் மற்றும் வடிகட்டுதல் (பிரிவு ), deduplication (பிரிவு ), HAP/PII வடிகட்டுதல் (பிரிவு ) செயல்முறையை நாங்கள் விவரிக்கிறோம். மாதிரியின் மொழி புரிதல் மற்றும் கணித பகுத்தறிவு திறன்களை மேம்படுத்தப் பயன்படுத்தப்படும் உயர்தர இயற்கை மொழி தரவின் கண்ணோட்டத்தையும் நாங்கள் வழங்குகிறோம். 2.1 2.2 2.3 2.1 தரவு க்ராலிங் மற்றும் வடிகட்டுதல் முன் பயிற்சி குறியீடு தரவு, Github Code Clean , StarCoderdata போன்ற பொதுவில் கிடைக்கக்கூடிய தரவுத்தொகுப்புகளின் கலவையிலிருந்தும், GitHub-லிருந்து கூடுதல் பொது குறியீடு களஞ்சியங்கள் மற்றும் சிக்கல்களிலிருந்தும் பெறப்பட்டது. 300+ மொழிகளில் இருந்து 116 நிரலாக்க மொழிகளின் பட்டியலைத் தக்கவைக்க நாங்கள் மூல தரவை வடிகட்டுகிறோம், இது பின்னிணைப்பு இல் பட்டியலிடப்பட்டுள்ளது. StarCoder ( , ) போலவே, நிரலாக்க மொழிகளுக்கான தரவு ஒதுக்கீடு கோப்பு நீட்டிப்பின் அடிப்படையில் மட்டுமே செய்யப்படுகிறது. மொழி வடிகட்டலுக்குப் பிறகு, குறைந்த தரமான குறியீட்டை வடிகட்ட நான்கு முக்கிய வடிகட்டுதல் விதிகளை நாங்கள் பயன்படுத்துகிறோம் ( , ): (1) 25% க்கும் குறைவான எழுத்துக்கள் கொண்ட கோப்புகளை அகற்றுதல், (2) XSLT மொழியைத் தவிர, முதல் 100 எழுத்துக்களுக்குள் “<?xml version=” என்ற வரி உள்ள கோப்புகளை வடிகட்டுதல், (3) HTML கோப்புகளுக்கு, தெரியும் உரை HTML குறியீட்டின் குறைந்தது 20% ஐயும், குறைந்தபட்ச நீளம் 100 எழுத்துக்களாகவும் உள்ள கோப்புகளை மட்டும் வைத்திருத்தல், (4) JSON மற்றும் YAML கோப்புகளுக்கு, 50 முதல் 5000 எழுத்துக்கள் கொண்ட கோப்புகளை மட்டும் வைத்திருத்தல். நாங்கள் தானாக உருவாக்கப்பட்ட உரையை அகற்றுதல், ஆங்கிலம் அல்லாத சிக்கல்களை வடிகட்டுதல், பாட்களிடமிருந்து கருத்துக்களை விலக்குதல் மற்றும் உரையாடலில் ஈடுபட்டுள்ள பயனர்களின் எண்ணிக்கையை தரத்தின் குறிகாட்டியாகப் பயன்படுத்துதல் உள்ளிட்ட தரமான அளவுகோல்களின் தொகுப்பைப் பயன்படுத்தி GitHub சிக்கல்களை நாங்கள் வடிகட்டுகிறோம். மேலும், மாதிரியின் பரிணாம வளர்ச்சிக்காக, GitHub APIகள் மூலம் கண்டறியப்பட்ட தொடர்புடைய களஞ்சியத்துடன் தொடர்புடைய உரிமத் தகவலுடன் ஒவ்வொரு குறியீடு கோப்பையும் நாங்கள் சிறப்பித்து, உரிமக் குறியீடு கோப்புகளை மட்டும் மாதிரி பயிற்சிக்கு வைத்திருக்கிறோம். 2 3 A Li et al. 2023a Li et al. 2023a 2.2 சரியான மற்றும் மங்கலான deduplication எங்கள் பயிற்சித் தொகுப்பில் (தோராயமாக) ஒத்த குறியீடு உள்ளடக்கங்களைக் கொண்ட ஆவணங்களை அகற்ற, சரியான மற்றும் மங்கலான deduplication உள்ளிட்ட ஒரு தீவிரமான deduplication உத்தியை நாங்கள் பின்பற்றுகிறோம். சரியான deduplication-க்கு, ஆவண உள்ளடக்கத்தில் SHA256 ஹாஷைக் கணக்கிட்டு, ஒரே ஹாஷ்கள் கொண்ட பதிவுகளை அகற்றி, பின்னர் நாங்கள் மங்கலான deduplication-ஐப் பயன்படுத்துகிறோம், இது சில சிறிய வேறுபாடுகளைக் கொண்ட குறியீடு கோப்புகளை அகற்றுவதை நோக்கமாகக் கொண்டுள்ளது. இதைச் செய்ய, நாங்கள் ஒரு இரண்டு-படி முறையைப் பயன்படுத்துகிறோம்: (1) அனைத்து ஆவணங்களின் MinHash-களைக் கணக்கிட்டு, பின்னர் அவற்றின் MinHash கைரேகைகளின் அடிப்படையில் ஆவணங்களை குழுவாக்க Locally Sensitive Hashing (LSH) ஐப் பயன்படுத்துதல், (2) ஒரே பக்கத்தில் உள்ள ஒவ்வொரு ஆவண ஜோடிக்கும் இடையில் Jaccard ஒற்றுமையைக் கணக்கிட்டு, 0.7 என்ற ஒற்றுமை வரம்பின் அடிப்படையில் நகல்களாக ஒரு ஆவணத்தைத் தவிர மற்றவற்றை அடையாளம் காணுதல். பயிற்சித் தரவுத்தொகுப்பின் வளத்தையும் பன்முகத்தன்மையையும் மேம்படுத்த GitHub சிக்கல்கள் உட்பட அனைத்து நிரலாக்க மொழிகளுக்கும் இந்த அருகாமையில்-deduplication செயல்முறையை நாங்கள் பயன்படுத்துகிறோம். 2.3 HAP, PII, தீம்பொருள் வடிகட்டுதல் மாதிரிகளிலிருந்து வெறுக்கத்தக்க, துஷ்பிரயோகமான அல்லது அநாகரிகமான (HAP) மொழியை உருவாக்குவதற்கான சாத்தியக்கூறுகளைக் குறைக்க, பயிற்சித் தொகுப்பிலிருந்து HAP உள்ளடக்கத்தை வடிகட்ட நாங்கள் விடாமுயற்சியுடன் முயற்சிக்கிறோம். முதலில் HAP முக்கிய வார்த்தைகளின் அகராதியை உருவாக்கி, உள்ளடக்கத்தில், கருத்துக்கள் உட்பட, அத்தகைய முக்கிய வார்த்தைகளின் நிகழ்வுகளின் எண்ணிக்கையுடன் ஒவ்வொரு குறியீடு ஆவணத்தையும் சிறப்பிக்கிறோம். HAP வரம்பை மீறும் ஆவணங்களை நாங்கள் வடிகட்டுகிறோம், இது விநியோக பகுப்பாய்வு மற்றும் குறியீடு கோப்புகளின் கைமுறை ஆய்வு ஆகியவற்றின் அடிப்படையில் கணக்கிடப்படுகிறது. மேலும், தனியுரிமையைப் பாதுகாக்க, StarCoder ( , ) ஐப் பின்பற்றி, பயிற்சித் தொகுப்பிலிருந்து தனிப்பட்ட முறையில் அடையாளம் காணக்கூடிய தகவலை (PII) தணிக்க நாங்கள் விடாமுயற்சியுடன் முயற்சிக்கிறோம். குறிப்பாக, IP முகவரிகள், விசைகள், மின்னஞ்சல் முகவரிகள், பெயர்கள், பயனர் பெயர்கள் மற்றும் உள்ளடக்கத்தில் காணப்படும் கடவுச்சொற்களைக் கண்டறிய StarPII மாதிரியை நாங்கள் பயன்படுத்துகிறோம். PII தணிக்கும் படி, PII உரையை NAME , EMAIL , KEY , PASSWORD மற்றும் Li et al. (2023a) இல் உள்ளதைப் போன்ற செயற்கையாக உருவாக்கப்பட்ட IP முகவரியுடன் IP முகவரியை மாற்றுவது போன்ற தொடர்புடைய டோக்கன்களுடன் மாற்றுகிறது. மூல குறியீட்டில் தீம்பொருளின் நிகழ்வுகளைக் கண்டறிந்து அகற்ற எங்கள் தரவுத்தொகுப்புகளை ஸ்கேன் செய்கிறோம். Li et al. 2023a 4 2.4 இயற்கை மொழி தரவுத்தொகுப்புகள் மாதிரி பயிற்சிக்கு குறியீடு தரவைச் சேகரிப்பதைத் தவிர, மாதிரியின் மொழி புரிதல் மற்றும் கணித பகுத்தறிவு திறன்களை மேம்படுத்த பல பொதுவில் கிடைக்கக்கூடிய உயர்தர இயற்கை மொழி தரவுத்தொகுப்புகளை நாங்கள் உருவாக்குகிறோம். இந்த வகையின் கீழ் உள்ள பிரதிநிதி தரவுத்தொகுப்புகளில் வலை ஆவணங்கள் (Stackexchange, CommonCrawl), கணித வலை உரை (OpenWeb-Math; ( ), StackMathQA; ( )), கல்வி உரை (Arxiv, Wikipedia), மற்றும் அறிவுறுத்தல் ட்யூனிங் தரவுத்தொகுப்புகள் (FLAN; ( ), HelpSteer ( , )) ஆகியவை அடங்கும். இந்த ஏற்கனவே முன் செயலாக்கப்பட்ட இயற்கை மொழி தரவுத்தொகுப்புகளை நாங்கள் deduplicate செய்வதில்லை. Paster et al. 2023 Zhang 2024 Longpre et al. 2023 Wang et al. 2023 3 மாதிரி கட்டமைப்பு டிரான்ஸ்ஃபார்மர் டெகோடர் கட்டமைப்பை ( , ) அடிப்படையாகக் கொண்டு பல்வேறு அளவுகளில் குறியீடு மாதிரிகளின் ஒரு தொடரை நாங்கள் பயிற்சி செய்கிறோம். இந்த மாதிரிகளுக்கான மாதிரி ஹைப்பர் அளவுருக்கள் அட்டவணை இல் கொடுக்கப்பட்டுள்ளன. அனைத்து மாதிரி கட்டமைப்புகளுக்கும், கவன ஈர்ப்பு மற்றும் MLP தொகுதிகளின் உள்ளீட்டிற்குப் பயன்படுத்தப்படும் முன்-இயல்பாக்கத்தைப் ( , ) பயன்படுத்துகிறோம். Vaswani et al. 2017 1 Xiong et al. 2020 : கிரானைட்-குறியீடு மாதிரி குடும்பத்தில் மிகச்சிறிய மாதிரி RoPE உட்பொதிப்பு ( , ) மற்றும் பல-தலைப்பு கவனம் ( , ) உடன் பயிற்சி பெற்றுள்ளது. இந்த மாதிரி MLP-க்கு GLU ( , ) உடன் swish செயலாக்க செயல்பாடு ( , ) ஐப் பயன்படுத்துகிறது, இது பொதுவாக swiglu என்றும் குறிப்பிடப்படுகிறது. இயல்பாக்கத்திற்கு, LayerNorm ( , ) ஐ விட RMSNorm ( , ) ஐப் பயன்படுத்துகிறோம், ஏனெனில் இது கணக்கீட்டு ரீதியாக மிகவும் திறமையானது. 3B மாதிரி 2048 டோக்கன்களின் சூழல் நீளத்துடன் பயிற்சி பெற்றுள்ளது. 3B Su et al. 2023 Vaswani et al. 2017 Shazeer 2020 Ramachandran et al. 2017 Ba et al. 2016 Zhang & Sennrich 2019 : 8B மாதிரி 3B மாதிரியைப் போன்றே ஒரு கட்டமைப்பைக் கொண்டுள்ளது, குழு-கேள்வி கவனம் (GQA) ( , ) ஐப் பயன்படுத்துவதைத் தவிர. GQA-ஐப் பயன்படுத்துவது இந்த அளவில் மாதிரி செயல்திறன் மற்றும் அனுமான செயல்திறன் இடையே ஒரு சிறந்த சமரசம் வழங்குகிறது. நாங்கள் 8B மாதிரியை 4096 டோக்கன்களின் சூழல் நீளத்துடன் பயிற்சி செய்கிறோம். 8B Ainslie et al. 2023 : 20B குறியீடு மாதிரி கற்றுக்கொண்ட முழுமையான நிலை உட்பொதிப்புகளுடன் பயிற்சி பெற்றுள்ளது. திறமையான கீழ்நிலை அனுமானத்திற்காக பயிற்சி நேரத்தில் பல-கேள்வி கவனம் ( , ) ஐப் பயன்படுத்துகிறோம். MLP தொகுதிக்கு, GELU செயலாக்க செயல்பாட்டை ( , ) பயன்படுத்துகிறோம். செயலாக்கங்களை இயல்பாக்க, LayerNorm ( , ) ஐப் பயன்படுத்துகிறோம். இந்த மாதிரி 8192 டோக்கன்களின் சூழல் நீளத்துடன் பயிற்சி பெற்றுள்ளது. 20B Shazeer 2019 Hendrycks & Gimpel 2023 Ba et al. 2016 : 34B மாதிரியைப் பயிற்றுவிக்க, 20B மாதிரியின் ஆழமான உயர்வை அதிகரிப்பதற்கான இன் அணுகுமுறையைப் பின்பற்றுகிறோம். குறிப்பாக, முதலில் 52 அடுக்குகளைக் கொண்ட 20B குறியீடு மாதிரியை நகலெடுத்து, பின்னர் அசல் மாதிரியிலிருந்து இறுதி 8 அடுக்குகளையும் அதன் நகலில் இருந்து ஆரம்ப 8 அடுக்குகளையும் அகற்றி இரண்டு மாதிரிகளை உருவாக்குகிறோம். 34B Kim et al. இறுதியாக, கிரானைட்-34B-குறியீடு மாதிரி 88 அடுக்குகளுடன் (விளக்கப்படம் ஐப் பார்க்கவும்) உருவாக்க இரண்டு மாதிரிகளையும் இணைக்கிறோம். ஆழமான உயர்வுக்குப் பிறகு, ஆல் கவனிக்கப்பட்டவற்றுக்கு மாறாக, 20B மாதிரியுடன் ஒப்பிடும்போது செயல்திறனில் குறைவு மிகச் சிறியது என்று நாங்கள் கவனிக்கிறோம். இந்த செயல்திறன், உயர்த்தப்பட்ட 34B மாதிரியின் முன் பயிற்சியைத் தொடர்ந்த பிறகு விரைவாக மீட்டெடுக்கப்படுகிறது. 20B போலவே, முன் பயிற்சியின் போது நாங்கள் 8192 டோக்கன் சூழலைப் பயன்படுத்துகிறோம். 2 Kim et al. 4 முன் பயிற்சி இந்த பிரிவில், மாதிரிகளை முன் பயிற்சி செய்யப் பயன்படுத்தப்பட்ட இரண்டு கட்ட பயிற்சி (பிரிவு ), பயிற்சி நோக்கங்கள் (பிரிவு ), உகப்பாக்கம் (பிரிவு ) மற்றும் உள்கட்டமைப்பு (பிரிவு ) ஆகியவற்றின் விவரங்களை நாங்கள் வழங்குகிறோம். 4.1 4.2 4.3 4.4 4.1 இரண்டு கட்ட பயிற்சி கிரானைட் குறியீடு மாதிரிகள் 3.5T முதல் 4.5T டோக்கன்கள் வரை குறியீடு தரவு மற்றும் குறியீடு தொடர்பான இயற்கை மொழி தரவுத்தொகுப்புகளில் பயிற்சி பெற்றுள்ளன. தரவு பைட் ஜோடி குறியாக்கம் (BPE, ( , )) வழியாக டோக்கனைஸ் செய்யப்பட்டுள்ளது, StarCoder ( , ) போன்ற அதே டோக்கனைசரைப் பயன்படுத்துகிறது. ( , ; , ) ஐப் பின்பற்றி, பின்வருவனவற்றை இரண்டு கட்டங்களில் உயர்தர தரவை நாங்கள் பயன்படுத்துகிறோம். Sennrich et al. 2015 Li et al. 2023a Shen et al. 2024 Hu et al. 2024 • : கட்டம் 1 இன் போது, 3B மற்றும் 8B மாதிரிகள் இரண்டும் 116 மொழிகளைக் கொண்ட 4 டிரில்லியன் டோக்கன்களின் குறியீடு தரவுகளுக்குப் பயிற்சி பெற்றன. 20B அளவுரு மாதிரி 3 டிரில்லியன் டோக்கன் குறியீட்டில் பயிற்சி பெற்றது. 20B மாதிரியின் 1.6T சரிபார்ப்பில் செய்யப்பட்ட ஆழமான உயர்வுக்குப் பிறகு 34B மாதிரி 1.4T டோக்கன்களில் பயிற்சி பெற்றது. கட்டம் 1 (குறியீடு மட்டும் பயிற்சி) • : கட்டம் 2 இல், மாதிரியின் பகுத்தறிவு மற்றும் சிக்கல் தீர்க்கும் திறன்களில் மேலும் மேம்படுத்த, தொழில்நுட்பம், கணிதம் மற்றும் வலை ஆவணங்கள் உள்ளிட்ட பல்வேறு டொமைன்களிலிருந்து கூடுதல் உயர்தர பொதுவில் கிடைக்கக்கூடிய தரவுகளை நாங்கள் சேர்க்கிறோம், இது குறியீடு உருவாக்கத்திற்கு அவசியமானது. நாங்கள் எங்கள் மாதிரிகள் அனைத்தையும் 500B டோக்கன்களுக்கு (80% குறியீடு மற்றும் 20% மொழி தரவு) கட்டம் 2 பயிற்சியில் பயிற்றுவிக்கிறோம். கட்டம் 2 (குறியீடு + மொழி பயிற்சி) 4.2 பயிற்சி நோக்கம் எங்கள் மாதிரிகள் அனைத்தையும் பயிற்றுவிக்க, காரண மொழி மாடலிங் நோக்கம் மற்றும் Fill-In-the-Middle (FIM) ( , ) நோக்கத்தைப் பயன்படுத்துகிறோம். FIM நோக்கம், கொடுக்கப்பட்ட சூழல் மற்றும் அடுத்தடுத்த உரையுடன் செருகப்பட்ட டோக்கன்களைக் கணிக்கும் பணியில் உள்ளது. StarCoder ( , ) போலவே, தொடர்புடைய வடிவமைப்புக் கட்டுப்பாட்டு டோக்கன்களுடன் PSM (Prefix-Suffix-Middle) மற்றும் SPM (Suffix-Prefix-Middle) முறைகள் இரண்டிலும் வேலை செய்ய எங்கள் மாதிரிகளை நாங்கள் பயிற்றுவிக்கிறோம். Bavarian et al. 2022 Li et al. 2023a ஒட்டுமொத்த இழப்பு 2 நோக்கங்களின் எடையுள்ள சேர்க்கையாக கணக்கிடப்படுகிறது: பயிற்சியின் போது α = 0.5 ஐ அனுபவ ரீதியாக அமைத்து, இது நடைமுறையில் சிறப்பாக செயல்படுவத