Szinergizálja a nagyobb képet és elemezze a trendeket a BigQuery AI.AGG függvényével.
Megosztás
Összefoglalót olvas. A teljes tartalom itt érhető el: cloudblog.withgoogle.com.
Nemrég bejelentettük a BigQuery AI.AGG() funkció előzetes verzióját. Az AI.AGG() segítségével természetes nyelvű utasításokat használhatunk egyetlen SQL sorban, hogy összesítsük vagy szintetizáljuk az információt több millió sor strukturálatlan vagy akár multimodális adat felett. Összefoglalhatunk több millió sort egy SQL sorral: AI.AGG. Míg a BigQuery már kínál erőteljes AI funkciókat, amelyek segítenek az egyes adatsorok elemzésében, a strukturálatlan adatok nagy skálán történő elemzése más megközelítést igényel. Az AI.AGG() lehetővé teszi, hogy kérdéseket tegyünk fel strukturálatlan adatokról, mint például naplókból és dokumentumokból; például: Melyek a három legfontosabb funkciókérés a negatív termékvélemények között? Milyen hibákat tapasztalnak a felhasználók leggyakrabban, és hogyan kezdjem el a vizsgálatukat? Mely konkrét helyzetekben nem teljesít folyamatosan az automatizált ügynökünk a vásárlói problémák megoldásában? Ebben a cikkben mélyebben belemerülünk az AI.AGG() funkcióba, és megvizsgálunk néhány felhasználási esetet, amelyet lehetővé tesz, beleértve azt is, hogyan használható a BigQuery egyéb kezelhető AI funkcióival összetett, intelligens adat-elemzés céljára.
Rendszernaplók elemzése AI.AGG() segítségével Az AI.AGG() erejének nagyszerű példája a rendszernaplók elemzése. A naplóüzenetek, figyelmeztetések, hibák és stack trace-ek rendkívül hasznos információkat tartalmazhatnak a szolgáltatásunk javítása érdekében, de manuálisan vizsgálni őket idő- és munkaigényes lehet – különösen, ha terjeszkedés alatt állunk, és ezer ilyen adatot kell átnéznünk. Az AI.AGG() segítségével egyszerűen elemezhetünk sok naplót egyszerre, csoportosítva és priorizálva azokat, hogy eldöntsük, melyekhez érdemes mélyebben hozzányúlni először. Valójában a BigQuery mérnöki csapata pontosan ezt a megközelítést alkalmazta az AI.AGG() fejlesztése során – a funkciót az inputkezeléshez kapcsolódó szélsőséges esetek azonosítására használták!
Ennek bemutatására elemezzük az Apache Spark standard INFO naplóinak nyilvános adatállományát, amely a Loghubról érhető el. Gyakran előfordul, hogy a klaszterek olyan problémákba ütköznek, mint a memória töredezése, az óra eltérése vagy a közvetítési szűk keresztmetszetek anélkül, hogy valaha is FATAL hibát dobnának. Az AI.AGG() segítségével elemezheti ezeket a látszólag normális naplókat, hogy rejtett hatékonysági hiányosságokat találjon. A mintaadatfájlt bármely támogatott módszer segítségével betöltheti a BigQuery-be, mint például a UI, CLI vagy klienskönyvtárak. Az alábbi példa feltételezi, hogy a naplófájlt egy bq_logs_demo nevű adatállományba és spark_logs_unstructured nevű táblába töltötte be.
Megfigyelheti, hogyan alkotjuk meg itt a promptot. Kifejezetten hozzájárulunk a modellnek, hogy azt mondja: "minden rendben van", ami megakadályozza az értelem nélküli hibák felmerülését, miközben utasítjuk arra, hogy keressen konkrét anomáliákat:
Ezekből az eredményekből látható, hogy az AI.AGG() sikeresen elismeri a "normális üzemelés" üzeneteket, miközben a kritikus diagnosztikai betekintéseket felszínre hozza: A lekérdezési eredmény panelek, amelyeken az AI.AGG() által a naplók adatállományán generált betekintések láthatóak.
Kategóriák kiemelése strukturálatlan szövegből és képadatból Most nézzük meg néhány további felhasználási esetet, amely bemutatja az AI.AGG() rugalmasságát, a BigQuery nyilvános adatállományai, cymbal_pets, egy fiktív kisállat-ellátó bolt által használt példán keresztül. Tartalmazza a bolt által forgalmazott termékek katalógusát, strukturálatlan adatokkal, mint például terméknevek, leírások és képek, making it a great example of the power of AI functions for handling unstructured data. Például, mondjuk, hogy kategorizálni szeretné a termékeket az adatállományban. Az első akadály ebben az esetben nem a címkék alkalmazása a termékekhez, hanem annak felfedezése, hogy milyen kategóriák léteznek a termékkatalógusban. Az AI.AGG() segítségével kérheti a modellt, hogy elemezze a nyers termékneveket és leírásokat, hogy az általános kategóriákat azonosítsa.
Ez a lekérdezés egy egyszerű szöveges lista kategóriákat ad vissza. Ez az elsődleges lekérdezés tökéletes a felfedezéshez, de egy egyszerű szöveges karakterlánc nem elegendő egy megbízható, automatizált adatpipelinek az építéséhez. A tényleges címkézéshez szükség van arra, hogy az AI.AGG()-nak értesítést adjunk, hogy strukturált formátumban adja vissza az adatokat, például JSON tömbként. Ezután a strukturált kategóriákat felhasználhatja egy másik AI funkció, az AI.CLASSIFY() paramétereként, hogy ténylegesen címkézzék meg minden terméket a kategóriájukkal. Az alábbi SQL utasítás minden lépést elvégez egyetlen szkripttel.
Most megtekintheti az így létrejött táblát, amely tartalmaz egy assigned_category-t: A categorized_products tábla előnézete, ami tartalmazza az AI.AGG() és AI.CLASSIFY() által létrehozott új assigned_category oszlopot. Ha közelebbről megnézi az intermediate tábla, észre fogja venni, hogy a strukturált kategóriák kismértékben megváltoztak az eredeti szöveges eredményekhez képest. Ennek oka két dolog: Először is, az LLM-ek nondeterministák, ami azt jelenti, hogy nem minden alkalommal ugyanarra a kérdésre, ugyanazt a választ adják. Másodszor, a promptot módosítani kellett az új kimeneti struktúra befogadására. A visszaadott termékkategóriák strukturált formátumúak JSON-ként, ahogyan az a prompt részeként kérték. A most kategóriaként címkézett táblázattal csoportosíthatók a kategóriák alapján, hogy hagyományos SQL aggregációt végezzenek, vagy használhatják az AI.AGG()-t, hogy minden kategóriát külön-külön megfontoljanak. Például, a következő lekérdezés hagyományos metrikákat (mint például sorszámok) kér le közvetlenül egy szintetizált AI összegzéssel arról, hogy ezek a konkrét csoportosított termékek miben hasonlítanak egymásra.
A strukturálatlan adatok nem korlátozódnak csak a szövegre. Mivel az AI.AGG() natívan támogatja a multimodális bemeneteket, közvetlenül a képfájlokból nyert aggregált betekintéseket is visszaadhat. A cymbal_pets Google Cloud projekt szintén tartalmaz egy Cloud Storage tárolót, tele termékfotókkal. Külső objektumtábla létrehozásával biztonságosan átadhatja a képek URI-jait közvetlenül az AI.AGG()-ba, és megkérdezheti a modellt, hogy összefoglalja a gyűjtemény vizuális tartalmát.
Hogyan működik az AI.AGG() és legjobb gyakorlatok Ahhoz, hogy hatékonyan használhassa az AI.AGG() saját környezetében,használja, fontos megérteni, hogyan dolgozza fel az adatokat a háttérben. Íme, amit tudnia kell a kontextusablakokról, hibaelhárításról és a pipelinek optimalizálásáról.
1. Kontextusablakok és többszintű aggregáció: Az LLM-eknek meghatározott kontextusablaka van, és nehezen tudják kezelni a hatalmas mennyiségű bemenetet. Az AI.AGG() megoldja ezt a problémát azzal, hogy automatikusan felosztja a bemeneti sorokat csoportokra, aggregálja ezeket a csoportokat, majd aggregálja az eredményeket végső válaszba. Ez azt jelenti, hogy nem kell manuálisan kezelnie a kontextusablakot, amikor nagy mennyiségű sort ad át. Vegye figyelembe, hogy az AI.AGG() nem oszt meg egyetlen adat sort a csoportok között, így győződjön meg arról, hogy minden egyes sor kisebb, mint a kontextusablak, hogy elkerülje, hogy a sort kihagyják. Sok kisebb sor nagyobb rugalmasságot biztosít az AI.AGG() számára a sorok csoportosításában.
2. Token használat többszintű aggregációval: Mivel az AI.AGG() egy többszintű aggregációs struktúrát használ, a modellhez küldött bemeneti tokenek összlétszáma magasabb lehet, mint a kiinduló táblázat nyers tokenjei (attól függően, hogy hány aggregációs fordulóra van szükség). Legjobb gyakorlatként mindig csökkentse a bemeneti tokenek számát LIMIT vagy az adatainak előfilterezésével, mielőtt átadná az AI.AGG()-nak.
3. Modell végpont megadása: Ha nem határoz meg modell végpontot, az AI.AGG() egy legutóbb frissített modellt fog alapértelmezettként használni. Azonban a gyártási pipelinek esetében gyakran egyértelmű kontrollra van szükség. Rövid név: Használhat rövid név végpontot (pl. gemini-2.5-flash), ebben az esetben az AI.AGG() ezt a modellt használja a lekérdezési végrehajtás helyén.
Teljes nevű nevezések: Ha a lekérdezés végrehajtási területe nem támogatja a kívánt modellt, vagy ha globális vagy többregionális végpontot szeretne használni, adja meg a teljesen minősített modellnevet.
4. Bemeneti és kimeneti modalitások: Bemenetek: Az AI.AGG() támogatja a szöveget (szövegeken keresztül vagy szövegfájlok hivatkozásaival) és a képadatokat. Ezenkívül támogatja e típusok tömbjeit is, bár javasoljuk, hogy ellenőrizze a dokumentációt az ismert problémákra vonatkozóan a képek tömbjeivel kapcsolatos szélsőséges esetek tekintetében. Kimenetek: A funkció mindig visszaad egy szöveget. Míg utasíthatja a modellt arra, hogy a kimenetet JSON vagy Markdown formátumban formázza, vegye figyelembe, hogy az adatbázis motor nem bünteti ezt szigorúan. A multimodális kimenet (pl. kép generálása) jelenleg nem támogatott.
5. NULL-ok kezelése: Az AI.AGG() automatikusan kihagyja a NULL bemeneti sorokat anélkül, hogy feldolgozná őket. Azonban óvatosnak kell lennie, amikor strukturált adatokat ad át. Az AI.AGG() hasonlóan viselkedik a standard CONCAT() funkciónál, ami azt jelenti, hogy ha akár egy mező a STRUCT-on belül NULL, akkor az egész sort NULL-ként kezelik és kihagyják. Nézzük meg újra az első kategorizálási lekérdezésünket. Mi van, ha a termékek táblánk több sorában hiányzik a leírás? A NULL összefűzési szabály miatt ezek a sorok teljesen elhallgatva kiesnének az elemzésből. Így használhatjuk az IFNULL() funkciót, hogy egy alternatív szöveget biztosítsunk, garantálva, hogy minden termék figyelembe legyen véve, még akkor is, ha a leírás üres:
6. Hibaelhárítás: Ha az AI.AGG() érvénytelen bemenetet kap, vagy hiba lép fel az LLM feldolgozása során, megpróbál részleges eredményeket nyújtani. Az érvénytelen bemeneti vagy a LLM modellt elutasító sorok nem kerülnek figyelembevételre a végső eredményekben. Megnézheti, hány sor nem tudott feldolgozni a BigQuery munka statisztikáinak ellenőrzésével, pontosan úgy, mint a skálázott kezelhető AI funkciók esetén, mint például AI.IF().
Próbálja ki! Ezek csak néhány példa arra, hogyan segíthet az AI.AGG() a strukturálatlan adatok elemzésében. Az AI.AGG() funkció most előzetes fázisban érhető el a BigQuery-ben, így minden BigQuery felhasználó számára elérhető. Próbálja ki a saját felhasználási esetein! Érdekelheti a BigQuery más kezelt AI funkciói, mint például AI.CLASSIFY(), AI.IF() és AI.SCORE(), valamint általános célú funkciók, mint például az AI.GENERATE(). Alig várjuk, hogy láthassuk, mit épít belőlük.
Külső link: cloudblog.withgoogle.com
Kapcsolódó cikkek
architect
A Cycle bevezeti az EU-ellenőrző szintet, miközben folytatódik a szuverenitásról szóló vita.
architect
A Cloudflare részletezi az egységes adatplatformot, ahol a számlázási munkaterhelések a lekérdezések 53%-át teszik ki.
architect
