Huolimatta näennäisesti pysäyttämättömästä LLM:ien käyttöönotosta eri toimialoilla, ne ovat osa laajempaa teknologiaekosysteemiä, joka antaa voiman uudelle tekoälyaalolle. Monet keskustelupohjaiset tekoälyn käyttötapaukset edellyttävät LLM:itä, kuten Llama 2, Flan T5 ja Bloom, vastaamaan käyttäjien kyselyihin. Nämä mallit luottavat parametritietoon vastatakseen kysymyksiin. Malli oppii tämän tiedon koulutuksen aikana ja koodaa sen malliparametreihin. Tämän tiedon päivittämiseksi meidän on koulutettava uudelleen LLM, mikä vie paljon aikaa ja rahaa.
Onneksi voimme myös käyttää lähdetietoa tiedottaessamme LLM:illemme. Lähdetieto on tietoa, joka syötetään LLM:ään syöttökehotteen kautta. Yksi suosittu tapa tarjota lähdetietoa on Retrieval Augmented Generation (RAG). RAG:n avulla haemme asiaankuuluvat tiedot ulkoisesta tietolähteestä ja syötämme ne LLM:ään.
Tässä blogiviestissä tutkimme, kuinka LLM:itä, kuten Llama-2, voidaan ottaa käyttöön Amazon Sagemaker JumpStartin avulla ja pitää LLM:t ajan tasalla asiaankuuluvilla tiedoilla Retrieval Augmented Generationin (RAG) avulla käyttämällä Pinecone-vektoritietokantaa tekoälyn hallusinaatioiden estämiseksi. .
Retrieval Augmented Generation (RAG) Amazon SageMakerissa
Pinecone käsittelee RAG:n hakukomponentin, mutta tarvitset vielä kaksi kriittistä komponenttia: jonnekin LLM-päätelmän suorittamiseen ja jonnekin upotusmallin suorittamiseen.
Amazon SageMaker Studio on integroitu kehitysympäristö (IDE), joka tarjoaa yhden verkkopohjaisen visuaalisen käyttöliittymän, jossa voit käyttää tarkoitukseen rakennettuja työkaluja kaiken koneoppimisen (ML) kehittämiseen. Se tarjoaa SageMaker JumpStartin, joka on mallikeskus, jossa käyttäjät voivat paikantaa, esikatsella ja käynnistää tietyn mallin omalla SageMaker-tilillään. Se tarjoaa valmiiksi koulutettuja, julkisesti saatavilla olevia ja patentoituja malleja monenlaisille ongelmatyypeille, mukaan lukien perusmallit.
Amazon SageMaker Studio tarjoaa ihanteellisen ympäristön RAG-yhteensopivien LLM-putkien kehittämiseen. Siirry ensin AWS-konsolin avulla Amazon SageMakeriin ja luo SageMaker Studio -verkkotunnus ja avaa Jupyter Studio -muistikirja.
Edellytykset
Suorita seuraavat edellytysvaiheet:
- Asenna Amazon SageMaker Studio.
- Mukana Amazon SageMaker -verkkotunnukseen.
- Rekisteröidy maksuttomaan Pinecone Vector -tietokantaan.
- Vaadittavat kirjastot: SageMaker Python SDK, Pinecone Client
Ratkaisun esittely
SageMaker Studio -muistikirjaa käytettäessä meidän on ensin asennettava edellytyskirjastot:
LLM:n käyttöönotto
Tässä viestissä keskustelemme kahdesta lähestymistavasta LLM:n käyttöönottoon. Ensimmäinen on kautta HuggingFaceModel
esine. Voit käyttää tätä, kun otat LLM:itä käyttöön (ja upottamalla malleja) suoraan Hugging Face -mallikeskuksesta.
Voit esimerkiksi luoda käyttöön otettavan kokoonpanon google/flan-t5-xl malli seuraavan kuvakaappauksen mukaisesti:
Kun otat malleja käyttöön suoraan Hugging Facesta, alusta my_model_configuration
seuraavasti:
- An
env
config kertoo meille, mitä mallia haluamme käyttää ja mihin tehtävään. - Meidän SageMaker-suoritus
role
antaa meille luvan ottaa mallimme käyttöön. - An
image_uri
on kuvakonfiguraatio erityisesti Hugging Facen LLM:ien käyttöönottamista varten.
Vaihtoehtoisesti SageMakerilla on joukko malleja, jotka ovat suoraan yhteensopivia yksinkertaisemman kanssa JumpStartModel
esine. Tämä malli tukee monia suosittuja LLM:itä, kuten Llama 2, joka voidaan alustaa seuraavan kuvakaappauksen mukaisesti:
Molemmille versioille my_model
, ota ne käyttöön seuraavan kuvakaappauksen mukaisesti:
Alustetun LLM-päätepisteemme avulla voit aloittaa kyselyn. Kyselyjemme muoto voi vaihdella (erityisesti keskustelu- ja ei-keskustelukykyisten LLM:iden välillä), mutta prosessi on yleensä sama. Hugging Face -mallissa toimi seuraavasti:
Ratkaisun löydät osoitteesta GitHub-arkisto.
Tässä saamassamme vastauksessa ei ole paljon järkeä - se on hallusinaatio.
Lisäkontekstin tarjoaminen LLM:lle
Llama 2 yrittää vastata kysymykseemme pelkästään sisäisen parametrisen tiedon perusteella. On selvää, että malliparametrit eivät tallenna tietoa siitä, mitkä tapaukset voimme hallita paikannusharjoituksia SageMakerissa.
Jotta voimme vastata tähän kysymykseen oikein, meidän on käytettävä lähdetietoa. Toisin sanoen annamme lisätietoja LLM:lle kehotteen kautta. Lisätään nämä tiedot suoraan mallin lisäkontekstiksi.
Nyt näemme oikean vastauksen kysymykseen; se oli helppoa! Käyttäjä ei kuitenkaan todennäköisesti lisää konteksteja kehotteisiinsa, sillä hän tiesi jo vastauksen kysymykseensä.
Sen sijaan, että lisäät manuaalisesti yksittäistä kontekstia, tunnista olennaiset tiedot automaattisesti laajemmasta tietokannasta. Tätä varten tarvitset Retrieval Augmented Generationin.
Haku laajennettu sukupolvi
Retrieval Augmented Generation -toiminnolla voit koodata tietokannan vektoriavaruuteen, jossa vektorien välinen läheisyys edustaa niiden merkitystä/semanttista samankaltaisuutta. Käyttämällä tätä vektoriavaruutta tietokantana voit muuntaa uuden käyttäjäkyselyn, koodata sen samaan vektoriavaruuteen ja noutaa tärkeimmät aiemmin indeksoidut tietueet.
Kun olet hakenut nämä asiaankuuluvat tietueet, valitse niistä muutama ja sisällytä ne LLM-kehotteeseen lisäkontekstiksi, mikä tarjoaa LLM:lle erittäin merkityksellistä lähdetietoa. Tämä on kaksivaiheinen prosessi, jossa:
- Indeksointi täyttää vektoriindeksin tietojoukon tiedoilla.
- Haku tapahtuu kyselyn aikana, ja sieltä haemme olennaiset tiedot vektoriindeksistä.
Molemmat vaiheet vaativat upotusmallin ihmisen luettavan tavallisen tekstimme kääntämiseksi semanttiseksi vektoriavaruuteen. Käytä Hugging Facen erittäin tehokasta MiniLM-lausemuuntajaa seuraavan kuvakaappauksen mukaisesti. Tämä malli ei ole LLM, joten sitä ei ole alustettu samalla tavalla kuin Llama 2 -mallimme.
In hub_config
, määritä mallin tunnus, kuten yllä olevassa kuvakaappauksessa näkyy, mutta käytä tehtävässä ominaisuuden purkamista, koska luomme vektori upotuksia, emme tekstiä kuten LLM. Tämän jälkeen alusta mallin konfigurointi komennolla HuggingFaceModel
kuten ennenkin, mutta tällä kertaa ilman LLM-kuvaa ja joillain versioparametreilla.
Voit ottaa mallin uudelleen käyttöön deploy
, käyttämällä pienempää (vain CPU) esiintymää ml.t2.large
. MiniLM-malli on pieni, joten se ei vaadi paljon muistia eikä tarvitse GPU:ta, koska se pystyy nopeasti luomaan upotuksia jopa prosessorille. Halutessasi voit ajaa mallia nopeammin GPU:lla.
Voit luoda upotuksia käyttämällä predict
-menetelmää ja välitä luettelo koodattavista konteksteista -sovelluksen kautta inputs
avain kuvan mukaisesti:
Kaksi syöttökontekstia välitetään, mikä palauttaa kaksi kontekstivektorin upotusta kuvan mukaisesti:
len(out)
2
MiniLM-mallin upotusulottuvuus on 384
mikä tarkoittaa, että jokaisen vektorin, joka upottaa MiniLM-ulostulot, on oltava ulottuvuus 384
. Kun katsot upotusten pituutta, näet kuitenkin seuraavan:
len(out[0]), len(out[1])
(8, 8)
Kahdessa luettelossa on kahdeksan kohdetta. MiniLM käsittelee tekstin ensin tokenointivaiheessa. Tämä tokenisointi muuttaa ihmisen luettavan tekstin mallin luettavissa olevien tunnustunnusten luetteloksi. Mallin tulosominaisuuksissa näet tunnustason upotukset. yksi näistä upotuksista näyttää odotetun ulottuvuuden 384
kuten on esitetty:
len(out[0][0])
384
Muunna nämä tunnustason upotukset asiakirjatason upotuksiksi käyttämällä kunkin vektoriulottuvuuden keskiarvoja, kuten seuraavassa kuvassa.
Kahdella 384-ulotteisella vektoriupotuksella, yksi kullekin syötetylle tekstille. Elämämme helpottamiseksi kääri koodausprosessi yhdeksi toiminnoksi seuraavan kuvakaappauksen mukaisesti:
Tietojoukon lataaminen
Lataa Amazon SageMakerin usein kysytyt kysymykset tietopohjaksi saadaksesi tiedot, jotka sisältävät sekä kysymys- että vastaussarakkeet.
Kun suoritat hakua, etsi vain vastaukset, jotta voit pudottaa Kysymys-sarakkeen. Katso lisätietoja muistikirjasta.
Tietojoukkomme ja upotusputkistomme ovat valmiit. Nyt tarvitsemme vain jonnekin, jossa nämä upotukset säilytetään.
Indeksointi
Pinecone-vektoritietokanta tallentaa vektori upotukset ja etsii niitä tehokkaasti mittakaavassa. Tietokannan luomiseen tarvitset ilmaisen Pineconen API-avaimen.
Kun olet muodostanut yhteyden Pinecone-vektoritietokantaan, luo yksi vektoriindeksi (samanlainen kuin perinteisten tietokantojen taulukko). Nimeä indeksi retrieval-augmentation-aws
ja kohdista indeksi dimension
ja metric
parametrit upotusmallin (tässä tapauksessa MiniLM) edellyttämillä parametreilla.
Aloita tietojen lisääminen suorittamalla seuraava:
Voit aloittaa hakemiston kyselyn aiemman tämän viestin kysymyksellä.
Yllä oleva tulos osoittaa, että palautamme asiaankuuluvat kontekstit, jotka auttavat meitä vastaamaan kysymykseemme. Koska me top_k = 1
, index.query
palautti huipputuloksen metatietojen viereen, joka lukee Managed Spot Training can be used with all instances supported in Amazon
.
Kehotteen laajentaminen
Käytä haettuja konteksteja täydentämään kehotetta ja päättämään LLM:ään syötettävän kontekstin enimmäismäärästä. Käytä 1000
merkkien rajoitus lisää jokaisen palautetun kontekstin iteratiivisesti kehotteeseen, kunnes ylität sisällön pituuden.
Ruoki context_str
LLM-kehotteeseen seuraavan kuvakaappauksen mukaisesti:
[Input]: Mitä instansseja voin käyttää Managed Spot Trainingin kanssa SageMakerissa? [Output]: Tarjotun kontekstin perusteella voit käyttää Managed Spot Trainingia kaikissa Amazon SageMakerin tukemissa esiintymissä. Siksi vastaus on: Kaikki Amazon SageMakerin tuetut ilmentymät.
Logiikka toimii, joten kääri se yhteen toimintoon pitääksesi asiat puhtaana.
Voit nyt esittää kysymyksiä, kuten seuraavassa esitetyt:
Puhdistaa
Voit lopettaa ei-toivottujen maksujen syntymisen poistamalla mallin ja päätepisteen.
Yhteenveto
Tässä viestissä esittelimme sinulle RAG:n avoimen pääsyn LLM:illä SageMakerissa. Näitimme myös, kuinka voit ottaa käyttöön Amazon SageMaker Jumpstart -malleja Llama 2:lla, Hugging Face LLM:itä Flan T5:llä ja upotusmalleja MiniLM:llä.
Otimme käyttöön täydellisen päästä päähän RAG-putkilinjan käyttämällä avoimen pääsyn mallejamme ja Pinecone-vektoriindeksiä. Tämän avulla osoitimme, kuinka hallusinaatioita voidaan minimoida ja LLM-tieto pysyä ajan tasalla ja viime kädessä parantaa käyttäjäkokemusta ja luottamusta järjestelmiimme.
Jos haluat suorittaa tämän esimerkin itse, kloonaa tämä GitHub-arkisto ja käy läpi edelliset vaiheet käyttämällä Kysymyksiin vastaaminen muistikirja GitHubissa.
Tietoja kirjoittajista
Vedant Jain on vanhempi AI/ML-asiantuntija, joka työskentelee strategisten generatiivisten tekoälyaloitteiden parissa. Ennen AWS:ään liittymistään Vedant on toiminut ML/Data Science Specialty -tehtävissä useissa yrityksissä, kuten Databricksissa, Hortonworksissa (nykyisin Cloudera) ja JP Morgan Chasessa. Työnsä ulkopuolella Vedant on intohimoinen musiikin tekemiseen, kalliokiipeilyyn, tieteen käyttämiseen merkitykselliseen elämään ja keittiöiden tutkimiseen ympäri maailmaa.
James Briggs on Staff Developer Advocate Pineconessa, erikoistunut vektorihakuun ja AI/ML:ään. Hän ohjaa kehittäjiä ja yrityksiä kehittämään omia GenAI-ratkaisuja verkkokoulutuksen avulla. Ennen Pineconea James työskenteli tekoälyn parissa pienille teknologia-aloitusyrityksille vakiintuneille rahoitusyhtiöille. Työn ulkopuolella Jamesilla on intohimo matkustamiseen ja uusiin seikkailuihin, jotka vaihtelevat surffauksesta ja sukeltamisesta Muay Thaiiin ja BJJ:hen.
Xin Huang on vanhempi soveltuva tutkija Amazon SageMaker JumpStart ja Amazon SageMaker sisäänrakennetuille algoritmeille. Hän keskittyy skaalautuvien koneoppimisalgoritmien kehittämiseen. Hänen tutkimusintressiään ovat luonnollisen kielen prosessointi, selitettävissä oleva syvä oppiminen taulukkotiedoista ja ei-parametrisen aika-avaruusklusteroinnin robusti analyysi. Hän on julkaissut monia artikkeleita ACL-, ICDM-, KDD-konferensseissa ja Royal Statistical Society: Series A.
- SEO-pohjainen sisällön ja PR-jakelu. Vahvista jo tänään.
- PlatoData.Network Vertical Generatiivinen Ai. Vahvista itseäsi. Pääsy tästä.
- PlatoAiStream. Web3 Intelligence. Tietoa laajennettu. Pääsy tästä.
- PlatoESG. hiili, CleanTech, energia, ympäristö, Aurinko, Jätehuolto. Pääsy tästä.
- PlatonHealth. Biotekniikan ja kliinisten kokeiden älykkyys. Pääsy tästä.
- Lähde: https://aws.amazon.com/blogs/machine-learning/mitigate-hallucinations-through-retrieval-augmented-generation-using-pinecone-vector-database-llama-2-from-amazon-sagemaker-jumpstart/
- :on
- :On
- :ei
- :missä
- $ YLÖS
- 1
- 10
- 100
- 11
- 12
- 14
- 15%
- 16
- 17
- 19
- 23
- 32
- 7
- 8
- 9
- a
- Meistä
- edellä
- pääsy
- Mukaan
- Tili
- poikki
- lisätä
- lisä-
- lisäinformaatio
- Hyväksyminen
- seikkailuja
- puolestapuhuja
- uudelleen
- AI
- ai käyttötapauksia
- AI / ML
- algoritmit
- kohdista
- Kaikki
- pitkin
- jo
- Myös
- Amazon
- Amazon Sage Maker
- Amazon SageMaker JumpStart
- Amazon SageMaker Studio
- Amazon Web Services
- määrä
- an
- analyysi
- ja
- vastaus
- vastauksia
- Kaikki
- api
- sovelluksen
- sovellettu
- lähestymistapa
- lähestymistavat
- OVAT
- ALUE
- noin
- AS
- kysyä
- At
- yrityksiä
- lisätä
- täydennetty
- auto
- automaattisesti
- saatavissa
- AWS
- pohja
- perustua
- BE
- koska
- ennen
- alkaa
- välillä
- Blogi
- Kukinta
- sekä
- laajempaa
- rakentaa
- sisäänrakennettu
- yritykset
- mutta
- by
- CAN
- kaapata
- tapaus
- tapauksissa
- merkkejä
- maksut
- jahdata
- puhdas
- selvästi
- Kiipeily
- cloudera
- klustereiden
- Sarake
- Pylväät
- Yritykset
- yhteensopiva
- täydellinen
- komponentti
- osat
- konferenssit
- kytketty
- Console
- sisältää
- sisältää
- pitoisuus
- tausta
- yhteyksissä
- puhekielen
- keskusteleva AI
- muuntaa
- yritykset
- korjata
- oikein
- luoda
- kriittinen
- Tällä hetkellä
- tiedot
- tietokanta
- Päivämäärä
- DBS
- päättää
- syvä
- syvä oppiminen
- sijoittaa
- levityspinnalta
- Kehittäjä
- kehittäjille
- kehittämällä
- Kehitys
- Ulottuvuus
- suoraan
- pohtia
- do
- ei
- doesnt
- ei
- verkkotunnuksen
- Don
- Pudota
- aikana
- kukin
- Aikaisemmin
- helpompaa
- ekosysteemi
- koulutus
- tehokas
- tehokkaasti
- upottamisen
- syleilee
- koodaus
- loppu
- päittäin
- päätepiste
- parantaa
- ympäristö
- vakiintunut
- Jopa
- esimerkki
- ylittää
- teloitus
- odotettu
- experience
- tutkia
- Tutkiminen
- laaja
- ulkoinen
- uute
- Kasvot
- nopeampi
- Ominaisuudet
- Fed
- harvat
- rahoittaa
- Löytää
- viimeistely
- Etunimi
- kellua
- keskittyy
- jälkeen
- varten
- muoto
- perusta
- Ilmainen
- alkaen
- toiminto
- yleensä
- syntyy
- tuottaa
- sukupolvi
- generatiivinen
- Generatiivinen AI
- saada
- GitHub
- Antaa
- tietty
- antaa
- Go
- Goes
- GPU
- Oppaat
- kahva
- tapahtuu
- Olla
- he
- sankari
- auttaa
- tätä
- erittäin
- hänen
- Miten
- Miten
- Kuitenkin
- HTTPS
- huang
- Napa
- HalaaKasvot
- luettavaan
- i
- ID
- ihanteellinen
- tunnistaa
- ids
- if
- kuva
- täytäntöön
- tuoda
- in
- sisältää
- Mukaan lukien
- Kasvaa
- indeksi
- indeksoitu
- teollisuuden
- ilmoittaa
- tiedot
- aloitteita
- panos
- tuloa
- asentaa
- esimerkki
- integroitu
- etu
- liitäntä
- sisäinen
- tulee
- käyttöön
- IT
- kohdetta
- Jaakob
- tuloaan
- jp
- JP Morgan
- JP Morgan Chase
- jpg
- Pitää
- avain
- Tietää
- tuntemus
- Kieli
- suuri
- suurempi
- käynnistää
- johtaa
- oppiminen
- oppii
- Pituus
- kirjastot
- elämä
- pitää
- RAJOITA
- Lista
- Listat
- Lives
- liekki
- OTK
- logiikka
- katso
- näköinen
- Erä
- kone
- koneoppiminen
- tehdä
- Tekeminen
- onnistui
- käsin
- monet
- ottelu
- tulitikut
- maksimi
- enimmäismäärä
- Saattaa..
- tarkoittaa
- mielekäs
- välineet
- Muisti
- Metadata
- menetelmä
- lieventää
- ML
- malli
- mallit
- raha
- lisää
- Morgan
- eniten
- paljon
- moninkertainen
- Musiikki
- täytyy
- nimi
- Luonnollinen
- Luonnollinen kielen käsittely
- Tarve
- tarpeet
- Uusi
- seuraava
- NLP
- muistikirja
- nyt
- numpy
- objekti
- of
- on
- ONE
- verkossa
- vain
- avata
- toiminta
- or
- tilata
- OS
- muuten
- meidän
- ulos
- ulostulo
- lähdöt
- ulkopuolella
- oma
- paperit
- parametrit
- erityinen
- erityisesti
- kulkea
- Hyväksytty
- intohimo
- intohimoinen
- Suorittaa
- esittävä
- Oikeudet
- kuva
- putki
- tavallinen
- Platon
- Platonin tietotieto
- PlatonData
- Suosittu
- kantoja
- Kirje
- Virran
- ennustus
- Ennusteet
- Predictor
- Suositut
- estää
- preview
- edellinen
- aiemmin
- Aikaisempi
- Ongelma
- prosessi
- Prosessit
- käsittely
- Profiili
- ohjeita
- patentoitu
- mikäli
- tarjoaa
- tarjoamalla
- julkisesti
- julkaistu
- Python
- pytorch
- kyselyt
- kysymys
- kysymykset
- nopeasti
- alue
- alainen
- valmis
- vastaanottava
- asiakirjat
- alueet
- merkityksellinen
- luottaa
- säilytyspaikka
- edustaa
- edellyttää
- tarvitaan
- tutkimus
- Vastata
- johtua
- tulokset
- palata
- palaavat
- luja
- rock
- Rooli
- kuninkaallinen
- ajaa
- toimii
- sagemaker
- sama
- sanoa
- skaalautuva
- Asteikko
- tiede
- Tiedemies
- pisteet
- Näytön
- sdk
- Haku
- haut
- nähdä
- näennäisesti
- valita
- vanhempi
- tunne
- tuomita
- Sarjat
- Sarja A
- Palvelut
- setti
- shouldnt
- näyttää
- osoittivat
- esitetty
- Näytä
- puoli
- samankaltainen
- yksinkertaisempi
- koska
- single
- Koko
- pieni
- pienempiä
- So
- yhteiskunta
- Yksin
- ratkaisu
- Ratkaisumme
- jonkin verran
- jonnekin
- lähde
- Tila
- asiantuntija
- erikoistunut
- Erikoisuus
- erityisesti
- Kaupallinen
- Henkilöstö
- Startups
- tilastollinen
- Vaihe
- Askeleet
- stop
- verkkokaupasta
- varastot
- Strateginen
- jono
- studio
- niin
- tuki
- Tuetut
- Tukee
- järjestelmä
- järjestelmät
- taulukko
- vie
- Tehtävä
- teknologia
- tech-aloittelijat
- Elektroniikka
- kertoo
- teksti
- thaimaalainen
- kuin
- että
- -
- Alue
- maailma
- heidän
- Niitä
- siksi
- Nämä
- ne
- asiat
- tätä
- ne
- Kautta
- aika
- että
- symbolinen
- tokenization
- liian
- työkalut
- ylin
- perinteinen
- koulutus
- muuntaja
- muuntajat
- muunnoksia
- Kääntää
- Matkustaminen
- Luottamus
- kaksi
- tyypit
- Lopulta
- epätodennäköinen
- pysäyttämätön.
- asti
- toivottuja
- Päivitykset
- us
- käyttää
- käytetty
- käyttäjä
- Käyttäjäkokemus
- Käyttäjät
- käyttämällä
- arvot
- eri
- versio
- versiot
- kautta
- visuaalinen
- odottaa
- läpikäynti
- haluta
- oli
- Aalto
- Tapa..
- we
- verkko
- verkkopalvelut
- Web-pohjainen
- Mitä
- kun
- joka
- vaikka
- leveä
- Laaja valikoima
- tulee
- with
- ilman
- Referenssit
- työskenteli
- työskentely
- toimii
- maailman-
- olisi
- kääri
- X
- Joo
- Voit
- Sinun
- zephyrnet