Mis on Granite-20B-Code-Base-SQL-Gen?
Granite-20B-Code-Base-SQL-Gen on spetsialiseeritud IBM Granite Code’i mudel loomuliku keele põhjal SQL-päringute genereerimiseks. Kasutaja võib küsida näiteks: „Milliste toodete müük oli eelmisel kvartalil kõige suurem?” Mudel kasutab seda küsimust koos andmebaasi skeemi puudutava teabe ja võimaluse korral skeemi sidumise üksikasjadega, et genereerida SQL-päring.
Mudelil on 20 miljardit parameetrit ning see kasutab ainult dekooderiga arhitektuuri. Praktilises mõttes genereerib see teksti järjestikku, kus genereeritud tekst on tavaliselt SQL, mitte vestluslik vastus. IBM kirjeldab seda SQL-i genereerimise lõpp-etapina: rakenduse mõni teine osa peaks enne selle mudeli kutsumist tuvastama asjakohased skeemielemendid ja lisama need viipa.
Praegu on see IBM watsonx.ai alusmudelite kataloogis loetletud saadaval oleva nõudmisel juurutatava mudelina. Mudelit dokumenteeritakse ka IBM Granite’i ja watsonx-i materjalides. Selle väljalaskekuupäevaks on märgitud 1. juuli 2024.
Peamine eesmärk ja soovitatav töövoog
Mudel on loodud teksti põhjal SQL-i genereerimise ülesannete jaoks andmebaasides, mida ei pruukinud treeningandmetes olla. IBMi dokumenteeritud treeningallikate hulka kuuluvad SQLInstructi andmestik, Spider 1.0 ja BIRD-i andmed. Mudel peenhäälestati mudelist Granite-20B-Code-Base ning see on mõeldud kasutama küsimuse ja SQL-i näiteid ning andmebaasi konteksti päringu koostamiseks.
Praktilises rakenduses jaotatakse ülesanne tavaliselt etappideks:
- Mõista küsimust: tuvastada soovitud mõõdik, filtrid, rühmitamine, sortimine ja ajavahemik.
- Siduda küsimus skeemiga: leida asjakohased tabelid, veerud, seosed ja võimaluse korral tüüpilised väärtused.
- Genereerida SQL: edastada küsimus ja valitud skeemiteave mudelile Granite-20B-Code-Base-SQL-Gen.
- Kontrollida enne käivitamist: kontrollida süntaksit, viidatud objekte, õigusi, eeldatavat tulemuse kuju ja päringu turvalisust.
See jaotus on oluline, sest mudel ei ole andmebaasimootor. See ei käivita päringuid otse ega kontrolli iseseisvalt, kas genereeritud päring annab soovitud tulemuse.
Kontrollitud tehnilised näitajad
| Tehniline näitaja | Üksikasjad |
|---|---|
| Teenusepakkuja | IBM |
| Mudelite perekond | Granite Code |
| Parameetrid | 20 miljardit |
| Arhitektuur | Ainult dekooderiga keelemudel |
| Peamine ülesanne | Loomuliku keele põhjal SQL-i genereerimine |
| Kontekstiaken | 8192 tokenit |
| Uute tokenite maksimumarv | 8192 tokenit |
| Sisend | Tekst |
| Väljund | Tekst, tavaliselt SQL |
| Peenhäälestus | Toetatud; IBMi süsteeminõuetes dokumenteeritakse täielikuks peenhäälestuseks sobivad NVIDIA A100, H100 või H200 konfiguratsioonid |
| Saadavus | Saadaval nõudmisel juurutatava mudelina IBM watsonx.ai-s |
8192-tokenine kontekstilimiit hõlmab viipa ja edastatud konteksti, sealhulgas loomulikus keeles küsimust, skeemikirjeldusi, sidumisteavet, näiteid ja muid juhiseid. Seetõttu võib suurte skeemide puhul olla vaja neid enne mudelile saatmist vähendada või valida vajalikud osad. IBMi kataloogis on uute tokenite maksimumarvuna samuti märgitud 8192, kuigi tavalised SQL-päringud jäävad üldjuhul sellest piirist palju lühemaks.
Peamised tugevused ja piirangud
Tugevused
- Ülesandespetsiifilisus: mudel on peenhäälestatud SQL-i genereerimiseks, mitte kasutamiseks piiramatu otstarbega vestlusrobotina.
- Skeemist sõltumatu ülesehitus: see on mõeldud töötama ka varem nägemata andmebaasidega, kui vajalik skeem ja sidumisteave on mudelile edastatud.
- Ettevõtetele sobiv juurutuskontekst: saadavus watsonx.ai kaudu muudab selle asjakohaseks organisatsioonidele, kes loovad hallatud analüütika- või andmeabistamise töövooge.
- Peenhäälestuse võimalus: IBM dokumenteerib täieliku peenhäälestuse toe sobival NVIDIA riistvaral, mis võib aidata organisatsioonidel kohandada mudelit konkreetse SQL-i dialekti või ettevõttesiseste tavadega.
Piirangud
- SQL-i õigsus ei ole garanteeritud: genereeritud päring võib kasutada valet tabelit, veergu, ühendust, filtrit või koondamist isegi siis, kui selle süntaks näib korrektne.
- Andmebaasi käivitamine jääb mudelist väljapoole: rakendus peab päringu eraldi käivitama ja valideerima, kasutades asjakohaseid juurdepääsuõigusi ja turvameetmeid.
- Dialektiga seotud kaalutlused: IBM märgib, et mudelit peenhäälestati peamiselt SQLite’i andmebaasidest pärit küsimuse ja SQL-i paaridega. Teised dialektid võivad vajada järeltöötlust, täpsemaid viipasid, valideerimist või täiendavat häälestamist.
- Piiratud kontekst: 8192-tokenine aken võib muutuda kitsendavaks, kui andmebaasis on palju tabeleid või kui viip sisaldab mahukat dokumentatsiooni ja rohkelt näiteid.
- Üldotstarbelistest vestlusmudelitest kitsam kasutusala: mudel ei ole mõeldud laialdaseks vestlusabiliseks, multimodaalseks tööks ega muude sisuloomeülesannete täitmiseks.
Võimekus, modaalsused ja tööriistad
Granite-20B-Code-Base-SQL-Gen võtab vastu teksti ja väljastab teksti. Kontrollitud andmete põhjal ei toeta see pildi-, heli- ega videosisendit või -väljundit. Selle väljund ei ole otsene tegevus andmebaasis: mudel genereerib tekstilise SQL-lause, mida mõni teine süsteem võib hiljem kontrollida ja käivitada.
Esitatud mudeliteave ei kinnita selle mudeli sisseehitatud funktsioonikutseid, tööriistade kasutamist, veebiotsingut, voogedastust, pakktöötlust, vahemällu salvestamist ega spetsiaalset JSON-režiimi. Rakendused võivad mudeli siiski suuremasse töövoogu kaasata, kuid seda ei tohiks segi ajada mudelitaseme tööriistakutsete võimekusega.
Selle kodeerimisvõimekus on laiema asemel spetsialiseeritud. SQL-i genereerimine on üks koodigenereerimise vorme ning mudel sobib hästi olukordadesse, kus soovitud tulemus on päring. Seda ei tohiks automaatselt käsitleda üldise tarkvaraarenduse mudelina selliste ülesannete jaoks nagu rakenduse arhitektuur, mitmes programmeerimiskeeles silumine või hoidla tasemel koodimuudatused.
Arutlusvõime, kiiruse ja kulude kompromissid
Mudel teeb vajalikud järeldused, et teisendada küsimus ja skeem tõenäoliseks SQL-jadaks, kuid esitatud dokumentatsioon ei kirjelda eraldi mõttekäigu režiimi ega konfigureeritavat arutlusrežiimi. Seetõttu tuleks seda hinnata spetsialiseeritud genereerimismudelina, mitte kontrollitud arutlusele keskenduva süsteemina.
Toimetusliku hinnanguna on selle arutlusvõime hindeks 5 punkti 10-st, kodeerimisvõimekusel 7 punkti 10-st, kiirusel 4 punkti 10-st ja kulutasemel 5 punkti 10-st. Need on võrdlevad toimetuslikud hinded, mitte IBMi avaldatud võrdlustestide tulemused. Kodeerimishinne kajastab mudeli spetsialiseerumist SQL-ile; madalam kiirusehinnang on kooskõlas 20 miljardi parameetriga mudeli võrdlemisega väiksemate teksti põhjal SQL-i genereerimise või üldotstarbeliste alternatiividega, kuid tegelik latentsus sõltub juurutuse riistvarast, konfiguratsioonist, viiba suurusest ja teenuse koormusest.
IBM ei avalda esitatud uuringu põhjal selle mudeli sisendi või väljundi eraldiseisvat tokenipõhist hinda. Selle asemel on mudel watsonx.ai-s loetletud nõudmisel juurutatavana. Ostjad peaksid seetõttu sobiva juurutus-, arvutus- ja kontohinna IBM-ilt üle kontrollima, mitte eeldama tokenipõhist hinda mõne teise watsonx-i mudeli põhjal.
Millal seda mudelit valida?
Vali Granite-20B-Code-Base-SQL-Gen siis, kui peamine vajadus on genereerida loomulikus keeles esitatud küsimustest SQL-i ning sul on võimalik edastada hoolikalt valitud skeemikontekst. See sobib eriti hästi järgmisteks kasutusjuhtudeks:
- analüüsiabilised, mis koostavad päringuid inimese ülevaatuseks;
- loomulikus keeles toimivad liidesed struktureeritud ettevõtte andmebaasidele;
- päringu koostamise ja skeemi sidumise töövoo SQL-i genereerimise etapp;
- meeskonnad, kes soovivad kasutada IBM Granite’i mudelit watsonx.ai juurutuses;
- organisatsioonid, kes vajavad võimalust väljundit ettevõttesiseste SQL-i tavade järgi peenhäälestada või järeltöödelda.
See sobib vähem olukordadesse, kus rakendus vajab üldist vestlusmudelit, otsest andmebaasi käivitamist, multimodaalset sisendit, sisseehitatud väliseid tööriistu või usaldusväärset tuge spetsialiseeritud SQL-i dialektile ilma täiendava arenduseta. Väiksem mudel võib olla eelistatud siis, kui väike latentsus ja madalam juurutuskulu on olulisemad kui 20 miljardi parameetriga spetsialisti kasutamine. Üldotstarbeline kodeerimis- või arutlusmudel võib olla parem valik juhul, kui SQL moodustab laiemast programmeerimisülesandest vaid väikese osa.
Valideerimine ja turvaline juurutamine
Genereeritud SQL-i tuleks käsitleda ebausaldusväärse kavandina. Enne käivitamist peaksid rakendused kontrollima, et viidatud tabelid ja veerud on olemas, piirama lubatud toiminguid, rakendama päringu esitaja õiguste kontrolli ning kaaluma uuriva analüütika jaoks kirjutuskaitstud andmebaasimandaatide kasutamist. Päringute ajalõpud, ridade piirangud, kulukontrollid ja logimine võivad vähendada ebatõhusate või soovimatute lausete mõju.
Hindamine peaks hõlmama päringuid, mis sisaldavad ühendusi, mitmetähenduslikke termineid, puuduvaid väärtusi, kuupäevapiire, koondamist, pesastatud päringuid ja dialektispetsiifilist süntaksit. Ainult SQL-i parsitavuse kontrollimisest ei piisa: süntaktiliselt korrektne päring võib siiski vastata valele äriküsimusele. Suure mõjuga aruandluse puhul on endiselt oluline inimese ülevaatus või sõltumatu andmebaasipõhine valideerimisetapp.
Kokkuvõte
Granite-20B-Code-Base-SQL-Gen on keskendunud IBM-i mudel, mis teisendab loomulikus keeles esitatud andmeküsimused SQL-iks. Selle peamine kasutusjuht on struktureeritud teksti põhjal SQL-i genereerimise töövoog, mis edastab skeemikonteksti, valideerib tulemuse ja tegeleb täitmisega mudelist väljaspool. Selle spetsialiseeritus ja saadavus watsonx.ai kaudu on ettevõtete analüütikatöövoogudes kasulikud, kuid enne juurutamist tuleb arvesse võtta ka 8192-tokenist konteksti, SQLite’ile suunatud peenhäälestuse tausta, kontrollitud sisseehitatud tööriistade puudumist ja eraldiseisva tokenipõhise hinna avaldamata jätmist.

