A generatív mesterségesintelligencia-alkalmazások számos iparágban elért sikere világszerte felkeltette azoknak a vállalatoknak a figyelmét és érdeklődését, amelyek a versenytársak eredményeit reprodukálni és felülmúlni, vagy új és izgalmas felhasználási eseteket szeretnének megoldani. Ezek az ügyfelek olyan alapmodelleket keresnek, mint a TII Falcon, a Stable Diffusion XL vagy az OpenAI GPT-3.5, mint a generatív AI-innovációt hajtó motorok.
Az alapmodellek a generatív mesterséges intelligencia modellek egy osztálya, amelyek képesek megérteni és létrehozni az emberhez hasonló tartalmat, köszönhetően a rengeteg strukturálatlan adatnak, amelyre betanították őket. Ezek a modellek forradalmasították a különféle számítógépes látás (CV) és természetes nyelvi feldolgozási (NLP) feladatokat, beleértve a képalkotást, a fordítást és a kérdések megválaszolását. Számos mesterségesintelligencia-alkalmazás építőköveként szolgálnak, és a fejlett intelligens rendszerek fejlesztésének kulcsfontosságú elemévé váltak.
Az alapozási modellek bevezetése azonban jelentős kihívásokkal járhat, különösen a költség- és erőforrásigény tekintetében. Ezek a modellek méretükről ismertek, gyakran százmillióktól több milliárd paraméterig terjednek. Nagy méretük kiterjedt számítási erőforrásokat igényel, beleértve az erős hardvert és a jelentős memóriakapacitást. Valójában az alapmodellek telepítéséhez általában legalább egy (gyakran több) GPU-ra van szükség a számítási terhelés hatékony kezelésére. Például a TII Falcon-40B Instruct modellhez legalább egy ml.g5.12xlarge példány szükséges a memóriába való sikeres betöltéséhez, de a legjobban nagyobb példányokkal teljesít. Ennek eredményeként a beruházások megtérülése (ROI) ezeknek a modelleknek az üzembe helyezésével és karbantartásával túl alacsony lehet ahhoz, hogy bizonyítsa az üzleti értéket, különösen a fejlesztési ciklusok vagy a nagy munkaterhelések esetén. Ez annak köszönhető, hogy a GPU-val hajtott példányok hosszú munkamenetekhez szükségesek, esetleg a hét minden napján, 24 órában.
Az év elején bejelentettük Amazon alapkőzet, egy szerver nélküli API, amellyel hozzáférhet az Amazon és generatív AI-partnereink alapmodelljeihez. Bár jelenleg Private Preview verzióban van, kiszolgáló nélküli API-ja lehetővé teszi az Amazon, az Anthropic, a Stability AI és az AI21 alapmodelleinek használatát anélkül, hogy saját végpontokat kellene telepítenie. Az olyan közösségek nyílt forráskódú modelljei azonban, mint például a Hugging Face, sokat nőttek, és nem mindegyiket tette elérhetővé az Amazon Bedrockon keresztül.
Ebben a bejegyzésben ezeket a helyzeteket célozzuk meg, és megoldjuk a magas költségek kockázatának problémáját nagy alapozási modellek telepítésével Amazon SageMaker aszinkron végpontok ból ből Amazon SageMaker JumpStart. Ez segíthet csökkenteni az architektúra költségeit, lehetővé téve, hogy a végpont csak akkor futhasson, ha a kérések a sorban vannak, és csak rövid ideig élnek, miközben nullára kicsinyítik, ha egyetlen kérés sem vár kiszolgálásra. Ez nagyon jól hangzik sok felhasználási esetben; azonban a nullára kicsinyített végpont hidegindítási időt vezet be, mielőtt következtetéseket szolgálhatna ki.
Megoldás áttekintése
Az alábbi ábra szemlélteti megoldásunk architektúráját.
Az általunk telepített architektúra nagyon egyszerű:
- A felhasználói felület egy notebook, amelyet Streamlit vagy hasonló technológiára épülő webes felhasználói felület helyettesíthet. Esetünkben a notebook egy Amazon SageMaker Studio notebook, amely ml.m5.large példányon fut PyTorch 2.0 Python 3.10 CPU kernellel.
- A notebook háromféleképpen kérdezi le a végpontot: a SageMaker Python SDK, az AWS SDK for Python (Boto3) és a LangChain.
- A végpont aszinkron módon fut a SageMakeren, és a végponton a Falcon-40B Instruct modellt telepítjük. Jelenleg ez a legkorszerűbb az instrukciós modellek tekintetében, és elérhető a SageMaker JumpStartban. Egyetlen API-hívás lehetővé teszi a modell telepítését a végponton.
Mi az a SageMaker aszinkron következtetés?
A SageMaker aszinkron következtetés a SageMaker négy telepítési lehetőségének egyike, a valós idejű végpontokkal, a kötegelt következtetéssel és a kiszolgáló nélküli következtetéssel együtt. Ha többet szeretne megtudni a különböző telepítési lehetőségekről, lásd: Telepítsen modelleket a következtetéshez.
A SageMaker aszinkron következtetése sorba állítja a bejövő kéréseket, és aszinkron módon feldolgozza azokat, így ez a beállítás ideális a nagy, akár 1 GB-os hasznos adatmennyiséggel, hosszú feldolgozási időkkel és közel valós idejű késleltetési követelményekkel rendelkező kérésekhez. Azonban a fő előnye, amelyet nagy alapozási modellek kezelésekor nyújt, különösen a koncepció bizonyítása (POC) vagy a fejlesztés során, hogy az aszinkron következtetést úgy konfigurálhatja, hogy nulla példányszámra skálázza, amikor nincs kérés folyamatot, ezáltal költséget takarít meg. A SageMaker aszinkron következtetéssel kapcsolatos további információkért lásd: Aszinkron következtetés. A következő diagram ezt az architektúrát szemlélteti.
Aszinkron következtetési végpont üzembe helyezéséhez létre kell hoznia egy AsyncInferenceConfig
tárgy. Ha létrehoz AsyncInferenceConfig
argumentumainak megadása nélkül az alapértelmezett S3OutputPath
lesz s3://sagemaker-{REGION}-{ACCOUNTID}/async-endpoint-outputs/{UNIQUE-JOB-NAME}
és a S3FailurePath
lesz s3://sagemaker-{REGION}-{ACCOUNTID}/async-endpoint-failures/{UNIQUE-JOB-NAME}
.
Mi az a SageMaker JumpStart
Modellünk a SageMaker JumpStarttól származik, amely a SageMaker egy olyan funkciója, amely felgyorsítja a gépi tanulási (ML) utat azáltal, hogy előre betanított modelleket, megoldássablonokat és példajegyzetfüzeteket kínál. Hozzáférést biztosít a különféle problématípusokhoz előre betanított modellek széles skálájához, lehetővé téve, hogy szilárd alapokkal kezdje meg ML feladatait. A SageMaker JumpStart megoldássablonokat is kínál a gyakori használati esetekhez, valamint példafüzeteket a tanuláshoz. A SageMaker JumpStart segítségével csökkentheti az ML-projektek elindításához szükséges időt és erőfeszítést az egykattintásos megoldások elindításával és a gyakorlati ML-tapasztalat átfogó erőforrásaival.
A következő képernyőkép a SageMaker JumpStart UI-n elérhető néhány modellre mutat példát.
Telepítse a modellt
Első lépésünk a modell telepítése a SageMaker rendszerbe. Ehhez használhatjuk a SageMaker JumpStart felhasználói felületét vagy a SageMaker Python SDK-t, amely egy API-t biztosít, amellyel a modellt az aszinkron végpontra telepíthetjük:
Ez a hívás körülbelül 10 percig tarthat. Ezalatt a végpont felpörgetik, a tároló a modell melléktermékeivel együtt letöltődik a végpontra, a modell konfigurációja betöltődik a SageMaker JumpStartból, majd az aszinkron végpont egy DNS-végponton keresztül elérhetővé válik. Annak érdekében, hogy a végpontunk nullára skálázható legyen, be kell állítanunk az automatikus skálázást az aszinkron végponton az Application Auto Scaling segítségével. Először regisztrálnia kell a végpont-változatot az Alkalmazásautomatikus skálázással, meg kell határoznia a méretezési szabályzatot, majd alkalmaznia kell a méretezési házirendet. Ebben a konfigurációban egyéni mérőszámot használunk CustomizedMetricSpecification
, hívták ApproximateBacklogSizePerInstance
, ahogy az a következő kódban is látható. A részletes listáért amazonfelhőóra Az aszinkron következtetési végponttal elérhető metrikák, lásd Monitoring a CloudWatch segítségével.
Ellenőrizheti, hogy a házirend sikeresen be lett állítva, ha a SageMaker konzolra navigál, és kiválasztja Végpontok alatt Következtetés a navigációs ablakban, és megkeresi az imént telepített végpontot.
Hívja meg az aszinkron végpontot
A végpont meghívásához el kell helyeznie a kérés hasznos terhét Amazon egyszerű tárolási szolgáltatás (Amazon S3), és adjon meg egy mutatót erre a hasznos adatra a InvokeEndpointAsync
kérés. Meghíváskor a SageMaker sorba állítja a kérést feldolgozásra, és válaszként visszaadja az azonosítót és a kimeneti helyet. A feldolgozás után a SageMaker az eredményt az Amazon S3 helyére helyezi. Opcionálisan kiválaszthatja, hogy siker- vagy hibaértesítéseket kíván-e kapni Amazon Simple Notification Service (Amazon SNS).
SageMaker Python SDK
A telepítés befejezése után visszaadja a AsyncPredictor
tárgy. Az aszinkron következtetés végrehajtásához adatokat kell feltöltenie az Amazon S3-ba, és használnia kell a predict_async()
módszert az S3 URI bemenettel. Vissza fog adni egy AsyncInferenceResponse
objektumot, és ellenőrizheti az eredményt a get_response()
módszer.
Alternatív megoldásként, ha rendszeresen ellenőrizni szeretné az eredményt, és generáláskor vissza szeretné adni, használja a predict()
módszer. Ezt a második módszert használjuk a következő kódban:
Boto3
Most fedezzük fel a invoke_endpoint_async
módszer a Boto3-tól sagemaker-runtime
ügyfél. Lehetővé teszi a fejlesztők számára, hogy aszinkron módon meghívjanak egy SageMaker-végpontot, amely tokent biztosít az előrehaladás nyomon követéséhez és a válasz későbbi lekéréséhez. A Boto3 nem kínál lehetőséget arra, hogy megvárja az aszinkron következtetés befejezését, mint a SageMaker Python SDK get_result()
művelet. Ezért kihasználjuk azt a tényt, hogy a Boto3 az Amazon S3 következtetési kimenetét a response["OutputLocation"]
. A következő függvény segítségével megvárhatjuk, amíg a következtetésfájl az Amazon S3-ba íródik:
Ezzel a függvénnyel most lekérdezhetjük a végpontot:
LangChain
A LangChain egy nyílt forráskódú keretrendszer, amelyet 2022 októberében indított el Harrison Chase. Leegyszerűsíti a nagy nyelvi modelleket (LLM) használó alkalmazások fejlesztését azáltal, hogy integrációt biztosít különféle rendszerekkel és adatforrásokkal. A LangChain lehetővé teszi a dokumentumelemzést, az összegzést, a chatbot létrehozását, a kódelemzést stb. Népszerűségre tett szert, több száz fejlesztő hozzájárulásával és jelentős kockázati cégek finanszírozásával. A LangChain lehetővé teszi az LLM-ek összekapcsolását külső forrásokkal, lehetővé téve dinamikus, adatérzékeny alkalmazások létrehozását. Könyvtárakat, API-kat és dokumentációt kínál a fejlesztési folyamat egyszerűsítésére.
A LangChain könyvtárakat és példákat kínál a SageMaker végpontok keretrendszerével való használatához, megkönnyítve a SageMaker-en tárolt ML modellek használatát a lánc „agyaként”. Ha többet szeretne megtudni arról, hogyan integrálódik a LangChain a SageMakerrel, tekintse meg a SageMaker végpont a LangChain dokumentációjában.
A LangChain jelenlegi megvalósításának egyik korlátja, hogy nem támogatja natívan az aszinkron végpontokat. Ahhoz, hogy aszinkron végpontot használjunk a LangChainhez, meg kell határoznunk egy új osztályt, SagemakerAsyncEndpoint
, amely kiterjeszti a SagemakerEndpoint
osztály már elérhető a LangChainben. Ezenkívül a következő információkat adjuk meg:
- Az S3 vödör és előtag, ahol az aszinkron következtetés tárolja a bemeneteket (és a kimeneteket)
- Maximum másodpercnyi várakozási idő az időkorlát előtt
- An
updated _call()
függvény a végpont lekérdezéséhezinvoke_endpoint_async()
helyettinvoke_endpoint()
- Módszer az aszinkron végpont felébresztésére, ha hidegindításban van (nullára kicsinyítve)
Az újonnan létrehozott áttekintéshez SagemakerAsyncEndpoint
, nézd meg a sagemaker_async_endpoint.py
filé elérhető a GitHub-on.
Tisztítsuk meg
Ha végzett a végpontból származó következtetések tesztelésével, ne felejtse el törölni a végpontot, hogy elkerülje a további költségeket:
Következtetés
A nagy alapozómodellek, például a TII Falcon telepítésekor a költségek optimalizálása kulcsfontosságú. Ezek a modellek erős hardvert és jelentős memóriakapacitást igényelnek, ami magas infrastrukturális költségekhez vezet. A SageMaker aszinkron következtetés, a kéréseket aszinkron módon feldolgozó telepítési lehetőség, csökkenti a költségeket azáltal, hogy nullára skálázza a példányszámot, ha nincsenek függőben lévő kérések. Ebben a bejegyzésben bemutattuk, hogyan lehet nagy SageMaker JumpStart alapmodelleket telepíteni a SageMaker aszinkron végpontjaira. Kódpéldákat mutattunk be a SageMaker Python SDK, Boto3 és LangChain használatával, hogy szemléltessem az aszinkron végpontok meghívásának és az eredmények lekérésének különböző módszereit. Ezek a technikák lehetővé teszik a fejlesztők és kutatók számára a költségek optimalizálását, miközben a fejlett nyelvértő rendszerek alapmodelljeit használják.
Ha többet szeretne megtudni az aszinkron következtetésről és a SageMaker JumpStartról, tekintse meg a következő bejegyzéseket:
A szerzőről
Davide Gallitelli az EMEA régióban az AI/ML speciális megoldások építésze. Székhelye Brüsszelben van, és szorosan együttműködik az ügyfelekkel a Benelux államokban. Egészen kicsi kora óta fejlesztő, 7 évesen kezdett el kódolni. Az AI/ML-t az egyetemen kezdte tanulni, és azóta beleszeretett.
- SEO által támogatott tartalom és PR terjesztés. Erősödjön még ma.
- PlatoData.Network Vertical Generative Ai. Erősítse meg magát. Hozzáférés itt.
- PlatoAiStream. Web3 Intelligence. Felerősített tudás. Hozzáférés itt.
- PlatoESG. Autóipar / elektromos járművek, Carbon, CleanTech, Energia, Környezet, Nap, Hulladékgazdálkodás. Hozzáférés itt.
- PlatoHealth. Biotechnológiai és klinikai vizsgálatok intelligencia. Hozzáférés itt.
- ChartPrime. Emelje fel kereskedési játékát a ChartPrime segítségével. Hozzáférés itt.
- BlockOffsets. A környezetvédelmi ellentételezési tulajdon korszerűsítése. Hozzáférés itt.
- Forrás: https://aws.amazon.com/blogs/machine-learning/optimize-deployment-cost-of-amazon-sagemaker-jumpstart-foundation-models-with-amazon-sagemaker-asynchronous-endpoints/
- :van
- :is
- :nem
- :ahol
- $ UP
- 1
- 10
- 100
- 12
- 13
- 15%
- 1M
- 2022
- 25
- 7
- a
- Képes
- Rólunk
- gyorsul
- elfogadja
- hozzáférés
- eredmények
- át
- tevékenység
- Ezen kívül
- fejlett
- Előny
- Után
- kor
- AI
- AI modellek
- AI / ML
- lehetővé téve
- lehetővé teszi, hogy
- már
- Is
- Bár
- amazon
- Amazon SageMaker
- Amazon SageMaker JumpStart
- Az Amazon Web Services
- összeg
- Összegek
- an
- elemzés
- és a
- bejelentés
- Másik
- Antropikus
- bármilyen
- api
- API-k
- Alkalmazás
- alkalmazások
- alkalmaz
- építészet
- VANNAK
- érvek
- Művészet
- AS
- At
- figyelem
- vonzott
- auto
- elérhető
- átlagos
- elkerülése érdekében
- AWS
- alapján
- BE
- válik
- óta
- előtt
- hogy
- BEST
- nagyobb
- milliárd
- Blocks
- test
- szünet
- Brüsszel
- Épület
- épült
- üzleti
- de
- by
- hívás
- hívott
- TUD
- képességek
- képesség
- képes
- Kapacitás
- eset
- esetek
- lánc
- láncok
- kihívások
- díjak
- üldözés
- chatbot
- ellenőrizze
- A pop-art design, négy időzóna kijelzése egyszerre és méretének arányai azok az érvek, amelyek a NeXtime Time Zones-t kiváló választássá teszik. Válassza a
- választja
- osztály
- vásárló
- szorosan
- kód
- hideg
- hogyan
- jön
- Közös
- Közösségek
- Companies
- versenytársak
- teljes
- Befejezett
- Befejezi
- összetevő
- átfogó
- számítógép
- Számítógépes látás
- koncepció
- Configuration
- kapcsolat
- Konzol
- Konténer
- tartalom
- hozzájárulások
- Költség
- kiadások
- teremt
- készítette
- teremtés
- kritikus
- Jelenlegi
- Jelenleg
- szokás
- Ügyfelek
- vágás
- csökkenti a kiadásokat
- ciklusok
- dátum
- foglalkozó
- alapértelmezett
- meghatározott
- igények
- igazolták
- telepíteni
- telepített
- bevezetéséhez
- bevetés
- részletes
- Dev
- Fejlesztő
- fejlesztők
- Fejlesztés
- DICT
- különböző
- Diffusion
- méretek
- Tiltva
- dns
- do
- dokumentum
- dokumentáció
- Nem
- csinált
- le-
- két
- alatt
- dinamikus
- e
- könnyebb
- eredményesen
- erőfeszítés
- más
- EMEA
- lehetővé
- lehetővé teszi
- Endpoint
- Motorok
- elég
- hiba
- különösen
- Minden
- példa
- példák
- Kivéve
- kivétel
- izgalmas
- költségek
- tapasztalat
- feltárása
- kitett
- nyúlik
- kiterjedt
- külső
- külön-
- Arc
- tény
- Elesett
- hamis
- Funkció
- filé
- cégek
- vezetéknév
- következő
- A
- Alapítvány
- négy
- Keretrendszer
- ból ből
- funkció
- finanszírozás
- szerzett
- generált
- generáló
- generáció
- nemző
- Generatív AI
- GitHub
- jó
- GPU
- nagy
- Növekvő
- fogantyú
- hardver
- Legyen
- tekintettel
- he
- segít
- itt
- Magas
- házigazdája
- Hogyan
- How To
- azonban
- HTML
- http
- HTTPS
- Több száz
- több száz millió
- ideális
- azonosító
- if
- illusztrálja
- kép
- végrehajtás
- importál
- in
- Beleértve
- Bejövő
- jelzi
- iparágak
- információ
- Infrastruktúra
- Innováció
- bemenet
- bemenet
- példa
- helyette
- integrál
- integrációk
- Intelligens
- kamat
- Felület
- bele
- bevezet
- beruházás
- IT
- ITS
- utazás
- jpg
- json
- éppen
- ismert
- nyelv
- nagy
- Késleltetés
- a későbbiekben
- indított
- elindítja
- vezető
- TANUL
- tanulás
- legkevésbé
- könyvtárak
- mint
- határértékek
- Lista
- kiszámításának
- elhelyezkedés
- Hosszú
- keres
- Sok
- szerelem
- Elő/Utó
- gép
- gépi tanulás
- készült
- Fő
- fenntartása
- csinál
- Gyártás
- sok
- max
- maximális
- Memory design
- módszer
- mód
- metrikus
- Metrics
- Több millió
- Perc
- ML
- modell
- modellek
- több
- név
- Természetes
- Természetes nyelvi feldolgozás
- navigálás
- Navigáció
- Szükség
- Új
- újonnan
- következő
- NLP
- nem
- jegyzetfüzet
- bejelentés
- értesítések
- Most
- szám
- tárgy
- október
- of
- ajánlat
- felajánlás
- Ajánlatok
- gyakran
- on
- ONE
- csak
- nyílt forráskódú
- működés
- Optimalizálja
- optimalizálása
- opció
- Opciók
- or
- mi
- ki
- teljesítmény
- üvegtábla
- paraméterek
- rész
- különösen
- partnerek
- alatt
- Teljesít
- Előadja
- kép
- Hely
- Helyek
- Plató
- Platón adatintelligencia
- PlatoData
- PoC
- politika
- népszerűség
- lehetséges
- állás
- Hozzászólások
- potenciálisan
- hatalom
- erős
- Gyakorlati
- előrejelzés
- Predictor
- Preview
- magán
- Probléma
- folyamat
- Folyamatok
- feldolgozás
- Haladás
- projektek
- bizonyíték
- bizonyíték a koncepcióra
- Bizonyít
- ad
- feltéve,
- biztosít
- amely
- Piton
- pytorch
- lekérdezések
- kérdés
- emel
- hatótávolság
- kezdve
- Olvass
- kész
- real-time
- kap
- csökkenteni
- csökkenti
- vidék
- Regisztráció
- eszébe jut
- eltávolítása
- helyébe
- kérni
- kéri
- szükség
- kötelező
- követelmények
- megköveteli,
- kutatók
- forrás
- Tudástár
- válasz
- eredményez
- Eredmények
- visszatérés
- Visszatér
- Kritika
- forradalmasította
- kockáztatva
- ROI
- futás
- futás
- sagemaker
- megtakarítás
- skálázható
- Skála
- skálázás
- sdk
- Második
- másodperc
- MAGA
- szolgál
- vagy szerver
- szolgáltatás
- Szolgáltatások
- ülések
- készlet
- rövid
- mutatott
- Műsorok
- jelentős
- hasonló
- Egyszerű
- óta
- egyetlen
- helyzetek
- Méret
- méretek
- szilárd
- megoldások
- Megoldások
- SOLVE
- néhány
- Források
- szakember
- fonott
- Stabilitás
- stabil
- kezdet
- kezdődött
- Kezdve
- Állami
- Lépés
- megáll
- tárolás
- tárolni
- egyértelmű
- áramvonal
- lényeges
- siker
- sikeresen
- ilyen
- támogatás
- Támogatja
- biztos
- túlszárnyalni
- Systems
- Vesz
- cél
- feladatok
- technikák
- Technológia
- sablonok
- feltételek
- Tesztelés
- Kösz
- hogy
- A
- Az állam
- azok
- Őket
- akkor
- Ott.
- ezáltal
- ebből adódóan
- Ezek
- ők
- ezt
- idén
- három
- Keresztül
- egész
- idő
- alkalommal
- időzítés
- nak nek
- együtt
- jelképes
- is
- Csomagkövetés
- kiképzett
- Fordítás
- igaz
- megpróbál
- típusok
- ui
- alatt
- megértés
- egyetemi
- -ig
- upon
- us
- használ
- használó
- felhasználói felület
- segítségével
- rendszerint
- érték
- Változat
- különféle
- Hatalmas
- vállalkozás
- ellenőrzése
- nagyon
- keresztül
- látomás
- várjon
- Várakozás
- Ébred
- Felébred
- akar
- volt
- Út..
- módon
- we
- háló
- webes szolgáltatások
- amikor
- vajon
- ami
- míg
- WHO
- széles
- Széleskörű
- lesz
- val vel
- nélkül
- Nyerte
- művek
- világszerte
- lenne
- írott
- év
- te
- fiatal
- A te
- magad
- zephyrnet
- nulla