Mpanoratra: 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 Famintanana Ny Modelin-drazana lehibe (LLM) nampiofanina tamin'ny kaody dia manova ny fizotry ny fampandrosoana rindrambaiko. Mihabetsaka ny fampidirana ny LLM amin'ny kaody ao amin'ny tontolo fampandrosoana rindrambaiko mba hanatsarana ny famokarana ny mpamorona olombelona, ary ny mpanatanteraka mifototra amin'ny LLM dia manomboka mampiseho fampanantenana amin'ny fitantanana asa sarotra amin'ny fahaleovan-tena. Ny fanatontosana ny fahafahan'ny LLM amin'ny kaody dia mitaky fahaiza-manao maro, anisan'izany ny famoronana kaody, fanamboarana bibikely, fanazavana sy fanoratana ny kaody, fitantanana tahiry, sy ny maro hafa. Ao amin'ity asa ity, mampiditra ny andian-tantara Granite momba ny modely kaody mpanazava-fotsiny ho an'ny asa famoronana kaody izahay, nampiofanina tamin'ny kaody voasoratra amin'ny fiteny fandaharana 116. Ny fianakavian'ny modely Granite Code dia ahitana modely manomboka amin'ny 3 ka hatramin'ny 34 lavitrisa parametatra, mety ho an'ny fampiharana manomboka amin'ny asa fanavaozana rindrambaiko sarotra hatramin'ny fampiasana voafetra amin'ny fahatsiarovan-tena an-keriny. Ny fanombanana amin'ny andian-asa feno dia mampiseho fa ny modely Granite Code dia mahatratra tsy tapaka ny fahombiazana hatramin'ny ankehitriny eo amin'ireo LLM kaody misokatra. Ny fianakavian'ny modely Granite Code dia namboarina ho an'ny fizotry ny fampandrosoana rindrambaiko orinasa ary mahomby amin'ny karazana asa coding (ohatra, famoronana kaody, fanamboarana ary fanazavana), ka mahatonga azy ho modely kaody "feno" marobe. Mamoaka ny modely Granite Code rehetra izahay eo ambanin'ny fahazoan-dalana Apache 2.0 ho an'ny fampiasana fikarohana sy ara-barotra. https://github.com/ibm-granite/granite-code-models 1 Fampidirana Nandritra ny ampolon-taonany maro, ny rindrambaiko dia nifamatotra tamin'ny lafiny rehetra amin'ny fiarahamonina misy antsika. Rehefa miakatra ny fangatahana ho an'ny fampandrosoana rindrambaiko, dia lasa zava-dehibe kokoa noho ny hatramin'izay ny fampitomboana ny famokarana fampandrosoana rindrambaiko, ary ny LLM dia manome lalana mampanantena ho an'ny fanampiana ireo mpamorona olombelona. Ny tranga ampiasaina amin'ny orinasa malaza ho an'ny LLM amin'ny famokarana fampandrosoana rindrambaiko dia ahitana ny famoronana kaody, fanazavana kaody, fanamboarana kaody, fanoratana fitsapana vondrona sy fanoratana, fanavaozana rindrambaiko, fitiliana fahatsiarovan-tena, fandikan-teny kaody, sy ny maro hafa. Nandritra ny taona vao haingana, dia nahita fandrosoana haingana ny fahaizan'ny LLM hamorona sy hanodina kaody, ary misy karazana modely manana fahaizana coding mahavariana ankehitriny. Ny modely dia manomboka amin'ny lavitrisa parametatra tokana (ohatra, Llama-7B (Touvron et al., 2023), Gemma-7B (Gemma-Team et al., 2024), sns.) hatramin'ny zato lavitrisa: DBRX (Databricks), Arctic (Snowflake), Grok, Mixtral 8x22B (MistralAI), Command R+ (Cohere), ary miovaova amin'ny ankapobeny ny fampiasana natao, ny modely sasany mikendry ny handrakotra karazana fampiasana ivelan'ny kaody, raha ny hafa kosa mifantoka indrindra amin'ny asa mifandraika amin'ny coding (ohatra, StarCoder (Li et al., 2023a; Lozhkov et al., 2024), CodeGen (Nijkamp et al., 2023), CodeLlama (Rozie`re et al., 2023), ary CodeGemma (CodeGemma Team et al., 2024)). Na izany aza, mbola misy banga manan-danja eo amin'ny sehatry ny LLM ho an'ny kaody amin'izao fotoana izao, indrindra amin'ny tontolon'ny fampandrosoana rindrambaiko orinasa. Voalohany, na dia lehibe aza ny LLM ankapobeny dia afaka mahazo fahombiazana coding tsara, ny habeny dia mahatonga azy ireo lafo vidy. Ny modely kaody kely kokoa ( , ; , ; , ; , ; , ) dia afaka mahazo fahombiazana famoronana kaody tsara amin'ny fonosana kely sy mora kokoa, saingy ny fahombiazana amin'ny asa coding ivelan'ny famoronana (ohatra, fanamboarana sy fanazavana) dia mety ho ambany noho ny fahombiazana famoronana kaody. Li et al. 2023a Lozhkov et al. 2024 Nijkamp et al. 2023 Rozie`re et al. 2023 CodeGemma Team et al. 2024 Amin'ny toe-javatra orinasa maro, ny fampiasana LLM amin'ny kaody dia mety ho sarotra kokoa noho ny fahombiazan'ny modely. Ohatra, na dia misokatra aza ny modely dia matetika miatrika tsy fisian'ny mangarahara momba ny loharano angon-drakitra sy ny fomba fanodinana data izay nampiasaina tamin'ny modely, izay mety hanimba ny fahatokisana ny modely amin'ny toe-javatra saropady sy fehezin'ny lalàna. Ankoatra izany, ny teny fahazoan-dalana amin'ny LLM misokatra ankehitriny dia mety hanery sy hamp Sarotra ny fahaizan'ny orinasa iray mampiasa modely. Eto, mampiditra ny modely Granite Code izahay, andian-tantara LLM kaody tena mahay, natao hanohanana ny fampandrosoana rindrambaiko orinasa amin'ny karazana asa coding marobe. Ny modely Granite Code dia manana variants roa lehibe izay ampiakinay amin'ny habeny efatra (3B, 8B, 20B, ary 34B): modely fototra fototra ho an'ny asa mifandraika amin'ny kaody; Granite Code Base: modely manaraka torolalana novolavolaina tamin'ny alalan'ny fitambaran'ny famindrana Git miaraka amin'ny torolalana olombelona sy angona fanolorana kaody voadio avy amin'ny loharano misokatra. Granite Code Instruct: Ny modely fototra amin'ny andian-tantara dia nampiofanina hatrany am-boalohany tamin'ny paikady fiofanana roa dingana. Amin'ny dingana 1, ny modely dia nampiofanina tamin'ny tokens 3 ka hatramin'ny 4 trillion avy amin'ny fiteny fandaharana 116, miantoka ny fahatakarana feno ny fiteny fandaharana sy ny fitsipika. Amin'ny dingana 2, ny modely dia nampiofanina bebe kokoa tamin'ny tokens 500 lavitrisa tamin'ny fifangaroana voalamina tsara ny angona avo lenta avy amin'ny sehatry ny kaody sy ny fiteny voajanahary mba hanatsarana ny fahaizan'ny modely mifandray. Mampiasa ny tanjon'ny fanabeazana fiteny tsy voafehy izahay mba hampiofanana ny modely fototra amin'ny dingana roa amin'ny fiofanana. Ny modely instruction dia avy amin'ny fanoharana bebe kokoa ny modely fototra nampiofanina teo aloha tamin'ny fitambaran'ny variants voasivan'ny CommitPack ( , ), angona fanarahana torolalana fiteny voajanahary (OASST ( , ), HelpSteer ( , )) ary angona fanolorana matematika misokatra (MathInstruct ( , ) sy MetaMathQA ( , )), anisan'izany ny angona fanolorana kaody voadio mba hanatsarana ny fahaizan'ny fanarahana torolalana sy ny fifandraisana. Muennighoff et al. 2023 Ko¨ pf et al. 2023 Wang et al. 2023 Yue et al. 2023 Yu et al. 2023 Manaova fanombanana feno ny LLM kaodinay amin'ny andian-tsarobidy feno, anisan'izany ny HumanEvalPack ( , ), MBPP(+) ( , ; , ), RepoBench ( , ), ReCode ( , ), sy ny maro hafa. Ity andian-tsarobidy ity dia mandrakotra karazana asa coding maro hafa ankoatra ny famoronana kaody ao amin'ny Python, ohatra, fanamboarana kaody, fanazavana kaody, fanovana kaody, fandikan-teny kaody, sns., amin'ny fiteny fandaharana lehibe indrindra (Python, JavaScript, Java, Go, C++, Rust, sns.). Muennighoff et al. 2023 Austin et al. 2021 Liu et al. 2023a Liu et al. 2023b Wang et al. 2022 Ny zava-javatra hitanay dia mampiseho fa eo amin'ireo modely misokatra, ny modely Granite Code dia mampiseho fahombiazana matanjaka amin'ny haben'ny modely sy sarobidy rehetra (matetika mihoatra ny modely kaody misokatra hafa izay indroa lehibe kokoa noho ny Granite). Ohatra, ny sary (ambony) dia mampiseho fampitahana ny Granite-8B-Code-Base amin'ny LLM kaody fototra misokatra hafa, anisan'izany ny LLM fototra ankapobeny vao haingana toy ny Mistral ( , ) sy LLama-3 ( , ) amin'ny HumanEvalPack ( , ). Raha ny CodeGemma sy StarCoder2 dia mahomby amin'ny famoronana kaody, dia mahomby kokoa amin'ny variants fanamboarana sy fanazavana kaody amin'ny HumanEvalPack. Amin'ny salan'isa, ny Granite-8B-Code-Base dia mihoatra ny CodeGemma-8B mahomby indrindra amin'ny saika 12 isa amin'ny HumanEvalPack (33.2% vs 21.3%), na dia nampiofanina tamin'ny token kely kokoa aza (4.5T vs 7.5T tokens). Raha vantany koa ny modely fototra, ny variants novolavolaina torolalana amin'ny Granite Code dia mampiseho fahombiazana matanjaka ihany koa amin'ny HumanEvalPack, mihoatra ny modely torolalana (code) misokatra hafa, mampiseho tombontsoa amin'ny andian-asa coding lehibe kokoa miaraka amin'ny torolalana fiteny voajanahary (jereo ny sary (ambany)). 1 Jiang et al. 2023b AI@Meta 2024 Muennighoff et al. 2023 1 Ankoatra izany, satria zava-dehibe ny fifandraisana amin'ny famahana ireo fanontaniana sy asa sarotra, dia mampiofana ny Granite-8B-Code-Base modelinay amin'ny benchmarks matematika enina, anisan'izany ny MATH ( , ), GSM8K ( , ) sy famahana olana miaraka amin'ny fidirana amin'ny fitaovana kajy, izay nahatratra fahombiazana tsara kokoa ny Granite 8B model raha ampitahaina amin'ny ankamaroan'ny LLM 7B na 8B ankehitriny. Ohatra, ny Granite-8B-Code-Base dia mihoatra ny Llama-3-8B-Base amin'ny ~12 isa amin'ny GSM8K sy ~6 isa amin'ny MATH (jereo ny latabatra ). Cobbe et al. 2021 Cobbe et al. 2021 15 Ny tombontsoa lehibe amin'ny modely Granite Code dia ahitana: : Ny modely Granite Code dia mahatratra fahombiazana mifaninana na hatramin'ny ankehitriny amin'ny karazana asa mifandraika amin'ny kaody maro samihafa, anisan'izany ny famoronana kaody, fanazavana, fanamboarana, fanovana, fandikan-teny, sns., mampiseho ny fahaizany mamaha asa coding marobe; LLM Kaody Feno : Ny modely rehetra dia nampiofanina tamin'ny angona azo atao fahazoan-dalana araka ny lalàna, voangona araka ny fitsipiky ny IBM AI Ethics ary tarihin'ny ekipa mpisolovava IBM Corporate ho an'ny fampiasana orinasa azo itokisana. Ny modely Granite Code rehetra dia navoaka teo ambanin'ny fahazoan-dalana Apache 2.0. LLM Sarobidy ho an'ny Orinasa azo itokisana 1 Faritintsika ny dingana fanangonana, fanivanana, ary fanodinana angon-drakitra rehetra ao amin'ny fizarana . Ny fizarana dia manoritsoritra ny antsipiriany momba ny rafitry ny modely, arahana ny antsipiriany momba ny fiofanana ao amin'ny Fizarana . Ny fizarana dia manome ny antsipiriany momba ny fanoharana torolalana, ary ny fizarana dia manoritsoritra ny andrana sy ny vokatra mampitaha ny modely Granite Code amin'ny LLM misokatra hafa. 2 3 4 5 6 2 Fanangonana angon-drakitra Amin'ity fizarana ity, manoritsoritra ny fizotry ny fakana sy ny fanivanana (And. ), ny fanesorana ny fitoviana (And. ), ny fanivanana HAP/PII (And. ) nampiasaina mba hanomanana ny angon-drakitra kaody ho an'ny fiofanana amin'ny modely izahay. Manome topy maso ihany koa ny angon-drakitra fiteny voajanahary avo lenta nampiasaina hanatsarana ny fahatakarana fiteny sy ny fahaizana mifandray matematika ny modely. 2.1 2.2 2.3 2.1 Fakana sy Fanivanana Angon-drakitra Ny angon-drakitra kaody mialoha ny fiofanana dia nalaina avy amin'ny fitambaran'ny angona misokatra toy ny Github Code Clean , StarCoderdata , sy ny tahiry kaody sy olana hafa azo jerena avy amin'ny GitHub. Manivana ny angona manta izahay mba hitazonana lisitra fiteny fandaharana 116 amin'ny fiteny 300+ mahery, araka ny voalaza ao amin'ny Appendix . Ny fanendrena ny angona amin'ny fiteny fandaharana dia natao mifototra amin'ny fanitarana ny rakitra, mitovy amin'ny StarCoder ( , ). Aorian'ny fanivanana ny fiteny, dia ampiharinay fitsipika fanivanana telo manan-danja mba hanivànana ny kaody ambany kalitao ( , ): (1) esory ny rakitra tsy misy tarehintsoratra alfabeta mihoatra ny 25%, (2) raha tsy ny fiteny XSLT, esory ny rakitra izay misy ny teny hoe "<?xml version=” ao anatin'ny 100 tarehintsoratra voalohany, (3) ho an'ny rakitra HTML, tazonina ihany ny rakitra izay ny tontolon'ny lahatsoratra hita maso dia mahatratra 20% farafahakeliny amin'ny kaody HTML ary manana halavany farafahakeliny 100 tarehintsoratra, (4) ho an'ny rakitra JSON sy YAML, tazonina ihany ny rakitra izay manana isa tarehintsoratra manomboka amin'ny 50 ka hatramin'ny 5000 tarehintsoratra. Manivana ihany koa ny olana GitHub izahay amin'ny alalan'ny andian-fitsipika kalitao izay ahitana ny fanesorana ny lahatsoratra novokarina ho azy, ny fanivànana ireo olana tsy anglisy, ny famoahana ireo fanehoan-kevitra avy amin'ny bots, ary ny fampiasana ny isan'ny mpampiasa mandray anjara amin'ny fifanakalozan-kevitra ho marika kalitao. Manampy mari-tsoratra isaky ny rakitra kaody amin'ny fampahalalana momba ny fahazoan-dalana mifandraika amin'ny tahiry tsirairay izahay, hita tamin'ny alalan'ny API GitHub ary tazonina ihany ny rakitra manana fahazoan-dalana mora ampiasaina amin'ny fiofanana amin'ny modely. 2 3 A Li et al. 2023a Li et al. 2023a 2.2 Fanesorana ny Fitoviana Marina sy Ny Fanavahana Ny Toe-javatra Mampiasa paikady fanesorana ny fitoviana be izahay, anisan'izany ny fanesorana marina sy ny fanavahana ny toe-javatra, mba hanesorana ireo antontan-taratasy manana atiny kaody (saika) mitovy amin'ny tranombokay fanomanana. Ho an'ny fanesorana marina, aloha izahay dia mamorona hash SHA256 amin'ny atiny antontan-taratasy ary manala ireo firaketana manana hashes mitovy. Aorian'ny fanesorana marina, ampiharinay ny fanavahana ny toe-javatra amin'ny tanjona hanesorana ireo rakitra kaody izay mety manana fiovaovana kely ary noho izany dia manatsara ny angona. Ampiharinay ny fomba fizarana roa amin'izany: (1) mamorona MinHashes amin'ny antontan-taratasy rehetra ary avy eo mampiasa Locally Sensitive Hashing (LSH) mba hanasokajiana ireo antontan-taratasy mifototra amin'ny fantsika MinHash, (2) mandrefy ny Jaccard similarity eo anelanelan'ny mpivady tsirairay amin'ny antontan-taratasy ao amin'ny vokatra mitovy ary manisy mari-tsoratra ireo antontan-taratasy afa-tsy iray ho duplicates mifototra amin'ny fetran'ny fitoviana 0.7. Ampiharinay ity dingana fanesorana akaiky ity amin'ny fiteny fandaharana rehetra, anisan'izany ny olana GitHub mba hanatsarana ny hareny sy ny fahasamihafana amin'ny tranomboky fanomanana. 2.3 Fanivanana HAP, PII, Malware Mba hampihenana ny mety ho famoronana fiteny feno fankahalana, fanararaotana, na fanalam-baraka (HAP) avy amin'ny modely, dia miezaka mafy izahay hanivàna ny votoatin'ny HAP amin'ny tranomboky fanomanana. Mamorona rakibolana teny matoatoa HAP izahay ary manisy mari-tsoratra ny antontan-taratasy kaody tsirairay amin'ny isan'ny fisehoana ny teny matoatoa toy izany ao anatin'ny atiny, anisan'izany ny fanehoan-kevitra. Manivana ireo antontan-taratasy mihoatra ny fetra HAP izahay, izay voalàna mifototra amin'ny famakafakana ara-tsinjarazara sy ny fanaraha-maso tanana ny rakitra kaody. Ankoatra izany, mba hiarovana ny fiainana manokana, manaraka ny StarCoder ( , ) izahay ary miezaka mafy hanala ny fampahalalana manokana (PII) amin'ny tranomboky fanomanana. Amin'ny fomba manokana, mampiasa ny modely StarPII izahay mba hamantarana ny adiresy IP, ny lakile, ny adiresy mailaka, ny anarana, ny anaran'ny mpampiasa, ary ny teny miafina hita ao anatin'ny atiny. Ny dingana fanesorana PII dia manolo ny lahatsoratra PII amin'ny marika mifanaraka amin'izany NAME , EMAIL , KEY , PASSWORD ary manova ny adiresy IP miaraka amin'ny adiresy IP voadio, toy ny ao amin'i Li et al. (2023a). Mampiasa scans ihany koa ny tranombokay izahay mba hamantarana sy hanesorana ireo trangan'ny malware ao amin'ny kaody loharano. Li et al. 2023a 4 2.4 Angona Fiteny Voajanahary Ankoatra ny fanangonana angon-drakitra kaody ho an'ny fiofanana amin'ny modely, dia manamboatra angona fiteny voajanahary avo lenta maro izahay mba hanatsarana ny fahaiza-miteny ny modely amin'ny fiteny sy ny fahaizana mifandray matematika. Ny angona misolo tena eo ambanin'ity sokajy ity dia ahitana antontan-taratasy an-tserasera (Stackexchange, CommonCrawl), lahatsoratra matematika an-tserasera (OpenWeb-Math; ( ), StackMathQA; ( )), lahatsoratra akademika (Arxiv, Wikipedia), ary angona fanoharana torolalana (FLAN; ( ), HelpSteer ( , )). Tsy esorintsika ny fitoviana amin'ireo angona fiteny voajanahary efa voaomana ireo. Paster et al. 2023 Zhang 2024 Longpre et al. 2023 Wang et al. 2023 3 Rakikitry ny Modely Mampiofana andian-tantara modely kaody misy habeny miovaova izahay mifototra amin'ny rafitry ny mpanazava transformer ( , ). Ny hyperparameters an'ny modely ho an'ireo modely ireo dia omena ao amin'ny latabatra . Ho an'ny rafitry ny modely rehetra, mampiasa pre-normalization izahay ( , ): normalisation ampiharina amin'ny fidirana amin'ny fanatanjahantena sy ny sakana MLP. Vaswani et al. 2017 1 Xiong et al. 2020 : Ny modely kely indrindra amin'ny fianakavian'ny modely Granite-code dia nampiofanina amin'ny fampidirana RoPE ( , ) sy Multi-Head Attention ( , ). Ity modely ity dia mampiasa ny swish activation function ( , ) miaraka amin'ny GLU ( , ) ho an'ny MLP, fantatra ihany koa amin'ny anarana hoe swiglu. Ho an'ny normalisation, mampiasa RMSNorm izahay ( , ) satria mahomby kokoa amin'ny kajy noho ny LayerNorm ( , ). Ny modely 3B dia nampiofanina amin'ny halavany context 2048 tokens. 3B Su et al. 2023 Vaswani et al. 2017 Ramachandran et al. 2017 Shazeer 2020 Zhang & Sennrich 2019 Ba et al. 2016 : Ny modely 8B dia manana rafitra mitovy amin'ny modely 3B afa-tsy ny fampiasana Grouped-Query Attention (GQA) ( , ). Ny fampiasana GQA dia manome fifandanjana tsara kokoa eo anelanelan'ny fahombiazan'ny modely sy ny fahombiazan'ny inference amin'ity ambaratonga ity. Ny modely 8B dia nampiofanina amin'ny halavany context 4096 tokens. 8B Ainslie et al. 2023 : Ny modely kaody 20B dia nampiofanina amin'ny fampidirana toerana voalohany. Mampiasa Multi-Query Attention izahay ( , ) mandritra ny fiofanana ho an'ny inference downstream mahomby. Ho an'ny sakana MLP, mampiasa ny GELU activation function izahay ( , ). Amin'ny fanodinana ireo activations, mampiasa LayerNorm izahay ( , ). Ity modely ity dia nampiofanina amin'ny halavany context 8192 tokens. 20B Shazeer 2019 Hendrycks & Gimpel 2023 Ba et al. 2016 : Mba hampiofanana ny modely 34B