Yksi tämän päivän suosituimmista malleista on XGBoost. XGBoostilla on kyky ratkaista erilaisia ongelmia, kuten luokittelu ja regressio, ja siitä on tullut suosittu vaihtoehto, joka kuuluu myös puupohjaisten mallien luokkaan. Tässä viestissä sukeltamme syvälle nähdäksemme, miten Amazon Sage Maker voi palvella näitä malleja käyttämällä NVIDIA Triton Inference Server. Reaaliaikaisilla päättelytyökuormilla voi olla eritasoisia vaatimuksia ja palvelutasosopimuksia (SLA) latenssin ja suorituskyvyn suhteen, ja ne voidaan täyttää käyttämällä SageMakerin reaaliaikaisia päätepisteitä.
SageMaker tarjoaa yhden mallin päätepisteitä, joiden avulla voit ottaa käyttöön yhden koneoppimismallin (ML) loogista päätepistettä vastaan. Muissa käyttötapauksissa voit hallita kustannuksia ja suorituskykyä käyttämällä usean mallin päätepisteet, joiden avulla voit määrittää useita malleja isännöimään loogisen päätepisteen takana. Riippumatta valitsemastasi vaihtoehdosta, SageMaker-päätepisteet mahdollistavat skaalautuvan mekanismin vaativimmillekin yritysasiakkaille samalla kun ne tarjoavat lisäarvoa lukuisista ominaisuuksista, kuten varjomuunnelmia, automaattinen skaalaus, ja alkuperäisen integroinnin kanssa amazonin pilvikello (lisätietoja, katso CloudWatch-mittarit usean mallin päätepisteiden käyttöönotuksiin).
Triton tukee erilaisia taustaohjelmia moottoreina, jotka tukevat eri ML-mallien ajoa ja palvelua johtopäätösten tekemiseksi. Jokaisen Tritonin käyttöönoton yhteydessä on erittäin tärkeää tietää, miten taustakäyttäytyminen vaikuttaa työkuormituksiisi ja mitä odottaa, jotta voit menestyä. Tässä viestissä autamme sinua ymmärtämään Forest Inference Library (FIL) -taustaohjelma, jota Triton tukee SageMakerissa, jotta voit tehdä tietoon perustuvan päätöksen työkuormituksillesi ja saada parhaan mahdollisen suorituskyvyn ja kustannusoptimoinnin.
Sukella syvään FIL-taustajärjestelmään
Triton tukee FIL-taustaohjelma palvelemaan puumalleja, mm XGBoost, LightGBM, scikit opittava Satunnainen metsä, RAPIDS cuML Random Forestja kaikki muut tuetut mallit Treeliitti. Näitä malleja on käytetty pitkään ongelmien, kuten luokittelun tai regression, ratkaisemiseen. Vaikka tämäntyyppiset mallit ovat perinteisesti toimineet suorittimilla, näiden mallien suosio ja päättelyvaatimukset ovat johtaneet erilaisiin tekniikoihin päättelyn suorituskyvyn parantamiseksi. FIL-taustajärjestelmä hyödyntää monia näistä tekniikoista käyttämällä cuML-rakenteita, ja se on rakennettu C++:aan ja CUDA-ydinkirjastoon optimoimaan päättelyn suorituskykyä GPU-kiihdyttimissä.
FIL-taustajärjestelmä käyttää cuML:n kirjastoja CPU- tai GPU-ytimien nopeuttamiseen oppimisen nopeuttamiseksi. Näiden prosessorien käyttämiseksi dataan viitataan isäntämuistista (esimerkiksi NumPy-taulukot) tai GPU-taulukot (uDF, Numba, cupY tai mistä tahansa kirjastosta, joka tukee __cuda_array_interface__
) API. Kun tiedot on ladattu muistiin, FIL-taustajärjestelmä voi suorittaa käsittelyn kaikissa käytettävissä olevissa prosessorin tai grafiikkasuorittimen ytimissä.
FIL-taustasäikeet voivat kommunikoida keskenään käyttämättä isännän jaettua muistia, mutta ensemble-työkuormituksessa isäntämuistia tulisi harkita. Seuraava kaavio esittää ensemble-schedler-ajonaikaisen arkkitehtuurin, jossa voit hienosäätää muistialueita, mukaan lukien CPU-osoitteellinen jaettu muisti, jota käytetään prosessien väliseen tiedonsiirtoon Tritonin (C++) ja Python-prosessin (Python-taustaosa) välillä vaihtamista varten. tensorit (tulo/lähtö) FIL-taustaohjelmalla.
Triton Inference Server tarjoaa konfiguroitavia vaihtoehtoja kehittäjille työkuormituksen säätämiseksi ja mallin suorituskyvyn optimoimiseksi. Kokoonpano dynamic_batching
sallii Tritonin pitää asiakaspuolen pyynnöt ja jakaa ne palvelinpuolella, jotta FIL:n rinnakkaislaskentaa voidaan käyttää tehokkaasti päätelläkseen koko erän yhteen. Vaihtoehto max_queue_delay_microseconds
tarjoaa varman hallinnan siitä, kuinka kauan Triton odottaa erän muodostamista.
On olemassa useita muita FIL-kohtaisia käytettävissä olevat vaihtoehdot jotka vaikuttavat suorituskykyyn ja käyttäytymiseen. Suosittelemme aloittamaan storage_type
. Kun taustaa käytetään GPU:lla, FIL luo uuden muisti-/tietorakenteen, joka on esitys puusta, jonka suorituskykyyn ja jalanjälkiin FIL voi vaikuttaa. Tämä on konfiguroitavissa ympäristöparametrilla storage_type
, jossa on vaihtoehdot tiheä, harva ja automaattinen. Tiheän vaihtoehdon valitseminen kuluttaa enemmän GPU-muistia, eikä se aina johda parempaan suorituskykyyn, joten on parasta tarkistaa. Sitä vastoin harva vaihtoehto kuluttaa vähemmän GPU-muistia ja voi mahdollisesti toimia yhtä hyvin tai paremmin kuin tiheä. Automaattinen valinta saa mallin oletuksena tiheäksi, ellei se kuluta huomattavasti enemmän GPU-muistia kuin harva.
Mitä tulee mallin suorituskykyyn, kannattaa harkita painottamista threads_per_tree
vaihtoehto. Yksi asia, jota saatat yliarvioida todellisissa skenaarioissa, on se threads_per_tree
voi vaikuttaa suoritustehoon enemmän kuin millään muulla parametrilla. Sen asettaminen mihin tahansa potenssiin 2 välillä 1–32 on oikeutettua. Tämän parametrin optimaalista arvoa on vaikea ennustaa, mutta kun palvelimen odotetaan käsittelevän suurempia kuormia tai käsittelevän suurempia eräkokoja, se yleensä hyötyy suuremmasta arvosta kuin silloin, kun se käsittelee muutaman rivin kerrallaan.
Toinen huomioitava parametri on algo
, joka on myös saatavilla, jos käytät GPU:ta. Tämä parametri määrittää algoritmin, jota käytetään päättelypyyntöjen käsittelyyn. Tätä varten tuetut vaihtoehdot ovat ALGO_AUTO
, NAIVE
, TREE_REORG
ja BATCH_TREE_REORG
. Nämä asetukset määrittävät, kuinka puun solmut on järjestetty, ja ne voivat myös parantaa suorituskykyä. The ALGO_AUTO
vaihtoehdon oletusarvo on NAIVE
harvaan säilytykseen ja BATCH_TREE_REORG
tiheää säilytystä varten.
Lopuksi FIL:n mukana tulee Shapley-selittäjä, joka voidaan aktivoida käyttämällä treeshap_output
parametri. Sinun tulee kuitenkin pitää mielessä, että Shapley-lähdöt heikentävät suorituskykyä tulostekoonsa vuoksi.
Mallin muoto
Tällä hetkellä ei ole olemassa standarditiedostomuotoa metsäpohjaisten mallien tallentamiseen. jokainen kehys pyrkii määrittelemään oman muotonsa. Useiden syöttötiedostomuotojen tukemiseksi FIL tuo tiedot avoimen lähdekoodin avulla Treeliitti kirjasto. Näin FIL voi tukea malleja, jotka on koulutettu suosittuihin kehyksiin, kuten XGBoost ja LightGBM. Huomaa, että antamasi mallin muoto on määritettävä model_type
kohdassa määritetty konfigurointiarvo config.pbtxt
tiedosto.
Config.pbtxt
Jokainen malli a mallin arkisto tulee sisältää mallikokoonpano, joka sisältää vaaditut ja valinnaiset tiedot mallista. Tyypillisesti tämä kokoonpano tarjotaan kohdassa a config.pbtxt
tiedosto määritettynä nimellä ModelConfig protobuf. Lisätietoja konfigurointiasetuksista on kohdassa Mallin kokoonpano. Seuraavassa on joitain mallin kokoonpanoparametreja:
- max_erän_koko – Tämä määrittää suurimman eräkoon, joka voidaan siirtää tähän malliin. Yleensä ainoa rajoitus FIL-taustajärjestelmään siirrettävien erien koon suhteen on käytettävissä oleva muisti, jolla ne voidaan käsitellä. GPU-ajoissa käytettävissä oleva muisti määräytyy Tritonin CUDA-muistivarannon koon mukaan, joka voidaan asettaa komentoriviargumentilla palvelinta käynnistettäessä.
- panos – Tämän osan vaihtoehdot kertovat Tritonille, kuinka monta toimintoa jokaiselle tulonäytteelle odotetaan.
- ulostulo – Tämän osan vaihtoehdot kertovat Tritonille, kuinka monta lähtöarvoa kullakin näytteellä on. Jos
predict_proba
vaihtoehdon arvoksi on asetettu tosi, niin kullekin luokalle palautetaan todennäköisyysarvo. Muussa tapauksessa palautetaan yksi arvo, joka osoittaa annetulle näytteelle ennustetun luokan. - instance_group – Tämä määrittää, kuinka monta tämän mallin esiintymää luodaan ja käyttävätkö ne GPU:ta vai CPU:ta.
- malli_tyyppi – Tämä merkkijono osoittaa, missä muodossa malli on (
xgboost_json
tässä esimerkissä, muttaxgboost
,lightgbm
jatl_checkpoint
ovat myös kelvollisia muotoja). - ennusta_todennäköisyys – Jos arvoksi asetetaan tosi, todennäköisyysarvot palautetaan kullekin luokalle pelkän luokan ennusteen sijaan.
- output_class – Tämä on asetettu arvoon tosi luokitusmalleille ja epätosi regressiomalleille.
- kynnys – Tämä on pisteyskynnys luokituksen määrittämiseksi. Kun
output_class
arvo on tosi, tämä on annettava, vaikka sitä ei käytetä, jospredict_proba
on myös asetettu todeksi. - varaston_tyyppi – Yleensä AUTO-käytön tähän asetukseen pitäisi vastata useimpia käyttötapauksia. Jos AUTO-tallennus on valittuna, FIL lataa mallin käyttämällä joko harvaa tai tiheää esitystä mallin likimääräisen koon perusteella. Joissakin tapauksissa saatat haluta asettaa tämän nimenomaisesti arvoon SPARSE pienentääksesi suurten mallien muistia.
Triton Inference Server SageMakerissa
SageMaker mahdollistaa voit ottaa käyttöön sekä yhden mallin että usean mallin päätepisteitä NVIDIA Triton Inference Serverin avulla. Seuraava kuva esittää Triton Inference Serverin korkean tason arkkitehtuuria. The mallin arkisto on tiedostojärjestelmäpohjainen arkisto malleista, jotka Triton tulee saataville päätelmiä varten. Päätelmäpyynnöt saapuvat palvelimelle ja reititetään sopivaan mallikohtaiseen ajastimeen. Tritonin työvälineet useita ajoitus- ja eräalgoritmeja jotka voidaan konfiguroida mallikohtaisesti. Jokaisen mallin ajastin suorittaa valinnaisesti päättelypyyntöjen erän ja välittää pyynnöt sitten backend vastaa mallityyppiä. Taustajärjestelmä suorittaa päättelyn käyttämällä eräpyynnöissä annettuja syötteitä pyydettyjen tulosteiden tuottamiseksi. Lähdöt palautetaan sitten.
Kun määrität automaattisen skaalausryhmän SageMaker-päätepisteitä varten, sinun kannattaa harkita sitä SageMakerVariantInvocationsPerInstance
ensisijaisena kriteerinä automaattisen skaalausryhmän skaalausominaisuuksien määrittämisessä. Lisäksi sen mukaan, toimivatko mallit GPU:lla vai CPU:lla, voit myös harkita CPUUtilisoinnin tai GPUUtilisoinnin käyttöä lisäehtoina. Huomaa, että yhden mallin päätepisteille, koska kaikki käyttöönotetut mallit ovat samoja, on melko yksinkertaista määrittää oikeat käytännöt, jotka vastaavat SLA-sopimuksia. Usean mallin päätepisteissä suosittelemme samanlaisten mallien käyttöönottoa tietyn päätepisteen takana, jotta ennustettava suorituskyky olisi vakaampi. Käyttötapauksissa, joissa käytetään erikokoisia ja erikokoisia malleja, saatat haluta erottaa nämä työkuormat useiden useiden mallien päätepisteiden kesken tai viettää aikaa automaattisen skaalausryhmän käytäntöjen hienosäätämiseen parhaan kustannus- ja suoritustasapainon saavuttamiseksi.
Luettelo SageMaker-päätelmän tukemista NVIDIA Triton Deep Learning Containers (DLC) -säilöistä on kohdassa Käytettävissä olevat Deep Learning Containers -kuvat.
SageMaker-muistikirjan esittely
ML-sovellukset ovat monimutkaisia ja voivat usein vaatia tietojen esikäsittelyä. Tässä muistikirjassa perehdymme puupohjaisen ML-mallin, kuten XGBoostin, käyttöönottoon käyttämällä Tritonin FIL-taustaohjelmaa SageMaker-monimallipäätepisteessä. Käsittelemme myös, kuinka voit toteuttaa Python-pohjaisen tietojen esikäsittelyn päättelyputken mallillesi käyttämällä Tritonin ensemble-ominaisuutta. Tämä antaa meille mahdollisuuden lähettää raakadataa asiakaspuolelta ja saada sekä tietojen esikäsittelyä että mallipäätelmiä tapahtua Triton SageMaker -päätepisteessä optimaalisen päättelyn suorituskyvyn saavuttamiseksi.
Triton-mallikokonaisuusominaisuus
Triton Inference Server yksinkertaistaa huomattavasti tekoälymallien käyttöönottoa tuotannossa. Triton Inference Serverin mukana tulee kätevä ratkaisu, joka yksinkertaistaa esi- ja jälkikäsittelyputkien rakentamista. Triton Inference Server -alusta tarjoaa ensemble-schedulerin, joka vastaa päättelyprosessiin osallistuvien mallien liukuhihnasta varmistaen samalla tehokkuuden ja suorituskyvyn optimoinnin. Ensemble-mallien käyttäminen voi välttää välitensorien siirtämisen ylimääräiset kustannukset ja minimoida Tritonille lähetettävien pyyntöjen määrän.
Tässä muistikirjassa näytämme, kuinka ensemble-ominaisuutta käytetään tietojen esikäsittelyn putkilinjan rakentamiseen XGBoost-mallipäätelmän avulla, ja voit ekstrapoloida sen ja lisätä mukautetun jälkikäsittelyn liukuhihnaan.
Määritä ympäristö
Aloitamme tarvittavan ympäristön luomisesta. Asennamme tarvittavat riippuvuudet malliputkistomme pakkaamiseen ja suoritamme päätelmiä Triton Inference Serverin avulla. Määrittelemme myös AWS-henkilöllisyyden ja käyttöoikeuksien hallinta (IAM) rooli, joka antaa SageMakerille pääsyn malliesineisiin ja NVIDIA Tritoniin Amazonin elastisten säiliörekisteri (Amazon ECR) kuva. Katso seuraava koodi:
Luo Conda-ympäristö riippuvuuksien esikäsittelyä varten
Tritonin Python-taustaohjelma edellyttää, että käytämme a Conda ympäristön mahdollisille lisäriippuvuuksille. Tässä tapauksessa käytämme Python-taustaa raakatietojen esikäsittelyyn ennen sen syöttämistä XGBoost-malliin, joka on käynnissä FIL-taustajärjestelmässä. Vaikka käytimme alun perin RAPIDS cuDF:ää ja cuML:ää tietojen esikäsittelyyn, käytämme tässä Pandaa ja scikit-learnia esikäsittelyriippuvuuksina päättelyn aikana. Teemme tämän kolmesta syystä:
- Näytämme, kuinka voit luoda Conda-ympäristön riippuvuuksillesi ja miten se pakataan odotettu muoto Tritonin Python-taustaohjelmalla.
- Esittämällä esikäsittelymallin, joka toimii Python-taustajärjestelmässä CPU:ssa, kun XGBoost toimii GPU:ssa FIL-taustajärjestelmässä, havainnollistamme, kuinka kukin Tritonin ensemble-putkilinjan malli voi toimia eri kehystaustajärjestelmässä sekä erilaisissa laitteistokokoonpanoissa.
- Se korostaa, kuinka RAPIDS-kirjastot (cuDF, cuML) ovat yhteensopivia CPU-vastineidensa (Pandas, scikit-learn) kanssa. Voimme esimerkiksi näyttää kuinka
LabelEncoders
cuML:ssä luotua voidaan käyttää scikit-learnissä ja päinvastoin.
Seuraamme ohjeita Tritonin dokumentaatio esikäsittelyriippuvuuksien (scikit-learn ja Pandas) pakkaamiseen käytettäväksi Python-taustajärjestelmässä Conda-ympäristön TAR-tiedostona. Bash-skripti create_prep_env.sh luo Conda-ympäristön TAR-tiedoston, jonka jälkeen siirrämme sen esikäsittelymallihakemistoon. Katso seuraava koodi:
Kun suoritamme edellisen skriptin, se luo preprocessing_env.tar.gz
, jonka kopioimme esikäsittelyhakemistoon:
Määritä esikäsittely Triton Python -taustajärjestelmällä
Esikäsittelyyn käytämme Triton'sia Python-taustaohjelma suorittaa taulukkomuotoisen tietojen esikäsittelyn (kategorinen koodaus) palvelimelle tulevien raakatietopyyntöjen päättelyn aikana. Lisätietoja koulutuksen aikana tehdystä esikäsittelystä on kohdassa harjoitusmuistikirja.
Python-taustajärjestelmä mahdollistaa esikäsittelyn, jälkikäsittelyn ja minkä tahansa muun mukautetun logiikan käyttöönoton Pythonissa ja toimituksen Tritonin kanssa. Tritonin käyttäminen SageMakerissa edellyttää, että meidän on ensin määritettävä mallin arkistokansio, joka sisältää mallit, joita haluamme palvella. Olemme jo luoneet Python-tietojen esikäsittelyn mallin, jota kutsutaan esikäsittelyksi sisään cpu_model_repository
ja gpu_model_repository
.
Tritonilla on erityisiä vaatimuksia mallivaraston asettelulle. Ylimmän tason mallin arkistohakemistossa jokaisella mallilla on oma alihakemistonsa, joka sisältää tiedot vastaavasta mallista. Jokaisessa Tritonin mallihakemistossa on oltava vähintään yksi numeerinen alihakemisto, joka edustaa mallin versiota. Arvo 1 edustaa Python-esikäsittelymallimme versiota 1. Jokaista mallia ajaa tietty taustajärjestelmä, joten jokaisessa version alihakemistossa on oltava kyseisen taustajärjestelmän vaatima malliartefaktti. Tässä esimerkissä käytämme Python-taustaohjelmaa, joka edellyttää, että käyttämäsi Python-tiedosto on nimeltään model.py, ja tiedoston on toteutettava tiettyjä toimintoja. Jos käyttäisimme PyTorch-taustaohjelmaa, vaadittaisiin model.pt-tiedosto ja niin edelleen. Lisätietoja mallitiedostojen nimeämiskäytännöistä on kohdassa Mallitiedostot.
- malli.py Tässä käyttämämme Python-tiedosto toteuttaa kaiken taulukkomuotoisen tietojen esikäsittelylogiikan muuntaakseen raakadataa ominaisuuksiksi, jotka voidaan syöttää XGBoost-malliimme.
Jokaisessa Triton-mallissa on myös oltava a config.pbtxt
mallin kokoonpanoa kuvaava tiedosto. Lisätietoja konfigurointiasetuksista on kohdassa Mallin kokoonpano. Meidän config.pbtxt tiedosto määrittää taustaohjelman pythoniksi ja kaikki raakatiedon syöttösarakkeet sekä esikäsitellyn tulosteen, joka koostuu 15 ominaisuudesta. Määritämme myös, että haluamme käyttää tätä Python-esikäsittelymallia suorittimessa. Katso seuraava koodi:
Määritä puupohjainen ML-malli FIL-taustajärjestelmälle
Seuraavaksi määritimme mallihakemiston puupohjaiselle ML-mallille, kuten XGBoost, joka käyttää FIL-taustajärjestelmää.
Odotettu asettelu kohteelle cpu_memory_repository
ja gpu_memory_repository
ovat samanlaisia kuin aiemmin näytimme.
Täällä FIL
on mallin nimi. Voimme antaa sille eri nimen, esim xgboost
jos haluamme. 1
on version alihakemisto, joka sisältää mallin artefaktin. Tässä tapauksessa se on xgboost.json
malli, jonka olemme tallentaneet. Luodaan tämä odotettu asettelu:
Meillä on oltava asetustiedosto config.pbtxt
kuvataan puupohjaisen ML-mallin mallikonfiguraatio, jotta Tritonin FIL-taustaosa ymmärtää, kuinka sitä voidaan palvella. Katso lisätietoja uusimmasta yleisestä Tritonin konfigurointivaihtoehdot ja -kohtaiset konfigurointivaihtoehdot FIL-taustaohjelma. Keskitymme tässä esimerkissä vain muutamiin yleisimpiin ja olennaisimpiin vaihtoehtoihin.
luoda config.pbtxt
varten model_cpu_repository
:
Samoin perustaa config.pbtxt
varten model_gpu_repository
(huomaa ero on USE_GPU = True
):
Määritä päättelyputki tietojen esikäsittelyn Python-taustajärjestelmästä ja FIL-taustajärjestelmästä ryhmien avulla
Nyt olemme valmiita määrittämään päättelyputken tietojen esikäsittelyä ja puupohjaista mallin päättelyä varten yhtyemalli. Ensemble-malli edustaa yhden tai useamman mallin liukuhihnaa ja tulo- ja lähtötensorien yhteyttä näiden mallien välillä. Tässä käytämme ensemble-mallia rakentaaksemme putkiston tietojen esikäsittelystä Python-taustajärjestelmässä, jota seuraa XGBoost FIL-taustajärjestelmässä.
Odotettu asettelu ensemble
mallihakemisto on samanlainen kuin aiemmin näytämme:
Loimme yhtyemallin config.pbtxt ohjeen mukaan Yhtyemallit. Tärkeää on, että meidän on määritettävä kokoonpanon ajastin config.pbtxt
, joka määrittää tietovirran mallien välillä kokoonpanon sisällä. Ensemble Schedler kerää lähtötensorit kussakin vaiheessa ja tarjoaa ne sisääntulotensoreina muille vaiheille spesifikaatioiden mukaisesti.
Pakkaa mallin arkisto ja lataa se Amazon S3:een
Lopuksi päädymme seuraavaan mallivarastohakemistorakenteeseen, joka sisältää Python-esikäsittelymallin ja sen riippuvuudet sekä XGBoost FIL -mallin ja mallikokonaisuuden.
Pakkaamme hakemiston ja sen sisällön muodossa model.tar.gz
lataamista varten Amazonin yksinkertainen tallennuspalvelu (Amazon S3). Tässä esimerkissä meillä on kaksi vaihtoehtoa: CPU-pohjaisen ilmentymän tai GPU-pohjaisen ilmentymän käyttäminen. GPU-pohjainen ilmentymä sopii paremmin, kun tarvitset suurempaa prosessointitehoa ja haluat käyttää CUDA-ytimiä.
Luo ja lataa mallipaketti CPU-pohjaiselle esiintymälle (optimoitu CPU:lle) seuraavalla koodilla:
Luo ja lähetä mallipaketti GPU-pohjaiselle esiintymälle (optimoitu GPU:lle) seuraavalla koodilla:
Luo SageMaker-päätepiste
Meillä on nyt malliesineet S3-ämpäriin tallennettuina. Tässä vaiheessa voimme tarjota myös lisäympäristömuuttujan SAGEMAKER_TRITON_DEFAULT_MODEL_NAME
, joka määrittää Tritonin lataaman mallin nimen. Tämän avaimen arvon tulee vastata Amazon S3:een ladatun mallipaketin kansion nimeä. Tämä muuttuja on valinnainen yksittäisen mallin tapauksessa. Ensemble-mallien tapauksessa tämä avain on määritettävä, jotta Triton käynnistyy SageMakerissa.
Lisäksi voit asettaa SAGEMAKER_TRITON_BUFFER_MANAGER_THREAD_COUNT
ja SAGEMAKER_TRITON_THREAD_COUNT
lankojen määrän optimoimiseksi.
Käytämme edellistä mallia luodaksemme päätepisteen konfiguraation, jossa voimme määrittää päätepisteeseen haluamamme esiintymien tyypin ja määrän
Käytämme tätä päätepistemääritystä SageMaker-päätepisteen luomiseen ja odotamme käyttöönoton päättymistä. SageMaker MME:n kanssa meillä on mahdollisuus isännöidä useita ensemble-malleja toistamalla tämä prosessi, mutta pidämme kiinni yhdestä käyttöönotosta tässä esimerkissä:
Tila vaihtuu muotoon InService
kun käyttöönotto onnistuu.
Kutsu SageMaker-päätepisteessä isännöity malli
Kun päätepiste on suoritettu, voimme käyttää joitakin näyteraakatietoja tehdäksemme päätelmiä käyttämällä JSON-tiedostomuotoa. Päätelmäpyyntömuodossa Triton käyttää KFServing
yhteisön standardi päättelyprotokollat. Katso seuraava koodi:
Blogissa viitattu muistikirja löytyy osoitteesta GitHub-arkisto.
Parhaat käytännöt
Aiemmin mainitsemiemme FIL-taustajärjestelmän asetusten hienosäätömahdollisuuksien lisäksi datatutkijat voivat myös varmistaa, että taustajärjestelmän syöttötiedot optimoidaan moottorin käsittelyä varten. Aina kun mahdollista, syötä tiedot rivi-päämuodossa GPU-taulukkoon. Muut muodot vaativat sisäistä muuntamista ja kuluttavat jaksoja, mikä heikentää suorituskykyä.
Koska FIL-tietorakenteita ylläpidetään GPU-muistissa, muista puun syvyys. Mitä syvempi puun syvyys, sitä suurempi on GPU-muistin jalanjälki.
Käytä instance_group_count
parametri työprosessien lisäämiseksi ja FIL-taustajärjestelmän suorituskyvyn lisäämiseksi, mikä lisää CPU- ja GPU-muistin kulutusta. Harkitse lisäksi SageMaker-spesifisiä muuttujia, jotka ovat käytettävissä suorituskyvyn lisäämiseksi, kuten HTTP-säikeet, HTTP-puskurin koko, eräkoko ja enimmäisviive.
Yhteenveto
Tässä viestissä perehdymme syvälle FIL-taustajärjestelmään, jota Triton Inference Server tukee SageMakerissa. Tämä taustaohjelma tarjoaa sekä CPU- että GPU-kiihdytyksen puupohjaisissa malleissasi, kuten suosittu XGBoost-algoritmi. On monia vaihtoehtoja, joita kannattaa harkita parhaan suorituskyvyn saamiseksi johtopäätösten tekemiseen, kuten eräkoot, tiedonsyöttömuodot ja muut tekijät, jotka voidaan säätää vastaamaan tarpeitasi. SageMakerin avulla voit käyttää tätä ominaisuutta yhden ja usean mallin päätepisteiden kanssa suorituskyvyn ja kustannussäästöjen tasapainottamiseksi.
Kehotamme sinua ottamaan tämän viestin tiedot ja katsomaan, pystyykö SageMaker vastaamaan isännöintitarpeisiisi palvellakseen puupohjaisia malleja, jotka täyttävät vaatimukset kustannusten vähentämiseksi ja työkuorman suorituskyvyn suhteen.
Tässä viestissä viitattu muistikirja löytyy SageMaker-esimerkeistä GitHub-arkisto. Lisäksi löydät uusimman dokumentaation FIL-taustaohjelmasta GitHub.
Tietoja Tekijät
Raghu Ramesha on vanhempi ML-ratkaisuarkkitehti Amazon SageMaker Service -tiimin kanssa. Hän keskittyy auttamaan asiakkaita rakentamaan, ottamaan käyttöön ja siirtämään ML-tuotannon työmäärät SageMakeriin suuressa mittakaavassa. Hän on erikoistunut koneoppimiseen, tekoälyyn ja tietokonenäköalueisiin, ja hänellä on tietojenkäsittelytieteen maisterin tutkinto UT Dallasista. Vapaa-ajallaan hän nauttii matkustamisesta ja valokuvaamisesta.
James Park on ratkaisuarkkitehti Amazon Web Servicesissä. Hän työskentelee Amazon.comin kanssa suunnitella, rakentaa ja ottaa käyttöön teknologiaratkaisuja AWS:ssä, ja hän on erityisen kiinnostunut tekoälystä ja koneoppimisesta. Vapaa-ajallaan hän etsii uusia kulttuureja, uusia kokemuksia ja pysyy ajan tasalla viimeisimmistä teknologiatrendeistä.
Dhawal Patel on AWS:n koneoppimisarkkitehti. Hän on työskennellyt organisaatioiden kanssa suurista yrityksistä keskikokoisiin startup-yrityksiin hajautettuun tietojenkäsittelyyn ja tekoälyyn liittyvissä ongelmissa. Hän keskittyy syväoppimiseen, mukaan lukien NLP- ja tietokonenäköalueet. Hän auttaa asiakkaita tekemään korkean suorituskyvyn mallipäätelmiä Amazon SageMakerissa.
Jiahong Liu on ratkaisuarkkitehti NVIDIA:n Cloud Service Provider -tiimissä. Hän auttaa asiakkaita ottamaan käyttöön koneoppimis- ja tekoälyratkaisuja, jotka hyödyntävät NVIDIA:n nopeutettua tietojenkäsittelyä vastaamaan heidän koulutus- ja päättelyhaasteisiinsa. Vapaa-ajallaan hän nauttii origamista, tee-se-itse-projekteista ja koripallon pelaamisesta.
Kshitiz Gupta on NVIDIA:n ratkaisuarkkitehti. Hän nauttii pilviasiakkaiden kouluttamisesta NVIDIAn tarjoamista GPU-AI-tekniikoista ja heidän avustamisestaan heidän koneoppimis- ja syväoppimissovellustensa nopeuttamisessa. Työn ulkopuolella hän nauttii juoksemisesta, patikoinnista ja villieläinten katselusta.
- SEO-pohjainen sisällön ja PR-jakelu. Vahvista jo tänään.
- PlatoAiStream. Web3 Data Intelligence. Tietoa laajennettu. Pääsy tästä.
- Tulevaisuuden lyöminen Adryenn Ashley. Pääsy tästä.
- Lähde: https://aws.amazon.com/blogs/machine-learning/hosting-ml-models-on-amazon-sagemaker-using-triton-xgboost-lightgbm-and-treelite-models/
- :on
- :On
- :ei
- :missä
- $ YLÖS
- 1
- 100
- 11
- 13
- 200
- 23
- 24
- 7
- 8
- 9
- a
- kyky
- Meistä
- kiihdyttää
- kiihtyi
- kiihtyvä
- kiihdyttimiä
- pääsy
- Mukaan
- sen mukaisesti
- Tili
- Saavuttaa
- poikki
- lisätä
- Lisäksi
- lisä-
- osoite
- osoitteellinen
- hyväksymällä
- Jälkeen
- vastaan
- sopimukset
- AI
- algoritmi
- Kaikki
- määrärahat
- sallia
- mahdollistaa
- pitkin
- jo
- Myös
- Vaikka
- aina
- Amazon
- Amazon Sage Maker
- Amazon Web Services
- Amazon.com
- määrä
- an
- ja
- Kaikki
- api
- sovellukset
- sopiva
- arkkitehtuuri
- OVAT
- alueet
- perustelu
- Ryhmä
- keinotekoinen
- tekoäly
- AS
- avustaa
- At
- auto
- saatavissa
- välttää
- AWS
- taustaosa
- Balance
- perustua
- kemut
- perusta
- Koripallo
- BE
- koska
- tulevat
- ollut
- ennen
- alkaa
- takana
- alle
- hyödyttää
- PARAS
- Paremmin
- välillä
- suurempi
- Blogi
- elin
- sekä
- puskuri
- rakentaa
- Rakentaminen
- rakennettu
- mutta
- by
- C + +
- nimeltään
- CAN
- kortti
- tapaus
- tapauksissa
- Kategoria
- Aiheuttaa
- haasteet
- muuttaa
- ominaisuudet
- tarkastaa
- siru
- Valita
- valita
- Kaupunki
- luokka
- luokittelu
- asiakas
- asiakkaat
- pilvi
- koodi
- Pylväät
- KOM
- tulee
- tuleva
- Yhteinen
- tiedottaa
- Viestintä
- yhteisö
- yhteensopiva
- monimutkainen
- laskeminen
- tietokone
- Tietojenkäsittelyoppi
- Tietokoneen visio
- tietojenkäsittely
- Konfigurointi
- liitäntä
- Harkita
- harkittu
- kuluttaa
- kulutus
- Kontti
- Kontit
- sisältää
- sisältö
- kontrasti
- ohjaus
- Mukava
- Muuntaminen
- muuntaa
- Ydin
- vastaava
- Hinta
- kustannusten vähentäminen
- kustannussäästöjä
- kattaa
- luoda
- luotu
- luo
- kriteerit
- ratkaiseva
- Tällä hetkellä
- asiakassuhde
- Asiakkaat
- jaksoa
- Dallas
- tiedot
- Päivämäärä
- päivä
- sopimus
- päätös
- syvä
- syvä oppiminen
- syvempää
- oletusarvo
- oletusarvot
- Aste
- viivyttää
- vaativa
- vaatii
- Riippuen
- sijoittaa
- käyttöön
- levityspinnalta
- käyttöönotto
- syvyys
- Malli
- yksityiskohdat
- Määrittää
- määritetty
- määrittää
- määritetään
- kehittäjille
- ero
- eri
- jaettu
- hajautettu laskenta
- DIY
- do
- dokumentointi
- ei
- tekee
- verkkotunnuksia
- tehty
- kyyhky
- kaksi
- aikana
- kukin
- Aikaisemmin
- valistaa
- tehokkuus
- tehokkaasti
- myöskään
- korostaen
- mahdollistaa
- kannustaa
- loppu
- päätepiste
- Moottori
- Moottorit
- varmistaa
- varmistamalla
- yritys
- yrityksille
- Koko
- ympäristö
- virheet
- Jopa
- Joka
- esimerkki
- Esimerkit
- vaihtamalla
- odottaa
- odotettu
- Elämykset
- vienti
- tekijät
- melko
- Falls
- väärä
- Ominaisuus
- Ominaisuudet
- Fed
- ruokinta
- harvat
- Kuva
- filee
- Asiakirjat
- Löytää
- viimeistely
- Etunimi
- virtaus
- Keskittää
- keskittyy
- seurata
- seurannut
- jälkeen
- Jalanjälki
- varten
- muoto
- muoto
- löytyi
- Puitteet
- puitteet
- petos
- Ilmainen
- alkaen
- Lisäksi
- voitto
- general
- synnyttää
- saada
- Antaa
- tietty
- GPU
- suuresti
- Ryhmä
- Ryhmän
- ohjaus
- tapahtua
- Kova
- Palvelimet
- Olla
- he
- auttaa
- auttaa
- auttaa
- tätä
- korkean tason
- korkea suorituskyky
- korkeampi
- raidat
- hänen
- pitää
- pitää
- isäntä
- isännöi
- hotellit
- Miten
- Miten
- Kuitenkin
- HTML
- http
- HTTPS
- Satuttaa
- Identiteetti
- ids
- IDX
- if
- kuva
- Vaikutus
- Vaikutukset
- toteuttaa
- täytäntöön
- työkoneet
- tuonti
- in
- sisältää
- Mukaan lukien
- Kasvaa
- ilmaisee
- tiedot
- tietoa
- panos
- asentaa
- esimerkki
- ohjeet
- integraatio
- Älykkyys
- korko
- sisäinen
- tulee
- IT
- SEN
- jpg
- json
- vain
- Pitää
- avain
- laji
- Tietää
- suuri
- Suuret yritykset
- suurempi
- Viive
- uusin
- Layout
- OPPIA
- oppiminen
- vähiten
- Led
- laillinen
- vähemmän
- Taso
- tasot
- Vaikutusvalta
- kirjastot
- Kirjasto
- pitää
- RAJOITA
- linja
- Lista
- kuormitus
- logiikka
- looginen
- Pitkät
- kone
- koneoppiminen
- tehdä
- hoitaa
- monet
- maisterin
- ottelu
- max
- maksimi
- Saattaa..
- mekanismi
- Tavata
- kokous
- Muisti
- mainitsi
- Kauppias
- Metrics
- ehkä
- vaeltaa
- mielessä
- ML
- tila
- malli
- mallit
- Kuukausi
- lisää
- eniten
- Suosituin
- liikkua
- Monen mallin päätepiste
- moninkertainen
- täytyy
- nimi
- nimeäminen
- syntyperäinen
- Tarve
- tarpeet
- Uusi
- NLP
- Nro
- solmut
- muistikirja
- nyt
- numero
- numpy
- Nvidia
- saada
- of
- kampanja
- Tarjoukset
- usein
- on
- ONE
- yhdet
- vain
- avoimen lähdekoodin
- optimaalinen
- optimointi
- Optimoida
- optimoitu
- optimoimalla
- Vaihtoehto
- Vaihtoehdot
- or
- tilata
- organisaatioiden
- Järjestetty
- alun perin
- OS
- Muut
- muuten
- meidän
- ulos
- ulostulo
- ulkopuolella
- oma
- paketti
- pakkaus
- pandas
- Parallel
- parametri
- parametrit
- osallistuva
- erityinen
- Hyväksytty
- kulkee
- polku
- Suorittaa
- suorituskyky
- suorittaa
- lupa
- valokuvaus
- putki
- foorumi
- Platon
- Platonin tietotieto
- PlatonData
- pelaa
- Ole hyvä
- yletön
- politiikkaa
- politiikka
- pool
- Suosittu
- suosio
- mahdollinen
- mahdollisesti
- Kirje
- teho
- ennustaa
- Ennustettavissa
- ennusti
- ennustus
- Ennusteet
- aiemmin
- ensisijainen
- Pääasiallinen
- ongelmia
- prosessi
- Prosessit
- käsittely
- Jalostusteho
- prosessorit
- tuottaa
- tuotanto
- hankkeet
- asianmukainen
- Proto
- toimittaa
- mikäli
- toimittaja
- tarjoaa
- tarjoamalla
- Python
- pytorch
- satunnainen
- alainen
- pikemminkin
- raaka
- valmis
- todellinen maailma
- reaaliaikainen
- syistä
- suositella
- vähentää
- tarkoitettuja
- riippumatta
- alue
- liittyvä
- merkityksellinen
- korvata
- säilytyspaikka
- edustus
- edustavat
- edustaa
- pyyntö
- pyynnöt
- edellyttää
- tarvitaan
- vaatimukset
- Vaatii
- vastaus
- vastuullinen
- johtua
- tulokset
- Rooli
- ajaa
- juoksu
- s
- sagemaker
- SageMaker-johtopäätös
- sama
- Säästöt
- skaalautuva
- Asteikko
- skaalaus
- skenaariot
- aikataulutus
- tiede
- tutkijat
- scikit opittava
- pisteet
- Osa
- nähdä
- etsiä
- valittu
- lähettää
- vanhempi
- erillinen
- palvella
- palvelu
- Palveluntarjoaja
- Palvelut
- palvelevat
- setti
- asetus
- settings
- Muoto
- yhteinen
- shouldnt
- näyttää
- Näytä
- puoli
- merkittävästi
- samankaltainen
- Yksinkertainen
- single
- Koko
- koot
- So
- ratkaisu
- Ratkaisumme
- SOLVE
- Solving
- jonkin verran
- lähde
- erikoistunut
- erityinen
- määrittely
- määritelty
- viettää
- standardi
- Alkaa
- Aloita
- Startups
- Osavaltio
- Tila
- tasainen
- Vaihe
- Askeleet
- Levytila
- verkkokaupasta
- tallennettu
- suora
- jono
- rakenne
- onnistunut
- niin
- ehdottaa
- sopiva
- tuki
- Tuetut
- Tukee
- ottaa
- joukkue-
- tekniikat
- Technologies
- Elektroniikka
- kertoa
- ehdot
- kuin
- että
- -
- tiedot
- heidän
- Niitä
- sitten
- Siellä.
- Nämä
- ne
- asia
- tätä
- ne
- vaikka?
- kolmella
- kynnys
- suoritusteho
- aika
- että
- tänään
- yhdessä
- huipputaso
- perinteisesti
- koulutettu
- koulutus
- Siirtäminen
- Matkustaminen
- puu
- Trendit
- Triton
- totta
- kaksi
- tyyppi
- tyypit
- tyypillisesti
- ymmärtää
- ladattu
- Ladataan
- us
- käyttää
- käytetty
- käyttäjä
- käyttämällä
- hyödyntää
- Hyödyntämällä
- arvo
- arvot
- eri
- versio
- kautta
- visio
- W
- odottaa
- haluta
- oli
- katsomassa
- Tapa..
- we
- verkko
- verkkopalvelut
- HYVIN
- olivat
- Mitä
- kun
- aina kun
- onko
- joka
- vaikka
- tulee
- with
- sisällä
- ilman
- Referenssit
- työskenteli
- työntekijä
- toimii
- olisi
- XGBoost
- vuosi
- Voit
- Sinun
- zephyrnet
- Postinumero