ABONAMENTE VIDEO REDACȚIA
RO
EN
Numărul 154 Numărul 153
NOU
Numărul 152
Numărul 151 Numărul 150 Numărul 149 Numărul 148 Numărul 147 Numărul 146 Numărul 145 Numărul 144 Numărul 143 Numărul 142 Numărul 141 Numărul 140 Numărul 139 Numărul 138 Numărul 137 Numărul 136 Numărul 135 Numărul 134 Numărul 133 Numărul 132 Numărul 131 Numărul 130 Numărul 129 Numărul 128 Numărul 127 Numărul 126 Numărul 125 Numărul 124 Numărul 123 Numărul 122 Numărul 121 Numărul 120 Numărul 119 Numărul 118 Numărul 117 Numărul 116 Numărul 115 Numărul 114 Numărul 113 Numărul 112 Numărul 111 Numărul 110 Numărul 109 Numărul 108 Numărul 107 Numărul 106 Numărul 105 Numărul 104 Numărul 103 Numărul 102 Numărul 101 Numărul 100 Numărul 99 Numărul 98 Numărul 97 Numărul 96 Numărul 95 Numărul 94 Numărul 93 Numărul 92 Numărul 91 Numărul 90 Numărul 89 Numărul 88 Numărul 87 Numărul 86 Numărul 85 Numărul 84 Numărul 83 Numărul 82 Numărul 81 Numărul 80 Numărul 79 Numărul 78 Numărul 77 Numărul 76 Numărul 75 Numărul 74 Numărul 73 Numărul 72 Numărul 71 Numărul 70 Numărul 69 Numărul 68 Numărul 67 Numărul 66 Numărul 65 Numărul 64 Numărul 63 Numărul 62 Numărul 61 Numărul 60 Numărul 59 Numărul 58 Numărul 57 Numărul 56 Numărul 55 Numărul 54 Numărul 53 Numărul 52 Numărul 51 Numărul 50 Numărul 49 Numărul 48 Numărul 47 Numărul 46 Numărul 45 Numărul 44 Numărul 43 Numărul 42 Numărul 41 Numărul 40 Numărul 39 Numărul 38 Numărul 37 Numărul 36 Numărul 35 Numărul 34 Numărul 33 Numărul 32 Numărul 31 Numărul 30 Numărul 29 Numărul 28 Numărul 27 Numărul 26 Numărul 25 Numărul 24 Numărul 23 Numărul 22 Numărul 21 Numărul 20 Numărul 19 Numărul 18 Numărul 17 Numărul 16 Numărul 15 Numărul 14 Numărul 13 Numărul 12 Numărul 11 Numărul 10 Numărul 9 Numărul 8 Numărul 7 Numărul 6 Numărul 5 Numărul 4 Numărul 3 Numărul 2 Numărul 1
×
▼ LISTĂ EDIȚII ▼
Numărul 154
Abonamente

De la modele de inteligență artificială la asistenți conversaționali: Un ghid practic cu Amazon Bedrock

Costin Bădici
AI/ML Architect @ GlobalLogic



PROGRAMARE

Evoluția rapidă a inteligenței artificiale generative (GenAI) din ultimii ani deschide noi orizonturi pentru crearea de asistenți conversaționali capabili de interacțiuni complexe și sarcini automatizate. Odată cu popularizarea acestei tehnologii, devine din ce în ce mai important să înțelegem pașii pentru integrarea modelelor de inteligență artificială în aplicațiile noastre într-un mod scalabil, securizat și responsabil. În acest articol, vom explora cum putem crea cu ușurință asistenți conversaționali (chatbots) utilizând Amazon Bedrock, un serviciu cloud de inteligență artificială generativă oferit de Amazon Web Services (AWS).

Inteligența artificială generativă este o ramură avansată a învățării profunde (deep learning) bazată pe rețele neuronale artificiale de dimensiuni mari, cu o arhitectură de tip transformers care au fost antrenate pe volume considerabile de date. Aceste modele sunt capabile, pe baza datelor pe care au fost antrenate, să genereze conținut nou și divers de la text și documente, până la cod sursă în diferite limbaje de programare, imagini și chiar secvențe video. În acest context, apare oportunitatea de a valorifica aceste modele pentru a implementa o gamă variată de aplicații pentru generare de text și imagini, cum ar fi crearea de conținut pentru pagini web sau platforme de social media, sau pentru a dezvolta asistenți virtuali personalizați care să caute informații și să execute numeroase sarcini de lucru.

Amazon Bedrock este un serviciu cloud care ne oferă acces la o gamă largă de modele lingvistice mari (LLMs sau FMs - foundational models) de la provideri de top precum Anthropic, Amazon, Cohere, DeepSeek, Luma, Meta, Mistral AI și Stability AI printr-o singură interfață (API), fără să fie necesară gestionarea infrastructurii din spatele modelelor. Platforma dispune de toate funcționalitățile necesare pentru a crea într-un mod rapid, scalabil și securizat aplicații GenAI. Acestea permit testarea concomitentă a performanței mai multor modele în funcție de cerințele fiecărui client, customizarea FMs cu propriile noastre surse de date prin mecanisme de reglaj (fine tuning) sau generare augmentată prin extragere (Retrieval Augmented Generation sau RAG) și, nu în ultimul rând, integrarea cu alte servicii din ecosistemul AWS. În plus, prin conceptul de guardrails avem posibilitatea de a implementa cu ușurință toate mecanismele necesare pentru a securiza aplicația noastră, a bloca conținutul neadecvat și a proteja datele confidențiale.

Bedrock LLMs și Converse API

În continuare, vom explora mai în detaliu principalele capabilități disponibile în Bedrock. Serviciul oferă acces la o varietate mare și la cele mai recente versiuni ale modelelor lingvistice mari de la mai multe companii. Alegerea modelului depinde de cerințele specifice ale aplicației în ceea ce privește lungimea necesară pentru context, tipul de conținut procesat (text și/sau imagini), complexitatea raționamentului, dar și de constrângerile bugetare. Spre exemplu, modelele din gama Anthropic Claude, cum ar fi Claude Sonnet 3.7, pot procesa un context de până la 200.000 de tokeni, ceea ce reprezintă aproximativ 150.000 de cuvinte, la o singură solicitare (întrebare adresată modelului), având capacități avansate de raționament. Astfel, aceste modele sunt potrivite pentru situații în care avem de parcurs documente de dimensiuni mari pentru a extrage informații cheie sau pentru a crea un rezumat.

O altă funcționalitate importantă a serviciului este posibilitatea de a interacționa într-un mod simplificat cu aceste modele printr-un singur API. Converse API oferă o interfață consistentă pentru toate modelele suportate, facilitând gestiunea conversațiilor complexe și apelarea de funcții sau instrumente. Această interfață utilizează același format JSON pentru cererile pe care le trimitem la modele și aceeași structură pentru răspunsurile primite. Utilizând acest API, nu mai este necesar să modificăm codul sursă pentru a testa și integra mai multe modele, economisind astfel timp pentru dezvoltarea aplicației.

Generare Augmentată prin Extragere

Generarea augmentată prin extragere (RAG) este o tehnică care combină puterea modelelor lingvistice mari (LLM) cu capacitatea de a accesa și utiliza informații externe relevante. În loc să se bazeze exclusiv pe cunoștințele interne dobândite în timpul antrenamentului, un sistem RAG mai întâi caută și extrage informații dintr-o sursă de date externă, în general o bază de date pentru vectori. Aceste informații sunt apoi adăugate la solicitarea inițială (prompt), oferind context suplimentar modelului lingvistic. RAG permite modelelor să fie mai actualizate și adaptate la propriile noastre surse de date, fără să fie necesară reantrenarea lor, un proces costisitor ca timp și resurse computaționale.

Modelele de inteligență artificială nu pot interpreta în mod direct documentele noastre, fie că vorbim de conținut text sau imagini. Aceste surse de date nestructurate trec printr-un proces de vectorizare prin care, în funcție de dimensiunea fiecărui fișier, sunt împărțite în secțiuni mai mici (chunking) și transformate în tokeni, care ulterior sunt reprezentați sub formă numerică în vectori multidimensionali sau embeddings. Aceste structuri de date sunt la rândul lor stocate într-o bază de date pentru vectori, printre cele mai populare fiind OpenSearch, Chroma, Pinecone sau PostgreSQL (pgvector). Operațiunea de vectorizare este realizată de un model separat numit embeddings model. Când un sistem RAG primește o solicitare, aceasta este vectorizată și utilizată pentru a căuta secțiuni relevante din documentele noastre în baza de date. Pentru a simplifica tot acest proces și a implementa rapid un sistem RAG, putem crea un Bedrock Knowledge Base. Prin această capabilitate, ne putem conecta cu ușurință la diferite surse de date pentru a procesa documente în mai multe formate și pentru a crea în mod automat o bază de date pentru vectori.

Agenți Bedrock

Agenții pentru Amazon Bedrock reprezintă o altă funcționalitate esențială, întrucât ne permit să orchestrăm interacțiuni complexe între LLMs, conversațiile cu utilizatorul, diferite surse de date și alte aplicații software. Prin crearea de agenți putem automatiza o gamă variată de sarcini cu aplicabilitate în multiple domenii cum ar fi customer support, gestionarea inventarului, planificare de călătorii sau procesarea dosarelor de asigurare. Pentru situații complexe, în serviciul Bedrock a fost adăugată recent și colaborarea multi-agent, care presupune utilizarea concomitentă a mai multor agenți specializați pentru a rezolva sarcini sofisticate. Agenții autonomi Bedrock pot fi creați cu ușurință atât din consola AWS, cât și prin API ori utilizând AWS SDK.

Mecanisme de protecție

Popularizarea aplicațiilor GenAI și a asistenților conversaționali oferă numeroase oportunități de afaceri, dar atenția s-a îndreptat tot mai mult către inteligența artificială responsabilă. În acest context, în Bedrock avem conceptul de guardrails, care presupune integrarea unor mecanisme de protecție și control care permit dezvoltatorilor software să stabilească anumite limite și restricții pentru interacțiunea cu modelele lingvistice mari. În acest mod, putem bloca întrebări sau răspunsuri inadecvate, defini restricții și subiecte interzise și, de asemenea, putem masca datele cu caracter personal (PII) - totul printr-o simplă configurație. Aplicând acest mecanism, putem dezvolta aplicații GenAI sigure și aliniate cu politicile de utilizare dorite.

Arhitectura pentru un asistent conversațional

Vom analiza arhitectura și pașii necesari pentru dezvoltarea unui asistent conversațional folosind Bedrock și RAG cu propriile noastre surse de date:

  1. Un prim pas în implementarea acestei soluții este încărcarea documentelor relevante într-un bucket Amazon Simple Storage Service (sau S3), un serviciu serverless de stocare a obiectelor. Putem include în aplicația noastră și o interfață vizuală care să îi permită utilizatorului să adauge propriile fișiere.

  2. Pasul următor este crearea unui Bedrock Knowledge Base. Avem de specificat sursele noastre de date (de regulă bucket S3, dar putem adăuga și alte surse precum Salesforce, Confluence sau o pagină web), modalitatea de procesare și divizare a documentelor (chunking), dar și baza de date pentru vectori sau embeddings. Setările variază în funcție de tipul de fișiere procesate, respectiv lungimea și conținutul lor, în special dacă acestea conțin imagini sau grafice. În acest proces, putem crea în mod automat și o bază de date pentru vectori, dacă nu avem deja una, cea mai frecventă opțiune fiind Amazon OpenSearch Serverless.

  3. Un alt pas important este dezvoltarea aplicației chatbot folosind AWS SDK care va interacționa cu modelele din Bedrock și cu Knowledge Base prin Converse API. Pentru a dezvolta soluția mai rapid putem utiliza Streamlit, un framework în python cu care putem crea, cu numai câteva linii de cod, o interfață vizuală simplă pentru conversații. Ulterior, putem testa aplicația local și, de asemenea, putem crea o imagine și un container Docker, pe care să le utilizăm în AWS. Una din cele mai simple opțiuni ar fi să folosim serviciul Elastic Container Service (ECS) cu AWS Fargate pentru a executa containerul, întrucât nu este necesar să administrăm servere sau instanțe EC2.

  4. În continuare, vom explora ce se întâmplă când utilizatorul interacționează cu asistentul conversațional.

  5. Întrebarea sau textul primit în conversație este vectorizat și aplicația inițiază o căutare în Knowledge Base. Astfel, sunt extrase fragmente relevante din documentele încărcate anterior.

  6. Aplicația trimite modelului atât întrebarea utilizatorului, cât și fragmentele din documente obținute în pasul 5. Modelul oferă un răspuns care este afișat în aplicație.

  7. Ca pas opțional, putem stoca istoricul interacțiunilor și informații specifice despre utilizator într-o bază de date separată (spre exemplu Amazon DynamoDB, o bază de date NoSQL). Adăugând aceste date la prompt și la informațiile extrase din Knowledge Base, putem obține răspunsuri mai precise și adaptate contextului fiecărui utilizator.

Concluzii

În acest articol, am discutat despre principalele funcționalități ale serviciului Amazon Bedrock și pașii necesari pentru a dezvolta rapid un asistent conversațional customizat folosind surse de date externe și RAG. Dacă v-am făcut curioși și doriți să aflați mai multe informații despre cum puteți utiliza Bedrock pentru a crea propria aplicație, vă încurajez să explorați documentația AWS menționată la referințe.

Referințe

  1. https://aws.amazon.com/bedrock/

  2. https://docs.aws.amazon.com/bedrock/latest/userguide/

LANSAREA NUMĂRULUI 154

AI vs. Tradițional, alternative

Marți, 29 Aprilie, ora 18:00

sediul GlobalLogic

Facebook Meetup StreamEvent YouTube

NUMĂRUL 153 - Generative AI

Sponsori

  • BT Code Crafters
  • Bosch
  • Betfair
  • MHP
  • BoatyardX
  • .msg systems
  • P3 group
  • Ing Hubs
  • Cognizant Softvision
  • GlobalLogic
  • Colors in projects