Érték létrehozása vállalati adatokból: A Text2SQL és a generatív AI legjobb gyakorlatai | Amazon webszolgáltatások

Érték létrehozása vállalati adatokból: A Text2SQL és a generatív AI legjobb gyakorlatai | Amazon webszolgáltatások

A generatív mesterséges intelligencia rengeteg lehetőséget nyitott meg az AI területén. Számos felhasználási módot látunk, beleértve a szöveggenerálást, a kódgenerálást, az összegzést, a fordítást, a chatbotokat és még sok mást. Az egyik ilyen fejlődő terület a természetes nyelvi feldolgozás (NLP) használata, amely új lehetőségeket nyit meg az adatok intuitív SQL-lekérdezéseken keresztüli elérésére. Ahelyett, hogy bonyolult műszaki kóddal foglalkoznának, az üzleti felhasználók és adatelemzők egyszerű nyelven tehetnek fel kérdéseket adatokkal és betekintésekkel kapcsolatban. Az elsődleges cél az SQL lekérdezések automatikus generálása természetes nyelvű szövegből. Ehhez a szövegbevitelt strukturált reprezentációvá alakítjuk, és ebből a reprezentációból egy adatbázis elérésére használható SQL lekérdezést hozunk létre.

Ebben a bejegyzésben bemutatjuk az SQL szövegét (Text2SQL), és feltárjuk a használati eseteket, a kihívásokat, a tervezési mintákat és a legjobb gyakorlatokat. Konkrétan a következőkről beszélünk:

  • Miért van szükségünk Text2SQL-re?
  • A Text to SQL kulcsfontosságú összetevői
  • Azonnali mérnöki megfontolások a természetes nyelv vagy a Text to SQL esetében
  • Optimalizálások és legjobb gyakorlatok
  • Építészeti minták

Miért van szükségünk Text2SQL-re?

Napjainkban a hagyományos adatelemzésben, adattárolásban és adatbázisokban nagy mennyiségű adat áll rendelkezésre, amelyek lekérdezése vagy megértése a szervezeti tagok többsége számára nem biztos, hogy könnyű. A Text2SQL elsődleges célja, hogy a lekérdező adatbázisokat elérhetőbbé tegye a nem műszaki felhasználók számára, akik természetes nyelven tudják megadni lekérdezéseiket.

Az NLP SQL lehetővé teszi az üzleti felhasználók számára, hogy elemezzék az adatokat, és válaszokat kapjanak kérdések természetes nyelven történő gépelésével vagy beszédével, például az alábbiakkal:

  • „Minden termék teljes értékesítésének megjelenítése a múlt hónapban”
  • "Mely termékek termeltek több bevételt?"
  • „Az ügyfelek hány százaléka származik az egyes régiókból?”

Amazon alapkőzet egy teljesen felügyelt szolgáltatás, amely egyetlen API-n keresztül nagy teljesítményű alapmodellek (FM-ek) választékát kínálja, lehetővé téve a Gen AI alkalmazások egyszerű felépítését és méretezését. Használható SQL lekérdezések generálására a fent felsoroltakhoz hasonló kérdések alapján, valamint szervezeti strukturált adatok lekérdezésére és természetes nyelvi válaszok generálására a lekérdezési válaszadatokból.

Az SQL-be ​​írt szöveg kulcsfontosságú összetevői

A szöveg-SQL-rendszerek több szakaszból állnak a természetes nyelvű lekérdezések futtatható SQL-vé konvertálásához:

  • Természetes nyelvi feldolgozás:
    • Elemezze a felhasználó beviteli lekérdezését
    • A kulcselemek és a szándék kibontása
    • Konvertálás strukturált formátumba
  • SQL generálás:
    • A kivont részletek leképezése SQL szintaxisba
    • Hozzon létre egy érvényes SQL-lekérdezést
  • Adatbázis lekérdezés:
    • Futtassa az AI által generált SQL-lekérdezést az adatbázison
    • Eredmények lekérése
    • Az eredmények visszaküldése a felhasználónak

A Large Language Models (LLM) egyik figyelemre méltó képessége a kód generálása, beleértve az SQL-t (Structured Query Language) is az adatbázisokhoz. Ezek az LLM-ek kihasználhatók a természetes nyelvi kérdés megértéséhez, és kimenetként megfelelő SQL-lekérdezést generálnak. Az LLM-ek előnyére válnak a kontextuson belüli tanulás és a beállítások finomhangolása révén, amint több adat áll rendelkezésre.

A következő diagram egy alapvető Text2SQL folyamatot mutat be.

Szöveg 2 SQL magas szintű folyamatfolyamat

Gyors mérnöki megfontolások az SQL természetes nyelvéhez

A prompt kulcsfontosságú, ha LLM-eket használunk a természetes nyelv SQL-lekérdezésekké történő lefordításához, és számos fontos szempont van az azonnali tervezés során.

Hatékony gyors tervezés kulcsfontosságú a természetes nyelv SQL-rendszerek fejlesztéséhez. A világos, egyértelmű utasítások jobb útmutatást adnak a nyelvi modellhez. A kontextus megadása, hogy a felhasználó SQL-lekérdezést kér, valamint a releváns adatbázisséma-részletek lehetővé teszi a modell számára a szándék pontos lefordítását. A természetes nyelvű promptok és a megfelelő SQL-lekérdezések néhány megjegyzéssel ellátott példája segíti a modellt, hogy szintaxis-kompatibilis kimenetet állítson elő. Ezenkívül a Retrieval Augmented Generation (RAG) beépítése, ahol a modell hasonló példákat kér le a feldolgozás során, tovább javítja a leképezés pontosságát. A jól megtervezett promptok, amelyek elegendő utasítást, kontextust, példákat és visszakeresési kiegészítést adnak a modellnek, elengedhetetlenek a természetes nyelv SQL-lekérdezésekké való megbízható lefordításához.

Az alábbiakban egy példa mutatunk be egy alappromptot, amely az adatbázis kódját ábrázolja a tanulmányból A nagy nyelvi modellek néhány pillanatnyi szöveg-SQL-re való képességének javítása: Tanulmány az azonnali tervezési stratégiákról.

/* 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

Amint az ebben a példában is látható, a prompt-alapú, néhány lépésből álló tanulás magában foglalja a modellben néhány megjegyzéssel ellátott példát. Ez bemutatja a természetes nyelv és az SQL közötti célleképezést a modell számára. A prompt általában körülbelül 2–3 párból áll, amelyek egy természetes nyelvű lekérdezést és az azzal egyenértékű SQL-utasítást mutatják. Ez a néhány példa irányítja a modellt a szintaxisnak megfelelő SQL-lekérdezések előállításához természetes nyelvből anélkül, hogy kiterjedt oktatási adatokra lenne szükség.

Finomhangolás vs. azonnali tervezés

Amikor természetes nyelvet építünk fel SQL-rendszerekhez, gyakran belemerülünk abba a vitába, hogy a modell finomhangolása a megfelelő technika, vagy a hatékony azonnali tervezés a helyes út. Mindkét megközelítés mérlegelhető és kiválasztható a megfelelő követelményrendszer alapján:

    • Finomhangolás – Az alapmodell egy nagy általános szövegkorpuszon van előre betanítva, majd használható utasítás alapú finomhangolás, amely címkézett példákat használ az előre betanított alapmodell teljesítményének javítására text-SQL-en. Ez a modellt a célfeladathoz igazítja. A finomhangolás közvetlenül betanítja a modellt a végfeladatra, de sok szöveges SQL példát igényel. Az LLM-en alapuló felügyelt finomhangolást használhatja a szöveg-SQL-be ​​való átdolgozás hatékonyságának javítására. Ehhez többféle adatkészletet használhat, mint pl Pók, WikiSQL, ÜLDÖZÉS, MADÁR-SQLvagy CoSQL.
    • Gyors tervezés – A modell arra van tanítva, hogy teljesítse a cél SQL szintaxist kérő promptokat. Amikor az SQL-t természetes nyelvből LLM-ek segítségével állítja elő, fontos, hogy a promptban egyértelmű utasításokat adjon a modell kimenetének vezérléséhez. A promptban jelölje meg a különböző összetevőket, például oszlopokra mutasson, sémát, majd adja meg, hogy milyen típusú SQL-t kell létrehozni. Ezek olyan utasításokként működnek, amelyek megmondják a modellnek, hogyan kell formázni az SQL kimenetet. A következő prompt egy példát mutat be, ahol a táblázat oszlopaira mutat, és MySQL-lekérdezés létrehozására utasít:
Table offices, columns = [OfficeId, OfficeName]
Table employees, columns = [OfficeId, EmployeeId,EmployeeName]
Create a MySQL query for all employees in the Machine Learning Department

A szöveg-SQL-modellek hatékony megközelítése, ha először egy alapszintű LLM-mel kezdjük, minden feladatspecifikus finomhangolás nélkül. A jól kidolgozott promptok ezután felhasználhatók az alapmodell adaptálására és a szöveg-SQL-leképezés kezelésére. Ez az azonnali tervezés lehetővé teszi a képesség fejlesztését anélkül, hogy finomhangolásra lenne szüksége. Ha az alapmodell azonnali tervezése nem ér el kellő pontosságot, a szöveges SQL-példák kis halmazának finomhangolása a további azonnali tervezéssel együtt megvizsgálható.

A finomhangolás és az azonnali tervezés kombinációjára akkor lehet szükség, ha a nyers, előre betanított modell azonnali tervezése önmagában nem felel meg a követelményeknek. A legjobb azonban, ha először finomhangolás nélkül próbálja meg az azonnali tervezést, mert ez gyors iterációt tesz lehetővé adatgyűjtés nélkül. Ha ez nem nyújt megfelelő teljesítményt, a finomhangolás az azonnali tervezéssel együtt járható következő lépés. Ez az átfogó megközelítés maximalizálja a hatékonyságot, ugyanakkor lehetővé teszi a testreszabást, ha a tisztán azonnali alapú módszerek nem elegendőek.

Optimalizálás és legjobb gyakorlatok

Az optimalizálás és a bevált gyakorlatok elengedhetetlenek a hatékonyság növeléséhez, az erőforrások optimális felhasználásának és a megfelelő eredmények lehető legjobb elérésének biztosításához. A technikák segítenek a teljesítmény javításában, a költségek ellenőrzésében és a jobb minőségű eredmény elérésében.

Az LLM-eket használó szöveg-SQL rendszerek fejlesztésekor az optimalizálási technikák javíthatják a teljesítményt és a hatékonyságot. Az alábbiakban néhány kulcsfontosságú területet kell figyelembe venni:

  • gyorsítótárral – A késleltetés, a költségszabályozás és a szabványosítás javítása érdekében gyorsítótárazhatja az elemzett SQL-t és a felismert lekérdezési promptokat a szöveg-SQL LLM-ből. Ezzel elkerülhető az ismételt lekérdezések újrafeldolgozása.
  • megfigyelés – A lekérdezéselemzéssel, azonnali felismeréssel, SQL generálással és SQL eredményekkel kapcsolatos naplókat és mérőszámokat össze kell gyűjteni a szöveg-SQL LLM rendszer figyeléséhez. Ez láthatóságot biztosít az optimalizálási példa számára, amely frissíti a promptot vagy újra meglátogatja a finomhangolást egy frissített adatkészlettel.
  • Materializált nézetek vs. táblázatok – A materializált nézetek leegyszerűsíthetik az SQL-generálást és javíthatják a gyakori szöveg-SQL-lekérdezések teljesítményét. A táblák közvetlen lekérdezése összetett SQL-t eredményezhet, és teljesítményproblémákat is okozhat, beleértve a teljesítménytechnikák, például az indexek folyamatos létrehozását. Ezenkívül elkerülheti a teljesítményproblémákat, ha ugyanazt a táblát egyidejűleg más alkalmazási területeken is használják.
  • Adatok frissítése – A materializált nézeteket ütemezetten kell frissíteni, hogy az adatok naprakészek legyenek a szöveg-SQL lekérdezésekhez. Használhat kötegelt vagy növekményes frissítési megközelítést az általános költségek kiegyenlítésére.
  • Központi adatkatalógus – A központosított adatkatalógus létrehozása egyetlen üvegtáblát biztosít a szervezet adatforrásaihoz, és segít az LLM-eknek kiválasztani a megfelelő táblázatokat és sémákat a pontosabb válaszok biztosítása érdekében. Vektor beágyazások A központi adatkatalógusból létrehozott adatok a releváns és pontos SQL válaszok generálásához szükséges információkkal együtt eljuttathatók egy LLM-hez.

A bevált optimalizálási gyakorlatok, például a gyorsítótárazás, a figyelés, a materializált nézetek, az ütemezett frissítés és a központi katalógus alkalmazásával jelentősen javíthatja az LLM-eket használó szöveg-SQL rendszerek teljesítményét és hatékonyságát.

Építészeti minták

Nézzünk meg néhány olyan architektúra mintát, amelyek megvalósíthatók a szövegből SQL-be ​​történő munkafolyamatokhoz.

Gyors tervezés

A következő diagram bemutatja a lekérdezések LLM-mel történő generálásának architektúráját prompt tervezéssel.

szemlélteti a lekérdezések LLM-mel történő generálásának architektúráját prompt tervezéssel

Ebben a mintában a felhasználó prompt-alapú, néhány lépésből álló tanulást hoz létre, amely magában a promptban megjegyzésekkel ellátott példákkal látja el a modellt, amely tartalmazza a táblázat és a séma részleteit, valamint néhány mintalekérdezést az eredményekkel együtt. Az LLM a megadott prompt segítségével visszaadja az AI által generált SQL-t, amelyet ellenőriz, majd futtat az adatbázisban az eredmények eléréséhez. Ez a legegyszerűbb minta az azonnali tervezés használatának megkezdéséhez. Ehhez használhatja Amazon alapkőzet or alapozó modellek in Amazon SageMaker JumpStart.

Ebben a mintában a felhasználó egy prompt-alapú, néhány lépésből álló tanulást hoz létre, amely magában a promptban megjegyzésekkel ellátott példákkal látja el a modellt, amely tartalmazza a táblázat és a séma részleteit, valamint néhány mintalekérdezést az eredményekkel együtt. Az LLM a megadott prompt segítségével visszaadja az AI által generált SQL-t, amelyet ellenőriznek, és futtatnak az adatbázisban az eredmények eléréséhez. Ez a legegyszerűbb minta az azonnali tervezés használatának megkezdéséhez. Ehhez használhatja Amazon alapkőzet amely egy teljesen felügyelt szolgáltatás, amely egyetlen API-n keresztül a vezető mesterséges intelligencia vállalatoktól származó, nagy teljesítményű alapozó modellek (FM-ek) választékát kínálja, valamint olyan képességek széles skáláját, amelyekre szükség van generatív AI-alkalmazások létrehozásához biztonsággal, adatvédelemmel és felelősségteljes mesterségesintelligencia-alkalmazásokkal. vagy JumpStart alapozó modellek amely a legmodernebb alapmodelleket kínálja olyan használati esetekre, mint a tartalomírás, kódgenerálás, kérdések megválaszolása, szövegírás, összegzés, osztályozás, információkeresés stb.

Gyors tervezés és finomhangolás

A következő ábra a lekérdezések LLM-mel történő generálásának architektúráját szemlélteti azonnali tervezéssel és finomhangolással.

szemlélteti a lekérdezések LLM-mel történő generálásának architektúráját gyors tervezéssel és finomhangolással

Ez a folyamat hasonló az előző mintához, amely többnyire azonnali tervezésre támaszkodik, de a tartományspecifikus adatkészlet további finomhangolásával jár. A finomhangolt LLM az SQL-lekérdezések generálására szolgál, minimális kontextusbeli értékkel a prompt számára. Ehhez a SageMaker JumpStart segítségével finomhangolhatja az LLM-et egy tartományspecifikus adatkészleten, ugyanúgy, ahogyan bármilyen modellt betanítana és telepítene. Amazon SageMaker.

Gyors tervezés és RAG

A következő diagram bemutatja a lekérdezések LLM-mel történő generálásának architektúráját prompt tervezés és RAG használatával.

szemlélteti a lekérdezések LLM-mel történő generálásának architektúráját prompt tervezés és RAG használatával

Ebben a mintában használjuk Visszakeresés kiterjesztett generáció vektoros beágyazási üzletek segítségével, mint pl Amazon Titan beágyazások or Cohere Embed, On Amazon alapkőzet központi adatkatalógusból, pl AWS ragasztó Adatkatalógus, egy szervezeten belüli adatbázisok. A vektorbeágyazásokat vektor adatbázisokban tárolják, mint pl Vector Engine az Amazon OpenSearch szerver nélküli számára, Amazon Relational Database Service (Amazon RDS) a PostgreSQL-hez a ... val pgvector kiterjesztés, ill Amazon Kendra. Az LLM-ek a vektoros beágyazásokat használják a megfelelő adatbázisok, táblák és oszlopok gyorsabb kiválasztására a táblákból az SQL-lekérdezések létrehozásakor. A RAG használata akkor hasznos, ha az LLM-eknek lekérendő adatokat és releváns információkat több különálló adatbázis-rendszerben tárolják, és az LLM-nek képesnek kell lennie arra, hogy ezekből a különböző rendszerekből adatokat keressen vagy lekérdezzen. Ez az a hely, ahol a központosított vagy egységes adatkatalógus vektoros beágyazása az LLM-ek számára pontosabb és átfogóbb információkat eredményez, amelyeket az LLM-ek küldenek vissza.

Következtetés

Ebben a bejegyzésben megvitattuk, hogyan generálhatunk értéket a vállalati adatokból a természetes nyelv használatával az SQL-generálásig. Megvizsgáltuk a kulcsfontosságú összetevőket, az optimalizálást és a bevált módszereket. Az építészeti mintákat is megtanultuk az alapvető azonnali tervezéstől a finomhangolásig és a RAG-ig. További információért lásd: Amazon alapkőzet generatív AI-alkalmazások egyszerű felépítéséhez és méretezéséhez alapmodellekkel


A szerzőkről

Generating value from enterprise data: Best practices for Text2SQL and generative AI | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Randy DeFauw az AWS vezető megoldásokért felelős építésze. MSEE diplomával rendelkezik a Michigani Egyetemen, ahol autonóm járművek számítógépes látásmódjával foglalkozott. Emellett a Colorado Állami Egyetemen szerzett MBA fokozatot. Randy számos pozíciót töltött be a technológiai területen, a szoftverfejlesztéstől a termékmenedzsmentig. In 2013-ban lépett be a Big Data térbe, és továbbra is kutatja ezt a területet. Aktívan dolgozik projekteken az ML területen, és számos konferencián prezentált, köztük a Stratán és a GlueConon.

Generating value from enterprise data: Best practices for Text2SQL and generative AI | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Nitin Eusebius Sr. Enterprise Solutions Architect az AWS-nél, tapasztalattal rendelkezik a szoftverfejlesztés, a vállalati architektúra és az AI/ML területén. Mélyen lelkesedik a generatív mesterséges intelligencia lehetőségeinek feltárásáért. Együttműködik az ügyfelekkel, hogy segítsen nekik jól megtervezett alkalmazásokat építeni az AWS platformon, és elkötelezett a technológiai kihívások megoldása és a felhőalapú utazásuk segítése iránt.

Generating value from enterprise data: Best practices for Text2SQL and generative AI | Amazon Web Services PlatoBlockchain Data Intelligence. Vertical Search. Ai.Arghya Banerjee a San Francisco Bay Area-i AWS-nél idősebb megoldások építésze, aki arra összpontosít, hogy segítse az ügyfeleket az AWS Cloud elfogadásában és használatában. Az Arghya a Big Data, Data Lakes, Streaming, Batch Analytics és AI/ML szolgáltatásokra és technológiákra összpontosít.

Időbélyeg:

Még több AWS gépi tanulás