Ettevõtte andmetest väärtuse loomine: Text2SQL-i ja generatiivse AI parimad tavad | Amazoni veebiteenused

Ettevõtte andmetest väärtuse loomine: Text2SQL-i ja generatiivse AI parimad tavad | Amazoni veebiteenused

Generatiivne AI on avanud tehisintellekti valdkonnas palju potentsiaali. Näeme mitmeid kasutusviise, sealhulgas teksti genereerimine, koodi genereerimine, kokkuvõte, tõlkimine, vestlusrobotid ja palju muud. Üks selline arenev valdkond on loomuliku keele töötlemise (NLP) kasutamine, et avada uued võimalused andmetele juurdepääsuks intuitiivsete SQL-päringute kaudu. Keerulise tehnilise koodiga tegelemise asemel saavad ärikasutajad ja andmeanalüütikud esitada andmete ja arusaamadega seotud küsimusi lihtsas keeles. Esmane eesmärk on SQL-päringute automaatne genereerimine loomuliku keele tekstist. Selleks teisendatakse tekstisisend struktureeritud esituseks ja sellest esitusest luuakse SQL päring, mille abil saab ligi pääseda andmebaasi.

Selles postituses tutvustame SQL-i teksti (Text2SQL) ja uurime kasutusjuhtumeid, väljakutseid, disainimustreid ja parimaid tavasid. Täpsemalt arutame järgmist:

  • Miks me vajame Text2SQL-i
  • Teksti SQL-i põhikomponendid
  • Otsige tehnilisi kaalutlusi loomuliku keele või teksti SQL-i jaoks
  • Optimeerimised ja parimad tavad
  • Arhitektuurimustrid

Miks me vajame Text2SQL-i?

Tänapäeval on traditsioonilises andmeanalüütikas, andmehoidlas ja andmebaasides saadaval suur hulk andmeid, mida ei pruugi enamikul organisatsiooni liikmetel olla lihtne pärida ega mõista. Text2SQL-i esmane eesmärk on muuta päringuandmebaasid kättesaadavamaks mittetehnilistele kasutajatele, kes saavad esitada päringuid loomulikus keeles.

NLP SQL võimaldab ärikasutajatel andmeid analüüsida ja vastuseid saada, kirjutades või rääkides küsimusi loomulikus keeles, näiteks järgmist:

  • „Kuva iga toote eelmise kuu kogumüük”
  • "Millised tooted tõid rohkem tulu?"
  • "Milline protsent klientidest on igast piirkonnast?"

Amazonase aluspõhi on täielikult hallatav teenus, mis pakub ühe API kaudu valikut suure jõudlusega alusmudeleid (FM-e), mis võimaldab hõlpsasti luua ja skaleerida Gen AI rakendusi. Seda saab kasutada ülalloetletutega sarnaste küsimuste põhjal SQL-päringute genereerimiseks ja organisatsiooni struktureeritud andmete päringute tegemiseks ja päringuvastuste andmetest loomuliku keele vastuste genereerimiseks.

SQL-i teksti põhikomponendid

Tekst-SQL-süsteemid hõlmavad loomuliku keele päringute teisendamiseks käivitatavaks SQL-iks mitut etappi:

  • Loomuliku keele töötlemine:
    • Analüüsige kasutaja sisendpäringut
    • Eraldage põhielemendid ja eesmärk
    • Teisendage struktureeritud vormingusse
  • SQL-i genereerimine:
    • Kaardista ekstraheeritud üksikasjad SQL-i süntaksisse
    • Looge kehtiv SQL-päring
  • Andmebaasi päring:
    • Käivitage AI-ga loodud SQL-päring andmebaasis
    • Too tulemused
    • Tulemused kasutajale tagastada

Suurte keelemudelite (LLM) üks tähelepanuväärne võimalus on koodi genereerimine, sealhulgas andmebaaside struktureeritud päringukeel (SQL). Neid LLM-e saab kasutada loomuliku keele küsimuse mõistmiseks ja vastava SQL-päringu genereerimiseks väljundina. LLM-id saavad kasu kontekstis õppimisest ja seadete peenhäälestusest, kui andmeid esitatakse.

Järgmine diagramm illustreerib põhilist Text2SQL-i voogu.

Tekst 2 SQL kõrgetasemeline protsessivoog

SQL-i loomuliku keele insenertehnilised kaalutlused

Viip on ülioluline, kui kasutate LLM-e loomuliku keele tõlkimiseks SQL-päringuteks, ja viipe kujundamisel on mitmeid olulisi kaalutlusi.

Tõhus kiire inseneritöö on SQL-süsteemide loomuliku keele arendamise võtmeks. Selged ja arusaadavad juhised pakuvad keelemudeli jaoks paremaid juhiseid. Konteksti pakkumine, et kasutaja taotleb SQL-päringut, koos asjakohaste andmebaasiskeemi üksikasjadega võimaldab mudelil kavatsust täpselt tõlkida. Mõne loomuliku keele viipade ja vastavate SQL-päringute kommenteeritud näite lisamine aitab mudelil toota süntaksiga ühilduvat väljundit. Lisaks parandab kaardistamise täpsust veelgi, kaasates taastamise laiendatud generatsiooni (RAG), kus mudel otsib töötlemise ajal sarnaseid näiteid. Hästi läbimõeldud viipad, mis annavad mudelile piisavalt juhiseid, konteksti, näiteid ja otsimise täiendust, on loomuliku keele usaldusväärseks tõlkimiseks SQL-päringuteks üliolulised.

Järgnev on näide lähtejoone viipast koos andmebaasi koodi esitusega valgest raamatust Suurte keelemudelite tekstist SQL-iks muutmise võimaluste täiustamine: uuring kiirete disainistrateegiate kohta.

/* Given the following database schema : */
CREATE TABLE IF NOT EXISTS " gymnast " ( " Gymnast_ID " int , " Floor_Exercise_Points " real , " Pommel_Horse_Points " real , " Rings_Points " real , " Vault_Points " real , " Parallel_Bars_Points " real , " Horizontal_Bar_Points " real , " Total_Points " real , PRIMARY KEY ( " Gymnast_ID " ) , FOREIGN KEY ( " Gymnast_ID " ) REFERENCES " people " ( " People_ID " ) ) ; CREATE TABLE IF NOT EXISTS " people " ( " People_ID " int , " Name " text , " Age " real , " Height " real , " Hometown " text , PRIMARY KEY ( " People_ID " ) ) ; /* Answer the following : Return the total points of the gymnast with the lowest age .
*/ select t1 . total_points from gymnast as t1 join people as t2 on t1 . gymnast_id = t2 .
people_id order by t2 . age asc limit 1

Nagu selles näites illustreeritud, pakub viipapõhine mõne võttega õppimine mudelile käputäie kommenteeritud näiteid viipas endas. See näitab mudeli loomuliku keele ja SQL-i sihtmärgi vastendamist. Tavaliselt sisaldab viip umbes 2–3 paari, mis näitavad loomuliku keele päringut ja samaväärset SQL-lauset. Need mõned näited juhivad mudelit süntaksiga ühilduvate SQL-päringute genereerimiseks loomulikust keelest ilma ulatuslikke koolitusandmeid nõudmata.

Peenhäälestus vs kiire projekteerimine

SQL-süsteemide loomuliku keele loomisel arutleme sageli selle üle, kas mudeli peenhäälestus on õige tehnika või kas tõhus kiire projekteerimine on õige tee. Mõlemat lähenemisviisi saab kaaluda ja valida õigete nõuete alusel:

    • Peenhäälestus – Algmudel on suurel üldtekstikorpusel eelkoolitatud ja seejärel saab seda kasutada juhistepõhine peenhäälestus, mis kasutab märgistatud näiteid, et parandada tekst-SQL-i eelkoolitatud alusmudeli toimivust. See kohandab mudelit sihtülesandega. Peenhäälestus õpetab mudelit otse lõpuülesandele, kuid nõuab palju teksti-SQL-i näiteid. Saate kasutada oma LLM-il põhinevat juhendatud peenhäälestust, et parandada teksti-SQL-i tõhusust. Selleks saate kasutada mitut andmekogumit, näiteks Ämblik, WikiSQL, Tagaajamine, BIRD-SQLvõi CoSQL.
    • Kiire inseneritöö – Mudel on koolitatud täitma viipasid, mis on loodud siht-SQL-i süntaksi küsimiseks. LLM-ide abil loomulikust keelest SQL-i genereerimisel on mudeli väljundi juhtimiseks oluline viipale selgete juhiste esitamine. Viipale märkige erinevad komponendid, näiteks veergudele osutamine, skeem ja seejärel juhendage, millist tüüpi SQL-i luua. Need toimivad nagu juhised, mis ütlevad mudelile, kuidas SQL-väljundit vormindada. Järgmine viip näitab näidet, kus osutate tabeli veergudele ja juhendate looma MySQL-päringu:
Table offices, columns = [OfficeId, OfficeName]
Table employees, columns = [OfficeId, EmployeeId,EmployeeName]
Create a MySQL query for all employees in the Machine Learning Department

Tõhus lähenemine tekstist SQL-i mudelitele on esmalt alustada LLM-i baastasemega ilma ülesandepõhise peenhäälestuseta. Hästi koostatud viipasid saab seejärel kasutada baasmudeli kohandamiseks ja juhtimiseks, et käsitleda teksti-SQL-i vastendamist. See kiire projekteerimine võimaldab teil arendada võimekust ilma peenhäälestuseta. Kui baasmudeli kiire projekteerimine ei saavuta piisavat täpsust, saab seejärel uurida väikese hulga teksti-SQL-näidete peenhäälestamist koos edasise kiire inseneriga.

Peenhäälestuse ja kiire projekteerimise kombinatsioon võib osutuda vajalikuks, kui töötlemata eelkoolitatud mudeli kiire projekteerimine üksi nõuetele ei vasta. Siiski on alguses kõige parem proovida kiiret inseneritööd ilma peenhäälestuseta, kuna see võimaldab kiiret iteratsiooni ilma andmete kogumiseta. Kui see ei taga piisavat jõudlust, on peenhäälestus koos kiire inseneritööga elujõuline järgmine samm. See üldine lähenemisviis maksimeerib tõhusust, võimaldades samas kohandamist, kui puhtalt viipepõhised meetodid ei ole piisavad.

Optimeerimine ja parimad tavad

Optimeerimine ja parimad tavad on olulised tõhususe suurendamiseks ja ressursside optimaalseks kasutamiseks ning õigete tulemuste saavutamiseks parimal võimalikul viisil. Tehnikad aitavad parandada jõudlust, kontrollida kulusid ja saavutada parema kvaliteediga tulemusi.

Teksti-SQL-süsteemide arendamisel, kasutades LLM-e, võivad optimeerimismeetodid parandada jõudlust ja tõhusust. Järgmised on mõned peamised valdkonnad, mida tuleks kaaluda.

  • Vahemällu salvestamine – Latentsuse, kulude kontrolli ja standardimise parandamiseks saate vahemällu salvestada parsitud SQL-i ja tuvastatud päringuviibad tekstist SQL-i LLM-ist. See väldib korduvate päringute uuesti töötlemist.
  • Järelevalve – Tekst-SQL-i LLM-süsteemi jälgimiseks tuleks koguda logisid ja mõõdikuid päringu sõelumise, viipetuvastuse, SQL-i genereerimise ja SQL-i tulemuste kohta. See annab nähtavuse optimeerimise näite jaoks, mis värskendab viipa või külastab peenhäälestust värskendatud andmekogumiga.
  • Materialiseeritud vaated vs. tabelid – Materialiseeritud vaated võivad lihtsustada SQL-i genereerimist ja parandada tavaliste tekst-SQL-päringute jõudlust. Tabelite otsepärimise tulemuseks võib olla keeruline SQL ja ka jõudlusprobleemid, sealhulgas pidev jõudlustehnikate (nt indeksid) loomine. Lisaks saate vältida jõudlusprobleeme, kui sama tabelit kasutatakse samal ajal ka muude rakendusvaldkondade jaoks.
  • Andmete värskendamine – Materialiseeritud vaateid tuleb ajakava järgi värskendada, et tekst-SQL-päringute jaoks andmed oleksid ajakohased. Üldkulude tasakaalustamiseks võite kasutada pakett- või järkjärgulist värskendamist.
  • Keskne andmekataloog – Tsentraliseeritud andmekataloogi loomine annab organisatsiooni andmeallikatele ühe klaasvaate ning aitab LLM-idel valida sobivad tabelid ja skeemid, et anda täpsemaid vastuseid. Vektor manused Kesksest andmekataloogist loodud andmeid saab edastada LLM-ile koos teabega, mida nõutakse asjakohaste ja täpsete SQL-vastuste genereerimiseks.

Rakendades optimeerimise parimaid tavasid, nagu vahemällu salvestamine, jälgimine, materialiseeritud vaated, ajastatud värskendamine ja keskkataloog, saate LLM-e kasutades oluliselt parandada teksti-SQL-süsteemide jõudlust ja tõhusust.

Arhitektuurimustrid

Vaatame mõningaid arhitektuurimustreid, mida saab tekstist SQL-i töövoo jaoks rakendada.

Kiire inseneritöö

Järgmine diagramm illustreerib LLM-iga päringute genereerimise arhitektuuri, kasutades kiiret inseneritööd.

illustreerib LLM-iga päringute genereerimise arhitektuuri, kasutades kiiret inseneritööd

Selle mustri puhul loob kasutaja viipapõhise mõne võttega õppimise, mis pakub mudelile viipas endas annoteeritud näiteid, mis sisaldab tabeli ja skeemi üksikasju ning mõningaid näidispäringuid koos selle tulemustega. LLM kasutab pakutavat viipa, et tagastada tehisintellekti loodud SQL, mis kinnitatakse ja seejärel käitatakse tulemuste saamiseks andmebaasiga. See on kõige selgem muster kiire inseneri kasutamise alustamiseks. Selleks saate kasutada Amazonase aluspõhi or vundamendi mudelid in Amazon SageMaker JumpStart.

Selle mustri puhul loob kasutaja viipapõhise mõne võttega õppimise, mis pakub mudelile viipas endas annoteeritud näiteid, mis sisaldab tabeli ja skeemi üksikasju ning mõningaid näidispäringuid koos selle tulemustega. LLM kasutab kaasasolevat viipa, et tagastada tehisintellekti loodud SQL, mis on valideeritud ja käitatakse tulemuste saamiseks andmebaasiga. See on kiire inseneritöö alustamiseks kõige selgem muster. Selleks saate kasutada Amazonase aluspõhi mis on täielikult hallatav teenus, mis pakub ühe API kaudu valikut juhtivate tehisintellekti ettevõtete suure jõudlusega alusmudeleid (FM-e) ning laia valikut võimalusi, mida vajate generatiivsete AI-rakenduste loomiseks turvalisuse, privaatsuse ja vastutustundliku tehisintellektiga. või JumpStart Foundationi mudelid mis pakub tipptasemel alusmudeleid selliste kasutusjuhtumite jaoks nagu sisu kirjutamine, koodi genereerimine, küsimustele vastamine, copywriting, kokkuvõtete tegemine, klassifitseerimine, teabe otsimine ja palju muud

Kiire projekteerimine ja peenhäälestus

Järgmine diagramm illustreerib LLM-iga päringute genereerimise arhitektuuri, kasutades kiiret projekteerimist ja peenhäälestust.

illustreerib arhitektuuri LLM-iga päringute genereerimiseks, kasutades kiiret projekteerimist ja peenhäälestust

See voog sarnaneb eelmise mustriga, mis tugineb enamasti kiirele projekteerimisele, kuid sisaldab domeenispetsiifilise andmestiku täiendava peenhäälestuse voogu. Peenhäälestatud LLM-i kasutatakse SQL-päringute genereerimiseks, mille kontekstis on minimaalne väärtus. Selleks saate kasutada SageMaker JumpStarti domeenispetsiifilise andmestiku LLM-i peenhäälestamiseks samal viisil, nagu treeniksite ja juurutaksite mis tahes mudelit. Amazon SageMaker.

Kiire inseneritöö ja RAG

Järgmine diagramm illustreerib LLM-iga päringute genereerimise arhitektuuri, kasutades kiiret projekteerimist ja RAG-i.

illustreerib LLM-iga päringute genereerimise arhitektuuri, kasutades kiiret inseneritööd ja RAG-i

Selles mustris kasutame Täiustatud põlvkonna otsimine kasutades vektormanustuspoode, nagu Amazon Titan Embeddings or Cohere Embed, On Amazonase aluspõhi kesksest andmekataloogist, nagu AWS liim Andmekataloog, organisatsioonisisesed andmebaasid. Vektori manustused salvestatakse vektorandmebaasides nagu Vektormootor Amazon OpenSearchi serverita jaoks, Amazon Relational Database Service (Amazon RDS) PostgreSQL-i jaoks koos pgvector pikendamine või Amazon Kendra. LLM-id kasutavad vektori manustamist, et SQL-päringute loomisel tabelitest kiiremini valida õige andmebaas, tabelid ja veerud. RAG-i kasutamine on kasulik, kui andmed ja asjakohane teave, mida LLM-id peavad hankima, on salvestatud mitmesse eraldi andmebaasisüsteemi ja LLM-il peab olema võimalik otsida või päringuid teha kõigist nendest erinevatest süsteemidest. See on koht, kus tsentraliseeritud või ühtse andmekataloogi vektormanustuste pakkumine LLM-idele annab täpsema ja põhjalikuma teabe, mille LLM-id tagastavad.

Järeldus

Selles postituses arutasime, kuidas saame luua ettevõtte andmetest väärtust loomuliku keele abil kuni SQL-i genereerimiseni. Uurisime põhikomponente, optimeerimist ja parimaid tavasid. Õppisime ka arhitektuurimustreid alates lihtsast kiirest inseneritööst kuni peenhäälestuse ja RAG-i. Lisateabe saamiseks vaadake Amazonase aluspõhi generatiivsete AI-rakenduste hõlpsaks loomiseks ja skaleerimiseks alusmudelite abil


Autoritest

Ettevõtte andmetest väärtuse loomine: Text2SQL-i ja generatiivse AI parimad tavad | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikaalne otsing. Ai.Randy DeFauw on AWS-i vanemlahenduste arhitekt. Tal on MSEE Michigani ülikoolist, kus ta töötas autonoomsete sõidukite arvutinägemise kallal. Tal on ka MBA kraad Colorado osariigi ülikoolist. Randy on olnud tehnoloogiavaldkonnas erinevatel ametikohtadel, alates tarkvaratehnikast kuni tootehalduseni. In sisenes suurandmete ruumi 2013. aastal ja jätkab selle valdkonna uurimist. Ta töötab aktiivselt ML-ruumi projektidega ja on esinenud paljudel konverentsidel, sealhulgas Strata ja GlueCon.

Ettevõtte andmetest väärtuse loomine: Text2SQL-i ja generatiivse AI parimad tavad | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikaalne otsing. Ai.Nitin Eusebius on AWS-i vanem ettevõtluslahenduste arhitekt, kellel on kogemusi tarkvaratehnika, ettevõttearhitektuuri ja AI/ML alal. Ta on sügavalt kirglik uurima generatiivse tehisintellekti võimalusi. Ta teeb koostööd klientidega, et aidata neil luua AWS-i platvormil hästi arhitektuurseid rakendusi, ning on pühendunud tehnoloogiliste väljakutsete lahendamisele ja nende pilveteekonnal abistamisele.

Ettevõtte andmetest väärtuse loomine: Text2SQL-i ja generatiivse AI parimad tavad | Amazon Web Services PlatoBlockchain Data Intelligence. Vertikaalne otsing. Ai.Arghya Banerjee on San Francisco lahe piirkonnas AWS-i vanem lahenduste arhitekt, kes keskendub klientidele AWS Cloudi kasutuselevõtule ja kasutamisele. Arghya on keskendunud suurandmetele, andmejärvedele, voogedastusele, pakettanalüüsile ning AI/ML teenustele ja tehnoloogiatele.

Ajatempel:

Veel alates AWS-i masinõpe