Granite Code

Granite-8B-Code-Instruct

by IBM watsonx · Aegunud, kuid ajaloolistel ja teaduslikel eesmärkidel endiselt avalikult kättesaadav

IBM Granite-8B-Code-Instruct on 8 miljardi parameetriga Apache 2.0 litsentsi alusel avaldatud avatud kaaludega koodimudel, mis jõudis kasutajateni 2024. aasta mais. See toetab tekstipõhist koodi genereerimist, selgitamist, parandamist, teisendamist ja dokumenteerimist 4096 märgi suuruses kontekstiaknas. Mudelit saab ühilduvate avatud mudelite tööriistade abil kohapeal käitada, kuid IBM märgib algse 4K kontrollpunkti nüüd aegunuks ja soovitab uute tootmislahenduste jaoks uuemaid Granite’i mudeliperekondi.

Tekst Arutlusvõime Programmeerimine
Granite-8B-Code-Instruct on IBM Researchi 6. mail 2024 avaldatud avatud kaaludega koodimudel. Mudel on peenhäälestatud mudelist Granite-8B-Code-Base-4K ning genereerib levinud programmeerimisülesannete jaoks teksti ja lähtekoodi 4096 märgi pikkuses kontekstiaknas. Apache 2.0 litsents ja võimalus mudelit kohapeal juurutada muudavad selle sobivaks katsetamiseks, uurimistööks ja väiksemateks kodeerimistöödeks, kuid selle aegunud staatus ja lühike kontekst piiravad sobivust uute tootmissüsteemide jaoks.
Väljundid

Mida Granite-8B-Code-Instruct suudab teha

Tekst
Sisendid

Mida see mõistab

Tekst
Võimekused

Abifunktsioonid

Peenhäälestamine
Mudeli profiil

Jõudlusnäitajad

5/10 Arutlusvõime
7/10 Programmeerimine
7/10 Kiirus
9/10 Kulutõhusus
Detailid

Tehnilised andmed

Mudeliseeria Granite Code
Tüüp Programmeerimine
Konteksti maht 4K märki/tokenit
Välja antud 6. mai 2024
Olek Aegunud, kuid ajaloolistel ja teaduslikel eesmärkidel endiselt avalikult kättesaadav
Teadmiste ajapiiri märkused

IBMi autoriteetsel mudelikaardil ei ole selle konkreetse kontrollpunkti kohta kindlat teadmiste lõppkuupäeva avaldatud.

Mudeli selgitused

Täpset algset kontrollpunkti tähistatakse tavaliselt kui ibm-granite/granite-8b-code-instruct-4k. Tegemist on 8 miljardi parameetriga BF16-tüüpi põhjusliku keelemudeliga, mida on kohandatud mudelist Granite-8B-Code-Base-4K. IBMi praeguses mudelikaardis on see märgitud aegunuks ja uute projektide jaoks mittesoovitatavaks, sest uuemad Granite’i mudelipered pakuvad paremaid koodikirjutamise võimalusi. Eraldi mudel Granite-8B-Code-Instruct-128K avaldati 18. juulil 2024 ning seda ei tohiks segi ajada selle 4K-mudeliga. Avatud kaaludega kontrollpunkti ametlikku sümbolipõhist API-hinnastust ei leitud.

Mudeli juhend

Granite-8B-Code-Instruct: IBM-i avatud kaaludega 4K kontekstiga koodimudel

Granite-8B-Code-Instruct on IBM Researchi 8 miljardi parameetriga Apache 2.0 litsentsi alusel levitatav koodikirjutamise keelemudel. Algne 4096 tokeniga mudel on loodud koodi genereerimiseks, selgitamiseks, parandamiseks ja tõlkimiseks, dokumentatsiooni koostamiseks ning juhiste järgimiseks. Seda saab kasutada avatud mudelitega ühilduvate tööriistade kaudu, kuid IBM peab nüüd konkreetset kontrollpunkti aegunuks ja soovitab uute projektide jaoks kasutada uuemaid Granite'i mudeliperesid.

Mis on Granite-8B-Code-Instruct?

Granite-8B-Code-Instruct on IBM Researchi välja töötatud 8 miljardi parameetriga ainult dekooderiga keelemudel. See kuulub IBM-i algsesse Granite Code'i mudeliperre ning on mudeli Granite-8B-Code-Base-4K juhiste järgi häälestatud versioon. Praktilises mõttes on see loodud vastama programmeerimisega seotud päringutele, mitte lihtsalt ennustama järgmisi märke struktureerimata lähtekoodi korpuses.

Mudel suudab genereerida koodi, selgitada olemasolevat koodi, soovitada parandusi, teisendada koodi ühest programmeerimiskeelest teise, luua dokumentatsiooni ja järgida programmeerimisega seotud kirjalikke juhiseid. Seda levitatakse avatud kaaludena Apache 2.0 litsentsi alusel, mis üldjuhul lubab litsentsitingimustest kinni pidades mudelit äriliselt kasutada, muuta ja edasi levitada.

See leht käsitleb algset 4K kontrollpunkti, mida tavaliselt tähistatakse kui ibm-granite/granite-8b-code-instruct-4k. IBM avaldas hiljem eraldi mudeli Granite-8B-Code-Instruct-128K. Neid kahte kontrollpunkti ei tohiks käsitleda sama mudelina: 128K variandil on oluliselt erinev konteksti suurus ja väljalaskeajalugu.

Teenusepakkuja ja koht IBM-i mudelivalikus

Mudeli töötas välja IBM Research ning IBM Granite avaldab seda Hugging Face'is Granite'i organisatsiooni kaudu. Tegemist on avatud mudeliga, mille saab alla laadida ja iseseisvalt käivitada, mitte kasutada seda ainult IBM-i hallatava vestlusroboti või teenusepakkuja kontrollitud tööriistaliidese kaudu.

IBM-i laiemas kataloogis esindab Granite-8B-Code-Instruct varasemat programmeerimisele keskendunud mudelipõlvkonda. IBM-i praeguse mudeliteabe kohaselt on algne 4K kontrollpunkt aegunud ja seda ei soovitata uute projektide jaoks, sest uuemad Granite'i mudelipered pakuvad paremaid kodeerimisvõimalusi. Kaalud on endiselt avalikult kättesaadavad, mistõttu võib mudel olla kasulik ajaloolistes võrdlustes, reprodutseeritavas teadustöös ja kohalikus katsetamises.

Mida see teha suudab?

Granite-8B-Code-Instruct võtab vastu tekstipäringuid ja tagastab teksti. Kasutaja võib paluda sellel kirjutada funktsiooni, selgitada klassi, tuvastada tõenäolise vea, teisendada koodi teise programmeerimiskeelde või luua kommentaare ja dokumentatsiooni. See sobib ka väiksemateks koodiabiga seotud töövoogudeks, kus asjakohane lähtefail ja ülesande kirjeldus mahuvad mugavalt kontekstiaknasse.

  • koodi genereerimine loomulikus keeles esitatud nõuete põhjal
  • olemasoleva koodi lõpetamine või muutmine
  • koodi ja programmeerimiskontseptsioonide selgitamine
  • veaparanduste ja koodiparanduste soovitamine
  • koodi tõlkimine või teisendamine programmeerimiskeelte vahel
  • dokumentatsiooni, kommentaaride ja kokkuvõtete koostamine
  • kodeerimisele suunatud juhiste ja näidete järgimine

IBM-i andmetel hõlmas Granite Code'i laiem treeningandmestik 116 programmeerimiskeeles kirjutatud koodi. Juhiste järgi häälestamise andmekogum sisaldas koodimuudatusi, matemaatikat, koodiabi, API-kutsete näiteid ja üldisi keelejuhiseid. See taust toetab programmeerimisega seotud päringuid, kuid ei taga ühesugust kvaliteeti kõigis keeltes, raamistikutes ega spetsialiseeritud valdkondades.

Kontekstiaken ja juurutamine

Algsel mudelil on kontrollitud 4096 märgi suurune kontekstiaken. Märk on tekstifragment, seega hõlmab see piirang päringut, edastatud lähtekoodi, juhiseid ja mudeli vastuse konteksti. Suured koodirepositooriumid, pikad logid või mitu lähtefaili tuleb seetõttu võib-olla jagada väiksemateks päringuteks.

Mudel on saadaval BF16-vormingus ning seda saab laadida ühilduvate avatud mudelite tööriistadega, näiteks Transformersiga. IBM-i mudelidokumentatsioon ja repositoorium nimetavad ühilduvana ka teenindus- või käitustööriistu, sealhulgas vLLM-i, SGLang-i ja Ollamat. Sellised funktsioonid nagu voogedastus, pakktöötlus või OpenAI-ga ühilduvad lõpp-punktid sõltuvad valitud juurutuskihist; need ei ole kontrollpunkti loomupärased väljundivõimalused.

Selle täpse mudeli kohta ei ole esitatud 4096 märgi suurusest kontekstiaknast eraldiseisvat kontrollitud maksimaalset väljundimärkide arvu. Tegelikus käituskeskkonnas sõltub kasutatav vastuse pikkus sellest, kui suure osa kontekstist hõivab päring ning milline on teenindusraamistiku konfiguratsioon.

Sisend, väljund ja tööriistade tugi

See on ainult tekstipõhine põhjuslik keelemudel. See võtab vastu teksti ja genereerib teksti, sealhulgas lähtekoodi ning loomulikus keeles selgitusi. Mudel ei võta algupäraselt vastu pilte, heli ega videot ega genereeri pilte, heli, videot, kõnet, muusikat ega esitusi.

Treeningandmed sisaldasid funktsioonikutsete ja API-kutsete näiteid, mis võivad aidata mudelil kirjutada kutseid või kirjeldada integratsiooni. Kontrollpunkti ei tohiks siiski käsitleda teenusepakkuja hallatava loomuliku tööriista-API-na. See ei saa iseseisvalt funktsiooni käivitada, veebis sirvida, andmebaasile juurde pääseda ega välist rakendust kasutada. Need toimingud nõuavad rakenduse käituskeskkonda või orkestreerimiskihti, mis tõlgendab mudeli teksti ja teeb soovitud toimingu.

Samuti ei ole struktureeritud JSON-vastuseid selle kontrollpunkti eraldi loomuliku JSON-režiimina dokumenteeritud. Rakendus võib paluda kindlat vormingut ja tulemust valideerida, kuid vormingu jõustamine tuleneks ümbritsevast tarkvarast, mitte kontrollitud mudelifunktsioonist.

Arutlusvõime, kodeerimise kvaliteet, kiirus ja maksumus

Granite-8B-Code-Instruct suudab teha koodiga seotud arutlusi: see võib lahendada programmeerimisülesande, selgitada, miks muudatus võib vea parandada, või kirjeldada rakendamise etappe. Seda tuleks mõista keelemudeli arutlusvõimena, mitte eraldi dokumenteeritud arutlusrežiimi või garanteeritud mõttekäigu võimekusena.

Selle 8 miljardi parameetri suurus on praktiline kompromiss. Võrreldes palju suuremate majutatud mudelitega võib see sobida paremini kohalikuks katsetamiseks ja nõuda vähem taristut. Samuti väldib see mudeli enda riistvaral käitamisel märgipõhiseid API-tasusid, kuigi kohalik majutus tekitab endiselt arvutus-, salvestus-, hooldus- ja arenduskulusid. Väiksemad avatud mudelid võivad olla suurtest mudelitest ka kiiremad ja lihtsamini juurutatavad, kuid nende arutluskäik keerukate ülesannete puhul võib olla vähem usaldusväärne, jõudlus tundmatutes keeltes nõrgem ning pikkade lähtefailide töötlemine vähem töökindel.

Esitatud toimetajahinnangu kohaselt on selle kodeerimisvõimekus 7 punkti 10-st, kiirus 7 punkti 10-st ja maksumus 9 punkti 10-st. Need on toimetuse hinnangud, mitte IBM-i avaldatud võrdlustulemused. Need kajastavad mudeli avatud kaaludega kasutamise kuluefektiivsust ja keskendumist kodeerimisele, mitte konkreetse projekti jõudluse garantiid.

Hinnakujundus ja litsents

Avatud kaaludega Granite-8B-Code-Instructi kontrollpunkti ametlikku märgipõhist API-hinda ei leitud. Kuna mudeli saab alla laadida ja ühilduva taristuga käivitada, on peamine rahaline kaalutlus majutamise ja käitamise kulu, mitte IBM-i dokumenteeritud järelduste tegemise tasu selle täpse mudeli eest.

Mudel on välja antud Apache 2.0 litsentsi alusel. See lubav litsents toetab teadustööd ja ärilist kasutust, muutmist ning edasi levitamist, kui litsentsi tingimustest kinni peetakse. Kasutajad vastutavad endiselt kolmanda osapoole koodi, genereeritud väljundi, turvariskide ja oma juurutuskeskkonnaga seotud kohustuste hindamise eest.

Piirangud ja aegunud staatus

Kõige olulisem piirang on mudeli praegune staatus. IBM märgib Granite-8B-Code-Instruct-4K aegunuks ega soovita seda uute projektide jaoks. Uuemad Granite'i mudelid võivad pakkuda ajakohasemat hooldust, pikemat konteksti või paremat kodeerimisjõudlust. See ei muuda vana kontrollpunkti kasutuskõlbmatuks, kuid muudab selle valimise põhjendust: see sobib paremini teadustööks, kohalikuks testimiseks, õppetööks või ajalooliseks võrdluseks kui uue kriitilise tähtsusega kodeerimisteenuse aluseks.

4096 märgi suurune kontekst piirab ka repositooriumitasemel tööd. Ulatuslikku koodi, nõudeid, testiväljundit ja dokumentatsiooni sisaldav päring võib vaba ruumi kiiresti ära kasutada. Jõudlus võib olla nõrgem programmeerimiskeeltes või ülesannetes, mis olid juhiste järgi häälestamise andmetes alaesindatud. IBM soovitab domeeniväliste keelte puhul kasutada väheste näidetega juhiseid ning enne kriitilist juurutamist teha ohutusteste ja sihtotstarbelist häälestamist.

Selle täpse kontrollpunkti kohta ei ole esitatud mudeliteabes teadmiste lõppkuupäeva. Kasutajad ei tohiks seetõttu eeldada, et mudel tunneb praeguseid teeke, API-sid, turvanõuandeid või kodeerimistavasid. Genereeritud kood tuleb üle vaadata, testida ja turvanõrkuste suhtes skannida, mitte seda aktsepteerida üksnes seetõttu, et see näib usutav.

Millal valida Granite-8B-Code-Instruct?

See mudel on mõistlik valik, kui prioriteediks on avatud litsentsiga kohapeal käivitatav kodeerimismudel ning töö mahub lühikesse konteksti. Sobivad näited on järgmised:

  • varase IBM Granite Code'i mudeli katsetamine kohalikul riistvaral
  • juhiste järgi häälestatud kodeerimise keelemudelite uurimine
  • väikesed koodi genereerimise, selgitamise, parandamise ja dokumenteerimise töövood
  • õppeotstarbelised näited, mille puhul on allalaaditavad kaalud kasulikud
  • ajaloolised võrdlused hilisemate Granite Code'i kontrollpunktidega

Apache 2.0 litsents võib olla kasulik ka siis, kui meeskond soovib juurutamise üle suuremat kontrolli, kui pakub majutatud suletud API. Kompromiss seisneb selles, et meeskond peab ise tagama käituskeskkonna, seire, turvakontrollid, hindamisprotsessi ja mudeli hoolduse.

Millal võib muu valik olla sobivam?

Valige uuem aktiivselt toetatud kodeerimismudel, kui projekt vajab praegust tootmiskasutuse soovitust, suuremat kontekstiakent või paremat jõudlust keerukates repositooriumitaseme ülesannetes. IBM-i mudeliperes on pikema konteksti vajaduse korral asjakohane eraldi kontrollpunkt Granite-8B-Code-Instruct-128K, kuid seda tuleks hinnata eraldi, mitte eeldada, et selle jõudlus on algse mudeliga identne.

Hallatav mudel või majutatud kodeerimisteenus võib olla eelistatav siis, kui meeskond vajab teenusepakkuja hallatavat skaleerimist, seiret, tuge või loomulikku tööriistade käivitamise kihti. Seevastu võib suurem mudel olla sobivam, kui keeruka silumise, tundmatute koodibaaside või mitmeastmelise arutluse puhul on õigsus tähtsam kui kohalik maksumus ja kiirus.

Kokkuvõte

Granite-8B-Code-Instruct on selge näide IBM-i varasest avatud kodeerimismudelite strateegiast: 8 miljardi parameetriga Apache 2.0 litsentsiga mudel, mis keskendub tekstipõhisele programmeerimisabile ja praktilisele kohalikule juurutamisele. Selle peamised kasutuspõhjused on avatus, suhteliselt kompaktne suurus, spetsialiseerumine kodeerimisele ja võimalus käitada mudelit ilma kohustusliku majutatud API-ta. Selle 4K kontekst, ainult tekstipõhine ülesehitus, loomulike hallatavate tööriistade puudumine, ebaselged ajakohased teadmised ja aegunud staatus muudavad selle uute tootmissüsteemide jaoks kehvaks vaikevalikuks. Selliste projektide puhul käsitlege seda pigem hinnatava lähtetasemena kui IBM-i praeguse kodeerimise lõpp-punktina.


KKK - vastused sinu küsimustele

Mis on Granite-8B-Code-Instruct?
Granite-8B-Code-Instruct on IBM Researchi välja töötatud 8 miljardi parameetriga ainult dekooderiga koodikeelemudel. See on juhiste järgi häälestatud koodi genereerimiseks, selgitamiseks, parandamiseks, tõlkimiseks ja dokumenteerimiseks ning on saadaval avatud kaaludena Apache 2.0 litsentsi alusel.
Kui suur on Granite-8B-Code-Instruct-4K kontekstiaken?
Algse Granite-8B-Code-Instruct-4K kontrollpunkti kinnitatud kontekstiaken on 4 096 tokenit. See piirang hõlmab viipa, lähtekoodi, juhiseid ja vastuse konteksti, mistõttu võivad suured koodirepositooriumid või mitu faili vajada väiksemateks päringuteks jagamist.
Kas Granite-8B-Code-Instructi saab lokaalselt käivitada?
Jah. Granite-8B-Code-Instructi saab alla laadida ja ühilduvate avatud mudelite tööriistade abil iseseisvalt käivitada. Dokumentatsioonis on märgitud ühilduvus tööriistadega Transformers, vLLM, SGLang ja Ollama, kuid sellised funktsioonid nagu voogedastus, pakktöötlus ja OpenAI-ga ühilduvad lõpp-punktid sõltuvad juurutusraamistikust.
Kas Granite-8B-Code-Instruct toetab natiivset tööriistade kasutamist või multimodaalseid sisendeid?
Ei. Mudel on ainult tekstipõhine ega suuda algupäraselt vastu võtta pilte, heli ega videot. See võib genereerida funktsioonide või API-kutsete toimimist kirjeldavat teksti, kuid ilma täiendava orkestreerimiskihita ei saa see iseseisvalt veebis sirvida, funktsioone käivitada, andmebaasidele juurde pääseda ega väliseid rakendusi kasutada.
Kas Granite-8B-Code-Instruct on uute tootmisprojektide jaoks soovitatav?
Üldjuhul mitte. IBM peab algset Granite-8B-Code-Instruct-4K kontrollpunkti aegunuks ega soovita seda uute projektide jaoks. See on endiselt kasulik teadustöös, hariduses, kohalikus katsetamises ja ajaloolistes võrdlustes, kuid uuemad mudelid võivad pakkuda paremat kodeerimisvõimekust, pikemat konteksti ja ajakohasemat tuge.


Allikad 5
AI ettevõte

Info IBM watsonx kohta