Uspeh generativnih aplikacij AI v številnih panogah je pritegnil pozornost in zanimanje podjetij po vsem svetu, ki želijo reproducirati in preseči dosežke konkurentov ali rešiti nove in vznemirljive primere uporabe. Te stranke iščejo temeljne modele, kot so TII Falcon, Stable Diffusion XL ali OpenAI GPT-3.5, kot motorje, ki poganjajo generativne inovacije AI.
Temeljni modeli so razred generativnih modelov umetne inteligence, ki so sposobni razumeti in ustvariti človeško podobno vsebino, zahvaljujoč ogromnim količinam nestrukturiranih podatkov, na katerih so bili usposobljeni. Ti modeli so revolucionirali različne naloge računalniškega vida (CV) in obdelave naravnega jezika (NLP), vključno z ustvarjanjem slik, prevajanjem in odgovarjanjem na vprašanja. Služijo kot gradniki za številne aplikacije AI in so postali ključna komponenta pri razvoju naprednih inteligentnih sistemov.
Vendar pa lahko uvedba temeljnih modelov predstavlja precejšnje izzive, zlasti v smislu stroškov in potreb po virih. Ti modeli so znani po svoji velikosti, ki se pogosto giblje od sto milijonov do milijard parametrov. Njihova velika velikost zahteva obsežne računalniške vire, vključno z zmogljivo strojno opremo in veliko pomnilniško zmogljivostjo. Pravzaprav uvajanje temeljnih modelov običajno zahteva vsaj eno (pogosto več) GPU za učinkovito obvladovanje računalniške obremenitve. Na primer, model TII Falcon-40B Instruct zahteva vsaj en primerek ml.g5.12xlarge, da se uspešno naloži v pomnilnik, vendar najbolje deluje pri večjih primerkih. Posledično je donosnost naložbe (ROI) pri uvajanju in vzdrževanju teh modelov lahko prenizka, da bi dokazali poslovno vrednost, zlasti med razvojnimi cikli ali pri visokih delovnih obremenitvah. To je posledica tekočih stroškov instanc, ki jih poganja GPE, za dolge seje, potencialno 24/7.
V začetku tega leta smo napovedali Amazon Bedrock, API brez strežnika za dostop do temeljnih modelov Amazona in naših generativnih partnerjev AI. Čeprav je trenutno v zasebnem predogledu, vam njegov API brez strežnika omogoča uporabo temeljnih modelov Amazon, Anthropic, Stability AI in AI21, ne da bi vam bilo treba sami namestiti katere koli končne točke. Vendar pa odprtokodni modeli iz skupnosti, kot je Hugging Face, močno rastejo in vsi niso bili na voljo prek Amazon Bedrock.
V tem prispevku ciljamo na te situacije in rešujemo problem tveganja visokih stroškov z uporabo velikih modelov temeljev Amazon SageMaker asinhrone končne točke iz Amazon SageMaker JumpStart. To lahko pomaga zmanjšati stroške arhitekture, saj omogoča, da se končna točka izvaja samo, ko so zahteve v čakalni vrsti in za kratek čas življenja, medtem ko se zmanjša na nič, ko nobena zahteva ne čaka na storitev. To zveni odlično za veliko primerov uporabe; vendar bo končna točka, ki se je zmanjšala na nič, uvedla čas hladnega zagona, preden bo lahko služila sklepanjem.
Pregled rešitev
Naslednji diagram ponazarja našo arhitekturo rešitev.
Arhitektura, ki jo uporabljamo, je zelo enostavna:
- Uporabniški vmesnik je notebook, ki ga lahko nadomesti spletni uporabniški vmesnik, zgrajen na Streamlit ali podobni tehnologiji. V našem primeru je zvezek an Amazon SageMaker Studio prenosni računalnik, ki se izvaja na ml.m5.large instanci z jedrom procesorja PyTorch 2.0 Python 3.10.
- Beležnica poizveduje po končni točki na tri načine: SageMaker Python SDK, AWS SDK za Python (Boto3) in LangChain.
- Končna točka deluje asinhrono na SageMakerju, na končni točki pa uvedemo model Falcon-40B Instruct. Trenutno je najsodobnejši v smislu modelov navodil in je na voljo v SageMaker JumpStart. En sam klic API nam omogoča uvedbo modela na končni točki.
Kaj je asinhroni sklep SageMaker
Asinhrono sklepanje SageMaker je ena od štirih možnosti uvajanja v SageMakerju, skupaj s končnimi točkami v realnem času, paketnim sklepanjem in sklepanjem brez strežnika. Če želite izvedeti več o različnih možnostih uvajanja, glejte Razmestite modele za sklepanje.
Asinhrono sklepanje SageMaker postavlja dohodne zahteve v čakalno vrsto in jih asinhrono obdeluje, zaradi česar je ta možnost idealna za zahteve z velikimi obremenitvami do 1 GB, dolgimi časi obdelave in zahtevami zakasnitve v skoraj realnem času. Vendar pa je glavna prednost, ki jo ponuja pri obravnavi velikih temeljnih modelov, zlasti med dokazom koncepta (POC) ali med razvojem, zmožnost konfiguriranja asinhronega sklepanja za povečanje števila primerkov na nič, ko ni zahtev za postopek, s čimer prihranite stroške. Za več informacij o asinhronem sklepanju SageMaker glejte Asinhrono sklepanje. Naslednji diagram ponazarja to arhitekturo.
Če želite razmestiti končno točko asinhronega sklepanja, morate ustvariti AsyncInferenceConfig
predmet. Če ustvarjate AsyncInferenceConfig
brez podajanja svojih argumentov, privzeto S3OutputPath
bo s3://sagemaker-{REGION}-{ACCOUNTID}/async-endpoint-outputs/{UNIQUE-JOB-NAME}
in S3FailurePath
bo s3://sagemaker-{REGION}-{ACCOUNTID}/async-endpoint-failures/{UNIQUE-JOB-NAME}
.
Kaj je SageMaker JumpStart
Naš model izvira iz SageMaker JumpStart, funkcije SageMaker, ki pospešuje potovanje strojnega učenja (ML), tako da ponuja vnaprej pripravljene modele, predloge rešitev in primere zvezkov. Omogoča dostop do širokega nabora vnaprej usposobljenih modelov za različne vrste težav, kar vam omogoča, da začnete svoje naloge ML s trdnimi temelji. SageMaker JumpStart ponuja tudi predloge rešitev za pogoste primere uporabe in primere zvezkov za učenje. S SageMaker JumpStart lahko zmanjšate čas in trud, ki sta potrebna za začetek vaših projektov ML, z zagonom rešitev z enim klikom in obsežnimi viri za praktično izkušnjo ML.
Naslednji posnetek zaslona prikazuje primer samo nekaterih modelov, ki so na voljo v uporabniškem vmesniku SageMaker JumpStart.
Namestite model
Naš prvi korak je uvedba modela v SageMaker. Za to lahko uporabimo uporabniški vmesnik za SageMaker JumpStart ali SDK za SageMaker Python, ki ponuja API, ki ga lahko uporabimo za uvajanje modela v asinhrono končno točko:
Ta klic lahko traja približno 10 minut. V tem času se končna točka zavrti, vsebnik skupaj z artefakti modela se prenese na končno točko, konfiguracija modela se naloži iz SageMaker JumpStart, nato pa je asinhrona končna točka izpostavljena prek končne točke DNS. Da bi zagotovili, da se naša končna točka lahko zmanjša na nič, moramo konfigurirati samodejno skaliranje na asinhroni končni točki s samodejnim skaliranjem aplikacije. Najprej morate registrirati svojo različico končne točke s samodejnim skaliranjem aplikacije, določiti pravilnik o skaliranju in nato uporabiti pravilnik o skaliranju. V tej konfiguraciji uporabljamo meritev po meri z uporabo CustomizedMetricSpecification
, klical ApproximateBacklogSizePerInstance
, kot je prikazano v naslednji kodi. Za podroben seznam amazoncloudwatch metrike, ki so na voljo z vašo končno točko asinhronega sklepanja, glejte Spremljanje z CloudWatch.
Lahko preverite, ali je bil ta pravilnik uspešno nastavljen, tako da se pomaknete na konzolo SageMaker in izberete Končne točke pod Sklepanje v navigacijskem podoknu in iščemo končno točko, ki smo jo pravkar uvedli.
Prikličite asinhrono končno točko
Če želite priklicati končno točko, morate vanjo vnesti koristni tovor zahteve Preprosta storitev shranjevanja Amazon (Amazon S3) in zagotovite kazalec na to koristno obremenitev kot del InvokeEndpointAsync
prošnja. Po priklicu SageMaker postavi zahtevo v čakalno vrsto za obdelavo in kot odgovor vrne identifikator in izhodno lokacijo. Po obdelavi SageMaker rezultat postavi na lokacijo Amazon S3. Po želji lahko izberete prejemanje obvestil o uspehu ali napaki z Amazon Simple notification Service (Amazon SNS).
SDK SageMaker Python
Ko je uvajanje končano, bo vrnilo AsyncPredictor
predmet. Če želite izvesti asinhrono sklepanje, morate naložiti podatke v Amazon S3 in uporabiti predict_async()
metoda z URI S3 kot vhodom. Vrnil bo an AsyncInferenceResponse
objekt, rezultat pa lahko preverite z uporabo get_response()
metoda.
Druga možnost je, če želite občasno preveriti rezultat in ga vrniti ob ustvarjanju, uporabite predict()
metoda. To drugo metodo uporabljamo v naslednji kodi:
Boto3
Raziščimo zdaj invoke_endpoint_async
metoda iz Boto3's sagemaker-runtime
stranka. Razvijalcem omogoča, da asinhrono prikličejo končno točko SageMaker, s čimer zagotovijo žeton za sledenje napredka in kasnejše pridobivanje odgovora. Boto3 ne ponuja načina čakanja na dokončanje asinhronega sklepanja, kot SDK SageMaker Python get_result()
delovanje. Zato izkoriščamo dejstvo, da bo Boto3 shranil rezultat sklepanja v Amazon S3 v response["OutputLocation"]
. Uporabimo lahko naslednjo funkcijo, da počakamo, da se sklepna datoteka zapiše v Amazon S3:
S to funkcijo lahko zdaj poizvedujemo po končni točki:
LangChain
LangChain je odprtokodno ogrodje, ki ga je oktobra 2022 predstavil Harrison Chase. Poenostavlja razvoj aplikacij z uporabo velikih jezikovnih modelov (LLM) z zagotavljanjem integracij z različnimi sistemi in viri podatkov. LangChain omogoča analizo dokumentov, povzemanje, ustvarjanje chatbota, analizo kode itd. Pridobil je priljubljenost s prispevki več sto razvijalcev in znatnim financiranjem tveganih podjetij. LangChain omogoča povezovanje LLM z zunanjimi viri, kar omogoča ustvarjanje dinamičnih podatkovno odzivnih aplikacij. Ponuja knjižnice, API-je in dokumentacijo za poenostavitev razvojnega procesa.
LangChain ponuja knjižnice in primere za uporabo končnih točk SageMaker s svojim ogrodjem, kar olajša uporabo modelov ML, ki jih gosti SageMaker kot »možgani« verige. Če želite izvedeti več o tem, kako se LangChain integrira s SageMaker, glejte Končna točka SageMaker v dokumentaciji LangChain.
Ena od omejitev trenutne implementacije LangChain je, da izvorno ne podpira asinhronih končnih točk. Če želimo uporabiti asinhrono končno točko za LangChain, moramo definirati nov razred, SagemakerAsyncEndpoint
, ki podaljšuje SagemakerEndpoint
razred, ki je že na voljo v LangChainu. Poleg tega nudimo naslednje informacije:
- Vedro S3 in predpona, kamor bo asinhrono sklepanje shranilo vhode (in izhode)
- Največje število sekund za čakanje pred iztekom časa
- An
updated _call()
funkcija za poizvedovanje končne točkeinvoke_endpoint_async()
Namestoinvoke_endpoint()
- Način za prebujanje asinhrone končne točke, če je v hladnem zagonu (pomanjšano na nič)
Za pregled novonastalih SagemakerAsyncEndpoint
, si lahko ogledate sagemaker_async_endpoint.py
datoteka na voljo na GitHub.
Čiščenje
Ko končate s testiranjem ustvarjanja sklepov iz končne točke, ne pozabite izbrisati končne točke, da se izognete dodatnim stroškom:
zaključek
Pri uvajanju velikih modelov temeljev, kot je TII Falcon, je optimizacija stroškov ključnega pomena. Ti modeli zahtevajo zmogljivo strojno opremo in veliko pomnilniško kapaciteto, kar povzroča visoke stroške infrastrukture. Asinhrono sklepanje SageMaker, možnost uvajanja, ki asinhrono obdeluje zahteve, zmanjša stroške s skaliranjem števila instanc na nič, ko ni čakajočih zahtev. V tej objavi smo pokazali, kako razmestiti velike temeljne modele SageMaker JumpStart v asinhrone končne točke SageMaker. Za ponazoritev različnih metod za priklic asinhronih končnih točk in pridobivanje rezultatov smo zagotovili primere kode z uporabo SDK-ja SageMaker Python, Boto3 in LangChain. Te tehnike razvijalcem in raziskovalcem omogočajo optimizacijo stroškov ob uporabi zmožnosti temeljnih modelov za napredne sisteme za razumevanje jezika.
Če želite izvedeti več o asinhronem sklepanju in SageMaker JumpStart, si oglejte naslednje objave:
O avtorju
Davide Gallitelli je specializirani arhitekt rešitev za AI/ML v regiji EMEA. Ima sedež v Bruslju in tesno sodeluje s strankami po vsem Beneluksu. Razvijalec je že od malih nog, kodirati je začel pri 7 letih. AI/ML se je začel učiti na univerzi in od takrat se je vanj zaljubil.
- 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. Avtomobili/EV, Ogljik, CleanTech, Energija, Okolje, sončna energija, Ravnanje z odpadki. Dostopite tukaj.
- PlatoHealth. Obveščanje o biotehnologiji in kliničnih preskušanjih. Dostopite tukaj.
- ChartPrime. Izboljšajte svojo igro trgovanja s ChartPrime. Dostopite tukaj.
- BlockOffsets. Posodobitev okoljskega offset lastništva. Dostopite tukaj.
- vir: https://aws.amazon.com/blogs/machine-learning/optimize-deployment-cost-of-amazon-sagemaker-jumpstart-foundation-models-with-amazon-sagemaker-asynchronous-endpoints/
- :ima
- : je
- :ne
- :kje
- $GOR
- 1
- 10
- 100
- 12
- 13
- 15%
- 1M
- 2022
- 25
- 7
- a
- Sposobna
- O meni
- pospeši
- Sprejema
- dostop
- dosežkov
- čez
- dejavnost
- Poleg tega
- napredno
- Prednost
- po
- starost
- AI
- AI modeli
- AI / ML
- Dovoli
- omogoča
- že
- Prav tako
- Čeprav
- Amazon
- Amazon SageMaker
- Amazon SageMaker JumpStart
- Amazon Web Services
- znesek
- zneski
- an
- Analiza
- in
- razglasitve
- Še ena
- Antropično
- kaj
- API
- API-ji
- uporaba
- aplikacije
- Uporabi
- Arhitektura
- SE
- Argumenti
- Umetnost
- AS
- At
- pozornosti
- privlači
- avto
- Na voljo
- povprečno
- izogniti
- AWS
- temeljijo
- BE
- postanejo
- bilo
- pred
- počutje
- BEST
- večji
- milijardah
- Bloki
- telo
- Break
- Bruselj
- Building
- zgrajena
- poslovni
- vendar
- by
- klic
- se imenuje
- CAN
- Zmogljivosti
- zmožnost
- lahko
- kapaciteta
- primeru
- primeri
- verige
- verige
- izzivi
- Stroški
- Chase
- chatbot
- preveriti
- Izberite
- izbiri
- razred
- stranke
- tesno
- Koda
- hladno
- kako
- prihaja
- Skupno
- skupnosti
- Podjetja
- tekmovalci
- dokončanje
- Končana
- Zaključi
- komponenta
- celovito
- računalnik
- Računalniška vizija
- Koncept
- konfiguracija
- povezava
- Konzole
- Posoda
- vsebina
- prispevkov
- strošek
- stroški
- ustvarjajo
- ustvaril
- Oblikovanje
- ključnega pomena
- Trenutna
- Trenutno
- po meri
- Stranke, ki so
- Cut
- zmanjšati stroške
- ciklov
- datum
- deliti
- privzeto
- opredeliti
- zahteve
- Dokazano
- razporedi
- razporejeni
- uvajanja
- uvajanje
- podrobno
- dev
- Razvojni
- Razvijalci
- Razvoj
- DICT
- drugačen
- Difuzija
- dimenzije
- onemogočena
- dns
- do
- dokument
- Dokumentacija
- Ne
- opravljeno
- navzdol
- 2
- med
- dinamično
- e
- lažje
- učinkovito
- prizadevanje
- ostalo
- EMEA
- omogočajo
- omogoča
- Končna točka
- Motorji
- dovolj
- Napaka
- zlasti
- Tudi vsak
- Primer
- Primeri
- Razen
- izjema
- zanimivo
- Stroški
- izkušnje
- raziskuje
- izpostavljena
- Se razširi
- obsežen
- zunanja
- dodatna
- Obraz
- Dejstvo
- Fallen
- false
- Feature
- file
- podjetja
- prva
- po
- za
- Fundacija
- štiri
- Okvirni
- iz
- funkcija
- Financiranje
- pridobljeno
- ustvarila
- ustvarjajo
- generacija
- generativno
- Generativna AI
- GitHub
- dobro
- Grafične kartice
- veliko
- Pridelovanje
- ročaj
- strojna oprema
- Imajo
- ob
- he
- pomoč
- tukaj
- visoka
- gostila
- Kako
- Kako
- Vendar
- HTML
- http
- HTTPS
- Stotine
- sto milijonov
- idealen
- identifikator
- if
- ponazarja
- slika
- Izvajanje
- uvoz
- in
- Vključno
- Dohodni
- označuje
- industrij
- Podatki
- Infrastruktura
- Inovacije
- vhod
- vhodi
- primer
- Namesto
- Integrira
- integracije
- Inteligentna
- obresti
- vmesnik
- v
- uvesti
- naložbe
- IT
- ITS
- Potovanje
- jpg
- json
- samo
- znano
- jezik
- velika
- Latenca
- pozneje
- začela
- izstrelki
- vodi
- UČITE
- učenje
- vsaj
- knjižnice
- kot
- Meje
- Seznam
- obremenitev
- kraj aktivnosti
- Long
- si
- Sklop
- ljubezen
- nizka
- stroj
- strojno učenje
- je
- Glavne
- vzdrževanje
- Znamka
- Izdelava
- več
- max
- največja
- Spomin
- Metoda
- Metode
- meritev
- Meritve
- milijoni
- Minute
- ML
- Model
- modeli
- več
- Ime
- naravna
- Obdelava Natural Language
- krmarjenje
- ostalo
- Nimate
- Novo
- na novo
- Naslednja
- nlp
- št
- prenosnik
- Obvestilo
- Obvestila
- zdaj
- Številka
- predmet
- oktober
- of
- ponudba
- ponujanje
- Ponudbe
- pogosto
- on
- ONE
- samo
- open source
- Delovanje
- Optimizirajte
- optimizacijo
- Možnost
- možnosti
- or
- naši
- ven
- izhod
- podokno
- parametri
- del
- zlasti
- partnerji
- dokler
- Izvedite
- opravlja
- slika
- Kraj
- Mesta
- platon
- Platonova podatkovna inteligenca
- PlatoData
- PoC
- politika
- Priljubljenost
- mogoče
- Prispevek
- Prispevkov
- potencialno
- moč
- močan
- Praktično
- napoved
- Predictor
- predogled
- Tiskanje
- zasebna
- problem
- Postopek
- Procesi
- obravnavati
- Napredek
- projekti
- dokazilo
- dokaz koncepta
- Dokaži
- zagotavljajo
- če
- zagotavlja
- zagotavljanje
- Python
- pitorha
- poizvedbe
- vprašanje
- dvigniti
- območje
- obsegu
- Preberi
- pripravljen
- v realnem času
- prejeti
- zmanjša
- zmanjšuje
- okolica
- Registracija
- ne pozabite
- odstrani
- nadomesti
- zahteva
- zahteva
- zahteva
- obvezna
- Zahteve
- zahteva
- raziskovalci
- vir
- viri
- Odgovor
- povzroči
- Rezultati
- vrnitev
- vrne
- pregleda
- revolucionirala
- tveganje
- ROI
- Run
- tek
- sagemaker
- shranjevanje
- razširljive
- Lestvica
- skaliranje
- SDK
- drugi
- sekund
- SAMO
- služijo
- Brez strežnika
- Storitev
- Storitve
- sej
- nastavite
- Kratke Hlače
- pokazale
- Razstave
- pomemben
- Podoben
- Enostavno
- saj
- sam
- situacije
- Velikosti
- velikosti
- trdna
- Rešitev
- rešitve
- SOLVE
- nekaj
- Viri
- specialist
- zavrtel
- Stabilnost
- stabilna
- Začetek
- začel
- Začetek
- Država
- Korak
- stop
- shranjevanje
- trgovina
- naravnost
- racionalizirati
- precejšen
- uspeh
- Uspešno
- taka
- podpora
- Podpira
- Preverite
- preseči
- sistemi
- Bodite
- ciljna
- Naloge
- tehnike
- Tehnologija
- predloge
- Pogoji
- Testiranje
- Hvala
- da
- O
- Država
- njihove
- Njih
- POTEM
- Tukaj.
- s tem
- zato
- te
- jih
- ta
- letos
- 3
- skozi
- vsej
- čas
- krat
- čas
- do
- skupaj
- žeton
- tudi
- Sledenje
- usposobljeni
- prevod
- Res
- poskusite
- Vrste
- ui
- pod
- razumevanje
- univerza
- dokler
- naprej
- us
- uporaba
- uporabnik
- Uporabniški vmesnik
- uporabo
- navadno
- vrednost
- Variant
- različnih
- Popravljeno
- podjetje
- preverjanje
- zelo
- preko
- Vizija
- Počakaj
- Čakam
- Wake
- Wake Up
- želeli
- je
- način..
- načini
- we
- web
- spletne storitve
- kdaj
- ali
- ki
- medtem
- WHO
- široka
- Širok spekter
- bo
- z
- brez
- Zmagali
- deluje
- po vsem svetu
- bi
- pisni
- leto
- Vi
- mladi
- Vaša rutina za
- sami
- zefirnet
- nič