Generatív adatintelligencia

Javítsa a társalgási AI-t fejlett útválasztási technikákkal az Amazon Bedrock | Amazon webszolgáltatások

Találka:

A beszélgetési mesterséges intelligencia (AI) asszisztenseket úgy tervezték, hogy precíz, valós idejű válaszokat adjanak a lekérdezések intelligens irányítása révén a legmegfelelőbb AI-funkciókhoz. Az AWS generatív AI szolgáltatásokkal, mint pl Amazon alapkőzet, a fejlesztők olyan rendszereket hozhatnak létre, amelyek szakszerűen kezelik és válaszolnak a felhasználói kérésekre. Az Amazon Bedrock egy teljesen felügyelt szolgáltatás, amely egyetlen API-t használó nagy teljesítményű alapozó modellek (FM-ek) választékát kínálja olyan vezető mesterséges intelligencia-cégektől, mint az AI21 Labs, az Anthropic, a Cohere, a Meta, a Stability AI és az Amazon. olyan képességek, amelyekre szükség van generatív AI-alkalmazások létrehozásához biztonsággal, adatvédelemmel és felelős AI-val.

Ez a bejegyzés az AI-asszisztensek fejlesztésének két elsődleges megközelítését értékeli: a felügyelt szolgáltatások használatát, mint pl Az Amazon Bedrock ügynökei, és nyílt forráskódú technológiákat alkalmaz, mint pl LangChain. Feltérképezzük mindegyik előnyeit és kihívásait, így Ön kiválaszthatja az igényeinek legmegfelelőbb utat.

Mi az AI-asszisztens?

Az AI-asszisztens egy intelligens rendszer, amely megérti a természetes nyelvű lekérdezéseket, és különféle eszközökkel, adatforrásokkal és API-kkal kölcsönhatásba lép, hogy a felhasználó nevében feladatokat hajtson végre vagy információkat kérjen le. A hatékony AI-asszisztensek a következő kulcsfontosságú képességekkel rendelkeznek:

  • Természetes nyelvi feldolgozás (NLP) és társalgási folyamat
  • Tudásbázis integráció és szemantikai keresések a releváns információk megértéséhez és visszakereséséhez a beszélgetési kontextus árnyalatai alapján
  • Feladatok futtatása, például adatbázis-lekérdezések és egyéni AWS Lambda funkciók
  • Speciális beszélgetések és felhasználói kérések kezelése

Példaként bemutatjuk az AI-asszisztensek előnyeit az Internet of Things (IoT) eszközkezelésével. Ebben a felhasználási esetben az AI segíthet a technikusoknak a gépek hatékony kezelésében olyan parancsokkal, amelyek adatokat gyűjtenek be vagy automatizálják a feladatokat, és egyszerűsítik a gyártási műveleteket.

Agents for Amazon Bedrock megközelítés

Az Amazon Bedrock ügynökei lehetővé teszi olyan generatív AI-alkalmazások készítését, amelyek többlépcsős feladatokat futtathatnak a vállalat rendszerein és adatforrásaiban. A következő kulcsfontosságú képességeket kínálja:

  • Automatikus azonnali létrehozás utasításokból, API-adatokból és adatforrás-információkból, így hetekig tartó gyors tervezési erőfeszítést takaríthat meg
  • Retrieval Augmented Generation (RAG) az ügynökök biztonságos összekapcsolása a vállalat adatforrásaival és megfelelő válaszok biztosítása
  • Többlépéses feladatok összehangolása és futtatása a kérések logikai sorozatokra bontásával és a szükséges API-k meghívásával
  • Láthatóság az ügynök érvelésében a gondolatlánc (CoT) nyomon keresztül, lehetővé téve a hibaelhárítást és a modell viselkedésének irányítását
  • Kérdező mérnöki képességek az automatikusan generált prompt sablon módosításához az ügynökök feletti fokozott ellenőrzés érdekében

Az Agents for Amazon Bedrock és Tudásbázisok az Amazon Bedrock számára AI-asszisztensek létrehozása és telepítése bonyolult útválasztási felhasználási esetekre. Stratégiai előnyt jelentenek a fejlesztők és a szervezetek számára azáltal, hogy egyszerűsítik az infrastruktúra kezelését, fokozzák a méretezhetőséget, javítják a biztonságot és csökkentik a differenciálatlan nehézemelést. Lehetővé teszik az egyszerűbb alkalmazási réteg kódját is, mivel az útválasztási logika, a vektorizálás és a memória teljes mértékben felügyelt.

Megoldás áttekintése

Ez a megoldás egy társalgási AI-asszisztenst mutat be, amely az IoT-eszközkezeléshez és -műveletekhez van szabva, amikor az Anthropic Claude v2.1-jét az Amazon Bedrockon használják. Az AI-asszisztens alapvető funkcióit egy átfogó utasításkészlet szabályozza, amely a rendszer prompt, amely felvázolja képességeit és szakterületeit. Ez az útmutatás biztosítja, hogy az AI-asszisztens a feladatok széles skáláját tudja kezelni, az eszközinformációk kezelésétől a működési parancsok futtatásáig.

"""The following is the system prompt that outlines the full scope of the AI assistant's capabilities:
You are an IoT Ops agent that handles the following activities:
- Looking up IoT device information
- Checking IoT operating metrics (historical data)
- Performing actions on a device-by-device ID
- Answering general questions
You can check device information (Device ID, Features, Technical Specifications, Installation Guide, Maintenance and Troubleshooting, Safety Guidelines, Warranty, and Support) from the "IotDeviceSpecs" knowledge base.
Additionally, you can access device historical data or device metrics. The device metrics are stored in an Athena DB named "iot_ops_glue_db" in a table named "iot_device_metrics". 
The table schema includes fields for oil level, temperature, pressure, received_at timestamp, and device_id.
The available actions you can perform on the devices include start, shutdown, and reboot."""

Ezekkel a képességekkel felszerelve, amint azt a rendszerkérdésben részletezzük, az AI-asszisztens egy strukturált munkafolyamatot követve válaszol a felhasználói kérdésekre. A következő ábra vizuálisan szemlélteti ezt a munkafolyamatot, illusztrálva minden egyes lépést a kezdeti felhasználói interakciótól a végső válaszig.

ennek a munkafolyamatnak a vizuális megjelenítése, amely minden lépést szemléltet a kezdeti felhasználói interakciótól a végső válaszig.

A munkafolyamat a következő lépésekből áll:

  1. A folyamat akkor kezdődik, amikor a felhasználó felkéri az asszisztenst egy feladat végrehajtására; például egy adott IoT-eszköz maximális adatpontjainak lekérése device_xxx. Ezt a szövegbevitelt rögzíti és elküldi az AI-asszisztensnek.
  2. Az AI-asszisztens értelmezi a felhasználó szövegbevitelét. A megadott beszélgetési előzményeket, akciócsoportokat és tudásbázisokat használja a kontextus megértéséhez és a szükséges feladatok meghatározásához.
  3. A felhasználó szándékának elemzése és megértése után az AI-asszisztens meghatározza a feladatokat. Ez azokon az utasításokon alapul, amelyeket az asszisztens értelmez a rendszerkérdésnek és a felhasználói bevitelnek megfelelően.
  4. A feladatok ezután API-hívások sorozatán keresztül futnak. Ez segítségével történik Reagál felszólítás, amely a feladatot lépések sorozatára bontja, amelyek egymás után kerülnek feldolgozásra:
    1. Az eszközmutatók ellenőrzéséhez a check-device-metrics műveletcsoport, amely egy API-hívást tartalmaz a Lambda-függvényekhez, amelyek aztán lekérdeznek Amazon Athéné a kért adatokért.
    2. Közvetlen eszközműveletekhez, például indításhoz, leállításhoz vagy újraindításhoz a action-on-device akciócsoport, amely egy Lambda függvényt hív meg. Ez a funkció elindít egy folyamatot, amely parancsokat küld az IoT-eszköznek. Ennél a bejegyzésnél a Lambda funkció a használatával küld értesítéseket Amazon egyszerű e-mail szolgáltatás (Amazon SES).
    3. Az Amazon Bedrock tudásbázisait használjuk a beágyazásként tárolt előzményadatok lekéréséhez Amazon OpenSearch szolgáltatás vektoros adatbázis.
  5. A feladatok befejezése után a végső választ az Amazon Bedrock FM generálja, és visszaküldi a felhasználónak.
  6. Az Agents for Amazon Bedrock automatikusan tárolja az információkat állapotjelző munkamenet segítségével, hogy fenntartsa ugyanazt a beszélgetést. Az állapot egy konfigurálható tétlenségi idő letelte után törlődik.

Műszaki áttekintés

A következő diagram bemutatja az AI-asszisztens Agents for Amazon Bedrock programhoz való telepítésének architektúráját.

Építészeti diagram egy AI-asszisztens telepítéséhez az Agents for Amazon Bedrock szolgáltatással.

A következő kulcselemekből áll:

  • Beszélgetési felület – A párbeszédes felület a Streamlit, egy nyílt forráskódú Python-könyvtárat használja, amely leegyszerűsíti az egyedi, tetszetős webes alkalmazások létrehozását gépi tanuláshoz (ML) és adattudományhoz. A webhelyen található Amazon Elastic Container Service (Amazon ECS) -val AWS Fargate, és egy Application Load Balancer segítségével érhető el. Használhatja a Fargate-et az Amazon ECS-sel a futtatáshoz konténerek kiszolgálók, fürtök vagy virtuális gépek kezelése nélkül.
  • Az Amazon Bedrock ügynökei – Az Agents for Amazon Bedrock a felhasználói lekérdezéseket egy sor érvelési lépésen és a megfelelő műveleteken keresztül fejezi be. ReAct felszólítás:
    • Tudásbázisok az Amazon Bedrock számára – Az Amazon Bedrock tudásbázisa teljes körűen felügyelt RONGY hogy hozzáférést biztosítson az AI-asszisztensnek az Ön adataihoz. Használati esetünkben az eszköz specifikációit feltöltöttük egy Amazon egyszerű tárolási szolgáltatás (Amazon S3) vödör. A tudásbázis adatforrásaként szolgál.
    • Akciócsoportok – Ezek meghatározott API-sémák, amelyek meghatározott Lambda-függvényeket hívnak meg az IoT-eszközökkel és más AWS-szolgáltatásokkal való interakcióhoz.
    • Anthropic Claude v2.1 az Amazon Bedrockon – Ez a modell értelmezi a felhasználói lekérdezéseket, és összehangolja a feladatok menetét.
    • Amazon Titan beágyazások – Ez a modell szövegbeágyazási modellként szolgál, a természetes nyelvű szöveget – az egyes szavaktól az összetett dokumentumokig – numerikus vektorokká alakítja. Ez lehetővé teszi a vektoros keresési lehetőségeket, lehetővé téve a rendszer számára, hogy szemantikailag párosítsa a felhasználói lekérdezéseket a legrelevánsabb tudásbázis-bejegyzésekkel a hatékony keresés érdekében.

A megoldás olyan AWS-szolgáltatásokkal van integrálva, mint a Lambda az API-hívásokra válaszul kód futtatásához, az Athena az adatkészletek lekérdezéséhez, az OpenSearch szolgáltatás a tudásbázisokban való kereséshez és az Amazon S3 a tároláshoz. Ezek a szolgáltatások együtt dolgoznak, hogy zökkenőmentes élményt nyújtsanak az IoT-eszközműveletek kezeléséhez természetes nyelvi parancsokon keresztül.

Előnyök

Ez a megoldás a következő előnyökkel jár:

  • A megvalósítás bonyolultsága:
    • Kevesebb kódsorra van szükség, mert az Agents for Amazon Bedrock elvonatkoztatja a mögöttes bonyolultság nagy részét, csökkentve a fejlesztési erőfeszítéseket.
    • A vektoros adatbázisok, például az OpenSearch szolgáltatás kezelése leegyszerűsödik, mivel az Amazon Bedrock tudásbázisai kezelik a vektorizálást és a tárolást
    • A különféle AWS-szolgáltatásokkal való integráció leegyszerűsödik az előre meghatározott műveletcsoportok révén
  • Fejlesztői tapasztalat:
    • Az Amazon Bedrock konzol felhasználóbarát felületet biztosít az azonnali fejlesztéshez, teszteléshez és az okok elemzéséhez (RCA), javítva az általános fejlesztői élményt.
  • Agilitás és rugalmasság:
    • Az Agents for Amazon Bedrock lehetővé teszi a zökkenőmentes frissítést az újabb FM-ekre (például a Claude 3.0-ra), amikor azok elérhetővé válnak, így a megoldás naprakész marad a legújabb fejlesztésekkel
    • A szolgáltatáskvótákat és a korlátozásokat az AWS kezeli, csökkentve a megfigyelési és skálázási infrastruktúra többletköltségét
  • Biztonság:
    • Az Amazon Bedrock egy teljesen felügyelt szolgáltatás, amely betartja az AWS szigorú biztonsági és megfelelőségi szabványait, potenciálisan leegyszerűsítve a szervezeti biztonsági felülvizsgálatokat.

Bár az Agents for Amazon Bedrock egyszerű és felügyelt megoldást kínál a párbeszédes mesterségesintelligencia-alkalmazások létrehozásához, egyes szervezetek a nyílt forráskódú megközelítést részesíthetik előnyben. Ilyen esetekben használhat olyan keretrendszereket, mint a LangChain, amelyet a következő részben tárgyalunk.

LangChain dinamikus útválasztási megközelítés

A LangChain egy nyílt forráskódú keretrendszer, amely leegyszerűsíti a társalgási AI felépítését azáltal, hogy lehetővé teszi a nagy nyelvi modellek (LLM) és a dinamikus útválasztási képességek integrálását. A LangChain Expression Language (LCEL) segítségével a fejlesztők meghatározhatják a routing, amely lehetővé teszi nem determinisztikus láncok létrehozását, ahol az előző lépés kimenete határozza meg a következő lépést. Az útválasztás segít struktúrát és következetességet biztosítani az LLM-ekkel folytatott interakciókban.

Ebben a bejegyzésben ugyanazt a példát használjuk, mint az AI-asszisztens az IoT-eszközkezeléshez. A fő különbség azonban az, hogy a rendszerpromptokat külön kell kezelnünk, és minden láncot külön entitásként kell kezelnünk. Az útválasztási lánc a felhasználó bevitele alapján dönti el a célláncot. A döntést egy LLM támogatásával hozzák meg a rendszerprompt, a chatelőzmények és a felhasználói kérdés átadásával.

Megoldás áttekintése

A következő diagram a dinamikus útválasztási megoldás munkafolyamatát mutatja be.

Dinamikus útválasztási megoldási munkafolyamat a LangChain segítségével

A munkafolyamat a következő lépésekből áll:

  1. A felhasználó kérdést intéz az AI-asszisztenshez. Például: „Mi a maximális mérőszám az 1009-es eszközhöz?”
  2. Az LLM kiértékeli az egyes kérdéseket a csevegési előzményekkel együtt ugyanabban a munkamenetben, hogy meghatározza azok természetét és azt, hogy melyik témakörbe tartozik (például SQL, művelet, keresés vagy SME). Az LLM osztályozza a bemenetet, és az LCEL útválasztási lánc veszi ezt a bemenetet.
  3. Az útválasztó lánc a bemenet alapján választja ki a célláncot, és az LLM a következő rendszerpromptot kapja:
"""Given the user question below, classify it as one of the candidate prompts. You may want to modify the input considering the chat history and the context of the question. 
Sometimes the user may just assume that you have the context of the conversation and may not provide a clear input. Hence, you are being provided with the chat history for more context. 
Respond with only a Markdown code snippet containing a JSON object formatted EXACTLY as specified below. 
Do not provide an explanation to your classification beside the Markdown, I just need to know your decision on which destination and next_inputs
<candidate prompt>
physics: Good for answering questions about physics
sql: sql: Good for querying sql from AWS Athena. User input may look like: get me max or min for device x?
lambdachain: Good to execute actions with Amazon Lambda like shutting down a device or turning off an engine User input can be like, shutdown device x, or terminate process y, etc.
rag: Good to search knowledgebase and retrieve information about devices and other related information. User question can be like: what do you know about device x?
default: if the input is not well suited for any of the candidate prompts above. this could be used to carry on the conversation and respond to queries like provide a summary of the conversation
</candidate prompt>"""

Az LLM kiértékeli a felhasználó kérdését a csevegési előzményekkel együtt, hogy meghatározza a lekérdezés természetét és azt, hogy melyik témakörbe tartozik. Az LLM ezután osztályozza a bemenetet, és egy JSON-választ ad ki a következő formátumban:

<Markdown>
```json
{{
"destination": string  name of the prompt to use
"next_inputs": string  a potentially modified version of the original input
}}
```

Az útválasztó lánc ezt a JSON-választ használja a megfelelő céllánc meghívására. Négy tárgyspecifikus céllánc létezik, amelyek mindegyike saját rendszerprompttal rendelkezik:

  1. Az SQL-lel kapcsolatos lekérdezések elküldésre kerülnek az SQL célláncának adatbázis-interakciók céljából. Az LCEL segítségével elkészítheti a SQL lánc.
  2. A cselekvés-orientált kérdések az egyéni Lambda célláncot hívják meg a műveletek futtatásához. Az LCEL segítségével meghatározhatja a sajátját egyedi funkció; esetünkben ez egy előre definiált Lambda-függvény futtatása egy elemzett eszközazonosítójú e-mail küldéséhez. Példa a felhasználói bevitelre: „Shut down device 1009”.
  3. A keresésre fókuszáló megkeresések a RONGY céllánc az információkereséshez.
  4. A kkv-kkal kapcsolatos kérdések a KKV/szakértői céllánchoz fordulnak speciális betekintésekért.
  5. Minden céllánc veszi a bemenetet, és futtatja a szükséges modelleket vagy funkciókat:
    1. Az SQL-lánc az Athena-t használja a lekérdezések futtatásához.
    2. A RAG lánc az OpenSearch szolgáltatást használja a szemantikai kereséshez.
    3. Az egyedi Lambda-lánc Lambda-függvényeket futtat a műveletekhez.
    4. A KKV/szakértői lánc az Amazon Bedrock modell segítségével nyújt betekintést.
  6. Az egyes célláncokból származó válaszokat az LLM koherens betekintésekké fogalmazza meg. Ezek a betekintések ezután eljutnak a felhasználóhoz, befejezve a lekérdezési ciklust.
  7. A felhasználói bevitelt és válaszokat a rendszer tárolja Amazon DynamoDB kontextus biztosítása az LLM számára az aktuális munkamenethez és a múltbeli interakciókhoz. A DynamoDB-ben megőrzött információk időtartamát az alkalmazás szabályozza.

Műszaki áttekintés

A következő diagram a LangChain dinamikus útválasztási megoldás architektúráját mutatja be.

A LangChain dinamikus útválasztási megoldás felépítési diagramja

A webalkalmazás a Streamlitre épül, az Amazon ECS-en és a Fargate-en keresztül, és egy Application Load Balancer segítségével érhető el. LLM-ként az Anthropic Claude v2.1-jét használjuk az Amazon Bedrock-on. A webalkalmazás LangChain könyvtárak segítségével lép kapcsolatba a modellel. A végfelhasználók igényeinek kielégítése érdekében számos egyéb AWS-szolgáltatással is együttműködik, mint például az OpenSearch Service, az Athena és a DynamoDB.

Előnyök

Ez a megoldás a következő előnyökkel jár:

  • A megvalósítás bonyolultsága:
    • Bár több kódot és egyedi fejlesztést igényel, a LangChain nagyobb rugalmasságot és irányítást biztosít az útválasztási logika és a különféle összetevőkkel való integráció felett.
    • A vektoros adatbázisok, például az OpenSearch szolgáltatás kezelése további beállítási és konfigurációs erőfeszítéseket igényel. A vektorizálási folyamat kódban valósul meg.
    • Az AWS-szolgáltatásokkal való integráció több egyedi kódot és konfigurációt igényelhet.
  • Fejlesztői tapasztalat:
    • A LangChain Python-alapú megközelítése és kiterjedt dokumentációja vonzó lehet a Python és a nyílt forráskódú eszközöket már ismerő fejlesztők számára.
    • Az azonnali fejlesztés és hibakeresés több kézi erőfeszítést igényelhet, mint az Amazon Bedrock konzol használata.
  • Agilitás és rugalmasság:
    • A LangChain az LLM-ek széles skáláját támogatja, lehetővé téve a különböző modellek vagy szolgáltatók közötti váltást, elősegítve a rugalmasságot.
    • A LangChain nyílt forráskódú jellege lehetővé teszi a közösség által vezérelt fejlesztéseket és testreszabásokat.
  • Biztonság:
    • Nyílt forráskódú keretrendszerként a LangChain szigorúbb biztonsági felülvizsgálatokat és átvilágítást igényelhet a szervezeteken belül, ami többletköltséget jelenthet.

Következtetés

A társalgási AI-asszisztensek átalakító eszközök a műveletek egyszerűsítésére és a felhasználói élmény javítására. Ez a bejegyzés két hatékony megközelítést vizsgált meg az AWS-szolgáltatások használatával: az Amazon Bedrock menedzselt ügynökeit és a rugalmas, nyílt forráskódú LangChain dinamikus útválasztást. Az e megközelítések közötti választás a szervezet követelményeitől, fejlesztési preferenciáitól és a kívánt testreszabási szinttől függ. A megtett úttól függetlenül az AWS lehetővé teszi, hogy intelligens AI-asszisztenseket hozzon létre, amelyek forradalmasítják az üzleti és az ügyfelek interakcióit

Keresse meg a megoldás kódját és a telepítési eszközöket oldalunkon GitHub tárház, ahol követheti az egyes társalgási AI-megközelítések részletes lépéseit.


A szerzőkről

Ameer Hakme a pennsylvaniai székhelyű AWS Solutions Architect. Együttműködik a független szoftverszállítókkal (ISV) az északkeleti régióban, segítve őket az AWS Cloudon skálázható és modern platformok tervezésében és felépítésében. Az AI/ML és a generatív mesterségesintelligencia szakértőjeként az Ameer segít az ügyfeleknek kiaknázni ezekben az élvonalbeli technológiákban rejlő lehetőségeket. Szabadidejében szívesen motorozik és minőségi időt tölt családjával.

Sharon Li AI/ML Solutions Architect a bostoni székhelyű Amazon Web Servicesnél, és szenvedélye a generatív mesterséges intelligencia alkalmazások tervezése és építése AWS-en. Együttműködik az ügyfelekkel, hogy az AWS AI/ML szolgáltatásait innovatív megoldásokhoz használja fel.

Kawsar Kamal az Amazon Web Services vezető megoldástervezője, aki több mint 15 éves tapasztalattal rendelkezik az infrastruktúra automatizálási és biztonsági területen. Segít az ügyfeleknek skálázható DevSecOps és AI/ML megoldások tervezésében és felépítésében a felhőben.

spot_img

Legújabb intelligencia

spot_img

Beszélj velünk

Szia! Miben segíthetek?