Granite Code

Granite-34B-Code-Instruct

by IBM watsonx · Pärandversioon / aegunud; saadaval mõnes IBM watsonx keskkonnas ning säilitatud ajalooliseks või teaduslikuks kasutuseks

IBM Granite-34B-Code-Instruct on 34 miljardi parameetriga Apache 2.0 litsentsi alusel välja antud juhiste järgi häälestatud koodimudel, mis avaldati 2024. aasta mais. See toetab tekstipõhist koodi genereerimist, selgitamist, parandamist, teisendamist, dokumenteerimist ja testimist ligikaudu 8192 märgi suuruses kontekstiaknas. Avatud kaaludega kontrollpunkti saab ise majutada või kasutada valitud IBM watsonx-i keskkondade kaudu, kuid IBM liigitab selle nüüd pärandmudeliks ega soovita seda uute projektide jaoks. Selle peamised kompromissid on suured juurutusnõuded, piiratud kontekst, ainult tekstipõhine töö ning kontrollitud natiivse tööriistakasutuse toe ja kehtiva märgipõhise hinna puudumine.

Tekst Arutlusvõime Programmeerimine
IBM Granite-34B-Code-Instruct on avatud kaaludega kodeerimismudel, mis on loodud programmeerimisjuhiste järgimiseks ja tarkvaraarenduse ülesannete toetamiseks. See suudab nõuete põhjal koodi genereerida, olemasolevat koodi selgitada, parandusi soovitada, koodi programmeerimiskeelte või raamistike vahel teisendada ning luua dokumentatsiooni või teste. Apache 2.0 litsents võimaldab mudelit ise majutada, kuid uute juurutuste puhul tuleb arvestada mudeli 8K suuruse kontekstiakna, märkimisväärsete riistvaranõuete ja aegunud staatusega.
Väljundid

Mida Granite-34B-Code-Instruct suudab teha

Tekst
Sisendid

Mida see mõistab

Tekst
Võimekused

Abifunktsioonid

Voogedastus Peenhäälestamine
Mudeli profiil

Jõudlusnäitajad

6/10 Arutlusvõime
7/10 Programmeerimine
4/10 Kiirus
8/10 Kulutõhusus
Detailid

Tehnilised andmed

Mudeliseeria Granite Code
Tüüp Programmeerimine
Konteksti maht 8K märki/tokenit
Välja antud 6. mai 2024
Olek Pärandversioon / aegunud; saadaval mõnes IBM watsonx keskkonnas ning säilitatud ajalooliseks või teaduslikuks kasutuseks
Teadmiste ajapiiri märkused

Üle vaadatud IBMi dokumentatsioonis ega mudelikaardil ei avaldatud autoriteetset teavet mudelipõhise teadmiste lõppkuupäeva kohta.

Mudeli selgitused

IBM-i watsonx-mudeli ID on granite-34b-code-instruct. IBM Granite'i Hugging Face'i kontrollpunkt on ibm-granite/granite-34b-code-instruct-8k. Tegemist on 34 miljardi parameetriga juhiste järgi kohandatud mudeliga, mis põhineb mudelil Granite-34B-Code-Base ja on välja antud Apache 2.0 litsentsi alusel. IBM-i mudelikaardil märgitakse, et seda ei soovitata uute projektide jaoks, sest uuemad Granite'i keelemudelid pakuvad kodeerimisel paremaid võimalusi. Mudel on ainult tekstipõhine ja avatud kaaludega; täpselt selle enda taristus majutatava kontrollpunkti ametlikku kehtivat märgipõhist hinda ei õnnestunud kinnitada. IBM-i dokumentatsiooni kohaselt on see mõnes watsonx-i keskkonnas saadaval.

Mudeli juhend

Granite-34B-Code-Instruct: IBMi pärandvara avatud kaaludega koodimudel

Granite-34B-Code-Instruct on IBM-i 34 miljardi parameetriga juhiste järgi häälestatud koodimudel tarkvara genereerimiseks, selgitamiseks, parandamiseks, teisendamiseks ja dokumenteerimiseks. Apache 2.0 litsentsi alusel välja antud mudelil on ligikaudu 8192 tokeni suurune kontekstiaken. See on endiselt kasulik isehostitud kodeerimisabiliste ja ühilduvustöö jaoks, kuid IBM käsitleb seda nüüd pärandmudelina ega soovita seda uute projektide jaoks.

Mis on Granite-34B-Code-Instruct?

Granite-34B-Code-Instruct on IBM Researchi Granite Code’i mudeliperre kuuluv 34 miljardi parameetriga ainult dekooderiga keelemudel. Praktikas on see teksti sisendil ja tekstilisel väljundil põhinev mudel, mida on treenitud ja juhiste järgi kohandatud programmeerimisülesannete, mitte üldise multimodaalse töö jaoks. Juhiste järgi kohandatud versioon on mõeldud vastama päringutele nagu „kirjuta Pythoni funktsioon“, „selgita seda Java klassi“ või „leia selle SQL-päringu tõenäoline viga“.

Mudel põhineb Granite-34B-Code-Base ning seda kohandati täiendavalt avatud kasutusõigusega juhiste andmete abil. IBMi Granite Code’i mudelipere käsitlev uurimiskirjeldus hõlmab 116 programmeerimiskeelest pärinevat koodi, samal ajal kui instruct-variandid treeniti muu hulgas koodimuudatuste, matemaatikajuhiste, koodiabilise andmete, funktsioonikutsete näidete, SQL-i näidete ja üldiste keelejuhiste andmekogumitega.

IBM watsonxi keskkondades tuntakse seda mudelit tavaliselt tunnuse granite-34b-code-instruct järgi. Vastav Hugging Face’i kontrollpunkt on ibm-granite/granite-34b-code-instruct-8k. Tähis „8k“ viitab ligikaudu 8192 märgist koosnevale kontekstiaknale.

Mida saab sellega tarkvaraarenduses teha?

Mudeli peamine eesmärk on abistada programmeerimisel. See suudab muuta loomulikus keeles esitatud nõuded koodiks, kirjeldada olemasoleva koodi toimimist, teha ettepanekuid rakenduse muutmiseks ning aidata koostada tavapärast tarkvaraarenduse dokumentatsiooni. Samuti sobib see töövoogudesse, kus organisatsioon soovib majutada avatud kaaludega mudelit, selle asemel et saata lähtekood välise teenusepakkuja hallatavale vestlusrobotile.

  • Koodi genereerimine: funktsioonide, klasside, skriptide, päringute ja muu koodi loomine kirjalike nõuete põhjal.
  • Koodi selgitamine: tundmatu koodi kokkuvõtmine ning programmeerimiskontseptsioonide või rakendusotsuste selgitamine.
  • Vigade parandamine: veakirjelduse või koodinäite uurimine ja tõenäolise paranduse pakkumine.
  • Koodi teisendamine: koodi tõlkimine programmeerimiskeelte, teekide või raamistike vahel, kui vajalik kontekst mahub viipa.
  • Dokumentatsioon ja testid: kommentaaride, tehnilise dokumentatsiooni, testjuhtumite ja muude arendusega seotud materjalide koostamine.
  • Kaasaajastamise tugi: abi korduvate teisenduste ja tarkvara hooldusülesannete tegemisel kontrollitud töövoogudes.

Neid võimekusi tuleks käsitleda abina, mitte automaatse kontrollina. Genereeritud kood võib sisaldada loogikavigu, ebaturvalisi mustreid, teekide ebaõiget kasutust või programmeerimiskeele spetsiifilisi vigu. Tootmiskasutus peaks hõlmama kompileerimise või käivitamise kontrolli, koodiülevaatust, turvatestimist ja rakenduse jaoks sobivaid teste.

Kontrollitud tehnilised andmed

AndmedKontrollitud üksikasjad
PakkujaIBM Research
MudelipereGranite Code
Parameetrid34 miljardit
KontekstiakenLigikaudu 8192 märki
SisendTekst
VäljundTekst
LitsentsApache 2.0
Väljalaskekuupäev6. mai 2024
IBM watsonxi mudeli IDgranite-34b-code-instruct
Hugging Face’i kontrollpunktibm-granite/granite-34b-code-instruct-8k

Esitatud dokumentatsioon ei määra eraldi maksimaalset väljundmärgendite arvu. Märgitud 8192 märki kirjeldab mudeli konteksti mahtu, mitte tingimata ühe vastusega genereeritavate märkide arvu. Seetõttu ei tohiks rakendused eeldada suuremat väljundipiirangut, kui kasutatava teeninduskonfiguratsiooni dokumentatsioon ette näeb.

Mida tähendab 8K kontekstiaken?

Kontekstiaken näitab tekstihulka, mida mudel suudab viiba, vestluse või muu ümbritseva materjali piires arvesse võtta. Ligikaudu 8192 märgi suuruse akna korral saab Granite-34B-Code-Instruct hakkama fokuseeritud failide, funktsioonide, veateadete ja mõõduka mahuga ülesandekirjeldustega, kuid tervikliku suure koodihoidla või pika tarkvaraspetsifikatsiooni korraga laadimiseks sobib see halvemini.

Suuremate projektide puhul võivad arendajad vajada ainult asjakohaste failide otsimist, varasema arutelu kokkuvõtmist, ülesande jagamist väiksemateks etappideks või eraldi indekseerimis- ja otsingukihti. Need võtted võivad muuta mudeli koodihoidlate töövoogudes kasulikuks, kuid ei kõrvalda aluseks olevat kontekstipiirangut. Failidevaheline arutluskäik võib muutuda vähem usaldusväärseks, kui vajalikud sõltuvused ei mahu olemasolevasse viipa.

Ka 34 miljardi parameetriga mudeli suurus mõjutab juurutamist. IBMi dokumentatsioon nimetab ühilduvate raamistike ja teenindussüsteemidena muu hulgas Transformersit, vLLM-i, SGLangi ja text-generation-inference’i. Mudeli iseseisev käitamine nõuab üldjuhul palju GPU-mälu ja sobivat järeldustaristut. Kvantimine või muud teeninduse optimeerimised võivad riistvaranõudeid muuta, kuid esitatud uurimismaterjal ei kinnita konkreetseid mälumahtusid ja neid ei tohiks eeldada.

Kättesaadavus, hind ja pärandstaatus

Granite-34B-Code-Instructi levitatakse avatud kaaludega Apache 2.0 litsentsi alusel. Organisatsioon võib ühilduvate tööriistade abil kontrollpunkti alla laadida ja seda teenindada, järgides litsentsi ning oma käitamisnõudeid. Mudel võib olla saadaval ka valitud IBM watsonxi keskkondades IBMi mudeli ID kaudu.

Esitatud uurimismaterjali põhjal ei ole selle konkreetse ise hostitava kontrollpunkti praegust ametlikku märgendipõhist hinda kinnitatud. Ise hostimine ei tekita iga genereeritud märgendi eest IBMi järeldusarvet, kuid nõuab taristut, salvestusruumi, arendustööd, seiret ja hooldust. Kui mudelile pääsetakse ligi hallatava IBM-i keskkonna kaudu, võivad hind ja kättesaadavus sõltuda konkreetsest watsonxi tootest, piirkonnast, juurutusviisist, kontost ja kehtivast kataloogist.

Kättesaadavuse puhul on kõige olulisem täpsustus mudeli staatus. IBMi Granite’i mudelikaardil on aegumise hoiatus ning seal öeldakse, et mudelit ei soovitata uute projektide jaoks, sest uuemad Granite’i põhiliini keelemudelid on selle programmeerimisvõimekused asendanud. See ei muuda kontrollpunkti kasutuskõlbmatuks: see võib endiselt sobida ajalooliseks hindamiseks, uurimistööks, ühilduvuse tagamiseks või olemasolevaks juurutuseks, mis sõltub selle käitumisest. See tähendab siiski, et uut tootmissüsteemi alustavad meeskonnad peaksid esmalt hindama praegu toetatud mudelit.

Modaalsused, arutlusvõime ja tööriistade tugi

See on ainult tekstil põhinev mudel. See võtab vastu tekstiviipasid ja genereerib tekstivastuseid; esitatud uurimismaterjal ei kinnita kujutiste, heli ega video loomulikku sisendit või väljundit. Seetõttu ei sobi see kuvatõmmiste tõlgendamiseks, helisalvestiste analüüsimiseks, kujutiste genereerimiseks ega muu meedia loomiseks.

Granite-34B-Code-Instruct suudab programmeerimisel vajalikul määral arutleda, näiteks järgida nõudeid, jälgida koodi täitmist, võrrelda rakendusviise ning lahendada valitud loogika- või SQL-ülesandeid. Toimetuslikus hinnangus saab see arutlusvõime eest 6 punkti 10-st ja programmeerimisvõime eest 7 punkti 10-st. Need hinded on toimetuse hinnangud, mitte IBMi avaldatud võrdlustestide tulemused ega garantiid. Tegelik jõudlus sõltub programmeerimiskeelest, viiba kvaliteedist, ülesande keerukusest ja teeninduskonfiguratsioonist.

Treenimismaterjal sisaldas funktsioonikutsete näiteid, kuid esitatud mudelikirje ei kinnita selle kontrollpunkti puhul pakkuja hallatavat tööriistakasutust ega integreeritud toimingusüsteemi. Tööriistakasutuse väljaks on märgitud 0. Praktikas võib arendaja teksti põhise mudeli ümber luua välise orkestreerimiskihi, kuid see on rakenduse funktsioon, mitte mudelile omistatav loomupärane võimekus. Ka struktureeritud JSON-väljundit ei ole eraldi toetatud režiimina kinnitatud.

Peamised tugevused ja kompromissid

Mudeli kõige olulisem praktiline eripära on programmeerimisele spetsialiseerumise, avatud kaalude ja paindliku Apache 2.0 litsentsi kombinatsioon. Need omadused võivad olla atraktiivsed meeskondadele, kes vajavad koodimudeli kontrollimist, kohandamist või ise hostimist ning soovivad paremini kontrollida seda, kus lähtekoodi ja viipasid töödeldakse. Juhiste järgi kohandamine muudab mudeli programmeerimispäringute jaoks vahetumalt kasutatavaks kui baasmudeli, mida ei ole selliste juhiste järgimiseks treenitud.

Nende eelistega kaasnevad ka kulud. 34 miljardi parameetriga kontrollpunkt nõuab väiksemate koodimudelitega võrreldes palju ressursse, mistõttu võib selle käitamine suuremas mahus olla aeglasem või kallim, kui mõõta taristu- ja latentsuskulude, mitte pakkuja märgendihindade järgi. Uurimismaterjalis antakse kiirusele toimetuslikult 4 punkti 10-st ja kulule 8 punkti 10-st, kuid need on subjektiivsed hinnangud, mitte standardiseeritud pakkuja väited. Tegelik kiirus ja kogukulu sõltuvad riistvarast, kvantimisest, samaaegsusest, viiba pikkusest ja teenindustarkvarast.

Veel üks kompromiss on 8K kontekstiaken. See on sihitud programmeerimisülesannete jaoks piisav, kuid suure koodihoidla analüüsimiseks piirav. Samuti puuduvad mudelil kinnitatud loomulik multimodaalne sisend, pakkuja hallatav veebiotsing, loomulik toimingute käivitamine ja dokumenteeritud praegune märgendipõhine hind selle konkreetse kontrollpunkti jaoks.

Millal valida Granite-34B-Code-Instruct?

See mudel võib olla mõistlik valik, kui peamine nõue on ise hostitav või avatud kaaludega programmeerimisabiline ning projekt saab hakkama ligikaudu 8K märgi pikkuse kontekstiga. Eriti asjakohane võib see olla järgmistes olukordades:

  • olemasolev süsteem sõltub juba Granite-34B-Code-Instructi kontrollpunktist või selle käitumisest;
  • uurimis- või hindamisprojekt vajab 2024. aastal välja antud Granite Code’i instruct-mudelit;
  • organisatsioon soovib kontrollitud juurutamiseks Apache 2.0 litsentsiga kaalusid ja on valmis tagama vajaliku riistvara;
  • töökoormus koosneb fokuseeritud koodi genereerimise, selgitamise, parandamise, teisendamise, dokumenteerimise või testide kirjutamise ülesannetest;
  • meeskond suudab väljundeid kontrollida kompilaatorite, testide, turvaskannerite ja inimülevaatuse abil.

Uue tootmissüsteemi puhul võib sobivam olla mõni muu valik, kui oluline on koodihoidla pikk kontekst, praegune müüjapoolne tugi, väiksemad teeninduskulud, kiiremad vastused, multimodaalne sisend, hallatud tööriistade käivitamine või dokumenteeritud struktureeritud väljundi liides. Uute IBMiga seotud juurutuste puhul tuleks esmalt hinnata praegust Granite’i mudelit, sest IBM nimetab uuemaid Granite’i keelemudeleid eelistatud järglassuunaks. Väiksemad koodimudelid võivad pakkuda paremat latentsust ja riistvaraökonoomiat, samas kui suuremad või pikema kontekstiga süsteemid võivad sobida paremini ulatuslikuks koodihoidla analüüsiks. Neid alternatiive tuleks võrrelda rakenduse enda programmeerimiskeelte, latentsuseesmärkide, kvaliteeditestide ja turvanõuete põhjal.

Kokkuvõte

Granite-34B-Code-Instruct on võimekas ainult tekstil põhinev programmeerimismudel, millel on 34 miljardit parameetrit, ligikaudu 8K suurune kontekstiaken, avatud kaalud ja Apache 2.0 litsents. Tänapäeval sobib see kõige paremini ise hostitavaks programmeerimisabiks, ühilduvuse tagamiseks, uurimistööks ja ajalooliseks hindamiseks. Pärandstaatus, suured ressursinõuded, piiratud kontekst ning kinnitatud loomulike tööriistade ja multimodaalsete funktsioonide puudumine muudavad selle uute rakenduste lähtepunktina vähem atraktiivseks. Mudeli valinud meeskonnad peaksid käsitlema genereeritud koodi ebausaldusväärse mustandina ning kontrollima, et kontrollpunkt oleks nende kavandatud juurutuskeskkonnas endiselt saadaval ja toetatud.


KKK - vastused sinu küsimustele

Mis on Granite-34B-Code-Instruct?
Granite-34B-Code-Instruct on IBM Researchi Granite Code’i perekonda kuuluv 34 miljardi parameetriga ainult teksti töötlev dekooderipõhine keelemudel. See on juhiste järgi häälestatud programmeerimisülesannete jaoks, nagu koodi genereerimine, selgitamine, silumine, teisendamine, dokumenteerimine ja testide kirjutamine.
Millised on Granite-34B-Code-Instructi tehnilised näitajad?
Mudelil on 34 miljardit parameetrit, ligikaudu 8192 tokeni suurune kontekstiaken, tekstisisend ja -väljund ning Apache 2.0 litsents. See avaldati 6. mail 2024. Selle IBM watsonxi mudeli ID on `granite-34b-code-instruct` ja Hugging Face’i kontrollpunkt on `ibm-granite/granite-34b-code-instruct-8k`.
Milliseid programmeerimisülesandeid suudab Granite-34B-Code-Instruct täita?
See suudab genereerida funktsioone, klasse, skripte ja päringuid; selgitada tundmatut koodi; soovitada veaparandusi; teisendada koodi programmeerimiskeelte või raamistike vahel; koostada dokumentatsiooni ja teste ning aidata korduvate tarkvarahooldus- ja moderniseerimisülesannetega. Genereeritud koodi tuleks siiski kontrollida testimise, koodi ülevaatuse, kompileerimise või käivitamise ning turbe valideerimise abil.
Mida tähendab 8K suurune kontekstiaken mudeli Granite-34B-Code-Instruct puhul?
Ligikaudu 8 192 märgi suurune kontekstiaken piirab seda, kui palju koodi, dokumentatsiooni, vestlust ja muud teksti saab mudel ühe päringu käigus arvesse võtta. See sobib keskendunud failide, funktsioonide ja veateadete töötlemiseks, kuid suurte terviklike koodihoidlate puhul on selle sobivus piiratum. Suuremad projektid võivad vajada teabe hankimist, kokkuvõtete koostamist või ülesannete jagamist väiksemateks osadeks.
Kas Granite-34B-Code-Instruct on uute projektide jaoks endiselt soovitatav?
IBMi mudelikaart sisaldab kasutuselt kõrvaldamise hoiatust ega soovita Granite-34B-Code-Instructi uute projektide jaoks, sest uuemad Granite’i põhiliini keelemudelid ületavad selle programmeerimisvõimekuse. Mudel võib endiselt olla kasulik olemasolevates juurutustes, ühilduvuse tagamisel, teadustöös, ajaloolistes hindamistes ja enda hallatava programmeerimisabi pakkumisel, kuid uute tootmissüsteemide puhul tuleks esmalt hinnata praegu toetatud alternatiive.


Allikad 5
AI ettevõte

Info IBM watsonx kohta