Mis on Yi-Coder-1.5B?
Yi-Coder-1.5B on 01.AI arendatud avatud kaaludega ainult dekooderil põhinev põhjuslik keelemudel, mis on mõeldud programmeerimisülesannete jaoks. Praktilises mõttes ennustab ja genereerib see teksti, keskendudes eelkõige lähtekoodile ja sellega seotud tehnilistele vormingutele. Tähis „1.5B“ viitab ligikaudu 1,5 miljardile parameetrile ehk mudeli õpitud väärtustele, mida kasutatakse mustrite tuvastamiseks ja väljundi genereerimiseks.
See kontrollpunkt on Yi-Coder-1.5B baasversioon, mitte juhiste järgi peenhäälestatud variant Yi-Coder-1.5B-Chat. See erinevus on oluline. Baasmudel on eelkõige mõeldud lõpetamisstiilis viipade, jätkuva eeltreenimise või järgnevaks peenhäälestuseks. Tavalistele loomulikus keeles esitatud küsimustele vastates ei tohiks eeldada, et see käitub nagu viimistletud vestlev kodeerimisassistent.
01.AI avaldas Yi-Coder-1.5B 5. septembril 2024. Mudeli kaalud on saadaval enda hallatavas või ühilduva kolmanda osapoole taristus kasutamiseks ning Yi-Coderi projekt dokumenteerib kasutuse koos Transformersi, vLLM-i ja Ollamaga.
Põhivõimekus ja keelte tugi
Yi-Coder-1.5B on mõeldud koodi lõpetamiseks, koodi genereerimiseks, koodi tõlkimiseks, silumise abistamiseks ja koodi mõistmiseks. Seda saab kasutada osaliselt kirjutatud lähtekoodi jätkamiseks, kirjelduse põhjal teostuse genereerimiseks, koodi selgitamiseks või teisendamiseks ning pikkade programmeerimisviipade töötlemiseks.
01.AI Yi-Coderi projekti andmetel toetab perekond 52 peamist programmeerimiskeelt ja programmeerimisega seotud vormingut. Dokumenteeritud näidete hulka kuuluvad Python, JavaScript, Java, C++, C#, Go, Rust, PHP, TypeScript, SQL, HTML, CSS, YAML, JSON, Shell, Ruby, Swift, Kotlin, Scala, R, Lua, Perl ja Julia. Selline lai tugi on kasulik hoidlates, kus kasutatakse rakendusekoodi, konfiguratsiooni, märgendust, skripte ja andmebaasipäringuid koos, mitte ainult üht keelt.
Baasmudeli ülesehituse tõttu sobib see kõige loomulikumalt lõpetamisele keskenduvate töövoogudega. Näiteks võib kohaliku redaktori integratsioon anda mudelile osaliselt kirjutatud funktsiooni ja paluda selle lõpetada. Peenhäälestusprojekt võib kontrollpunkti kohandada ka konkreetse koodistiili või ettevõttesisese programmeerimiskorpuse järgi, võttes arvesse litsentsi ja kasutuskeskkonna nõudeid.
128K kontekstiaken: kasulik, kuid ressursimahukas
Mudeli dokumenteeritud maksimaalne konteksti pikkus on 128K tokenit ehk kaasasolevates mudeliandmetes 131 072 tokenit. Kontekstiaken näitab sisendi ja genereeritud vestlusajaloo hulka, mida mudel saab ühe päringu puhul arvesse võtta. See on programmeerimisel eriti oluline, sest ülesanne võib hõlmata korraga mitut lähtefaili, dokumentatsiooni, liideseid, teste ja konfiguratsioonifaile.
128K akna korral võib Yi-Coder-1.5B sobida suurte failide uurimiseks, hoidlapõhisteks viipadeks, pika tehnilise dokumentatsiooni töötlemiseks ja lähtekoodi analüüsiks, mis ületaks paljude väiksema kontekstiga mudelite piiranguid. Kontekstipiirang ei taga, et väga pika viiba kõiki üksikasju pööratakse võrdselt tähelepanu, ning tegelik piir sõltub teenindusraamistikust ja saadaolevast mälust.
Esitatud uurimismaterjal ei määratle selle kontrollpunkti jaoks eraldi maksimaalset väljundtokenite piirangut. Seetõttu tuleks 128K suurust käsitleda dokumenteeritud kogu konteksti võimekusena, mitte eeldada, et pärast suure viiba esitamist on kogu aken genereeritava väljundi jaoks vaba.
Jõudluse ja arutlusvõime kompromissid
01.AI teatab oma loetletud mitmekeelse HumanEvali võrdluse keskmiseks tulemuseks 33,6 ning avaldatud matemaatika-programmeerimise võrdluse tulemuseks 39,7. Need on teenusepakkuja esitatud võrdlustulemused, mitte sõltumatud garantiid. Need võivad viidata mudeli kavandatud keskendumisele kodeerimisele, kuid ei ennusta töökindlust iga keele, hoidla või tootmisülesande puhul.
Toimetuse hinnangul on mudeli kõige selgem kompromiss selle väike parameetrite arv. 1,5 miljardi parameetriga mudel vajab üldjuhul vähem ressursse ning võib pakkuda palju suurematest kodeerimismudelitest kiiremat ja soodsamat kohalikku järeldamist. Esitatud võrdlevas hinnangus saab selle kiirus 8 punkti 10-st ja kulu 9 punkti 10-st, kuid need on toimetuse hinnangud, mitte 01.AI spetsifikatsioonid. Tegelik kiirus sõltub riistvarast, kvantimisest, konteksti pikkusest, partii suurusest ja teenindustarkvarast.
Sama kompaktne ülesehitus piirab arutluse sügavust. Esitatud hinnangus saab arutlusvõime 3 punkti 10-st ja kodeerimisvõime 5 punkti 10-st. Ka need on toimetuse hinnangud, mitte teenusepakkuja avaldatud mõõtmised. Praktilises kasutuses tasub Yi-Coder-1.5B-d käsitleda pigem kerge kodeerimiskomponendi kui suure töökindlusega tarkvarainsenerina, kes suudaks keerukaid mitmeetapilisi muudatusi iseseisvalt kavandada, testida ja valideerida.
Toetatud sisendid, väljundid ja tööriistad
Selle täpse kontrollpunkti puhul on kinnitatud modaalsusteks tekstisisend ja tekstiväljund. Kinnitatud ei ole loomulikku pildi-, heli- ega videiosisendit või -väljundit ning esitatud uurimismaterjalis puuduvad tõendid, et Yi-Coder-1.5B genereeriks pilte, kõnet, embedding'u-vektoreid või muud mittetekstilist väljundit.
Mudel suudab genereerida koodi tekstina, kuid uurimismaterjal ei kinnita sisseehitatud funktsioonikutseid, tööriistade kasutamist, veebotsingut, koodi käitamist ega agendikäituskeskkonda. Väline rakendus võib ühendada mudeli tööriistade, kompilaatori, testide või failisüsteemiga, kuid need oleksid ümbritseva rakenduse, mitte kontrollpunkti kinnitatud loomulikud võimed.
Voogedastus on mudeliandmetes märgitud toetatuks, kuigi täpne käitumine sõltub teenindusraamistikust. Toetatud on ka peenhäälestus. Selle konkreetse mudeli kohta ei ole dokumenteeritud kinnitatud JSON-režiimi, struktureeritud väljundi garantiid, vahemällu salvestamise funktsiooni ega partiiliidest.
Juurutamine, litsents ja hinnastamine
Yi-Coder-1.5B levitatakse allalaaditavate avatud kaaludena Hugging Face'i kaudu ning Yi-Coderi projekt dokumenteerib juurutamist Transformersi, vLLM-i ja Ollama abil. See annab arendajatele mitu võimalust kohalikuks järeldamiseks või privaatses taristus kasutamiseks, ilma et oleks vaja teenusepakkuja hallatavat lõpp-punkti.
01.AI sõnul levitatakse Yi-Coderi koodi ja kaalusid Apache 2.0 litsentsi alusel. See lubav litsents võib toetada ärilist kasutust ja muudetud juurutusi, kuid kasutajad peaksid siiski üle vaatama litsentsi teksti, mudelikaardi juhised, privaatsuskohustused ja kõik reeglid, mida kohaldatakse viipamisel või peenhäälestamisel kasutatavate andmete suhtes.
Ülevaadatud esmase osapoole dokumentatsioonist ei leitud täpse Yi-Coder-1.5B mudeli ametlikku hostitud API hinda tokeni kohta. Seetõttu ei ole teatamiseks kinnitatud korduvat tellimishinda ega teenusepakkuja hostitud sisendi/väljundi hinda. Majanduslik eelis seisneb peamiselt allalaaditavates kaaludes ja võimaluses käitada mudelit kasutaja valitud taristus. Rakenduvad siiski arvutus-, salvestus-, arendus- ja hostimiskulud.
Peamised tugevused
- Väike ressursivajadus: Ligikaudu 1,5 miljardit parameetrit muudab mudeli paljudest suurematest kodeerimismudelitest praktilisemaks kohalikuks või piiratud ressurssidega juurutuseks.
- Pikk kontekst: Dokumenteeritud 128K tokeni aken toetab suuri lähtefaile, mitme faili põhiseid viipasid ja hoidlapõhist analüüsi.
- Lai keelte tugi: Yi-Coderi perekond toetab 52 programmeerimiskeelt ja seotud vormingut, sealhulgas levinud rakenduste, skriptimise, andmete ja konfiguratsiooni keeli.
- Avatud juurutus: Allalaaditavad kaalud, Apache 2.0 litsents ja ühilduvus Transformersi, vLLM-i ja Ollamaga annavad hostimise üle paindliku kontrolli.
- Peenhäälestuse potentsiaal: Mudel võib olla lähtepunkt spetsialiseeritud kodeerimistöövoogudele või domeenipõhisele kohandamisele.
Piirangud, millega arvestada
- Baasmudel, mitte vestlusmudel: See ei ole juhiste järgi peenhäälestatud variant Yi-Coder-1.5B-Chat, mistõttu võib vestluslik käitumine vajada rakenduse viipasid või täiendavat peenhäälestust.
- Piiratud arutlussügavus: Mudeli väike suurus piirab tõenäoliselt keerukat planeerimist, rasket silumist ja töökindlaid muudatusi mitmes failis.
- Kinnitatud agendifunktsioonid puuduvad: Selle kontrollpunkti puhul ei ole tõestatud tööriistade kutsumist, veebotsingut, koodi käitamist ega struktureeritud väljundi garantiisid.
- Ainult tekstipõhine modaalsus: Esitatud uurimismaterjal ei kinnita Yi-Coder-1.5B puhul pildi-, heli- ega videosisendit või -väljundit.
- Pika konteksti ressursinõudlikkus: 128K tokeni töötlemine võib nõuda palju mälu ja vähendada järeldamise kiirust, eriti tagasihoidliku jõudlusega riistvaral.
- Võrdlustulemuste ebakindlus: Saadaolevad võrdlusnäitajad pärinevad 01.AI-lt ning jõudlus võib sõltuvalt keelest, viiba ülesehitusest ja koodibaasist märgatavalt erineda.
Millal valida Yi-Coder-1.5B?
Vali Yi-Coder-1.5B siis, kui vajad kompaktset allalaaditavat kodeerimismudelit, mida saad enda kontrolli all käitada. See sobib kohaliku koodi lõpetamise, avatud mudelitega katsetamise, mitmekeelse programmeerimise toe, pika kontekstiga lähtekoodi uurimise ja peenhäälestusprojektide jaoks, kus väiksem lähtepunkt on eelistatud.
See on eriti ahvatlev juhul, kui kohustusliku hostitud API vältimine on tähtsam kui võimalikult kõrge arutluskvaliteet. Arendaja saab valida riistvara ja teenindustarkvara üksteisest sõltumatult, lõimida mudeli redaktori või ettevõttesisese süsteemiga ning hoida juurutuse organisatsiooni kontrolli all. Mudeli suur kontekstiaken võib olla kasulik ka siis, kui ülesanne nõuab rohkem ümbritsevat koodi, kui kerge mudel tavaliselt vastu võtaks.
Teistsugune lahendus on sobivam juhul, kui ülesanne eeldab töökindlat autonoomset tarkvaraarendust, keerukat arutlust, kontrollitud tööriistakutseid, veebipõhist uurimist, multimodaalset mõistmist või viimistletud vestluskogemust. Sellistel juhtudel võib suurem juhiste järgi peenhäälestatud kodeerimismudel või hostitud arendusassistent pakkuda paremat töökindlust, isegi kui see maksab rohkem või nõuab andmete saatmist välisesse teenusesse. Yi-Coderi perekonna sees on vestlusvariant asjakohasem võrdlus siis, kui nõutud on juhiste järgimisel põhinev dialoog, mitte toores lõpetamine, kuid esitatud uurimismaterjal ei paku nende kahe üksikasjalikku jõudlusvõrdlust.
Kokkuvõte
Yi-Coder-1.5B-d tuleks eelkõige mõista väikese avatud kaaludega kodeerimise alusmudelina, mitte täieliku kodeerimisagendi või tarbijatele mõeldud vestlusrobotina. Ligikaudu 1,5 miljardi parameetri, 128K tokeni konteksti, 52 keele toe, Apache 2.0 litsentsi ja levinud juurutustööriistade toe kombinatsioon muudab selle kasulikuks kuluteadlikes kohalikes kodeerimistöövoogudes. Kompromissiks on piiratud arutlussügavus ning kinnitatud sisseehitatud multimodaalsete, veebi-, tööriistakutse- ja hostitud API funktsioonide puudumine. Mudeli väärtus on suurim siis, kui kontroll, teisaldatavus ja väikesed käitamiskulud on tähtsamad kui maksimaalne kodeerimise töökindlus.

