În ciuda adoptării aparent de neoprit a LLM-urilor în toate industriile, acestea sunt o componentă a unui ecosistem tehnologic mai larg care alimentează noul val AI. Multe cazuri de utilizare a IA conversaționale necesită LLM-uri precum Llama 2, Flan T5 și Bloom pentru a răspunde la întrebările utilizatorilor. Aceste modele se bazează pe cunoștințele parametrice pentru a răspunde la întrebări. Modelul învață aceste cunoștințe în timpul antrenamentului și le codifică în parametrii modelului. Pentru a actualiza aceste cunoștințe, trebuie să recalificăm LLM, ceea ce necesită mult timp și bani.
Din fericire, putem folosi și cunoștințele sursei pentru a ne informa LLM-urile. Cunoștințele sursei sunt informații introduse în LLM printr-un prompt de intrare. O abordare populară pentru furnizarea de cunoștințe sursă este Retrieval Augmented Generation (RAG). Folosind RAG, preluăm informații relevante dintr-o sursă de date externă și alimentăm aceste informații în LLM.
În această postare pe blog, vom explora cum să implementăm LLM-uri precum Llama-2 utilizând Amazon Sagemaker JumpStart și să ne menținem LLM-urile la zi cu informații relevante prin Retrieval Augmented Generation (RAG) folosind baza de date vectorială Pinecone pentru a preveni halucinația AI. .
Retrieval Augmented Generation (RAG) în Amazon SageMaker
Pinecone se va ocupa de componenta de recuperare a RAG, dar aveți nevoie de încă două componente critice: undeva pentru a rula inferența LLM și undeva pentru a rula modelul de încorporare.
Amazon SageMaker Studio un mediu de dezvoltare integrat (IDE) care oferă o interfață vizuală unică bazată pe web, unde puteți accesa instrumente create special pentru a realiza toată dezvoltarea învățării automate (ML). Acesta oferă SageMaker JumpStart, care este un hub de model unde utilizatorii pot localiza, previzualiza și lansa un anumit model în propriul lor cont SageMaker. Oferă modele preinstruite, disponibile public și proprietare pentru o gamă largă de tipuri de probleme, inclusiv modele de bază.
Amazon SageMaker Studio oferă mediul ideal pentru dezvoltarea conductelor LLM compatibile cu RAG. Mai întâi, folosind consola AWS, accesați Amazon SageMaker și creați un domeniu SageMaker Studio și deschideți un notebook Jupyter Studio.
Cerințe preliminare
Parcurgeți următorii pași prealabil:
- Configurați Amazon SageMaker Studio.
- Integrat la un domeniu Amazon SageMaker.
- Înscrieți-vă pentru o bază de date Pinecone Vector de nivel gratuit.
- Biblioteci de cerințe preliminare: SageMaker Python SDK, Pinecone Client
Soluție pasională
Folosind notebook-ul SageMaker Studio, trebuie mai întâi să instalăm bibliotecile de cerințe preliminare:
Implementarea unui LLM
În această postare, discutăm două abordări ale implementării unui LLM. Primul este prin HuggingFaceModel
obiect. Puteți utiliza acest lucru atunci când implementați LLM-uri (și încorporați modele) direct din hub-ul model Hugging Face.
De exemplu, puteți crea o configurație implementabilă pentru google/flan-t5-xl model așa cum se arată în următoarea captură de ecran:
Când implementați modele direct din Hugging Face, inițializați my_model_configuration
cu urmatoarele:
- An
env
config ne spune ce model dorim să folosim și pentru ce sarcină. - Execuția noastră SageMaker
role
ne oferă permisiunea de a implementa modelul nostru. - An
image_uri
este o configurație de imagine special pentru implementarea LLM-urilor de la Hugging Face.
Alternativ, SageMaker are un set de modele direct compatibile cu unul mai simplu JumpStartModel
obiect. Multe LLM populare, cum ar fi Llama 2, sunt acceptate de acest model, care poate fi inițializat așa cum se arată în următoarea captură de ecran:
Pentru ambele versiuni ale my_model
, implementați-le așa cum se arată în următoarea captură de ecran:
Cu punctul nostru final LLM inițializat, puteți începe să interogați. Formatul interogărilor noastre poate varia (în special între LLM-urile conversaționale și non-conversaționale), dar procesul este în general același. Pentru modelul Hugging Face, procedați după cum urmează:
Puteți găsi soluția în GitHub depozit.
Răspunsul generat pe care îl primim aici nu are prea mult sens - este o halucinație.
Oferirea unui context suplimentar pentru LLM
Llama 2 încearcă să răspundă la întrebarea noastră doar pe baza cunoștințelor parametrice interne. În mod clar, parametrii modelului nu stochează cunoștințele despre care instanțe putem cu instruirea spot gestionată în SageMaker.
Pentru a răspunde corect la această întrebare, trebuie să folosim cunoștințele sursei. Adică, oferim informații suplimentare LLM prin intermediul promptului. Să adăugăm aceste informații direct ca context suplimentar pentru model.
Vedem acum răspunsul corect la întrebare; a fost usor! Cu toate acestea, este puțin probabil ca un utilizator să introducă contexte în solicitările lor, ar ști deja răspunsul la întrebarea lor.
În loc să inserați manual un singur context, identificați automat informațiile relevante dintr-o bază de date mai extinsă de informații. Pentru asta, veți avea nevoie de Retrieval Augmented Generation.
Recuperare Augmented Generation
Cu Retrieval Augmented Generation, puteți codifica o bază de date de informații într-un spațiu vectorial în care proximitatea dintre vectori reprezintă relevanța/asemănarea lor semantică. Cu acest spațiu vectorial ca bază de cunoștințe, puteți converti o nouă interogare de utilizator, o puteți codifica în același spațiu vectorial și puteți prelua cele mai relevante înregistrări indexate anterior.
După ce ați preluat aceste înregistrări relevante, selectați câteva dintre ele și includeți-le în promptul LLM ca context suplimentar, oferind LLM-ului cunoștințe de sursă extrem de relevante. Acesta este un proces în doi pași în care:
- Indexarea populează indexul vectorial cu informații dintr-un set de date.
- Recuperarea are loc în timpul unei interogări și este locul în care recuperăm informații relevante din indexul vectorial.
Ambii pași necesită un model de încorporare pentru a traduce textul nostru simplu care poate fi citit de om în spațiu vectorial semantic. Utilizați transformatorul de propoziție MiniLM extrem de eficient de la Hugging Face, așa cum se arată în următoarea captură de ecran. Acest model nu este un LLM și, prin urmare, nu este inițializat în același mod ca modelul nostru Llama 2.
În hub_config
, specificați ID-ul modelului așa cum se arată în captura de ecran de mai sus, dar pentru sarcină, utilizați extragerea caracteristicilor, deoarece generăm încorporare vectorială, nu text ca LLM. După aceasta, inițializați configurația modelului cu HuggingFaceModel
ca și până acum, dar de data aceasta fără imaginea LLM și cu niște parametri de versiune.
Puteți implementa din nou modelul cu deploy
, folosind instanța mai mică (numai CPU) a ml.t2.large
. Modelul MiniLM este mic, deci nu necesită multă memorie și nu are nevoie de un GPU pentru că poate crea rapid încorporare chiar și pe un procesor. Dacă preferați, puteți rula modelul mai rapid pe GPU.
Pentru a crea înglobări, utilizați predict
metoda și transmiteți o listă de contexte de codat prin intermediul inputs
cheie așa cum se arată:
Sunt transmise două contexte de intrare, returnând două înglobări vectoriale de context, așa cum se arată:
len(out)
2
Dimensiunea de încorporare a modelului MiniLM este 384
ceea ce înseamnă că fiecare vector care înglobează ieșirile MiniLM ar trebui să aibă o dimensionalitate de 384
. Cu toate acestea, privind lungimea înglobărilor noastre, veți vedea următoarele:
len(out[0]), len(out[1])
(8, 8)
Două liste conțin câte opt articole. MiniLM procesează mai întâi textul într-o etapă de tokenizare. Această tokenizare transformă textul nostru simplu care poate fi citit de om într-o listă de ID-uri de simbol care pot fi citite de model. În caracteristicile de ieșire ale modelului, puteți vedea înglobările la nivel de simbol. una dintre aceste înglobări arată dimensionalitatea așteptată a 384
așa cum se arată:
len(out[0][0])
384
Transformați aceste înglobări la nivel de simbol în înglobări la nivel de document utilizând valorile medii din fiecare dimensiune vectorială, așa cum se arată în ilustrația următoare.
Cu două înglobări vectoriale cu 384 de dimensiuni, câte una pentru fiecare text de intrare. Pentru a ne ușura viața, includeți procesul de codificare într-o singură funcție, așa cum se arată în următoarea captură de ecran:
Descărcarea setului de date
Descărcați întrebările frecvente Amazon SageMaker ca bază de cunoștințe pentru a obține datele care conțin atât coloane de întrebări, cât și coloane de răspunsuri.
Când efectuați căutarea, căutați numai Răspunsuri, astfel încât să puteți renunța la coloana Întrebare. Consultați caietul pentru detalii.
Setul nostru de date și canalul de încorporare sunt gata. Acum tot ce ne trebuie este un loc unde să stocăm acele înglobări.
Indexarea
Baza de date vectorială Pinecone stochează înglobări de vectori și le caută eficient la scară. Pentru a crea o bază de date, veți avea nevoie de o cheie API gratuită de la Pinecone.
După ce v-ați conectat la baza de date vectorială Pinecone, creați un singur index vectorial (similar cu un tabel din DB-urile tradiționale). Denumiți indexul retrieval-augmentation-aws
și aliniați indexul dimension
și metric
parametrii cu cei solicitați de modelul de încorporare (MiniLM în acest caz).
Pentru a începe inserarea datelor, executați următoarele:
Puteți începe să interogați indexul cu întrebarea de mai devreme în această postare.
Rezultatele de mai sus arată că returnăm contexte relevante pentru a ne ajuta să răspundem la întrebarea noastră. De cand noi top_k = 1
, index.query
a returnat rezultatul superior alături de metadatele care citesc Managed Spot Training can be used with all instances supported in Amazon
.
Creșterea promptului
Utilizați contextele preluate pentru a mări promptul și pentru a decide cu privire la o cantitate maximă de context care să fie alimentată în LLM. Folosește 1000
limita de caractere pentru a adăuga iterativ fiecare context returnat la prompt până când depășiți lungimea conținutului.
Hraneste context_str
în promptul LLM, așa cum se arată în următoarea captură de ecran:
[Intrare]: ce instanțe pot folosi cu Managed Spot Training în SageMaker? [Ieșire]: Pe baza contextului furnizat, puteți utiliza Managed Spot Training cu toate instanțele acceptate în Amazon SageMaker. Prin urmare, răspunsul este: Toate instanțele acceptate în Amazon SageMaker.
Logica funcționează, așa că includeți-o într-o singură funcție pentru a menține lucrurile curate.
Acum puteți adresa întrebări precum cele prezentate în continuare:
A curăța
Pentru a nu mai suporta taxe nedorite, ștergeți modelul și punctul final.
Concluzie
În această postare, v-am prezentat RAG cu LLM-uri cu acces deschis pe SageMaker. De asemenea, am arătat cum să implementăm modele Amazon SageMaker Jumpstart cu Llama 2, Hugging Face LLM cu Flan T5 și încorporarea modelelor cu MiniLM.
Am implementat o conductă RAG completă de la capăt la capăt utilizând modelele noastre cu acces deschis și un index vectorial Pinecone. Folosind aceasta, am arătat cum să minimizăm halucinațiile și să păstrăm la zi cunoștințele LLM și, în cele din urmă, să îmbunătățim experiența utilizatorului și încrederea în sistemele noastre.
Pentru a rula acest exemplu pe cont propriu, clonați acest depozit GitHub și parcurgeți pașii anteriori folosind Blocnotes cu răspunsuri la întrebări pe GitHub.
Despre autori
Vedantul Jain este un specialist senior AI/ML, care lucrează la inițiative strategice generative AI. Înainte de a se alătura AWS, Vedant a ocupat poziții de specialitate ML/Data Science la diferite companii, cum ar fi Databricks, Hortonworks (acum Cloudera) și JP Morgan Chase. În afara muncii sale, Vedant este pasionat de a face muzică, de alpinism, de a folosi știința pentru a duce o viață plină de sens și de a explora bucătăriile din întreaga lume.
James Briggs este Staff Developer Advocate la Pinecone, specializat în căutare vectorială și AI/ML. El îndrumă dezvoltatorii și companiile în dezvoltarea propriilor soluții GenAI prin educație online. Înainte de Pinecone, James a lucrat la AI pentru micile startup-uri tehnologice pentru corporații financiare consacrate. În afara muncii, James are o pasiune pentru călătorii și îmbrățișarea noilor aventuri, de la surfing și scuba până la Muay Thai și BJJ.
Xin Huang este cercetător aplicat senior pentru algoritmii încorporați Amazon SageMaker JumpStart și Amazon SageMaker. El se concentrează pe dezvoltarea de algoritmi scalabili de învățare automată. Interesele sale de cercetare sunt în domeniul prelucrării limbajului natural, al învățării profunde explicabile pe date tabulare și al analizei robuste a grupării non-parametrice spațiu-timp. A publicat multe lucrări în ACL, ICDM, conferințe KDD și Royal Statistical Society: Series A.
- Distribuție de conținut bazat pe SEO și PR. Amplifică-te astăzi.
- PlatoData.Network Vertical Generative Ai. Împuterniciți-vă. Accesați Aici.
- PlatoAiStream. Web3 Intelligence. Cunoștințe amplificate. Accesați Aici.
- PlatoESG. carbon, CleanTech, Energie, Mediu inconjurator, Solar, Managementul deșeurilor. Accesați Aici.
- PlatoHealth. Biotehnologie și Inteligență pentru studii clinice. Accesați Aici.
- Sursa: https://aws.amazon.com/blogs/machine-learning/mitigate-hallucinations-through-retrieval-augmented-generation-using-pinecone-vector-database-llama-2-from-amazon-sagemaker-jumpstart/
- :are
- :este
- :nu
- :Unde
- $UP
- 1
- 10
- 100
- 11
- 12
- 14
- 15%
- 16
- 17
- 19
- 23
- 32
- 7
- 8
- 9
- a
- Despre Noi
- mai sus
- acces
- Conform
- Cont
- peste
- adăuga
- Suplimentar
- informatii suplimentare
- Adoptare
- aventuri
- avocat
- din nou
- AI
- ai cazuri de utilizare
- AI / ML
- algoritmi
- alinia
- TOATE
- de-a lungul
- deja
- de asemenea
- Amazon
- Amazon SageMaker
- Amazon SageMaker JumpStart
- Amazon SageMaker Studio
- Amazon Web Services
- sumă
- an
- analiză
- și
- răspunde
- răspunsuri
- Orice
- api
- aplicaţia
- aplicat
- abordare
- abordari
- SUNT
- ZONĂ
- în jurul
- AS
- cere
- At
- Încercările
- spori
- augmented
- Auto
- în mod automat
- disponibil
- AWS
- de bază
- bazat
- BE
- deoarece
- înainte
- începe
- între
- Blog
- Floare
- atât
- mai larg
- construi
- construit-in
- întreprinderi
- dar
- by
- CAN
- captura
- caz
- cazuri
- caractere
- taxe
- vânătoare
- curat
- clar
- Alpinism
- Cloudera
- clustering
- Coloană
- Coloane
- Companii
- compatibil
- Completă
- component
- componente
- conferințe
- legat
- Consoleze
- conţine
- conține
- conţinut
- context
- contexte
- de conversaţie
- AI de conversație
- converti
- Corporații
- corecta
- corect
- crea
- critic
- În prezent
- de date
- Baza de date
- Data
- DBS
- decide
- adânc
- învățare profundă
- implementa
- Implementarea
- Dezvoltator
- Dezvoltatorii
- în curs de dezvoltare
- Dezvoltare
- Dimensiune
- direct
- discuta
- do
- face
- nu
- Nu
- domeniu
- don
- Picătură
- în timpul
- fiecare
- Mai devreme
- mai ușor
- ecosistem
- Educaţie
- eficient
- eficient
- Încorporarea
- îmbrățișare
- codare
- capăt
- un capăt la altul
- Punct final
- spori
- Mediu inconjurator
- stabilit
- Chiar
- exemplu
- depăși
- execuție
- de aşteptat
- experienţă
- explora
- Explorarea
- extensiv
- extern
- extrage
- Față
- mai repede
- DESCRIERE
- fed-
- puțini
- finanţa
- Găsi
- termina
- First
- pluti
- se concentrează
- următor
- Pentru
- format
- Fundație
- Gratuit
- din
- funcţie
- în general
- generată
- generator
- generaţie
- generativ
- AI generativă
- obține
- GitHub
- Da
- dat
- oferă
- Go
- Merge
- GPU
- Ghiduri
- manipula
- se întâmplă
- Avea
- he
- Held
- ajutor
- aici
- extrem de
- lui
- Cum
- Cum Pentru a
- Totuși
- HTTPS
- huang
- Butuc
- Față îmbrățișată
- uman poate fi citit
- i
- ID
- ideal
- identifica
- ID-uri
- if
- imagine
- implementat
- import
- in
- include
- Inclusiv
- Crește
- index
- indexate
- industrii
- Informa
- informații
- inițiative
- intrare
- intrări
- instala
- instanță
- integrate
- interese
- interfaţă
- intern
- în
- introdus
- IT
- articole
- james
- aderarea
- jp
- JP Morgan
- JP Morgan Chase
- jpg
- A pastra
- Cheie
- Cunoaște
- cunoştinţe
- limbă
- mare
- mai mare
- lansa
- conduce
- învăţare
- învață
- Lungime
- biblioteci
- Viaţă
- ca
- LIMITĂ
- Listă
- liste
- Locuiește
- Lamă
- LLM
- logică
- Uite
- cautati
- Lot
- maşină
- masina de învățare
- face
- Efectuarea
- gestionate
- manual
- multe
- Meci
- meciuri
- maxim
- suma maximă
- Mai..
- însemna
- semnificativ
- mijloace
- Memorie
- Metadata
- metodă
- diminua
- ML
- model
- Modele
- bani
- mai mult
- Morgan
- cele mai multe
- mult
- multiplu
- Muzică
- trebuie sa
- nume
- Natural
- Procesarea limbajului natural
- Nevoie
- nevoilor
- Nou
- următor
- nlp
- caiet
- acum
- NumPy
- obiect
- of
- on
- ONE
- on-line
- afară
- deschide
- operaţie
- or
- comandă
- OS
- in caz contrar
- al nostru
- afară
- producție
- iesiri
- exterior
- propriu
- lucrări
- parametrii
- special
- în special
- trece
- Trecut
- pasiune
- pasionat
- Efectua
- efectuarea
- permisiuni
- imagine
- conducte
- Simplu
- Plato
- Informații despre date Platon
- PlatoData
- Popular
- poziţii
- Post
- Alimentarea
- prezicere
- Predictii
- Predictor
- preferat
- împiedica
- Anunţ
- precedent
- în prealabil
- anterior
- Problemă
- proces
- procese
- prelucrare
- Profil
- solicitări
- proprietate
- prevăzut
- furnizează
- furnizarea
- public
- publicat
- Piton
- pirtorh
- interogări
- întrebare
- Întrebări
- repede
- gamă
- variind
- gata
- primire
- înregistrări
- regiuni
- se bazează
- depozit
- reprezintă
- necesita
- necesar
- cercetare
- Răspunde
- rezultat
- REZULTATE
- reveni
- revenind
- robust
- stâncă
- Rol
- regal
- Alerga
- ruleaza
- sagemaker
- acelaşi
- Spune
- scalabil
- Scară
- Ştiinţă
- Om de stiinta
- scor
- Ecran
- sdk
- Caută
- Cautari
- vedea
- aparent
- selecta
- senior
- sens
- propoziție
- serie
- Seria A
- Servicii
- set
- să
- Arăta
- a arătat
- indicat
- Emisiuni
- parte
- asemănător
- simplu
- întrucât
- singur
- Mărimea
- mic
- mai mici
- So
- Societate
- Numai
- soluţie
- soluţii
- unele
- undeva
- Sursă
- Spaţiu
- specialist
- specializata
- Specialitate
- specific
- Loc
- Personal
- Startup-urile
- statistic
- Pas
- paşi
- Stop
- stoca
- magazine
- Strategic
- Şir
- studio
- astfel de
- a sustine
- Suportat
- Sprijină
- sistem
- sisteme
- tabel
- ia
- Sarcină
- tech
- startup-uri tehnologice
- Tehnologia
- spune
- a) Sport and Nutrition Awareness Day in Manasia Around XNUMX people from the rural commune Manasia have participated in a sports and healthy nutrition oriented activity in one of the community’s sports ready yards. This activity was meant to gather, mainly, middle-aged people from a Romanian rural community and teach them about the benefits that sports have on both their mental and physical health and on how sporting activities can be used to bring people from a community closer together. Three trainers were made available for this event, so that the participants would get the best possible experience physically and so that they could have the best access possible to correct information and good sports/nutrition practices. b) Sports Awareness Day in Poiana Țapului A group of young participants have taken part in sporting activities meant to teach them about sporting conduct, fairplay, and safe physical activities. The day culminated with a football match.
- tailandez
- decât
- acea
- Zona
- lumea
- lor
- Lor
- prin urmare
- Acestea
- ei
- lucruri
- acest
- aceste
- Prin
- timp
- la
- semn
- tokenizarea
- de asemenea
- Unelte
- top
- tradiţional
- Pregătire
- transformator
- transformatoare
- transformatele
- Traduceți
- Traveling
- Încredere
- Două
- Tipuri
- în cele din urmă
- improbabil
- de neoprit.
- până la
- nedorit
- Actualizează
- us
- utilizare
- utilizat
- Utilizator
- Experiența de utilizare
- utilizatorii
- folosind
- Valori
- diverse
- versiune
- Versiunile
- de
- vizual
- aștepta
- walkthrough
- vrea
- a fost
- Val
- Cale..
- we
- web
- servicii web
- bazat pe web
- Ce
- cand
- care
- în timp ce
- larg
- Gamă largă
- voi
- cu
- fără
- Apartamente
- a lucrat
- de lucru
- fabrică
- lume
- ar
- încadra
- X
- da
- Tu
- Ta
- zephyrnet