Företag står inför utmaningar när det gäller att komma åt sina datatillgångar utspridda över olika källor på grund av den ökande komplexiteten i att hantera stora mängder data. Traditionella sökmetoder ger ofta inte heltäckande och kontextuella resultat, särskilt för ostrukturerade data eller komplexa frågor.
Söklösningar inom modern big data-hantering måste underlätta effektiv och korrekt sökning av företagsdatatillgångar som kan anpassas till nya tillgångar. Kunder vill söka igenom all data och applikationer i sin organisation och de vill se härkomstinformationen för alla hämtade dokument. Applikationen måste söka igenom katalogen och visa metadatainformationen relaterad till alla datatillgångar som är relevanta för sökkontexten. För att uppnå alla dessa mål bör lösningen innehålla följande funktioner:
- Tillhandahålla kopplingar mellan relaterade enheter och datakällor
- Konsolidera fragmenterade datakatalogiseringssystem som innehåller metadata
- Ge resonemang bakom sökresultaten
I det här inlägget presenterar vi en generativ AI-driven semantisk söklösning som ger företagsanvändare möjlighet att snabbt och exakt hitta relevanta datatillgångar över olika företagsdatakällor. I den här lösningen integrerar vi stora språkmodeller (LLM) som finns på Amazonas berggrund uppbackad av en kunskapsbas som är härledd från en kunskapsgraf byggd på Amazon Neptunus att skapa ett kraftfullt sökparadigm som gör det möjligt för naturliga språkbaserade frågor att integrera sökning i dokument som lagras i Amazon enkel lagringstjänst (Amazon S3), datasjötabeller som finns på AWS-lim Datakatalog och företagstillgångar i Amazon DataZone.
Grundmodeller (FM) på Amazon Bedrock tillhandahåller kraftfulla generativa modeller för text- och språkuppgifter. Men FM:er saknar domänspecifik kunskap och resonemangsförmåga. Kunskapsdiagram tillgängliga på Neptune tillhandahåller ett sätt att representera sammanlänkade fakta och enheter med slutlednings- och resonemangsförmåga för domäner. Att utrusta FM:er med strukturerad resonemangsförmåga med hjälp av domänspecifika kunskapsgrafer utnyttjar det bästa av båda tillvägagångssätten. Detta gör att FM:er kan behålla sina induktiva förmågor samtidigt som de grundar sin språkförståelse och generering i välstrukturerad domänkunskap och logiska resonemang. I samband med sökning av företagsdatatillgångar som drivs av en metadatakatalog som är värd för tjänster som Amazon DataZone, AWS Glue och andra tredjepartskataloger, kan kunskapsdiagram hjälpa till att integrera denna länkade data och även möjliggöra ett skalbart sökparadigm som integrerar metadata som utvecklas över tid.
Lösningsöversikt
Lösningen integreras med dina befintliga datakataloger och arkiv och skapar ett enhetligt, skalbart semantiskt lager över hela datalandskapet. När användare ställer frågor på vanlig engelska är sökningen inte bara efter nyckelord; den förstår frågans avsikt och sammanhang och relaterar den till relevanta tabeller, dokument och datauppsättningar i hela din organisation. Denna semantiska förståelse möjliggör mer exakta, kontextuella och insiktsfulla sökresultat, vilket gör hela företagets data lika lättillgänglig och enkel att söka som med en konsumentsökmotor, men med det djup och specificitet som ditt företag kräver. Detta förbättrar beslutsfattandet, effektiviteten och innovationen avsevärt i hela din organisation genom att frigöra den fulla potentialen hos dina datatillgångar. Följande video visar exempel på arbetslösningen.
Genom att använda grafdatabehandling och integrationen av naturligt språkbaserad sökning på inbäddade grafer kan dessa hybridsystem låsa upp kraftfulla insikter från komplexa datastrukturer.
Lösningen som presenteras i det här inlägget består av en inmatningspipeline och ett användargränssnitt för sökapplikationer som användaren kan skicka frågor till på naturligt språk medan han söker efter datatillgångar.
Följande diagram illustrerar end-to-end-arkitekturen, bestående av metadata-API-lagret, inmatningspipeline, arbetsflöde för inbäddningsgenerering och frontend-gränssnittet.
Inmatningspipelinen (3) matar in metadata (1) från tjänster (2), inklusive Amazon DataZone, AWS Glue och Amazonas Athena, till en Neptune-databas efter att ha konverterat JSON-svaret från tjänstens API:er till ett RDF-trippelformat. RDF:n konverteras till text och laddas i en S3-hink, som nås av Amazonas berggrund (4) som källan till kunskapsbasen. Du kan utöka den här lösningen till att även omfatta metadata från tredje parts katalogiseringslösningar. Slutanvändarna får åtkomst till applikationen, som finns på Amazon CloudFront (5).
En tillståndsmaskin i AWS stegfunktioner definierar arbetsflödet för intagsprocessen genom att anropa AWS Lambda funktioner, som illustreras i följande figur.
Funktionerna utför följande åtgärder:
- Läs metadata från tjänster (Amazon DataZone, AWS Glue och Athena) i JSON-format. Förbättra JSON-formatets metadata till JSON-LD formatera genom att lägga till sammanhang och ladda data till en Amazon Neptune Serverlös databasen som RDF tredubblar. Följande är ett exempel på RDF-trippel i filformat N-trippel:
För mer information om RDF-dataformat, se W3C-dokumentation.
- Körning SPARQL-frågor i Neptune-databasen för att fylla i ytterligare trippel från slutledningsregler. Det här steget berikar metadata genom att använda grafens slutlednings- och resonemangsfunktioner. Följande är en SPARQL-fråga som infogar ny metadata härledd från befintliga trippel:
- Läs tripplar från Neptune-databasen och konvertera dem till textformat med hjälp av en LLM på Amazon Bedrock. Denna lösning använder Anthropics Claude 3 Haiku v1 för RDF-till-text-konvertering, och lagrar de resulterande textfilerna i en S3-hink.
Kunskapsbaser för Amazons berggrund är konfigurerad att använda föregående S3-bucket som en datakälla för att skapa en kunskapsbas. Amazon Bedrock Knowledge Bases skapar vektorinbäddningar från textfilerna med hjälp av Amazon Titan Text Embeddings v2-modellen.
A Strömbelyst applikationen är värd Amazon Elastic Container Service (Amazon ECS) som en uppgift, som tillhandahåller ett chatbot-gränssnitt för användare att skicka frågor mot kunskapsbasen i Amazon Bedrock.
Förutsättningar
Följande är förutsättningar för att distribuera lösningen:
- Fånga användarpool-ID och applikationsklient-ID, vilket kommer att krävas när du startar CloudFormation-stacken för att bygga webbapplikationen.
- Skapa ett Amazon Cognito användare (till exempel, användarnamn=test_användare) för din Amazon Cognito-användarpool som kommer att användas för att logga in på applikationen. En e-postadress måste inkluderas när användaren skapas.
Förbered testdata
Ett exempeldatasätt behövs för att testa lösningens funktionalitet. I ditt AWS-konto, förbered en tabell med Amazon DataZone och Athena och slutför steg 1 till steg 8 i Amazon DataZone QuickStart med AWS Glue-data. Detta kommer att skapa en tabell och fånga dess metadata i Data Catalog och Amazon DataZone.
För att testa hur lösningen kombinerar metadata från olika datakataloger, skapa en annan tabell endast i datakatalogen, inte i Amazon DataZone. På Athena-konsolen öppnar du frågeredigeraren och kör följande fråga för att skapa en ny tabell:
Distribuera applikationen
Utför följande steg för att distribuera programmet:
- För att starta CloudFormation-mallen, välj Starta stack eller ladda ner mallfilen (jaml) Och starta CloudFormation-stacken i ditt AWS-konto.
- Ändra stackens namn eller lämna som standard och välj sedan Nästa.
- I parametrar sektion, ange Amazon Cognito användarpool-ID (CognitoUserPoolId) och applikationsklient-ID (CognitoAppClientId). Detta krävs för framgångsrik distribution av stackarna.
- Granska och uppdatera andra AWS CloudFormation-parametrar om det behövs. Du kan använda standardvärdena för alla parametrar och fortsätta med stackdistributionen.
Följande tabell listar standardparametrarna för CloudFormation-mallen.
Parameternamn Beskrivning Standardvärde Miljönamn Unikt namn för att skilja olika webbapplikationer i samma AWS-konto (minsta längd 1 och maxlängd 4). dev S3DataPrefixKB S3-objektprefix där kunskapsbasens källdokument (metadatafiler) ska lagras. kunskapsbas cpu CPU-konfiguration av ECS-uppgiften. 512 Minne Minneskonfiguration av ECS-uppgiften. 1024 ContainerPort Port för ECS-uppgiftsvärden och behållaren. 80 DesiredTaskCount Antal önskade ECS-uppgifter. 1 MinContainers Minsta behållare för automatisk skalning. Bör vara mindre än eller lika med DesiredTaskCount. 1 MaxContainers Maximalt antal behållare för automatisk skalning. Bör vara större än eller lika med DesiredTaskCount. 3 AutoScalingTargetValue Målprocent CPU-användning för automatisk skalning av ECS-uppgifter. 80 - Starta stacken.
CloudFormation-stacken skapar de nödvändiga resurserna för att starta applikationen genom att anropa en serie kapslade stackar. Den distribuerar följande resurser i ditt AWS-konto:
- En S3-hink för att spara metadatadetaljer från AWS Glue, Athena och Amazon DataZone, och dess motsvarande textdata
- En extra S3-hink för att lagra kod, artefakter och loggar relaterade till implementeringen
- Ett virtuellt privat moln (VPC), subnät och nätverksinfrastruktur
- An Amazon OpenSearch Serverlös index
- En kunskapsbas för Amazon Bedrock
- En datakälla för kunskapsbasen som ansluter till S3-databucket som tillhandahålls, med en händelseregel för att synkronisera data
- En lambdafunktion som tittar efter objekt som faller under S3-prefixet konfigurerat som parameter S3DataPrefixKB och startar ett inmatningsjobb med Amazon Bedrock Knowledge Bases API:er, som läser data från Amazon S3, delar upp dem, konverterar bitarna till inbäddningar med Amazon Titan Embeddings-modellen och lagrar dessa inbäddningar i OpenSearch Serverless
- En serverlös Neptune-databas för att lagra RDF-trippel
- En State Functions-tillståndsmaskin som anropar en serie lambdafunktioner som läser från de olika AWS-tjänsterna, genererar RDF-trippel och konverterar dem till textdokument
- Ett ECS-kluster och tjänst för Streamlit-webbapplikationen
Efter att CloudFormation-stacken har distribuerats kommer ett Step Functions-arbetsflöde att köras automatiskt som orkestrerar metadataextrahering, transformation och laddning (ETL)-jobbet och lagrar de slutliga resultaten i Amazon S3. Se exekveringsstatus och detaljer för arbetsflödet genom att hämta tillståndsmaskinens Amazon Resource Name (ARN) från CloudFormation-stacken. Om AWS Lake Formation är aktiverat för AWS Glue-databaserna och tabellerna i kontot, slutför du följande steg efter att CloudFormation-stacken har distribuerats för att uppdatera behörigheten och extrahera metadatadetaljerna från AWS Glue och uppdatera metadatadetaljerna för att laddas till kunskapsbasen:
- Lägg till en roll till AWS Glue Lambda-funktionen som ger åtkomst till AWS Glue-databasen.
- Hämta tillståndsmaskinen ARN från CloudFormation-stacken.
- Kör statsmaskinen med standardinmatningsvärden för att extrahera metadatadetaljerna och skriva till Amazon S3.
Du kan söka efter applikationsstackens namn -distribuera- (till exempel, mm-enterprise-search-deploy-dev) på AWS CloudFormation-konsolen. Leta reda på webbapplikationens URL i stackutgångarna (CloudfrontURL). Starta webbapplikationen genom att välja URL-länken.
Använd applikationen
Du kan komma åt applikationen från en webbläsare med domännamnet för Amazon CloudFront-distributionen som skapades i installationsstegen. Logga in med en användaruppgifter som finns i Amazon Cognito-användarpoolen.
Nu kan du skicka en fråga med hjälp av en textinmatning. AWS-kontot som används i det här exemplet innehåller exempeltabeller relaterade till försäljning och marknadsföring. Vi ställer frågan "Hur söker man efter försäljningsdata?" Svaret innehåller metadata på bordet mkt_sls_table som skapades i de föregående stegen.
Vi ställer en annan fråga: "Hur får man kundnamn från försäljningsdata?" I de föregående stegen skapade vi tabellen raw_customer, som inte publicerades som en datatillgång i Amazon DataZone. Tabellen finns bara i Datakatalogen. Applikationen returnerar ett svar som kombinerar metadata från Amazon DataZone och AWS Glue.
Denna kraftfulla lösning öppnar spännande möjligheter för företagsdataupptäckt och insikter. Vi uppmuntrar dig att distribuera den i din egen miljö och experimentera med olika typer av frågor över dina datatillgångar. Försök att kombinera information från flera källor, ställa komplexa frågor och se hur den semantiska förståelsen förbättrar din sökupplevelse.
Städa upp
Den totala kostnaden för att köra den här installationen är mindre än 10 USD per dag. Vi rekommenderar dock ta bort CloudFormation-stacken efter användning eftersom de utplacerade resurserna medför kostnader. Att ta bort huvudstacken tar också bort alla kapslade staplar utom VPC på grund av beroende. Du behöver också ta bort VPC från Amazon VPC-konsolen.
Slutsats
I det här inlägget presenterade vi en omfattande och utbyggbar multimodal söklösning för företagsdatatillgångar. Integrationen av LLM:er och kunskapsdiagram visar att genom att kombinera styrkorna hos dessa teknologier kan organisationer låsa upp nya nivåer av dataupptäckt, resonemang och generering av insikter, vilket i slutändan driver innovation och framsteg inom ett brett spektrum av domäner.
För att lära dig mer om LLM och användningsfall för kunskapsdiagram, se följande resurser:
Om författarna
Sudipta Mitra är en generativ AI Specialist Solutions Architect på AWS, som hjälper kunder över hela Nordamerika att använda kraften hos data och AI för att transformera sina verksamheter och lösa deras mest utmanande problem. Hans uppdrag är att göra det möjligt för kunder att nå sina affärsmål och skapa värde med data och AI. Han hjälper arkitektlösningar för AI/ML-applikationer, företagsdataplattformar, datastyrning och enhetlig sökning i företag.
Gi Kim är en data- och ML-ingenjör med AWS Professional Services-teamet som hjälper kunder att bygga dataanalyslösningar och AI/ML-applikationer. Med över 20 års erfarenhet av lösningsdesign och utveckling, har han en bakgrund inom flera tekniker, och han arbetar med specialister från olika branscher för att utveckla nya innovativa lösningar med hjälp av hans kompetens. När han inte arbetar med lösningsarkitektur och utveckling tycker han om att leka med sina hundar på en strand under San Francisco Golden Gate-bron.
Surendiran Rangaraj är en Data & ML Engineer på AWS som hjälper kunder att låsa upp kraften med big data, maskininlärning och generativa AI-applikationer för sina affärslösningar. Han arbetar nära ett brett spektrum av kunder för att utforma och implementera skräddarsydda strategier som ökar effektiviteten, driver tillväxt och förbättrar kundupplevelsen.
- SEO-drivet innehåll och PR-distribution. Bli förstärkt idag.
- PlatoData.Network Vertical Generative Ai. Styrka dig själv. Tillgång här.
- PlatoAiStream. Web3 Intelligence. Kunskap förstärkt. Tillgång här.
- Platoesg. Kol, CleanTech, Energi, Miljö, Sol, Avfallshantering. Tillgång här.
- PlatoHealth. Biotech och kliniska prövningar Intelligence. Tillgång här.
- Källa: https://aws.amazon.com/blogs/machine-learning/search-enterprise-data-assets-using-llms-backed-by-knowledge-graphs/