Generatiivinen tiedustelu

Paranna keskustelullista tekoälyä edistyneillä reititystekniikoilla Amazon Bedrock | Amazon Web Services

Treffi:

Keskustelevan tekoälyn (AI) avustajat on suunniteltu tarjoamaan tarkkoja, reaaliaikaisia ​​vastauksia reitittämällä kyselyt älykkäästi sopivimpiin tekoälytoimintoihin. AWS:n luovilla tekoälypalveluilla, kuten Amazonin kallioperä, kehittäjät voivat luoda järjestelmiä, jotka hallitsevat asiantuntevasti käyttäjien pyyntöjä ja vastaavat niihin. Amazon Bedrock on täysin hallittu palvelu, joka tarjoaa valikoiman tehokkaita perusmalleja (FM) johtavilta tekoälyyrityksiltä, ​​kuten AI21 Labs, Anthropic, Cohere, Meta, Stability AI ja Amazon käyttämällä yhtä API-sovellusliittymää sekä laajan valikoiman ominaisuudet, joita tarvitset luodaksesi luovia tekoälysovelluksia turvallisuuden, yksityisyyden ja vastuullisen tekoälyn avulla.

Tässä viestissä arvioidaan kahta ensisijaista lähestymistapaa tekoälyassistenttien kehittämiseen: käyttämällä hallittuja palveluita, kuten Amazon Bedrockin edustajatja käyttää avoimen lähdekoodin teknologioita, kuten LangChain. Tutkimme jokaisen edut ja haasteet, jotta voit valita tarpeisiisi sopivimman tien.

Mikä on AI-avustaja?

Tekoälyassistentti on älykäs järjestelmä, joka ymmärtää luonnollisen kielen kyselyt ja on vuorovaikutuksessa erilaisten työkalujen, tietolähteiden ja API:iden kanssa suorittaakseen tehtäviä tai hakeakseen tietoja käyttäjän puolesta. Tehokkailla tekoälyavustajilla on seuraavat keskeiset ominaisuudet:

  • Luonnollisen kielen käsittely (NLP) ja keskustelun kulku
  • Tietokannan integrointi ja semanttiset haut merkityksellisten tietojen ymmärtämiseksi ja hakemiseksi keskustelukontekstin vivahteiden perusteella
  • Suoritetaan tehtäviä, kuten tietokantakyselyitä ja mukautettuja AWS Lambda tehtävät
  • Erikoiskeskustelujen ja käyttäjien pyyntöjen käsittely

Esittelemme tekoälyassistenttien edut esimerkiksi Internet of Things (IoT) -laitehallinnan avulla. Tässä käyttötapauksessa tekoäly voi auttaa teknikoita hallitsemaan koneita tehokkaasti komennoilla, jotka hakevat tietoja tai automatisoivat tehtäviä, mikä virtaviivaistaa tuotantoa.

Agents for Amazon Bedrock -lähestymistapa

Amazon Bedrockin edustajat avulla voit rakentaa generatiivisia tekoälysovelluksia, jotka voivat suorittaa monivaiheisia tehtäviä yrityksen järjestelmissä ja tietolähteissä. Se tarjoaa seuraavat keskeiset ominaisuudet:

  • Automaattinen pikaluonti ohjeista, API-tiedoista ja tietolähdetiedoista, mikä säästää viikkojen nopeaa suunnittelutyötä
  • Retrieval Augmented Generation (RAG), jonka avulla agentit voidaan yhdistää turvallisesti yrityksen tietolähteisiin ja tarjota asiaankuuluvia vastauksia
  • Monivaiheisten tehtävien organisointi ja suorittaminen jakamalla pyynnöt loogisiin sarjoihin ja kutsumalla tarvittavia sovellusliittymiä
  • Näkyvyys agentin päättelyyn ajatusketjun (CoT) jäljityksen avulla, mikä mahdollistaa vianetsinnän ja mallin käyttäytymisen ohjauksen
  • Kehotuskehityskyky muokata automaattisesti luotua kehotemallia agenttien hallinnan tehostamiseksi

Voit käyttää Agents for Amazon Bedrock ja Amazon Bedrockin tietokannat rakentaa ja ottaa käyttöön tekoälyapureita monimutkaisiin reitityskäyttötapauksiin. Ne tarjoavat strategisen edun kehittäjille ja organisaatioille yksinkertaistamalla infrastruktuurin hallintaa, parantamalla skaalautuvuutta, parantamalla turvallisuutta ja vähentämällä eriyttämätöntä raskasta nostoa. Ne mahdollistavat myös yksinkertaisemman sovelluskerroksen koodin, koska reitityslogiikka, vektorointi ja muisti ovat täysin hallittuja.

Ratkaisun yleiskatsaus

Tämä ratkaisu esittelee keskusteluapulaisen tekoälyavustajan, joka on räätälöity IoT-laitteiden hallintaan ja toimintoihin käytettäessä Anthropicin Claude v2.1:tä Amazon Bedrockissa. AI-assistentin ydintoimintoja ohjaa kattava ohjesarja, joka tunnetaan nimellä a järjestelmäkehote, jossa määritellään sen valmiudet ja osaamisalueet. Nämä ohjeet varmistavat, että AI-avustaja pystyy käsittelemään monenlaisia ​​tehtäviä laitetietojen hallinnasta käyttökomentojen suorittamiseen.

"""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."""

Näillä ominaisuuksilla varustettuna, kuten järjestelmäkehotteessa kerrotaan, AI-avustaja seuraa jäsenneltyä työnkulkua käyttäjien kysymyksiin vastaamiseksi. Seuraavassa kuvassa on visuaalinen esitys tästä työnkulusta, joka havainnollistaa jokaista vaihetta käyttäjän ensimmäisestä vuorovaikutuksesta lopulliseen vastaukseen.

visuaalinen esitys tästä työnkulusta, joka kuvaa jokaista vaihetta käyttäjän ensimmäisestä vuorovaikutuksesta lopulliseen vastaukseen.

Työnkulku koostuu seuraavista vaiheista:

  1. Prosessi alkaa, kun käyttäjä pyytää avustajaa suorittamaan tehtävän; esimerkiksi kysymällä tietyn IoT-laitteen enimmäisdatapisteitä device_xxx. Tämä tekstinsyöttö kaapataan ja lähetetään AI-avustajalle.
  2. AI-avustaja tulkitsee käyttäjän tekstinsyötön. Se käyttää tarjottua keskusteluhistoriaa, toimintaryhmiä ja tietopohjaa ymmärtääkseen kontekstin ja määrittääkseen tarvittavat tehtävät.
  3. Kun käyttäjän tarkoitus on jäsennetty ja ymmärretty, AI-avustaja määrittelee tehtävät. Tämä perustuu ohjeisiin, jotka avustaja tulkitsee järjestelmän kehotteen ja käyttäjän syötteen mukaisesti.
  4. Tehtävät suoritetaan sitten sarjan API-kutsujen kautta. Tämä tehdään käyttämällä suhtautua kehote, joka jakaa tehtävän sarjaan vaiheita, jotka käsitellään peräkkäin:
    1. Laitteen mittareiden tarkistuksiin käytämme check-device-metrics toimintaryhmä, joka sisältää API-kutsun Lambda-funktioille, jotka sitten tekevät kyselyn Amazon Athena pyydettyjä tietoja varten.
    2. Käytämme suoria laitetoimintoja, kuten käynnistystä, pysäytystä tai uudelleenkäynnistystä, varten action-on-device toimintaryhmä, joka kutsuu Lambda-funktion. Tämä toiminto käynnistää prosessin, joka lähettää komentoja IoT-laitteelle. Tässä viestissä Lambda-toiminto lähettää ilmoituksia käyttämällä Amazonin yksinkertainen sähköpostipalvelu (Amazon SES).
    3. Käytämme Amazon Bedrockin Knowledge Bases -tietokantoja hakeaksemme historiallisia tietoja, jotka on tallennettu upotettuina Amazon OpenSearch-palvelu vektoritietokanta.
  5. Kun tehtävät on suoritettu, Amazon Bedrock FM luo lopullisen vastauksen ja välittää sen takaisin käyttäjälle.
  6. Agents for Amazon Bedrock tallentaa tiedot automaattisesti tilallisen istunnon avulla ylläpitääkseen samaa keskustelua. Tila poistetaan, kun määritettävä joutokäynnin aikakatkaisu on kulunut.

Tekninen yleiskatsaus

Seuraava kaavio havainnollistaa arkkitehtuuria AI-avustajan käyttöönottamiseksi Agents for Amazon Bedrockin kanssa.

Arkkitehtuurikaavio AI-avustajan käyttöönottamiseksi Amazon Bedrockin agenttien kanssa.

Se koostuu seuraavista avainkomponenteista:

  • Keskustelukäyttöliittymä – Keskustelukäyttöliittymä käyttää Streamlitiä, avoimen lähdekoodin Python-kirjastoa, joka yksinkertaistaa mukautettujen, visuaalisesti houkuttelevien verkkosovellusten luomista koneoppimiseen (ML) ja datatieteeseen. Sitä isännöidään Amazonin elastisten säiliöiden palvelu (Amazon ECS) kanssa AWS-veljeskunta, ja sitä käytetään Application Load Balancer -sovelluksella. Voit käyttää Fargatea Amazon ECS:n kanssa säiliöt tarvitsematta hallita palvelimia, klustereita tai virtuaalikoneita.
  • Amazon Bedrockin edustajat – Agents for Amazon Bedrock täydentää käyttäjien kyselyt useiden päättelyvaiheiden ja vastaavien toimien avulla, jotka perustuvat ReAct kehotus:
    • Amazon Bedrockin tietokannat – Knowledge Bases for Amazon Bedrock tarjoaa täysin hallitun RÄTTI antaa AI-avustajalle pääsyn tietoihisi. Käyttötapauksessamme latasimme laitteen tekniset tiedot tiedostoon Amazonin yksinkertainen tallennuspalvelu (Amazon S3) ämpäri. Se toimii tietokannan tietolähteenä.
    • Toimintaryhmät – Nämä ovat määriteltyjä API-skeemoja, jotka kutsuvat tiettyjä Lambda-toimintoja ollakseen vuorovaikutuksessa IoT-laitteiden ja muiden AWS-palvelujen kanssa.
    • Anthropic Claude v2.1 Amazon Bedrockissa – Tämä malli tulkitsee käyttäjien kyselyitä ja organisoi tehtävien kulun.
    • Amazon Titan Embeddings – Tämä malli toimii tekstin upotusmallina, joka muuttaa luonnollisen kielen tekstin – yksittäisistä sanoista monimutkaisiin asiakirjoihin – numeerisiksi vektoreiksi. Tämä mahdollistaa vektorihakuominaisuudet, jolloin järjestelmä voi semanttisesti kohdistaa käyttäjien kyselyt osuvimpiin tietokannan merkintöihin tehokkaan haun saavuttamiseksi.

Ratkaisu on integroitu AWS-palveluihin, kuten Lambda koodin suorittamiseen vastauksena API-kutsuihin, Athena tietojoukkojen kyselyyn, OpenSearch-palvelu tietokannoista etsimiseen ja Amazon S3 tallennusta varten. Nämä palvelut toimivat yhdessä tarjotakseen saumattoman kokemuksen IoT-laitteiden toimintojen hallintaan luonnollisen kielen komentojen avulla.

Hyödyt

Tämä ratkaisu tarjoaa seuraavat edut:

  • Toteutuksen monimutkaisuus:
    • Tarvitaan vähemmän koodirivejä, koska Agents for Amazon Bedrock poistaa suuren osan taustalla olevasta monimutkaisuudesta, mikä vähentää kehitysponnisteluja.
    • Vektoritietokantojen, kuten OpenSearch Servicen, hallinta on yksinkertaista, koska Knowledge Bases for Amazon Bedrock käsittelee vektorointia ja tallennusta
    • Integrointi eri AWS-palveluihin on virtaviivaisempaa ennalta määritettyjen toimintaryhmien avulla
  • Kehittäjäkokemus:
    • Amazon Bedrock -konsoli tarjoaa käyttäjäystävällisen käyttöliittymän nopeaan kehittämiseen, testaukseen ja perussyyanalyysiin (RCA), mikä parantaa yleistä kehittäjäkokemusta.
  • Ketteryys ja joustavuus:
    • Agents for Amazon Bedrock mahdollistaa saumattoman päivityksen uudempiin FM-laitteisiin (kuten Claude 3.0), kun ne tulevat saataville, joten ratkaisusi pysyy ajan tasalla uusimpien edistysten kanssa
    • AWS hallitsee palvelukiintiöitä ja rajoituksia, mikä vähentää valvonta- ja skaalausinfrastruktuurin kustannuksia
  • Turvallisuus:
    • Amazon Bedrock on täysin hallittu palvelu, joka noudattaa AWS:n tiukkoja turvallisuus- ja vaatimustenmukaisuusstandardeja, mikä mahdollisesti yksinkertaistaa organisaation tietoturvatarkastuksia.

Vaikka Agents for Amazon Bedrock tarjoaa virtaviivaisen ja hallitun ratkaisun keskustelupohjaisten tekoälysovellusten rakentamiseen, jotkut organisaatiot saattavat suosia avoimen lähdekoodin lähestymistapaa. Tällaisissa tapauksissa voit käyttää kehyksiä, kuten LangChain, jota käsittelemme seuraavassa osiossa.

LangChainin dynaaminen reititystapa

LangChain on avoimen lähdekoodin kehys, joka yksinkertaistaa keskustelun tekoälyn rakentamista mahdollistamalla suurten kielimallien (LLM) integroinnin ja dynaamisten reititysominaisuuksien. LangChain Expression Language (LCEL) -kielen avulla kehittäjät voivat määritellä reititys, jonka avulla voit luoda ei-deterministisiä ketjuja, joissa edellisen vaiheen tulos määrittää seuraavan vaiheen. Reititys auttaa tarjoamaan rakennetta ja johdonmukaisuutta vuorovaikutuksessa LLM:ien kanssa.

Tässä viestissä käytämme samaa esimerkkiä kuin AI-avustaja IoT-laitteiden hallintaan. Suurin ero on kuitenkin siinä, että meidän täytyy käsitellä järjestelmäkehotteita erikseen ja käsitellä jokaista ketjua erillisenä kokonaisuutena. Reititysketju päättää kohdeketjun käyttäjän syötteen perusteella. Päätös tehdään LLM:n tuella välittämällä järjestelmäkehote, chat-historia ja käyttäjän kysymys.

Ratkaisun yleiskatsaus

Seuraava kaavio havainnollistaa dynaamisen reititysratkaisun työnkulkua.

Dynaaminen reititysratkaisun työnkulku LangChainilla

Työnkulku koostuu seuraavista vaiheista:

  1. Käyttäjä esittää kysymyksen tekoälyavustajalle. Esimerkiksi "Mitä ovat laitteen 1009 enimmäismittaukset?"
  2. LLM arvioi jokaisen kysymyksen yhdessä keskusteluhistorian kanssa samasta istunnosta määrittääkseen sen luonteen ja sen, mihin aihealueeseen se kuuluu (kuten SQL, toiminta, haku tai pk-yritys). LLM luokittelee syötteen ja LCEL-reititysketju ottaa sen syötteen.
  3. Reititinketju valitsee kohdeketjun syötteen perusteella, ja LLM:lle toimitetaan seuraava järjestelmäkehote:
"""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>"""

LLM arvioi käyttäjän kysymyksen yhdessä keskusteluhistorian kanssa määrittääkseen kyselyn luonteen ja sen, mihin aihealueeseen se kuuluu. LLM luokittelee sitten syötteen ja tulostaa JSON-vastauksen seuraavassa muodossa:

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

Reititinketju käyttää tätä JSON-vastausta vastaavan kohdeketjun kutsumiseen. On neljä aihekohtaista kohdeketjua, joista jokaisella on oma järjestelmäkehote:

  1. SQL:ään liittyvät kyselyt lähetetään SQL-kohdeketjuun tietokantavuorovaikutuksia varten. Voit käyttää LCEL:ää rakentaaksesi SQL-ketju.
  2. Toimintakeskeiset kysymykset kutsuvat mukautetun Lambda-kohdeketjun toimintojen suorittamiseen. LCEL:n avulla voit määrittää omasi mukautettu toiminto; meidän tapauksessamme se on toiminto, joka suorittaa ennalta määritellyn Lambda-toiminnon lähettääkseen sähköpostin, jossa laitetunnus on jäsennetty. Esimerkki käyttäjän syötteestä voi olla "Sammuta laite 1009".
  3. Hakuun keskittyvät tiedustelut jatkavat RÄTTI kohdeketju tiedonhakuun.
  4. Pk-yrityksiin liittyvät kysymykset siirtyvät pk-yritysten/asiantuntijoiden kohdeketjuun erikoistuneiden näkemysten saamiseksi.
  5. Jokainen kohdeketju ottaa syötteen ja suorittaa tarvittavat mallit tai toiminnot:
    1. SQL-ketju käyttää Athenaa kyselyjen suorittamiseen.
    2. RAG-ketju käyttää semanttiseen hakuun OpenSearch-palvelua.
    3. Mukautettu Lambda-ketju suorittaa toimintoja varten Lambda-toimintoja.
    4. Pk-/asiantuntijaketju tarjoaa oivalluksia Amazon Bedrock -mallin avulla.
  6. LLM muotoilee vastaukset kunkin kohdeketjun johdonmukaisiksi oivalluksiksi. Nämä tiedot toimitetaan sitten käyttäjälle, jolloin kyselysykli on valmis.
  7. Käyttäjän syötteet ja vastaukset tallennetaan Amazon DynamoDB tarjota kontekstin LLM:lle nykyiselle istunnolle ja aiemmille vuorovaikutuksille. Sovellus hallitsee DynamoDB:ssä säilytettyjen tietojen kestoa.

Tekninen yleiskatsaus

Seuraava kaavio havainnollistaa LangChainin dynaamisen reititysratkaisun arkkitehtuuria.

LangChainin dynaamisen reititysratkaisun arkkitehtuurikaavio

Verkkosovellus on rakennettu Streamlitille, jota isännöidään Amazon ECS:ssä Fargaten kanssa, ja sitä käytetään Application Load Balancer -sovelluksella. Käytämme LLM:nä Anthropicin Claude v2.1:tä Amazon Bedrockissa. Verkkosovellus on vuorovaikutuksessa mallin kanssa LangChain-kirjastojen avulla. Se toimii myös vuorovaikutuksessa useiden muiden AWS-palvelujen, kuten OpenSearch Servicen, Athenan ja DynamoDB:n, kanssa loppukäyttäjien tarpeiden täyttämiseksi.

Hyödyt

Tämä ratkaisu tarjoaa seuraavat edut:

  • Toteutuksen monimutkaisuus:
    • Vaikka LangChain vaatii enemmän koodia ja mukautettua kehitystä, se tarjoaa enemmän joustavuutta ja hallintaa reitityslogiikassa ja integraatiossa eri komponenttien kanssa.
    • Vektoritietokantojen, kuten OpenSearch Servicen, hallinta vaatii lisäasennus- ja määritysponnisteluja. Vektorisointiprosessi toteutetaan koodilla.
    • Integrointi AWS-palveluihin voi sisältää enemmän mukautettua koodia ja konfigurointia.
  • Kehittäjäkokemus:
    • LangChainin Python-pohjainen lähestymistapa ja kattava dokumentaatio voivat houkutella kehittäjiä, jotka ovat jo tunteneet Pythonin ja avoimen lähdekoodin työkalut.
    • Nopea kehitys ja virheenkorjaus saattavat vaatia enemmän manuaalista työtä kuin Amazon Bedrock -konsolin käyttäminen.
  • Ketteryys ja joustavuus:
    • LangChain tukee laajaa valikoimaa LLM:itä, jolloin voit vaihtaa eri mallien tai palveluntarjoajien välillä, mikä lisää joustavuutta.
    • LangChainin avoimen lähdekoodin luonne mahdollistaa yhteisölähtöiset parannukset ja mukautukset.
  • Turvallisuus:
    • Avoimen lähdekoodin kehyksenä LangChain saattaa vaatia tiukempia tietoturvatarkastuksia ja -selvityksiä organisaatioissa, mikä saattaa lisätä yleiskustannuksia.

Yhteenveto

Keskustelevat tekoälyassistentit ovat muuntavia työkaluja toimintojen virtaviivaistamiseen ja käyttökokemusten parantamiseen. Tässä viestissä tutkittiin kahta tehokasta lähestymistapaa AWS-palveluiden avulla: Amazon Bedrockin hallitut agentit ja joustava, avoimen lähdekoodin LangChain dynaaminen reititys. Valinta näiden lähestymistapojen välillä riippuu organisaatiosi vaatimuksista, kehitystarpeista ja halutusta räätälöintitasosta. Valitusta tiestä riippumatta AWS antaa sinulle mahdollisuuden luoda älykkäitä tekoälyavustajia, jotka mullistavat yritysten ja asiakkaiden vuorovaikutuksen

Löydä ratkaisukoodi ja käyttöönottoresurssit sivuiltamme GitHub-arkisto, jossa voit seurata kunkin keskustelun tekoälyn yksityiskohtaisia ​​vaiheita.


Tietoja Tekijät

Ameer Hakme on AWS Solutions -arkkitehti Pennsylvaniassa. Hän tekee yhteistyötä riippumattomien ohjelmistotoimittajien (ISV) kanssa Koillisalueella ja auttaa heitä suunnittelemaan ja rakentamaan skaalautuvia ja moderneja alustoja AWS-pilveen. AI/ML:n ja generatiivisen tekoälyn asiantuntija Ameer auttaa asiakkaita hyödyntämään näiden huipputeknologioiden potentiaalia. Vapaa-ajallaan hän ajaa moottoripyörällä ja viettää laatuaikaa perheensä kanssa.

Sharon Li on AI/ML Solutions -arkkitehti Amazon Web Servicesissä Bostonissa, ja hänen intohimonsa on suunnitella ja rakentaa generatiivisia tekoälysovelluksia AWS:llä. Hän tekee yhteistyötä asiakkaiden kanssa hyödyntääkseen AWS AI/ML -palveluita innovatiivisiin ratkaisuihin.

Kawsar Kamal on Amazon Web Servicesin vanhempi ratkaisuarkkitehti, jolla on yli 15 vuoden kokemus infrastruktuurin automaatio- ja turvallisuusalalta. Hän auttaa asiakkaita suunnittelemaan ja rakentamaan skaalautuvia DevSecOps- ja AI/ML-ratkaisuja pilveen.

spot_img

Uusin älykkyys

spot_img

Keskustele kanssamme

Hei siellä! Kuinka voin olla avuksi?