Kljub na videz neustavljivemu sprejemanju LLM-jev v panogah so le-ti ena komponenta širšega tehnološkega ekosistema, ki poganja nov val umetne inteligence. Številni pogovorni primeri uporabe umetne inteligence zahtevajo LLM-je, kot so Llama 2, Flan T5 in Bloom, da se odzovejo na poizvedbe uporabnikov. Ti modeli se pri odgovorih na vprašanja opirajo na parametrično znanje. Model se tega znanja nauči med usposabljanjem in ga kodira v parametre modela. Da bi posodobili to znanje, moramo prekvalificirati LLM, kar vzame veliko časa in denarja.
Na srečo lahko uporabimo tudi izvorno znanje za obveščanje naših LLM. Izvorno znanje je informacija, ki se vnese v LLM prek vnosnega poziva. Eden priljubljenih pristopov k zagotavljanju izvornega znanja je Retrieval Augmented Generation (RAG). Z uporabo RAG pridobimo ustrezne informacije iz zunanjega vira podatkov in te informacije vnesemo v LLM.
V tej objavi v spletnem dnevniku bomo raziskali, kako uvesti LLM-je, kot je Llama-2, z uporabo Amazon Sagemaker JumpStart in posodabljati naše LLM-je z ustreznimi informacijami prek Retrieval Augmented Generation (RAG) z uporabo vektorske baze podatkov Pinecone, da preprečimo halucinacije AI .
Retrieval Augmented Generation (RAG) v Amazon SageMaker
Pinecone bo obravnaval komponento pridobivanja RAG, vendar potrebujete še dve kritični komponenti: nekje za zagon sklepanja LLM in nekje za zagon vdelanega modela.
Amazon SageMaker Studio je integrirano razvojno okolje (IDE), ki ponuja enoten spletni vizualni vmesnik, kjer lahko dostopate do namensko izdelanih orodij za izvajanje celotnega razvoja strojnega učenja (ML). Zagotavlja SageMaker JumpStart, ki je središče modelov, kjer lahko uporabniki poiščejo, predogledajo in zaženejo določen model v svojem računu SageMaker. Zagotavlja vnaprej usposobljene, javno dostopne in lastniške modele za široko paleto vrst problemov, vključno z osnovnimi modeli.
Amazon SageMaker Studio ponuja idealno okolje za razvoj cevovodov LLM, ki podpirajo RAG. Najprej s konzolo AWS pojdite na Amazon SageMaker in ustvarite domeno SageMaker Studio ter odprite beležnico Jupyter Studio.
Predpogoji
Izpolnite naslednje predpogojne korake:
- Nastavite Amazon SageMaker Studio.
- Vkrcajte se na domeno Amazon SageMaker.
- Prijavite se za brezplačno vektorsko podatkovno zbirko Pinecone.
- Predpogojne knjižnice: SDK SageMaker Python, Pinecone Client
Vodenje rešitve
Z uporabo prenosnega računalnika SageMaker Studio moramo najprej namestiti predpogojne knjižnice:
Uvajanje LLM
V tej objavi razpravljamo o dveh pristopih k uvajanju LLM. Prvi je skozi HuggingFaceModel
predmet. To lahko uporabite pri uvajanju LLM (in vdelanih modelov) neposredno iz središča modela Hugging Face.
Ustvarite lahko na primer umestitveno konfiguracijo za google/flan-t5-xl model, kot je prikazan na naslednjem posnetku zaslona:
Ko uvajate modele neposredno iz Hugging Face, inicializirajte my_model_configuration
z naslednjim:
- An
env
config nam pove, kateri model želimo uporabiti in za katero nalogo. - Naša izvedba SageMaker
role
nam daje dovoljenja za uvedbo našega modela. - An
image_uri
je konfiguracija slike posebej za uvajanje LLM-jev iz Hugging Face.
Druga možnost je, da ima SageMaker niz modelov, ki so neposredno združljivi s preprostejšimi JumpStartModel
predmet. Ta model podpira številne priljubljene LLM-je, kot je Llama 2, ki jih je mogoče inicializirati, kot je prikazano na naslednjem posnetku zaslona:
Za obe različici my_model
, jih razporedite, kot je prikazano na naslednjem posnetku zaslona:
Z našo inicializirano končno točko LLM lahko začnete s poizvedovanjem. Oblika naših poizvedb se lahko razlikuje (zlasti med konverzacijskimi in nepogovornimi LLM), vendar je postopek na splošno enak. Za model Hugging Face naredite naslednje:
Rešitev najdete v GitHub repozitorij.
Ustvarjeni odgovor, ki ga prejmemo tukaj, nima pravega smisla - je halucinacija.
Zagotavljanje dodatnega konteksta LLM
Llama 2 poskuša odgovoriti na naše vprašanje izključno na podlagi znanja o notranjih parametrih. Jasno je, da parametri modela ne shranjujejo znanja o tem, katere instance lahko z upravljanim usposabljanjem na kraju samem v SageMakerju.
Da bi pravilno odgovorili na to vprašanje, moramo uporabiti izvorno znanje. To pomeni, da posredujemo dodatne informacije LLM prek poziva. Te informacije dodamo neposredno kot dodaten kontekst za model.
Zdaj vidimo pravilen odgovor na vprašanje; to je bilo enostavno! Vendar je malo verjetno, da bo uporabnik v svoje pozive vstavil kontekste, saj bi že poznal odgovor na svoje vprašanje.
Namesto ročnega vstavljanja enega samega konteksta samodejno identificirajte ustrezne informacije iz obsežnejše podatkovne baze informacij. Za to boste potrebovali Retrieval Augmented Generation.
Povečana generacija pridobivanja
Z Retrieval Augmented Generation lahko bazo podatkov z informacijami kodirate v vektorski prostor, kjer bližina med vektorji predstavlja njihovo relevantnost/semantično podobnost. S tem vektorskim prostorom kot bazo znanja lahko pretvorite novo uporabniško poizvedbo, jo kodirate v isti vektorski prostor in pridobite najpomembnejše zapise, ki so bili predhodno indeksirani.
Po pridobitvi teh ustreznih zapisov izberite nekaj izmed njih in jih vključite v poziv LLM kot dodaten kontekst, s čimer boste LLM pridobili zelo relevantno izvorno znanje. To je dvostopenjski postopek, kjer:
- Indeksiranje napolni vektorski indeks z informacijami iz nabora podatkov.
- Pridobivanje poteka med poizvedbo in tam pridobimo ustrezne informacije iz vektorskega indeksa.
Oba koraka zahtevata model vdelave za prevajanje našega človeku berljivega navadnega besedila v semantični vektorski prostor. Uporabite visoko učinkovit pretvornik stavkov MiniLM iz Hugging Face, kot je prikazano na naslednjem posnetku zaslona. Ta model ni LLM in zato ni inicializiran na enak način kot naš model Llama 2.
v hub_config
, določite ID modela, kot je prikazano na zgornjem zajemu zaslona, vendar za nalogo uporabite ekstrakcijo funkcij, ker ustvarjamo vektorske vdelave in ne besedila, kot je naš LLM. Po tem inicializirajte konfiguracijo modela z HuggingFaceModel
kot prej, vendar tokrat brez slike LLM in z nekaterimi parametri različice.
Model lahko znova uvedete z deploy
, z uporabo manjšega (samo CPE) primerka ml.t2.large
. Model MiniLM je majhen, zato ne potrebuje veliko pomnilnika in ne potrebuje GPE-ja, saj lahko hitro ustvari vdelave tudi na CPE-ju. Če želite, lahko model hitreje izvajate na GPE.
Če želite ustvariti vdelave, uporabite predict
in posreduje seznam kontekstov za kodiranje prek inputs
ključ, kot je prikazano:
Posredovana sta dva vhodna konteksta, ki vrneta dve vdelavi vektorja konteksta, kot je prikazano:
len(out)
2
Dimenzionalnost vgradnje modela MiniLM je 384
kar pomeni, da mora imeti vsak vektor, ki vgrajuje izhode MiniLM, dimenzijo 384
. Če pa pogledate dolžino naših vdelav, boste videli naslednje:
len(out[0]), len(out[1])
(8, 8)
Dva seznama vsebujeta po osem elementov. MiniLM najprej obdela besedilo v koraku tokenizacije. Ta tokenizacija pretvori naše človeku berljivo golo besedilo v seznam ID-jev žetonov, berljivih z modelom. V izhodnih funkcijah modela lahko vidite vdelave na ravni žetonov. ena od teh vdelav kaže pričakovano razsežnost 384
kot je prikazano:
len(out[0][0])
384
Pretvorite te vdelave na ravni žetona v vdelave na ravni dokumenta z uporabo srednjih vrednosti v vsaki vektorski dimenziji, kot je prikazano na naslednji sliki.
Z dvema 384-dimenzionalnima vdelavama vektorjev, po eno za vsako vhodno besedilo. Da bi nam olajšali življenje, zavijte postopek kodiranja v eno samo funkcijo, kot je prikazano na naslednjem posnetku zaslona:
Prenos nabora podatkov
Prenesite pogosta vprašanja Amazon SageMaker kot bazo znanja, da dobite podatke, ki vsebujejo stolpce z vprašanji in odgovori.
Ko izvajate iskanje, poiščite samo odgovore, da lahko izpustite stolpec Vprašanje. Za podrobnosti si oglejte zvezek.
Naš nabor podatkov in cevovod za vdelavo sta pripravljena. Vse, kar potrebujemo, je, da nekje shranimo te vdelave.
Indeksiranje
Vektorska zbirka podatkov Pinecone shranjuje vdelane vektorje in jih učinkovito išče v velikem obsegu. Če želite ustvariti bazo podatkov, boste potrebovali brezplačen ključ API podjetja Pinecone.
Ko se povežete z vektorsko bazo podatkov Pinecone, ustvarite en sam vektorski indeks (podobno kot tabela v tradicionalnih zbirkah podatkov). Poimenujte indeks retrieval-augmentation-aws
in poravnajte kazalo dimension
in metric
parametre s tistimi, ki jih zahteva model vdelave (v tem primeru MiniLM).
Za začetek vstavljanja podatkov zaženite naslednje:
Poizvedovanje po indeksu lahko začnete z vprašanjem iz prejšnje objave v tej objavi.
Zgornji rezultat kaže, da vračamo ustrezne kontekste, ki nam pomagajo odgovoriti na naše vprašanje. Ker smo top_k = 1
, index.query
je vrnil najvišji rezultat poleg metapodatkov, ki se glasijo Managed Spot Training can be used with all instances supported in Amazon
.
Povečanje poziva
Uporabite pridobljene kontekste, da povečate poziv in se odločite za največjo količino konteksta, ki ga želite vnesti v LLM. Uporabi 1000
omejitev znakov za iterativno dodajanje vsakega vrnjenega konteksta v poziv, dokler ne presežete dolžine vsebine.
Nahranite context_str
v poziv LLM, kot je prikazano na naslednjem posnetku zaslona:
[Vnos]: Katere primere lahko uporabim z upravljanim usposabljanjem na kraju samem v SageMakerju? [Izhod]: Na podlagi podanega konteksta lahko uporabite Managed Spot Training z vsemi primerki, ki jih podpira Amazon SageMaker. Zato je odgovor: Vsi primerki so podprti v Amazon SageMaker.
Logika deluje, zato jo zavijte v eno samo funkcijo, da bodo stvari čiste.
Zdaj lahko postavljate vprašanja, kot so prikazana spodaj:
Čiščenje
Če želite preprečiti neželene stroške, izbrišite model in končno točko.
zaključek
V tej objavi smo vam predstavili RAG z odprtimi LLM-ji na SageMakerju. Pokazali smo tudi, kako uvesti modele Amazon SageMaker Jumpstart z Llama 2, Hugging Face LLM s Flan T5 in vdelati modele z MiniLM.
Implementirali smo celoten cevovod RAG od konca do konca z uporabo naših modelov z odprtim dostopom in vektorskega indeksa Pinecone. S tem smo pokazali, kako zmanjšati halucinacije in posodabljati znanje LLM ter na koncu izboljšati uporabniško izkušnjo in zaupanje v naše sisteme.
Če želite ta primer zagnati sami, klonirajte to GitHubovo skladišče in se sprehodite po prejšnjih korakih z uporabo Beležnica z odgovori na vprašanja na GitHubu.
O avtorjih
Vedant Jain je višji strokovnjak za AI/ML, ki dela na strateških pobudah Generative AI. Preden se je pridružil AWS, je bil Vedant specializiran za ML/Data Science v različnih podjetjih, kot so Databricks, Hortonworks (zdaj Cloudera) in JP Morgan Chase. Zunaj svojega dela je Vedant navdušen nad ustvarjanjem glasbe, plezanjem, uporabo znanosti za smiselno življenje in raziskovanjem kuhinj z vsega sveta.
James Briggs je zaposleni za razvijalce pri Pinecone, specializiran za vektorsko iskanje in AI/ML. Vodi razvijalce in podjetja pri razvoju lastnih rešitev GenAI prek spletnega izobraževanja. Pred Pinecone je James delal na AI za mala tehnološka zagonska podjetja za uveljavljene finančne korporacije. Zunaj dela ima James strast do potovanj in sprejemanja novih dogodivščin, od deskanja in potapljanja do tajskega bojevja in BJJ.
Xin Huang je višji aplikativni znanstvenik za vgrajene algoritme Amazon SageMaker JumpStart in Amazon SageMaker. Osredotoča se na razvoj razširljivih algoritmov strojnega učenja. Njegovi raziskovalni interesi so na področju obdelave naravnega jezika, razložljivega globokega učenja na tabelarnih podatkih in robustne analize neparametričnega prostorsko-časovnega združevanja. Objavil je številne članke na konferencah ACL, ICDM, KDD in Royal Statistical Society: Series A.
- Distribucija vsebine in PR s pomočjo SEO. Okrepite se še danes.
- PlatoData.Network Vertical Generative Ai. Opolnomočite se. Dostopite tukaj.
- PlatoAiStream. Web3 Intelligence. Razširjeno znanje. Dostopite tukaj.
- PlatoESG. Ogljik, CleanTech, Energija, Okolje, sončna energija, Ravnanje z odpadki. Dostopite tukaj.
- PlatoHealth. Obveščanje o biotehnologiji in kliničnih preskušanjih. Dostopite tukaj.
- vir: https://aws.amazon.com/blogs/machine-learning/mitigate-hallucinations-through-retrieval-augmented-generation-using-pinecone-vector-database-llama-2-from-amazon-sagemaker-jumpstart/
- :ima
- : je
- :ne
- :kje
- $GOR
- 1
- 10
- 100
- 11
- 12
- 14
- 15%
- 16
- 17
- 19
- 23
- 32
- 7
- 8
- 9
- a
- O meni
- nad
- dostop
- Po
- Račun
- čez
- dodajte
- Dodatne
- Dodatne informacije
- Sprejetje
- avanture
- zagovornik
- spet
- AI
- primeri uporabe ai
- AI / ML
- algoritmi
- uskladiti
- vsi
- skupaj
- že
- Prav tako
- Amazon
- Amazon SageMaker
- Amazon SageMaker JumpStart
- Amazon SageMaker Studio
- Amazon Web Services
- znesek
- an
- Analiza
- in
- odgovor
- odgovori
- kaj
- API
- aplikacija
- uporabna
- pristop
- pristopi
- SE
- OBMOČJE
- okoli
- AS
- vprašati
- At
- Poskusi
- povečanje
- Povečana
- avto
- samodejno
- Na voljo
- AWS
- baza
- temeljijo
- BE
- ker
- pred
- začetek
- med
- Blog
- Bloom
- tako
- širši
- izgradnjo
- vgrajeno
- podjetja
- vendar
- by
- CAN
- zajemanje
- primeru
- primeri
- znaki
- Stroški
- Chase
- čiščenje
- jasno
- Plezanje
- cloudera
- grozdenje
- Stolpec
- Stolpci
- Podjetja
- združljiv
- dokončanje
- komponenta
- deli
- konference
- povezane
- Konzole
- vsebujejo
- Vsebuje
- vsebina
- ozadje
- kontekstih
- pogovorni
- pogovorni AI
- pretvorbo
- Korporacije
- popravi
- pravilno
- ustvarjajo
- kritično
- Trenutno
- datum
- Baze podatkov
- Datum
- DBS
- odloča
- globoko
- globoko učenje
- razporedi
- uvajanja
- Razvojni
- Razvijalci
- razvoju
- Razvoj
- Dimenzije
- neposredno
- razpravlja
- do
- ne
- ne
- Ne
- domena
- don
- Drop
- med
- vsak
- prej
- lažje
- ekosistem
- Izobraževanje
- učinkovite
- učinkovito
- vdelava
- objame
- kodiranje
- konec
- konec koncev
- Končna točka
- okrepi
- okolje
- ustanovljena
- Tudi
- Primer
- presega
- izvedba
- Pričakuje
- izkušnje
- raziskuje
- Raziskovati
- obsežen
- zunanja
- ekstrakt
- Obraz
- hitreje
- Lastnosti
- Fed
- Nekaj
- financiranje
- Najdi
- konča
- prva
- Plavaj
- Osredotoča
- po
- za
- format
- Fundacija
- brezplačno
- iz
- funkcija
- splošno
- ustvarila
- ustvarjajo
- generacija
- generativno
- Generativna AI
- dobili
- GitHub
- Daj
- dana
- daje
- Go
- goes
- GPU
- Vodniki
- ročaj
- se zgodi
- Imajo
- he
- Hero
- pomoč
- tukaj
- zelo
- njegov
- Kako
- Kako
- Vendar
- HTTPS
- huang
- Hub
- HuggingFace
- človeško berljivo
- i
- ID
- idealen
- identificirati
- ID-ji
- if
- slika
- izvajali
- uvoz
- in
- vključujejo
- Vključno
- Povečajte
- Indeks
- indeksirane
- industrij
- obvesti
- Podatki
- pobud
- vhod
- vhodi
- namestitev
- primer
- integrirana
- interesi
- vmesnik
- notranji
- v
- Uvedeno
- IT
- Izdelkov
- james
- pridružil
- jp
- jp morgan
- JP Morgan Chase
- jpg
- Imejte
- Ključne
- Vedite
- znanje
- jezik
- velika
- večja
- kosilo
- vodi
- učenje
- uči
- dolžina
- knjižnice
- življenje
- kot
- LIMIT
- Seznam
- seznami
- živi
- Llama
- LLM
- Logika
- Poglej
- si
- Sklop
- stroj
- strojno učenje
- Znamka
- Izdelava
- upravlja
- ročno
- več
- Stave
- tekme
- največja
- največji znesek
- Maj ..
- pomeni
- smiselna
- pomeni
- Spomin
- metapodatki
- Metoda
- Omiliti
- ML
- Model
- modeli
- Denar
- več
- Morgan
- Najbolj
- veliko
- več
- Glasba
- morajo
- Ime
- naravna
- Obdelava Natural Language
- Nimate
- potrebe
- Novo
- Naslednja
- nlp
- prenosnik
- zdaj
- otopeli
- predmet
- of
- on
- ONE
- na spletu
- samo
- odprite
- Delovanje
- or
- Da
- OS
- drugače
- naši
- ven
- izhod
- izhodi
- zunaj
- lastne
- članki
- parametri
- zlasti
- zlasti
- mimo
- opravil
- strast
- strastno
- Izvedite
- izvajati
- Dovoljenja
- slika
- plinovod
- Plain
- platon
- Platonova podatkovna inteligenca
- PlatoData
- Popular
- pozicije
- Prispevek
- Napajanje
- napoved
- Napovedi
- Predictor
- prednostno
- preprečiti
- predogled
- prejšnja
- prej
- Predhodna
- problem
- Postopek
- Procesi
- obravnavati
- profil
- pozove
- lastniško
- če
- zagotavlja
- zagotavljanje
- javno
- objavljeno
- Python
- pitorha
- poizvedbe
- vprašanje
- vprašanja
- hitro
- območje
- obsegu
- pripravljen
- prejema
- evidence
- regije
- pomembno
- zanašajo
- Skladišče
- predstavlja
- zahteva
- obvezna
- Raziskave
- Odzove
- povzroči
- Rezultati
- vrnitev
- vrnitev
- robusten
- skala
- vloga
- royal
- Run
- deluje
- sagemaker
- Enako
- pravijo,
- razširljive
- Lestvica
- Znanost
- Znanstvenik
- rezultat
- Zaslon
- SDK
- Iskalnik
- iskanja
- glej
- na videz
- izberite
- višji
- Občutek
- stavek
- Serija
- Serija A
- Storitve
- nastavite
- shouldnt
- Prikaži
- je pokazala,
- pokazale
- Razstave
- strani
- Podoben
- enostavnejši
- saj
- sam
- Velikosti
- majhna
- manj
- So
- Društvo
- Izključno
- Rešitev
- rešitve
- nekaj
- nekje
- vir
- Vesolje
- specialist
- specializacijo
- Posebnost
- posebej
- Komercialni
- Osebje
- Ustanavljanjem
- Statistično
- Korak
- Koraki
- stop
- trgovina
- trgovine
- Strateško
- String
- studio
- taka
- podpora
- Podprti
- Podpira
- sistem
- sistemi
- miza
- meni
- Naloga
- tech
- tech zagoni
- Tehnologija
- pove
- besedilo
- tajska
- kot
- da
- O
- Območje
- svet
- njihove
- Njih
- zato
- te
- jih
- stvari
- ta
- tisti,
- skozi
- čas
- do
- žeton
- Tokenizacija
- tudi
- orodja
- vrh
- tradicionalna
- usposabljanje
- transformator
- transformatorji
- transformacije
- prevesti
- Potovanje
- Zaupajte
- dva
- Vrste
- Konec koncev
- malo verjetno
- neustavljivo.
- dokler
- nezaželen
- Nadgradnja
- us
- uporaba
- Rabljeni
- uporabnik
- Uporabniška izkušnja
- Uporabniki
- uporabo
- Vrednote
- različnih
- različica
- različice
- preko
- vizualna
- Počakaj
- walkthrough
- želeli
- je
- Wave
- način..
- we
- web
- spletne storitve
- Web-Based
- Kaj
- kdaj
- ki
- medtem
- široka
- Širok spekter
- bo
- z
- brez
- delo
- delal
- deluje
- deluje
- svet
- bi
- zaviti
- X
- ja
- Vi
- Vaša rutina za
- zefirnet