Mallin käyttöönotto koneoppimisessa (ML) on yhä monimutkaisempaa. Haluat ottaa käyttöön yhden ML-mallin lisäksi suuria ryhmiä ML-malleja, jotka esitetään kokonaistyönkulkuina. Nämä työnkulut koostuvat useista ML-malleista. Näiden ML-mallien tuottaminen on haastavaa, koska sinun on noudatettava erilaisia suorituskyky- ja latenssivaatimuksia.
Amazon Sage Maker tukee yhden esiintymän kokoonpanoja Triton-päätepalvelin. Tämän ominaisuuden avulla voit ajaa mallikokonaisuuksia, jotka sopivat yhteen esiintymään. Kulissien takana SageMaker hyödyntää Triton Inference Server -palvelinta hallitakseen kokonaisuutta kaikissa päätepisteen takana olevissa esiintymissä ja maksimoidakseen suorituskyvyn ja laitteiston käytön erittäin alhaisella (yksinumeroisella millisekunnin) päättelyviiveellä. Tritonin avulla voit myös valita laajasta valikoimasta tuettuja ML-kehyksiä (mukaan lukien TensorFlow, PyTorch, ONNX, XGBoost ja NVIDIA TensorRT) ja infrastruktuurin taustaohjelmia, mukaan lukien GPU:t, CPU:t ja AWS Inferencia.
Tämän SageMaker-ominaisuuden avulla voit optimoida työkuormasi välttämällä kalliita verkkoviiveitä ja hyödyntämällä laskenta- ja datapaikalisuuden etuja ensemble-johtopäätösputkien osalta. Tässä viestissä keskustelemme Triton Inference Serverin käytön eduista ja pohdimme, onko tämä oikea vaihtoehto työkuormituksellesi.
Ratkaisun yleiskatsaus
Triton Inference Server on suunniteltu antamaan tiimille mahdollisuus ottaa käyttöön, ajaa ja skaalata koulutettuja tekoälymalleja mistä tahansa kehyksestä missä tahansa GPU- tai CPU-pohjaisessa infrastruktuurissa. Lisäksi se on optimoitu tarjoamaan korkean suorituskyvyn mittakaavassa olevia päätelmiä ominaisuuksilla, kuten dynaaminen erä, samanaikaiset ajot, optimaalinen mallin konfigurointi, mallien kokoonpanoominaisuudet ja suoratoistotulojen tuki.
Työkuormissa tulee ottaa huomioon Tritonin tarjoamat ominaisuudet varmistaakseen, että heidän mallejaan voidaan palvella. Triton tukee useita suosittuja kehyksiä, kuten TensorFlow, PyTorch, ONNX, XGBoost ja NVIDIA TensorRT. Triton tukee myös erilaisia taustaohjelmia joita tarvitaan, jotta algoritmit toimivat oikein. Sinun tulee varmistaa, että nämä taustajärjestelmät tukevat mallejasi, ja jos taustaohjelma ei tue, Triton antaa sinun ottaa käyttöön omasi ja integroida sen. Sinun tulee myös varmistaa, että algoritmiversiosi on tuettu, sekä varmistaa, että vastaava taustaohjelma hyväksyy mallin artefaktit. Tarkistaaksesi, tuetaanko tiettyä algoritmiasi, katso Triton Inference Server -taustaohjelma luettelo NVIDIA:n ylläpitämistä natiivisti tuetuista taustajärjestelmistä.
Joissakin tapauksissa mallisi tai mallikokonaisuutesi eivät välttämättä toimi Tritonissa ilman lisäponnistusta, esimerkiksi jos algoritmillesi ei ole natiivisti tuettua taustaohjelmaa. On myös muita huomioitavia seikkoja, kuten hyötykuorman muoto ei ehkä ole ihanteellinen, varsinkin kun hyötykuorman koko saattaa olla suuri pyyntöösi nähden. Kuten aina, sinun tulee vahvistaa suorituskykysi näiden työkuormien käyttöönoton jälkeen varmistaaksesi, että odotuksesi täyttyvät.
Otetaan kuvan luokittelun hermoverkkomalli ja katsotaan kuinka voimme nopeuttaa työtaakkaamme. Tässä esimerkissä käytämme NVIDIA DALI -taustajärjestelmää nopeuttamaan esikäsittelyämme kokonaisuutemme yhteydessä.
Luo Triton-mallikokonaisuuksia
Triton Inference Server yksinkertaistaa tekoälymallien käyttöönottoa mittakaavassa. Triton Inference Serverin mukana tulee kätevä ratkaisu, joka yksinkertaistaa esi- ja jälkikäsittelyputkien rakentamista. Triton Inference Server -alusta tarjoaa ensemble-schedulerin, jonka avulla voit rakentaa johtamisprosessiin osallistuvien ensemble-mallien liukuhihnaa varmistaen samalla tehokkuuden ja optimoinnin suorituskyvyn.
Triton Inference Server palvelee malleja mallivarastoista. Katsotaanpa DALI-esikäsittelymallin, TensorFlow-aloitusmallin V3-mallin ja mallikokonaisuuden sisältävän ensemble-mallin mallivaraston asettelua. Jokainen alihakemisto sisältää vastaavien mallien arkistotiedot. The config.pbtxt
tiedosto kuvaa mallien mallikokoonpanon. Jokaisessa hakemistossa on oltava yksi numeerinen alikansio mallin kutakin versiota kohti, ja sitä ajaa erityinen Tritonin tukema taustaohjelma.
NVIDIA DALI
Tässä viestissä käytämme NVIDIA Data Loading Library (DALI) -mallia esikäsittelymallina malliryhmässämme. NVIDIA DALI on kirjasto tietojen lataamista ja esikäsittelyä varten syväoppimissovellusten nopeuttamiseksi. Se tarjoaa kokoelman optimoituja rakennuspalikoita kuva-, video- ja äänidatan lataamista ja käsittelyä varten. Voit käyttää sitä kannettavana korvikkeena sisäänrakennetuille tiedonlataajille ja dataiteraattojille suosituissa syväoppimiskehyksissä.
Seuraava koodi näyttää DALI-taustajärjestelmän mallikokoonpanon:
Alkuperäinen V3 malli
Tässä viestissä näytämme, kuinka DALIa käytetään mallikokonaisuudessa, jossa on Inception V3. Inception V3 TensorFlow esiopetettu malli tallennetaan GraphDef-muotoon yhtenä tiedostona nimeltä model.graphdef
. config.pbtxt
tiedosto sisältää tietoja mallin nimestä, alustasta, max_batch_size
sekä panos- ja tuotossopimukset. Suosittelemme asettamaan max_batch_size
kokoonpano pienemmäksi kuin alkuperäisen V3-mallin eräkoko. Tarratiedostossa on luokkatunnisteet 1,000 XNUMX eri luokalle. Kopioimme aloitusluokittelumallin tarrat kohteeseen inception_graphdef
mallivaraston hakemistosta. Tarratiedosto sisältää 1,000 XNUMX luokkatunnistetta IMAGEnet luokituksen tietojoukko.
Triton-yhtye
Seuraava koodi näyttää DALI-esikäsittelyn ja kuvan luokituksen kokonaismallin mallikonfiguraation:
Luo SageMaker-päätepiste
SageMaker-päätepisteet mahdollistaa reaaliaikaisen isännöinnin, jossa vaaditaan millisekunnin vasteaika. SageMaker ottaa mallin isännöinnin hallinnan erittelemättömän raskaan noston ja sillä on kyky skaalata automaattisesti. Lisäksi tarjolla on myös useita ominaisuuksia, kuten useiden malliesi varianttien isännöinti, mallien A/B-testaus, integrointi amazonin pilvikello saada mallin suorituskyvyn havaittavuus ja mallin ajautumisen seuranta.
Luodaan SageMaker-malli mallin artefakteista, joihin lähetimme Amazonin yksinkertainen tallennuspalvelu (Amazon S3).
Seuraavaksi tarjoamme myös ylimääräisen 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 tapauksissa, joissa käytät yhtä mallia. 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.
Edellisellä mallilla luomme päätepisteen konfiguraation, jossa voimme määrittää päätepisteeseen haluttujen esiintymien tyypin ja määrän:
Käytämme tätä päätepistemääritystä uuden SageMaker-päätepisteen luomiseen ja odotamme käyttöönoton päättymistä. Tila muuttuu InServiceksi, kun käyttöönotto onnistuu.
Päätelmän hyötykuorma
Syötteen hyötykuorman kuva kulkee esikäsittelyn DALI-liukuhihnan läpi ja sitä käytetään Triton Inference Serverin tarjoamassa ensemble-skelderissä. Rakennamme päätelmäpäätepisteeseen välitettävän hyötykuorman:
Ensemble-päätelmä
Kun päätepiste on käynnissä, voimme käyttää esimerkkikuvaa johtopäätöspyynnön suorittamiseen käyttämällä JSON-tiedostomuotoa. Päättelypyyntömuodossa Triton käyttää KFServing-yhteisön standardipäätelmäprotokollia.
Kanssa binary+json
-muodossa, meidän on määritettävä pyynnön metatietojen pituus otsikossa, jotta Triton voi jäsentää binaarisen hyötykuorman oikein. Tämä tehdään käyttämällä mukautettua Content-Type-otsikkoa application/vnd.sagemaker-triton.binary+json;json-header-size={}
.
Tämä on eri asia kuin an Inference-Header-Content-Length
otsikko erillisellä Triton-palvelimella, koska mukautetut otsikot eivät ole sallittuja SageMakerissa.
Tritonclient-paketti tarjoaa apumenetelmiä hyötykuorman luomiseen ilman, että sinun tarvitsee tietää spesifikaation yksityiskohtia. Käytämme seuraavia menetelmiä muuntaaksemme päättelypyyntömme binäärimuotoon, joka tarjoaa pienemmät viiveet päätelmille. Katso GitHub muistikirja täytäntöönpanon yksityiskohtia varten.
Yhteenveto
Tässä viestissä esittelimme, kuinka voit tuottaa mallikokonaisuuksia, jotka toimivat yhdessä esiintymässä SageMakerissa. Tämä suunnittelumalli voi olla hyödyllinen minkä tahansa esi- ja jälkikäsittelylogiikan yhdistämisessä päättelyennusteiden kanssa. SageMaker käyttää Tritonia ensemble-päätelmän suorittamiseen yksittäisessä säilössä esiintymässä, joka tukee kaikkia tärkeimpiä kehyksiä.
Katso lisää näytteitä SageMakerin Triton-yhtyeistä osoitteesta GitHub repo. Kokeile!
Tietoja Tekijät
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ä.
Vikram Elango on vanhempi AI/ML Specialist Solutions -arkkitehti Amazon Web Servicesissä Virginiassa Yhdysvalloissa. Vikram auttaa rahoitus- ja vakuutusalan asiakkaita suunnittelu- ja ajatusjohtajuudella rakentamaan ja ottamaan käyttöön koneoppimissovelluksia mittakaavassa. Hän keskittyy tällä hetkellä luonnollisen kielen käsittelyyn, vastuulliseen tekoälyyn, päätelmien optimointiin ja ML:n skaalaukseen koko yrityksessä. Vapaa-ajallaan hän nauttii matkustamisesta, vaeltamisesta, ruoanlaitosta ja telttailusta perheensä kanssa.
Saurabh Trikande on Amazon SageMaker Inferencen -tuotepäällikkö. Hän on intohimoinen asiakkaiden kanssa työskentelyyn, ja häntä motivoi tavoite demokratisoida koneoppimista. Hän keskittyy ydinhaasteisiin, jotka liittyvät monimutkaisten ML-sovellusten käyttöönottoon, usean vuokralaisen ML-malleihin, kustannusten optimointiin ja syvän oppimismallien käyttöönoton helpottamiseen. Vapaa-ajallaan Saurabh nauttii vaeltamisesta, innovatiivisten teknologioiden oppimisesta, TechCrunchien seuraamisesta ja perheensä kanssa viettämisestä.
- AI
- ai taide
- ai taiteen generaattori
- ai robotti
- Amazon Sage Maker
- tekoäly
- tekoälyn sertifiointi
- tekoäly pankkitoiminnassa
- tekoäly robotti
- tekoälyrobotit
- tekoälyohjelmisto
- AWS Syvän oppimisen AMI: t
- AWS-koneoppiminen
- blockchain
- blockchain-konferenssi ai
- coingenius
- keskustelullinen tekoäly
- kryptokonferenssi ai
- dall's
- syvä oppiminen
- google ai
- koneoppiminen
- Platon
- plato ai
- Platonin tietotieto
- Platon peli
- PlatonData
- platopeliä
- mittakaava ai
- syntaksi
- Tekniset ohjeet
- zephyrnet