Platón adatintelligencia.
Vertical Search & Ai.

Figyelje meg az Amazon SageMaker JumpStart | Amazon webszolgáltatások

Találka:

A generatív AI-munkaterhelések egyik leghasznosabb alkalmazási mintája a Retrieval Augmented Generation (RAG). A RAG mintában egy beviteli prompthoz kapcsolódó referenciatartalom-darabokat találunk a beágyazásokon végzett hasonlósági keresések végrehajtásával. A beágyazások az információtartalmat szövegtestekben rögzítik, lehetővé téve a természetes nyelvi feldolgozási (NLP) modellek számára, hogy numerikus formában működjenek együtt a nyelvvel. A beágyazások csak lebegőpontos számok vektorai, így elemezhetjük őket, hogy megválaszoljunk három fontos kérdést: Változnak-e referenciaadataink az idő múlásával? Változnak a felhasználók által feltett kérdések az idő múlásával? És végül, mennyire fedik le referenciaadataink a feltett kérdéseket?

Ebből a bejegyzésből megtudhat néhány szempontot a beágyazás vektoranalízisével és a beágyazási sodródás jeleinek észlelésével kapcsolatban. Mivel a beágyazások általában az NLP-modellek és különösen a generatív AI-megoldások fontos adatforrásai, szükségünk van egy módra annak mérésére, hogy a beágyazásaink változnak-e az idő múlásával (sodródás). Ebben a bejegyzésben láthat egy példát a beágyazott vektorok elsodródás-észlelésének végrehajtására fürtözési technikával, nagy nyelvi modellekkel (LLMS) Amazon SageMaker JumpStart. Ezeket a fogalmakat két példán keresztül is felfedezheti, beleértve egy végponttól végpontig terjedő példaalkalmazást vagy opcionálisan az alkalmazás egy részhalmazát.

A RAG áttekintése

A RAG minta Lehetővé teszi ismeretek lekérését külső forrásokból, például PDF-dokumentumokból, wiki-cikkekből vagy hívási átiratokból, majd ezen ismeretek felhasználásával kiegészítheti az LLM-nek küldött utasításokat. Ez lehetővé teszi az LLM számára, hogy relevánsabb információkra hivatkozzon a válasz generálásakor. Például, ha megkérdez egy LLM-et, hogyan készítsen csokis kekszeket, az információkat tartalmazhat a saját receptkönyvtárából. Ebben a mintában a recept szövegét beágyazási modell segítségével beágyazó vektorokká alakítják, és vektoradatbázisban tárolják. A beérkező kérdéseket a rendszer beágyazásokká alakítja, majd a vektoradatbázis hasonlósági keresést futtat a kapcsolódó tartalom megtalálása érdekében. A kérdés és a referenciaadatok ezután az LLM promptjába kerülnek.

Nézzük meg közelebbről a létrejövő beágyazási vektorokat, és azt, hogy hogyan lehet ezeken a vektorokon drift-elemzést végezni.

Beágyazó vektorok elemzése

A beágyazó vektorok az adataink numerikus reprezentációi, így ezeknek a vektoroknak az elemzése betekintést nyújthat referenciaadatainkba, amelyeket később felhasználhatunk a potenciális sodródási jelek kimutatására. A beágyazó vektorok egy elemet képviselnek az n-dimenziós térben, ahol n gyakran nagy. Például az ebben a bejegyzésben használt GPT-J 6B modell 4096-os méretű vektorokat hoz létre. Az eltolódás méréséhez tegyük fel, hogy alkalmazásunk rögzíti a beágyazási vektorokat mind a referenciaadatokhoz, mind a bejövő promptokhoz.

Kezdjük a méretcsökkentés végrehajtásával a főkomponens-elemzés (PCA) segítségével. A PCA megpróbálja csökkenteni a dimenziók számát, miközben megőrzi az adatok eltérésének nagy részét. Ebben az esetben megpróbáljuk megtalálni a dimenziók számát, amely megőrzi a variancia 95%-át, aminek két szóráson belül bármit meg kell fognia.

Ezután a K-Means segítségével azonosítjuk a klaszterközpontok halmazát. A K-Means megpróbálja a pontokat klaszterekbe csoportosítani úgy, hogy mindegyik klaszter viszonylag kompakt legyen, és a klaszterek a lehető legtávolabb legyenek egymástól.

Az alábbi ábrán látható klaszterezési kimenet alapján a következő információkat számítjuk ki:

  • A PCA azon dimenzióinak száma, amelyek a variancia 95%-át magyarázzák
  • Az egyes klaszterközpontok vagy centroidok helye

Ezenkívül megvizsgáljuk a minták arányát (magasabb vagy alacsonyabb) az egyes klaszterekben, amint az a következő ábrán látható.

Végül ezt az elemzést a következők kiszámításához használjuk:

  • Tehetetlenség – A tehetetlenség a klaszterközpontok távolságának négyzetes összege, amely azt méri, hogy az adatok mennyire voltak klaszterezve a K-Means segítségével.
  • Sziluett pontszám – A sziluett pontszám a klasztereken belüli konzisztencia érvényesítésének mértéke, és -1 és 1 között mozog. Az 1-hez közeli érték azt jelenti, hogy a klaszterben lévő pontok közel vannak ugyanabban a klaszterben lévő többi ponthoz, és távol vannak a többi klaszter pontjait. A sziluett pontszámának vizuális ábrázolása a következő ábrán látható.

Időnként rögzíthetjük ezeket az információkat a beágyazások pillanatképeihez mind a forrás referenciaadatokhoz, mind a promptokhoz. Ezen adatok rögzítése lehetővé teszi a beágyazási sodródás lehetséges jeleinek elemzését.

Beágyazási eltolódás észlelése

Időnként összehasonlíthatjuk a klaszterezési információkat az adatok pillanatképein keresztül, amelyek magukban foglalják a referenciaadat-beágyazásokat és a prompt beágyazásokat. Először is összehasonlíthatjuk a beágyazási adatok variációinak 95%-ának magyarázatához szükséges dimenziók számát, a tehetetlenséget és a klaszterezési feladatból származó sziluett pontszámot. Amint az a következő táblázatban látható, az alapvonalhoz képest a beágyazásokról készült legújabb pillanatkép 39 további dimenziót igényel az eltérés magyarázatához, ami azt jelzi, hogy adataink szétszórtabbak. A tehetetlenség megnőtt, ami azt jelzi, hogy a minták összességében távolabb vannak a klaszterközpontjuktól. Ezenkívül a sziluett pontszáma csökkent, ami azt jelzi, hogy a klaszterek nincsenek olyan jól meghatározottak. Az azonnali adatok esetében ez azt jelezheti, hogy a rendszerbe érkező kérdések több témát fednek le.

Ezután a következő ábrán láthatjuk, hogy az egyes klaszterekben a minták aránya hogyan változott az idők során. Ez megmutathatja, hogy az újabb referenciaadataink nagyjából hasonlóak-e az előző halmazhoz, vagy új területeket fednek le.

Végül láthatjuk, hogy a klaszterközpontok mozognak-e, ami a klaszterekben lévő információk eltolódását mutatná, amint az a következő táblázatban látható.

Referenciaadat-lefedettség a bejövő kérdésekhez

Azt is értékelhetjük, hogy referenciaadataink mennyire igazodnak a bejövő kérdésekhez. Ehhez minden prompt beágyazást hozzárendelünk egy referenciaadat-fürthöz. Kiszámoljuk az egyes promptok és a megfelelő középpont közötti távolságot, és megnézzük e távolságok átlagát, mediánját és szórását. Ezeket az információkat tárolhatjuk, és láthatjuk, hogyan változik az idő múlásával.

A következő ábra egy példát mutat be a prompt beágyazás és a referencia adatközpontok közötti távolság időbeli elemzésére.

Amint látható, az azonnali beágyazások és a referencia-adatközpontok közötti távolság átlagos, medián és szórás-statisztikája csökken a kezdeti alapvonal és a legutóbbi pillanatkép között. Bár a távolság abszolút értéke nehezen értelmezhető, a trendek segítségével megállapíthatjuk, hogy a referenciaadatok és a beérkező kérdések szemantikai átfedése idővel javul-e vagy romlik.

Alkalmazási minta

Az előző részben tárgyalt kísérleti eredmények összegyűjtése érdekében építettünk egy minta alkalmazást, amely megvalósítja a RAG mintát a SageMaker JumpStarton keresztül telepített és a webhelyen tárolt beágyazási és generálási modellekkel. Amazon SageMaker valós idejű végpontok.

Az alkalmazás három fő összetevőből áll:

  • Interaktív folyamatot használunk, amely egy felhasználói felületet tartalmaz a promptok rögzítéséhez, kombinálva egy RAG hangszerelési réteggel, a LangChain segítségével.
  • Az adatfeldolgozási folyamat kivonja az adatokat a PDF-dokumentumokból, és beágyazásokat hoz létre, amelyek tárolásra kerülnek Amazon OpenSearch szolgáltatás. Ezeket az alkalmazás végső beágyazási sodródáselemző komponensében is használjuk.
  • A beágyazások rögzítve vannak Amazon egyszerű tárolási szolgáltatás (Amazon S3) keresztül Amazon Kinesis Data Firehose, és a kombinációt futtatjuk AWS ragasztó a beágyazási elemzés elvégzéséhez kibontja, átalakítani és betölteni (ETL) feladatokat és Jupyter notebookokat.

A következő ábra a végpontok közötti architektúrát szemlélteti.

A teljes mintakód elérhető itt GitHub. A megadott kód két különböző mintában érhető el:

  • Példa full-stack alkalmazásra Streamlit előtérrel – Ez egy végpontok közötti alkalmazást biztosít, beleértve a Streamlitet használó felhasználói felületet a promptok rögzítésére, kombinálva a RAG hangszerelési réteggel, a LangChain használatával. Amazon Elastic Container Service (Amazon ECS) -val AWS Fargate
  • Háttér alkalmazás – Azok számára, akik nem szeretnék a teljes alkalmazáscsomagot telepíteni, opcionálisan választhatják, hogy csak a háttérrendszert telepítik. AWS Cloud Development Kit (AWS CDK) verem, majd a mellékelt Jupyter notebook segítségével végezze el a RAG hangszerelést a LangChain segítségével

A megadott minták létrehozásához számos előfeltétel szükséges, amelyeket a következő szakaszokban részletezünk, kezdve a generatív és szövegbeágyazási modellek telepítésével, majd a további előfeltételekkel.

Telepítse a modelleket a SageMaker JumpStart segítségével

Mindkét minta egy beágyazási modell és egy generatív modell telepítését feltételezi. Ehhez két modellt kell telepítenie a SageMaker JumpStartból. Az első modell, a GPT-J 6B, beágyazási modellként, a második modell, a Falcon-40b pedig szöveggenerálásra szolgál.

Ezeket a modelleket a SageMaker JumpStart segítségével telepítheti a AWS felügyeleti konzol, Amazon SageMaker Studio, vagy programozottan. További információkért lásd: A JumpStart alapozó modellek használata. A telepítés egyszerűsítése érdekében használhatja a biztosított notebook a SageMaker JumpStart által automatikusan létrehozott notebookokból származik. Ez a notebook a SageMaker JumpStart ML hubból gyűjti a modelleket, és telepíti őket két különálló SageMaker valós idejű végpontra.

A mintafüzetnek van egy tisztító része is. Még ne futtassa ezt a szakaszt, mert törli az imént telepített végpontokat. A takarítást a bemutató végén fejezi be.

A végpontok sikeres telepítésének megerősítése után készen áll a teljes minta alkalmazás üzembe helyezésére. Ha azonban inkább csak a háttér- és elemzési jegyzetfüzeteket szeretné felfedezni, akkor opcionálisan csak azt telepítheti, amelyről a következő szakaszban olvashat.

1. lehetőség: Csak a háttéralkalmazást telepítse

Ez a minta lehetővé teszi csak a háttérmegoldás üzembe helyezését, és a megoldással való interakciót egy Jupyter notebook használatával. Használja ezt a mintát, ha nem szeretné kiépíteni a teljes felületet.

Előfeltételek

A következő előfeltételekkel kell rendelkeznie:

  • A SageMaker JumpStart modell végpontja telepítve – Telepítse a modelleket a SageMaker valós idejű végpontjaira a SageMaker JumpStart segítségével, a korábban leírtak szerint
  • Telepítési paraméterek - Rögzítse a következőket:
    • Szöveges modell végpont neve – A SageMaker JumpStarttal telepített szöveggenerálási modell végpontjának neve
    • Beágyazási modell végpont neve – A SageMaker JumpStart segítségével telepített beágyazási modell végpontjának neve

Telepítse az erőforrásokat az AWS CDK használatával

Az AWS CDK-verem üzembe helyezéséhez használja az előző szakaszban leírt telepítési paramétereket. Az AWS CDK telepítésével kapcsolatos további információkért lásd: Az AWS CDK használatának megkezdése.

Győződjön meg arról, hogy a Docker telepítve van és fut az AWS CDK központi telepítéséhez használt munkaállomáson. Hivatkozni Szerezd meg a Dockert további útmutatásért.

$ cd pattern1-rag/cdk
$ cdk deploy BackendStack --exclusively -c textModelEndpointName=<Enter the SageMaker Endpoint Name for the Text generation model> -c embeddingsModelEndpointName=<Enter the SageMaker Endpoint Name for the Text embeddings model>

Alternatív megoldásként megadhatja a környezeti értékeket egy nevű fájlban cdk.context.json a pattern1-rag/cdk könyvtárat és futtassa cdk deploy BackendStack --exclusively.

A telepítés kinyomtatja a kimeneteket, amelyek egy része a notebook futtatásához szükséges. Mielőtt elkezdené a kérdések megválaszolását, ágyazza be a referenciadokumentumokat a következő részben látható módon.

Referencia dokumentumok beágyazása

Ennél a RAG-megközelítésnél a referenciadokumentumokat először egy szövegbeágyazási modellbe ágyazzák be, és egy vektoros adatbázisban tárolják. Ebben a megoldásban egy feldolgozási folyamatot építettek ki, amely PDF dokumentumokat fogad be.

An Amazon rugalmas számítási felhő (Amazon EC2) példányt hoztak létre a PDF-dokumentum feldolgozásához és egy Amazon elasztikus fájlrendszer (Amazon EFS) fájlrendszer van felszerelve az EC2 példányra a PDF dokumentumok mentéséhez. An AWS DataSync A feladat óránként lefut, hogy lekérje az EFS fájlrendszer elérési útjában található PDF dokumentumokat, és feltöltse azokat egy S3 tárolóba a szövegbeágyazási folyamat elindításához. Ez a folyamat beágyazza a referenciadokumentumokat, és elmenti a beágyazásokat az OpenSearch szolgáltatásba. A Kinesis Data Firehose segítségével egy beágyazási archívumot is elment egy S3 tárolóba későbbi elemzés céljából.

A referenciadokumentumok lenyeléséhez hajtsa végre a következő lépéseket:

  1. Kérje le a létrehozott minta EC2 példányazonosítót (lásd az AWS CDK kimenetet JumpHostId), és csatlakoztassa a használatával Session Manager, képessége AWS rendszermenedzser. Az utasításokat lásd Csatlakozzon Linux-példányához az AWS Systems Manager Session Manager segítségével.
  2. Menjen a könyvtárba /mnt/efs/fs1, amelyre az EFS fájlrendszer fel van szerelve, és hozzon létre egy mappát ingest:
    $ cd /mnt/efs/fs1
    $ mkdir ingest && cd ingest

  3. Adja hozzá a referencia PDF-dokumentumokat a ingest könyvtárban.

A DataSync feladat úgy van beállítva, hogy az ebben a könyvtárban található összes fájlt feltöltse az Amazon S3-ba a beágyazási folyamat elindításához.

A DataSync feladat óránkénti ütemezés szerint fut; opcionálisan manuálisan is elindíthatja a feladatot, hogy azonnal elindítsa a hozzáadott PDF-dokumentumok beágyazási folyamatát.

  1. A feladat elindításához keresse meg a feladatazonosítót az AWS CDK kimenetén DataSyncTaskID és a kezdje el a feladatot alapértelmezett értékekkel.

A beágyazások létrehozása után elindíthatja a RAG-kérdést és a megválaszolást egy Jupyter-jegyzetfüzeten keresztül, ahogy az a következő részben látható.

Kérdések és válaszok Jupyter notebook segítségével

Hajtsa végre a következő lépéseket:

  1. Kérje le a SageMaker notebook példány nevét az AWS CDK kimenetről NotebookInstanceName és csatlakozzon a JupyterLabhoz a SageMaker konzolról.
  2. Menjen a könyvtárba fmops/full-stack/pattern1-rag/notebooks/.
  3. Nyissa meg és futtassa a notebookot query-llm.ipynb a notebook-példányban a kérdések és válaszok RAG használatával történő végrehajtásához.

Ne felejtse el használni a conda_python3 kernel a notebookhoz.

Ez a minta hasznos a háttérmegoldás felfedezéséhez anélkül, hogy további előfeltételeket kellene megadnia, amelyek a teljes veremű alkalmazáshoz szükségesek. A következő szakasz egy teljes veremű alkalmazás megvalósítását fedi le, beleértve a frontend és a háttérkomponenseket is, hogy felhasználói felületet biztosítson a generatív AI-alkalmazással való interakcióhoz.

2. lehetőség: Telepítse a teljes veremű példaalkalmazást Streamlit előtérrel

Ez a minta lehetővé teszi a megoldás telepítését egy felhasználói felülettel a kérdésekhez és a válaszokhoz.

Előfeltételek

A mintaalkalmazás üzembe helyezéséhez a következő előfeltételekkel kell rendelkeznie:

  • A SageMaker JumpStart modell végpontja telepítve – Telepítse a modelleket a SageMaker valós idejű végpontjaira a SageMaker JumpStart segítségével, az előző szakaszban leírtak szerint, a mellékelt jegyzetfüzetek használatával.
  • Amazon Route 53 hosted zóna - Hozzon létre egy Amazon út 53 nyilvánosan hostolt zóna használni ehhez a megoldáshoz. Használhat egy meglévő Route 53 nyilvános hosztolt zónát is, mint pl example.com.
  • AWS Certificate Manager tanúsítvány – Ellátás an AWS tanúsítványkezelő (ACM) TLS-tanúsítvány a Route 53 által üzemeltetett zóna tartománynévhez és a vonatkozó aldomainekhez, mint pl. example.com és a *.example.com minden aldomainhez. Az utasításokat lásd Nyilvános tanúsítvány kérése. Ez a tanúsítvány a HTTPS bekapcsolására szolgál Amazon CloudFront és az eredeti terheléselosztó.
  • Telepítési paraméterek - Rögzítse a következőket:
    • Frontend alkalmazás egyéni domain név – Egyéni tartománynév, amelyet a frontend mintaalkalmazás eléréséhez használnak. A megadott domain név egy Route 53 DNS-rekord létrehozására szolgál, amely a frontend CloudFront disztribúcióra mutat; például, app.example.com.
    • A terheléselosztó eredetű egyéni domain név – Egyéni tartománynév, amelyet a CloudFront elosztási terheléselosztó eredetéhez használnak. A megadott domain név egy Route 53 DNS-rekord létrehozására szolgál, amely az eredet terheléselosztóra mutat; például, app-lb.example.com.
    • Route 53 hosted zone ID – Az 53-as útvonalon tárolt zónaazonosító a megadott egyéni tartománynevek tárolására; például, ZXXXXXXXXYYYYYYYYY.
    • Route 53 hostolt zóna neve – Az 53-as útvonalon tárolt zóna neve a megadott egyéni tartománynevek tárolására; például, example.com.
    • ACM tanúsítvány ARN – A megadott egyéni tartományhoz használandó ACM-tanúsítvány ARN-je.
    • Szöveges modell végpont neve – A SageMaker JumpStarttal telepített szöveggenerálási modell végpontjának neve.
    • Beágyazási modell végpont neve – A SageMaker JumpStart segítségével telepített beágyazási modell végpontjának neve.

Telepítse az erőforrásokat az AWS CDK használatával

Az AWS CDK-verem üzembe helyezéséhez használja az előfeltételekben megadott központi telepítési paramétereket. További információkért lásd: Az AWS CDK használatának megkezdése.

Győződjön meg arról, hogy a Docker telepítve van és fut az AWS CDK központi telepítéséhez használt munkaállomáson.

$ cd pattern1-rag/cdk
$ cdk deploy --all -c appCustomDomainName=<Enter Custom Domain Name to be used for Frontend App> -c loadBalancerOriginCustomDomainName=<Enter Custom Domain Name to be used for Load Balancer Origin> -c customDomainRoute53HostedZoneID=<Enter Route53 Hosted Zone ID for the Custom Domain being used> -c customDomainRoute53HostedZoneName=<Enter Route53 Hostedzone Name> -c customDomainCertificateArn=<Enter ACM Certificate ARN for Custom Domains provided> -c textModelEndpointName=<Enter the SageMaker Endpoint Name for the Text generation model> -c embeddingsModelEndpointName=<Enter the SageMaker Endpoint Name for the Text embeddings model>

Az előző kódban a -c egy kontextusértéket jelent, a szükséges előfeltételek formájában, amelyeket a bemeneten adnak meg. Alternatív megoldásként megadhatja a környezeti értékeket egy nevű fájlban cdk.context.json a pattern1-rag/cdk könyvtárat és futtassa cdk deploy --all.

Vegye figyelembe, hogy a fájlban megadjuk a régiót bin/cdk.ts. Az ALB hozzáférési naplók konfigurálásához egy adott régióra van szükség. Ezt a régiót a telepítés előtt módosíthatja.

A telepítés kinyomtatja a Streamlit alkalmazás eléréséhez szükséges URL-t. Mielőtt elkezdené a kérdéseket és a válaszokat, be kell ágyaznia a referenciadokumentumokat, ahogy az a következő részben látható.

A referenciadokumentumok beágyazása

A RAG megközelítésben a referenciadokumentumokat először egy szövegbeágyazási modellbe ágyazzák be, és egy vektoros adatbázisban tárolják. Ebben a megoldásban egy feldolgozási folyamatot építettek ki, amely PDF dokumentumokat fogad be.

Amint azt az első telepítési lehetőségnél tárgyaltuk, egy példa EC2-példány jött létre a PDF-dokumentum feldolgozásához, és az EC2-példányra egy EFS-fájlrendszer van csatlakoztatva a PDF-dokumentumok mentéséhez. Óránként lefut egy DataSync-feladat az EFS-fájlrendszer elérési útjában található PDF-dokumentumok lekérésére, majd feltöltésére egy S3-tárolóba a szövegbeágyazási folyamat elindításához. Ez a folyamat beágyazza a referenciadokumentumokat, és elmenti a beágyazásokat az OpenSearch szolgáltatásba. A Kinesis Data Firehose segítségével egy beágyazási archívumot is elment egy S3 tárolóba későbbi elemzés céljából.

A referenciadokumentumok lenyeléséhez hajtsa végre a következő lépéseket:

  1. Kérje le a létrehozott minta EC2 példányazonosítót (lásd az AWS CDK kimenetet JumpHostId), és csatlakozzon a Session Manager segítségével.
  2. Menjen a könyvtárba /mnt/efs/fs1, amelyre az EFS fájlrendszer fel van szerelve, és hozzon létre egy mappát ingest:
    $ cd /mnt/efs/fs1
    $ mkdir ingest && cd ingest

  3. Adja hozzá a referencia PDF-dokumentumokat a ingest könyvtárban.

A DataSync feladat úgy van beállítva, hogy az ebben a könyvtárban található összes fájlt feltöltse az Amazon S3-ba a beágyazási folyamat elindításához.

A DataSync feladat óránkénti ütemezés szerint fut. Opcionálisan elindíthatja a feladatot manuálisan is, hogy azonnal elindítsa a hozzáadott PDF-dokumentumok beágyazási folyamatát.

  1. A feladat elindításához keresse meg a feladatazonosítót az AWS CDK kimenetén DataSyncTaskID és a kezdje el a feladatot alapértelmezett értékekkel.

Kérdés és válasz

A referenciadokumentumok beágyazása után elindíthatja a RAG-kérdést és a választ az URL-cím meglátogatásával a Streamlit alkalmazás eléréséhez. An Amazon Cognito hitelesítési réteget használnak, ezért az alkalmazáshoz való első hozzáféréshez felhasználói fiók létrehozása szükséges az Amazon Cognito felhasználói csoportjában, amely az AWS CDK-n keresztül van telepítve (lásd az AWS CDK kimenetét a felhasználói készlet nevéhez). Az Amazon Cognito felhasználó létrehozására vonatkozó utasításokért lásd: Új felhasználó létrehozása az AWS Management Console-ban.

Sodródáselemzés beágyazása

Ebben a részben bemutatjuk, hogyan végezhet eltolódási elemzést úgy, hogy először létrehozza a referenciaadat-beágyazások és prompt-beágyazások alapvonalát, majd elkészíti a beágyazások időbeli pillanatnyi képét. Ez lehetővé teszi az alapszintű beágyazások és a pillanatkép beágyazások összehasonlítását.

Hozzon létre egy beágyazási alapvonalat a referenciaadatokhoz, és kérjen rá

A referenciaadatok beágyazási alapvonalának létrehozásához nyissa meg az AWS Glue konzolt, és válassza ki az ETL-feladatot embedding-drift-analysis. Állítsa be az ETL job paramétereit az alábbiak szerint, és futtassa a jobot:

  • Készlet --job_type nak nek BASELINE.
  • Készlet --out_table hoz Amazon DynamoDB táblázat a referencia adatok beágyazásához. (Lásd az AWS CDK kimenetet DriftTableReference a táblázat nevéhez.)
  • Készlet --centroid_table a DynamoDB táblába a referencia centroid adatokért. (Lásd az AWS CDK kimenetet CentroidTableReference a táblázat nevéhez.)
  • Készlet --data_path az S3 vödörre az előtaggal; például, s3:///embeddingarchive/. (Lásd az AWS CDK kimenetet BucketName a vödör nevéhez.)

Hasonlóképpen, az ETL job használatával embedding-drift-analysis, hozza létre a promptok beágyazási alapvonalát. Állítsa be az ETL job paramétereit az alábbiak szerint, és futtassa a jobot:

  • Készlet --job_type nak nek BASELINE
  • Készlet --out_table a DynamoDB táblába az adatok azonnali beágyazásához. (Lásd az AWS CDK kimenetet DriftTablePromptsName a táblázat nevéhez.)
  • Készlet --centroid_table a DynamoDB táblába, hogy azonnali centroid adatokat kapjon. (Lásd az AWS CDK kimenetet CentroidTablePrompts a táblázat nevéhez.)
  • Készlet --data_path az S3 vödörre az előtaggal; például, s3:///promptarchive/. (Lásd az AWS CDK kimenetet BucketName a vödör nevéhez.)

Hozzon létre egy beágyazási pillanatképet a referenciaadatokhoz és kérje le

Miután további információkat vett fel az OpenSearch szolgáltatásba, futtassa az ETL-feladatot embedding-drift-analysis ismét, hogy pillanatképet készítsen a referenciaadat-beágyazásokról. A paraméterek megegyeznek az előző szakaszban bemutatott módon a referenciaadatok beágyazási alapvonalának létrehozásához futtatott ETL-feladattal, kivéve a --job_type paraméter a SNAPSHOT.

Hasonlóképpen, a prompt beágyazások pillanatképének elkészítéséhez futtassa az ETL-feladatot embedding-drift-analysis újra. A paraméterek megegyeznek az ETL-feladattal, amelyet a promptok beágyazási alapvonalának létrehozásához futtatott, az előző részben látható módon, kivéve a --job_type paraméter a SNAPSHOT.

Hasonlítsa össze az alapvonalat a pillanatfelvétellel

A beágyazás alapvonalának és pillanatképének összehasonlításához referenciaadatokhoz és promptokhoz használja a mellékelt jegyzetfüzetet pattern1-rag/notebooks/drift-analysis.ipynb.

A referenciaadatok vagy promptok beágyazási összehasonlításának megtekintéséhez módosítsa a DynamoDB táblanév változóit (tbl és a c_tbl) a jegyzetfüzetben a megfelelő DynamoDB táblához a notebook minden egyes futtatásához.

A notebook változó tbl módosítani kell a megfelelő drift tábla nevére. A következő egy példa arra, hogy hol kell konfigurálni a változót a notebookban.

A táblázatok nevei a következőképpen kérdezhetők le:

  • A referencia beágyazási adatokhoz kérje le az eltolódási tábla nevét az AWS CDK kimenetéről DriftTableReference
  • Az azonnali beágyazási adatokhoz kérje le az eltolódási tábla nevét az AWS CDK kimenetéről DriftTablePromptsName

Ezen kívül a notebook változó c_tbl módosítani kell a megfelelő centroid tábla nevére. A következő egy példa arra, hogy hol kell konfigurálni a változót a notebookban.

A táblázatok nevei a következőképpen kérdezhetők le:

  • A referencia beágyazási adatokhoz kérje le a centroid tábla nevét az AWS CDK kimenetéről CentroidTableReference
  • Az azonnali beágyazási adatokhoz kérje le a centroid tábla nevét az AWS CDK kimenetéről CentroidTablePrompts

Elemezze a referenciaadatoktól való prompt távolságot

Először futtassa az AWS ragasztó feladatot embedding-distance-analysis. Ez a feladat a referenciaadat-beágyazások K-Means kiértékeléséből kideríti, hogy az egyes promptok melyik fürthöz tartoznak. Ezután kiszámítja az egyes promptok és a megfelelő klaszter közepe közötti távolság átlagát, mediánját és szórását.

Futtathatja a notebookot pattern1-rag/notebooks/distance-analysis.ipynb hogy megtekinthesse a távolságmutatók időbeli trendjeit. Így érzékelheti az azonnali beágyazási távolságok eloszlásának általános tendenciáját.

A jegyzetfüzet pattern1-rag/notebooks/prompt-distance-outliers.ipynb egy AWS Glue jegyzetfüzet, amely kiugró értékeket keres, amelyek segíthetnek azonosítani, hogy kap-e több olyan felszólítást, amely nem kapcsolódik a referenciaadatokhoz.

Figyelje a hasonlósági pontszámokat

Az OpenSearch Service összes hasonlósági pontszáma bejelentkezve van amazonfelhőóra alatt a rag névtér. A műszerfal RAG_Scores az átlagos pontszámot és a bevitt pontszámok teljes számát mutatja.

Tisztítsuk meg

A jövőbeni költségek elkerülése érdekében törölje az összes létrehozott erőforrást.

Törölje a telepített SageMaker modelleket

Tekintse meg a tisztítási szakaszt a megadott példafüzet a telepített SageMaker JumpStart modellek törléséhez, vagy megteheti törölje a modelleket a SageMaker konzolon.

Törölje az AWS CDK-erőforrásokat

Ha megadta a paramétereit a cdk.context.json fájlt, tisztítsa meg az alábbiak szerint:

$ cd pattern1-rag/cdk
$ cdk destroy --all

Ha megadta a paramétereket a parancssorban, és csak a háttéralkalmazást (a háttér AWS CDK veremét) telepítette, tisztítsa meg a következőket:

$ cd pattern1-rag/cdk
$ cdk destroy --all -c textModelEndpointName=<Enter the SageMaker Endpoint Name for the Text generation model> -c embeddingsModelEndpointName=<Enter the SageMaker Endpoint Name for the Text embeddings model>

Ha megadta a paramétereket a parancssorban, és üzembe helyezte a teljes megoldást (az előtér és a háttér AWS CDK verem), tisztítsa meg a következőket:

$ cd pattern1-rag/cdk
$ cdk destroy --all -c appCustomDomainName=<Enter Custom Domain Name to be used for Frontend App> -c loadBalancerOriginCustomDomainName=<Enter Custom Domain Name to be used for Load Balancer Origin> -c customDomainRoute53HostedZoneID=<Enter Route53 Hosted Zone ID for the Custom Domain being used> -c customDomainRoute53HostedZoneName=<Enter Route53 Hostedzone Name> -c customDomainCertificateArn=<Enter ACM Certificate ARN for Custom Domains provided> -c textModelEndpointName=<Enter the SageMaker Endpoint Name for the Text generation model> -c embeddingsModelEndpointName=<Enter the SageMaker Endpoint Name for the Text embeddings model>

Következtetés

Ebben a bejegyzésben egy működő példát mutattunk be egy olyan alkalmazásra, amely rögzíti a beágyazási vektorokat mind a referenciaadatokhoz, mind a generatív mesterséges intelligencia RAG mintájának promptjaihoz. Megmutattuk, hogyan kell klaszterezési elemzést végezni annak meghatározására, hogy a referencia- vagy azonnali adatok idővel sodródnak-e, és hogy a referenciaadatok mennyire fedik le a felhasználók által feltett kérdések típusait. Ha sodródást észlel, az jelezheti, hogy a környezet megváltozott, és a modell olyan új bemeneteket kap, amelyek kezelésére esetleg nincs optimalizálva. Ez lehetővé teszi az aktuális modell proaktív értékelését a változó bemenetekkel szemben.


A szerzőkről

Abdullahi Olaoye az Amazon Web Services (AWS) vezető megoldástervezője. Abdullahi a Wichita Állami Egyetemen szerzett MSC-t számítógépes hálózatok területén, és publikált szerző, aki különböző technológiai területeken töltött be szerepet, mint például a DevOps, az infrastruktúra modernizálása és az AI. Jelenleg a Generative AI-re összpontosít, és kulcsszerepet játszik abban, hogy segítse a vállalkozásokat a Generative AI által hajtott élvonalbeli megoldások megtervezésében és felépítésében. A technológia birodalmán túl örömét leli a felfedezés művészetében. Amikor nem MI-megoldásokat készít, szívesen utazik családjával, hogy új helyeket fedezzen fel.

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.

Shelbee Eigenbrode az Amazon Web Services (AWS) fő mesterséges intelligencia és gépi tanulási megoldások szakértője. 24 éve dolgozik a technológia területén, számos iparágat, technológiát és szerepkört felölelve. Jelenleg arra összpontosít, hogy a DevOps és az ML hátteret az MLOps tartományba egyesítse, hogy segítse ügyfeleit az ML munkaterhelések nagyarányú szállításában és kezelésében. A különböző technológiai területeken több mint 35 szabadalommal rendelkezik, ezért szenvedélye a folyamatos innováció és az adatok felhasználása az üzleti eredmények előmozdítására. Shelbee a Coursera gyakorlati adattudományi szakának társalkotója és oktatója. Emellett a Women In Big Data (WiBD) denveri fejezetének társigazgatója. Szabadidejében szívesen tölt időt családjával, barátaival és túlaktív kutyáival.

spot_img

Legújabb intelligencia

spot_img

Beszélj velünk

Szia! Miben segíthetek?