Mis on Yi-Coder-1.5B-Chat?
Yi-Coder-1.5B-Chat on avatud kaaludega programmeerimise keelemudel, mille 01.AI avaldas 2024. aasta septembris. Tähistus „Chat” tähendab, et see versioon on häälestatud vestluslikele juhistele reageerima, mistõttu sobib see baas- ehk ainult jätkamismudeliga võrreldes paremini päringuteks nagu „selgita seda funktsiooni”, „leia viga” või „kirjuta see kood ümber”.
Mudelil on ligikaudu 1,5 miljardit parameetrit. Parameetrid on õpitud väärtused, mis võimaldavad keelemudelil mustreid ära tunda ja teksti genereerida; üldiselt tähendavad väiksemad parameetrid väiksemaid riistvaranõudeid, kuid võivad vähendada suutlikkust keeruka arutluse ja nüansirohkete programmeerimisülesannete korral. Seetõttu paikneb Yi-Coder-1.5B-Chat praktiliselt lihtsamate kohalike koodi lõpetamise tööriistade ja palju suuremate majutatud programmeerimismudelite vahepeal.
01.AI levitab mudeli kaalusid Apache 2.0 litsentsi alusel. Litsentsitingimustest kinni pidades lubab see mudelit kasutada ärilistel ja mitteärilistel eesmärkidel, muuta, täiendavalt häälestada ning edasi levitada. Arendajad peavad siiski hindama tarkvaralitsentse, turvariske, genereeritud koodi kvaliteeti ja kõiki kohustusi, mis on seotud nende enda juurutusega.
Kuhu see 01.AI mudelivalikus sobitub?
Yi-Coder-1.5B-Chat kuulub 01.AI Yi-Coderi mudeliperre, mis keskendub spetsiaalselt programmeerimisülesannetele. Perre kuulub ka suurem 9B vestlusmudel, mille jõudlus on avaldatud andmete kohaselt 1,5B versioonist võrdlustestides parem, kuid mis vajab rohkem ressursse. See võrdlus aitab mõista praeguse mudeli rolli: maksimaalse programmeerimisvõimekuse asemel seab see esikohale kättesaadavuse, kiiruse ja kohaliku juurutuse.
See ei ole tarbijatele mõeldud vestlusroboti funktsioon ega teenusepakkuja majutatud tellimusmudel. Tegemist on avatud kaaludega mudeliga, mille arendajad laadivad alla ja käitavad ühilduva järeldustarkvara abil. Ametlikus projektimaterjalis on dokumenteeritud kasutamine koos Transformersi, vLLM-i ja SGLangiga, kogukonna loodud teisendused ja kvantiseeritud versioonid toetavad aga ka selliseid tööriistu nagu Ollama, llama.cpp ja LM Studio.
Tehnilised näitajad lühidalt
| Näitaja | Üksikasjad |
|---|---|
| Teenusepakkuja | 01.AI |
| Mudelipere | Yi-Coder |
| Mudeli suurus | Ligikaudu 1,5 miljardit parameetrit |
| Mudeli tüüp | Juhiste järgi häälestatud programmeerimise keelemudel |
| Kontekstiaken | 128K tokenit ehk 131 072 tokenit |
| Treeningandmete ajaline piir | 2023. aasta lõpp |
| Litsents | Apache 2.0 |
| Sisend | Tekst, sealhulgas lähtekood |
| Väljund | Tekst ja lähtekood |
| Majutatud API hind | Selle täpse mudeli ametlikku majutatud kasutuse hinda ei ole kinnitatud |
128K tokeni suurune kontekstilimiit on teenusepakkuja dokumenteeritud näitaja. Token on mudeli kasutatav väike tekstiühik, mistõttu ei vasta see limiit täpselt kindlale sõnade või koodiridade arvule. Tegelikult kasutatava koodi hulk sõltub programmeerimiskeele süntaksist, kommentaaridest, failinimedest, viiba tekstist ja järelduskeskkonna mälupiirangutest.
Selle täpse avatud kaaludega mudeli maksimaalset väljundtokenite limiiti ei õnnestunud kinnitada. Tegelik vastuse pikkus võib sõltuda valitud käituskeskkonnast, genereerimisseadetest, saadaolevast mälust ja viiba jaoks alles jäävast kontekstimahust.
Programmeerimisvõimekus ja võrdlustestide kontekst
Yi-Coder-1.5B-Chat on mõeldud koodi genereerimiseks ja lõpetamiseks, koodi selgitamiseks, vigade otsimiseks, ümbertegemiseks, programmeerimiskeelte vahel tõlkimiseks, testide loomiseks ning vestluslikuks arendusabiks. Näiteks saab seda kasutada väikese funktsiooni kavandi koostamiseks, tundmatu klassi töö selgitamiseks, veale tõenäolise lahenduse pakkumiseks või koodi lõpetamiseks ümbritseva konteksti põhjal.
Yi-Coderi projekt väidab, et selle treening- või jätkutreeningu andmed hõlmavad 52 peamist programmeerimiskeelt. Loetletud keelte ja vormingute hulka kuuluvad näiteks Python, JavaScript, TypeScript, Java, C, C++, C#, Go, Rust, PHP, Ruby, Swift, Kotlin, SQL, HTML, CSS, YAML, JSON ja Shell. Hõlmatus ei taga kõigis keeltes võrdset kvaliteeti, eriti vähem levinud raamistike või spetsialiseeritud teekide puhul.
01.AI avaldatud hindamise kohaselt saavutas 1.5B vestlusmudel HumanEvali tulemuseks 67,7%. Tegemist on teenusepakkuja avaldatud võrdlustesti tulemusega, mitte garantiiga, et mudel genereerib konkreetse projekti jaoks korrektse koodi. HumanEvali tüüpi testid mõõdavad valitud koodigenereerimise ülesandeid ega kajasta täielikult vigade otsimist, hoidlate hooldamist, turbeanalüüsi, sõltuvuste haldamist ega tootmiskeskkonna arendust.
Milles mudel hästi toime tuleb?
- Suhteliselt väikeste funktsioonide ja koodinäidete genereerimine.
- Koodi lõpetamine lähedalasuva konteksti põhjal.
- Koodi selgitamine vestluslikus keeles.
- Silumise etappide ja tõenäoliste paranduste soovitamine.
- Lihtsama koodi ümbertegemine või tõlkimine.
- Kohalik käitamine rakendustes, mis toetavad selle mudelivormingut.
- Pikki viipasid sisaldavate suurte failide või valitud hoidlamaterjali töötlemine.
Pikk kontekstiaken on eriti kasulik siis, kui ülesanne sõltub enamast kui ühest lühikesest koodilõigust. Arendaja saab koos küsimusega esitada mahuka faili, mitu seotud faili või dokumentatsiooni. Rohkema teksti lisamine viipa ei tähenda siiski automaatselt, et mudel mõistab kõiki sõltuvusi või leiab kõige asjakohasema rea. Viiba korrastamine ja õigete failide leidmine on endiselt olulised.
Arutlus, tööriistad ja toetatud modaalsused
Yi-Coder-1.5B-Chat on ainult tekstil põhinev mudel. See võtab vastu tekstiviipasid ja väljastab teksti, sealhulgas lähtekoodi. Esitatud mudeliteave ei kinnita loomulikku pildi-, heli- ega videosisendi või -väljundi tuge, mistõttu ei tohiks seda käsitleda multimodaalse programmeerimisabilisena.
Mudel suudab konteksti lisatud koodi ja juhiste üle tavapärasel keelemudeli viisil arutleda, kuid eraldi arutlusrežiimi ega spetsiaalset arutlusgarantiid ei ole kinnitatud. Selle kompaktsus muudab mudeli kasulikuks tavapärases programmeerimisabis, kuid keerukad arhitektuursed otsused, peened silumisülesanded ja mitmeetapiline analüüs võivad ületada selle usaldusväärsed võimed.
Selle täpse mudeli puhul ei ole kinnitatud loomulikku veebiotsingut, struktureeritud väljundi garantiid, teenusepakkuja partiilist API-t ega esimese osapoole tööriista- või funktsioonikutsete tuge. Mudeli võib integreerida suuremasse rakendusse, mis pakub otsingut, tööriistu, valideerijaid või struktureeritud viipamist, kuid need funktsioonid pärineksid ümbritsevast tarkvarast, mitte mudeli sisseehitatud ja kinnitatud võimekusest.
Juurutus, hinnastamine ja kulude kompromissid
Yi-Coder-1.5B-Chatil puudub ametlik sisend- või väljundtokeni hind, sest seda levitatakse avatud kaaludega mudelina, mitte dokumenteeritud majutatud lõpp-punktina, millel oleks kehtiv hinnakiri. Otsene rahaline kulu sõltub käituskohast: kohalikust riistvarast, renditud serverist, kolmanda osapoole majutusteenusest või organisatsiooni olemasolevast taristust.
Kohalik juurutus võib vähendada korduvaid API-tasusid ja aidata hoida lähtekoodi organisatsiooni enda keskkonnas. Samuti kaasneb sellega töökorralduslik vastutus, sealhulgas ühilduva käituskeskkonna paigaldamine, kvantiseerimise valimine, piisava mälumahu eraldamine, tarkvara uuendamine, jõudluse jälgimine ning masina või teenuse turvamine. Kvantiseerimine võib vähendada mälunõudeid, kuid selle mõju väljundi kvaliteedile ja kiirusele sõltub konkreetsest teostusest.
1,5 miljardi parameetri suurus on mudeli peamine tõhususe eelis. Suuremate programmeerimismudelitega võrreldes on see üldiselt praktilisem kandidaat tagasihoidlikuma riistvara, manustatud arendustööriistade või katsetamise jaoks. Kompromiss seisneb väiksemas võimevarus keeruka arutluse, ulatusliku hoidlamõistmise ja raske koodigenereerimise korral. Selle mudeli kohta antud toimetuslik hinnang hindab kiirust ja kulu soodsalt, kuid need on võrdlevad hinnangud, mitte 01.AI avaldatud tulemused, ning varieeruvad riistvara ja käituskeskkonna järgi.
Piirangud, mida arvestada
1,5 miljardi parameetriga mudel võib genereerida usutavana näivat koodi, mis on puudulik, vale, ebaturvaline või projektiga ühildumatu. Enne kasutamist tuleks genereeritud kood kompileerida, testida, üle vaadata ja kehtiva dokumentatsiooniga võrrelda. See on eriti oluline autentimise, autoriseerimise, krüptograafia, maksete töötlemise, taristu automatiseerimise ja muu suure mõjuga koodi puhul.
Teadaolev teadmiste ajaline piir on 2023. aasta lõpp. Seetõttu ei pruugi mudel teada teeke, API-sid, turvanõrkusi, keelemuudatusi ega raamistike tavasid, mis võeti kasutusele pärast seda aega. Asjakohasust võib parandada kehtiva dokumentatsiooni lisamine viipa või mudeli ühendamine välise otsingusüsteemiga, kuid selline otsing ei ole Yi-Coder-1.5B-Chati puhul sisseehitatud ja kinnitatud võimekus.
128K suurune kontekstiaken on mahukas, kuid ei kõrvalda konteksti valimisega seotud probleeme. Terve hoidla saatmine võib kulutada palju mälu ja raskendada mudelil keskendumist. Sageli on usaldusväärsem töövoog see, kui esitada struktureeritud viibas asjakohased failid, veateated, oodatav käitumine ja piirangud.
Millal valida Yi-Coder-1.5B-Chat?
Vali Yi-Coder-1.5B-Chat siis, kui kohalik käitamine, väike ressursikulu, avatud litsents või katsetamine on tähtsam kui suurim võimalik programmeerimistäpsus. See sobib mõistlikult järgmisteks kasutusjuhtudeks:
- Koodi kohalik genereerimine ja lõpetamine.
- Kerged IDE- või redaktorintegratsioonid.
- Koodi selgitamine ja põhiline abi silumisel.
- Võrguühenduseta või privaatsustundlikud arendustöövood.
- Avatud koodimudeliga täiendava häälestamise katsetused.
- Valitud failide või hoidlaosade analüüs pika konteksti abil.
- Prototüübid, mis vajavad manustatud programmeerimismudelit ilma majutatud teenuse tokenipõhise tasuta.
Suurem programmeerimismudel on sobivam, kui ülesanne nõuab täiustatud arutlust, usaldusväärseid muudatusi mitmes failis, keerukat silumist või väga autonoomset tarkvaraarendust. Suurem Yi-Coder 9B vestlusmudel võib samas mudeliperes pakkuda võimekusest lähtuvat alternatiivi, kuid vajab samuti rohkem ressursse. Majutatud programmeerimisteenus võib olla eelistatav siis, kui kohaliku kontrolli asemel on prioriteediks mugavus, ajakohased teadmised, hallatud taristu või juurdepääs integreeritud tööriistadele.
Üldhinnang
Yi-Coder-1.5B-Chati on kõige parem mõista kui kompaktset kohalikku programmeerimisabilist, mitte autonoomset tarkvarainseneri ega täielikku arendusplatvormi. Selle kõige tugevamad kinnitatud eelised on Apache 2.0 litsents, ligikaudu 1,5 miljardit parameetrit, 128K tokeni suurune kontekstiaken, väidetavalt lai programmeerimiskeelte tugi ja ühilduvus mitme kohaliku järelduskeskkonnaga.
Nende eelistega kaasnevad selged kompromissid. Kinnitatud majutatud hinnastust, loomulikku multimodaalset tuge, veebiotsingut, struktureeritud väljundi garantiid ega sisseehitatud tööriistakutseid mudelil ei ole ning 2023. aasta lõpus lõppev teadmiste piir vähendab selle teadlikkust uuemast tarkvarast. Mõõdukate programmeerimisülesannete ja kohaliku katsetamise korral võib tõhusus olla väärtuslikum kui palju suurema mudeli lisavõimekus. Tootmiskriitilise või väga keeruka inseneritöö puhul tuleks seda kasutada abistava komponendina koos testimise ja inimese tehtava ülevaatusega, mitte lõpliku autoriteedina.

