Kuinka Veriff lyhensi käyttöönottoaikaa 80 % käyttämällä Amazon SageMakerin usean mallin päätepisteitä | Amazon Web Services

Kuinka Veriff lyhensi käyttöönottoaikaa 80 % käyttämällä Amazon SageMakerin usean mallin päätepisteitä | Amazon Web Services

Veriffi on henkilöllisyyden todennusalusta kumppani innovatiivisille kasvuhakuisille organisaatioille, mukaan lukien rahoituspalvelujen, FinTechin, krypton, pelien, liikkuvuuden ja verkkomarkkinapaikkojen edelläkävijät. Ne tarjoavat edistynyttä teknologiaa, jossa AI-pohjainen automaatio yhdistyy ihmisten palautteeseen, syvällisiin näkemyksiin ja asiantuntemukseen.

Kuinka Veriff lyhensi käyttöönottoaikaa 80 % käyttämällä Amazon SageMakerin usean mallin päätepisteitä | Amazon Web Services PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

Veriff tarjoaa todistetun infrastruktuurin, jonka avulla asiakkaat voivat luottaa käyttäjiensä identiteettiin ja henkilökohtaisiin ominaisuuksiin kaikissa asiakaspolun oleellisissa hetkissä. Veriffiin luottavat asiakkaat, kuten Bolt, Deel, Monese, Starship, Super Awesome, Trustpilot ja Wise.

Tekoälypohjaisena ratkaisuna Veriffin on luotava ja käytettävä kymmeniä koneoppimismalleja (ML) kustannustehokkaalla tavalla. Nämä mallit vaihtelevat kevyistä puupohjaisista malleista syväoppiviin tietokonenäkömalleihin, joiden on toimittava GPU:illa saavuttaakseen matala latenssi ja parantaakseen käyttökokemusta. Veriff lisää tällä hetkellä myös uusia tuotteita tarjontaansa, kohdistaen asiakkailleen hyperpersonoidun ratkaisun. Erilaisten mallien palveleminen eri asiakkaille lisää tarvetta skaalautuvalle mallinpalveluratkaisulle.

Tässä viestissä näytämme sinulle, kuinka Veriff standardoi mallin käyttöönoton työnkulkunsa käyttämällä Amazon Sage Makervähentää kustannuksia ja kehitysaikaa.

Infrastruktuuri ja kehityshaasteet

Veriffin taustaarkkitehtuuri perustuu mikropalvelumalliin, ja palvelut toimivat eri Kubernetes-klustereissa, joita isännöidään AWS-infrastruktuurissa. Tätä lähestymistapaa käytettiin alun perin kaikissa yrityksen palveluissa, mukaan lukien mikropalvelut, jotka käyttävät kalliita tietokonenäön ML-malleja.

Jotkut näistä malleista vaativat käyttöönottoa GPU-instanssissa. Tietoisena GPU-tuettujen ilmentymätyyppien suhteellisen korkeammista kustannuksista, Veriff kehitti a mukautettu ratkaisu Kubernetes jakaa tietyn grafiikkasuorittimen resurssit eri palvelukopioiden välillä. Yhdellä grafiikkasuorittimella on tyypillisesti tarpeeksi VRAM-muistia useiden Veriffin tietokonenäkömallien säilyttämiseen muistissa.

Vaikka ratkaisu kevensi GPU-kustannuksia, siihen liittyi myös rajoitus, jonka mukaan datatieteilijöiden oli ilmoitettava etukäteen, kuinka paljon GPU-muistia heidän mallinsa vaatisi. Lisäksi DevOpsia rasitettiin GPU-esiintymien manuaalisella provisiolla kysynnän mukaan. Tämä aiheutti käyttökustannuksia ja instanssien ylivarausta, mikä johti epäoptimaaliseen kustannusprofiiliin.

Grafiikkasuorittimen provisioinnin lisäksi tämä asennus vaati datatieteilijöitä myös rakentamaan kullekin mallille REST API -kääreen, jota tarvittiin tarjoamaan yleinen käyttöliittymä muille yrityksen palveluille ja kapseloimaan mallitietojen esi- ja jälkikäsittely. Nämä API:t vaativat tuotantotason koodia, mikä teki mallien tuotannosta datatutkijoille haastavaa.

Veriffin datatieteen alustan tiimi etsi vaihtoehtoisia tapoja tälle lähestymistavalle. Päätavoitteena oli tukea yrityksen datatieteilijöitä paremmassa siirtymisessä tutkimuksesta tuotantoon tarjoamalla yksinkertaisempia käyttöönottoputkia. Toissijaisena tavoitteena oli vähentää GPU-instanssien provisioinnin käyttökustannuksia.

Ratkaisun yleiskatsaus

Veriff tarvitsi uuden ratkaisun, joka ratkaisi kaksi ongelmaa:

  • Salli REST API -kääreiden rakentaminen ML-mallien ympärille helposti
  • Salli valmiiden GPU-ilmentymien kapasiteetin hallinta optimaalisesti ja, jos mahdollista, automaattisesti

Lopulta ML-alustan tiimi lähestyi käyttöä koskevaa päätöstä Sagemaker monen mallin päätepisteet (MME). Tämä päätös johtui MME:n NVIDIA-tuesta Triton-päätepalvelin (ML-keskeinen palvelin, jonka avulla on helppo kääriä malleja REST API:iksi; Veriff oli myös jo kokeillut Tritonia), sekä sen kyky hallita natiivisti GPU-ilmentymien automaattista skaalausta yksinkertaisten automaattisten skaalauskäytäntöjen avulla.

Veriffiin luotiin kaksi MME:tä, yksi lavastusta ja yksi tuotantoa varten. Tämän lähestymistavan avulla he voivat suorittaa testausvaiheita vaiheittaisessa ympäristössä vaikuttamatta tuotantomalleihin.

SageMaker MME:t

SageMaker on täysin hallittu palvelu, joka tarjoaa kehittäjille ja datatieteilijöille mahdollisuuden rakentaa, kouluttaa ja ottaa käyttöön ML-malleja nopeasti. SageMaker MME:t tarjoavat skaalautuvan ja kustannustehokkaan ratkaisun useiden mallien käyttöönottamiseksi reaaliaikaista päättelyä varten. MME:t käyttävät jaettua käyttösäiliötä ja resursseja, jotka voivat isännöidä kaikkia mallejasi kiihdytettyjen esiintymien, kuten GPU:iden, avulla. Tämä vähentää ylläpitokustannuksia maksimoimalla päätepisteiden käytön verrattuna yhden mallin päätepisteiden käyttöön. Se myös vähentää käyttöönoton yleiskustannuksia, koska SageMaker hallitsee mallien lataamista ja purkamista muistiin ja skaalaa niitä päätepisteen liikennemallien perusteella. Lisäksi kaikki SageMakerin reaaliaikaiset päätepisteet hyötyvät sisäänrakennetuista ominaisuuksista hallita ja valvoa malleja, kuten esim. varjomuunnelmia, automaattinen skaalaus, ja alkuperäisen integroinnin kanssa amazonin pilvikello (lisätietoja, katso CloudWatch-mittarit usean mallin päätepisteiden käyttöönotuksiin).

Räätälöidyt Triton-yhtyemallit

Veriff päätti käyttää Triton Inference Serveriä useista syistä, joista tärkeimmät olivat:

  • Sen avulla datatutkijat voivat rakentaa REST-sovellusliittymiä malleista järjestämällä mallin artefaktitiedostot vakiohakemistomuotoon (ei koodiratkaisua)
  • Se on yhteensopiva kaikkien tärkeimpien AI-kehysten (PyTorch, Tensorflow, XGBoost ja muiden) kanssa.
  • Se tarjoaa ML-kohtaisia ​​matalan tason ja palvelinoptimointeja, kuten dynaaminen erä pyynnöistä

Tritonin avulla datatieteilijät voivat ottaa mallien käyttöön helposti, koska heidän tarvitsee rakentaa vain muotoiltuja mallivarastoja koodin kirjoittamisen sijaan REST-sovellusliittymien rakentamiseen (Triton tukee myös Python mallit jos mukautettua päättelylogiikkaa tarvitaan). Tämä lyhentää mallin käyttöönottoaikaa ja antaa datatutkijoille enemmän aikaa keskittyä mallien rakentamiseen niiden käyttöönoton sijaan.

Toinen tärkeä Tritonin ominaisuus on, että sen avulla voit rakentaa malliyhtyeitä, jotka ovat malliryhmiä, jotka on ketjutettu yhteen. Näitä kokoonpanoja voidaan käyttää ikään kuin ne olisivat yksi Triton-malli. Veriff käyttää tällä hetkellä tätä ominaisuutta esikäsittely- ja jälkikäsittelylogiikan käyttöönottamiseksi jokaisessa ML-mallissa Python-malleja käyttäen (kuten aiemmin mainittiin), mikä varmistaa, että syöttötiedoissa tai mallin lähdöissä ei ole ristiriitoja, kun malleja käytetään tuotannossa.

Seuraavalta näyttää tyypillinen Triton-mallin arkisto tälle työmäärälle:

Kuinka Veriff lyhensi käyttöönottoaikaa 80 % käyttämällä Amazon SageMakerin usean mallin päätepisteitä | Amazon Web Services PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

- model.py tiedosto sisältää esi- ja jälkikäsittelykoodin. Koulutetun mallin painot ovat screen_detection_inferencer hakemisto, malliversion alla 1 (malli on tässä esimerkissä ONNX-muodossa, mutta se voi olla myös TensorFlow-, PyTorch-muotoinen tai jokin muu). Ensemble-mallin määritelmä on kohdassa screen_detection_pipeline hakemistoon, jossa vaiheiden väliset tulot ja lähdöt on kartoitettu asetustiedostoon.

Python-mallien suorittamiseen tarvittavat lisäriippuvuudet on kuvattu kohdassa a requirements.txt tiedosto, ja se on pakattava Conda-ympäristön rakentamiseksi (python_env.tar.gz). Lisätietoja on kohdassa Python-ajoajan ja kirjastojen hallinta. Myös Python-vaiheiden konfigurointitiedostojen on osoitettava python_env.tar.gz käyttäen EXECUTION_ENV_PATH Direktiivi.

Mallikansio on sitten pakattava TAR ja nimettävä uudelleen käyttämällä model_version.txt. Lopuksi tulos <model_name>_<model_version>.tar.gz tiedosto kopioidaan kohteeseen Amazonin yksinkertainen tallennuspalvelu (Amazon S3) ämpäri yhdistettynä MME:hen, jolloin SageMaker voi havaita ja palvella mallia.

Mallin versiointi ja jatkuva käyttöönotto

Kuten edellisestä osasta kävi ilmi, Triton-mallivaraston rakentaminen on yksinkertaista. Kaikkien sen käyttöönottoon tarvittavien vaiheiden suorittaminen on kuitenkin työlästä ja virhealtista, jos se suoritetaan manuaalisesti. Tämän ratkaisemiseksi Veriff rakensi monorepon, joka sisälsi kaikki mallit, jotka voidaan ottaa käyttöön MME:issä, joissa datatieteilijät tekevät yhteistyötä Gitflow-tyyppisessä lähestymistavassa. Tällä monorepolla on seuraavat ominaisuudet:

  • Sitä hallitaan käyttämällä Housut.
  • Pantsilla käytetään koodinlaatutyökaluja, kuten Black ja MyPy.
  • Jokaiselle mallille määritellään yksikkötestit, jotka tarkistavat, että mallin lähtö on tietyn mallin tulon odotettu lähtö.
  • Mallin painot tallennetaan mallivarastojen rinnalle. Nämä painot voivat olla suuria binääritiedostoja, joten DVC käytetään synkronoimaan ne Gitin kanssa versioidulla tavalla.

Tämä monorepo on integroitu jatkuvan integroinnin (CI) työkaluun. Seuraavat vaiheet suoritetaan jokaista uutta repoon tai uuteen malliin:

  1. Läpäise koodin laadun tarkistus.
  2. Lataa mallipainot.
  3. Rakenna Conda-ympäristö.
  4. Pyöritä Triton-palvelin Conda-ympäristön avulla ja käytä sitä yksikkötesteissä määritettyjen pyyntöjen käsittelyyn.
  5. Rakenna lopullinen malli TAR-tiedosto (<model_name>_<model_version>.tar.gz).

Nämä vaiheet varmistavat, että malleilla on käyttöönoton edellyttämä laatu, joten jokaisella repohaaraan tehdyllä työnnöllä tuloksena oleva TAR-tiedosto kopioidaan (toisessa CI-vaiheessa) vaiheittaiseen S3-alueeseen. Kun työntöjä tehdään päähaarassa, mallitiedosto kopioidaan tuotannon S3-ämpäriin. Seuraava kaavio kuvaa tätä CI/CD-järjestelmää.

Kuinka Veriff lyhensi käyttöönottoaikaa 80 % käyttämällä Amazon SageMakerin usean mallin päätepisteitä | Amazon Web Services PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.

Kustannus- ja käyttöönottonopeusedut

MME:iden avulla Veriff voi käyttää monorepo-lähestymistapaa mallien käyttöönottamiseksi tuotantoon. Yhteenvetona Veriffin uuden mallin käyttöönottotyönkulku koostuu seuraavista vaiheista:

  1. Luo haara monorepoon uudella mallilla tai malliversiolla.
  2. Määritä ja suorita yksikkötestejä kehityskoneessa.
  3. Työnnä haaraa, kun malli on valmis testattavaksi lavastusympäristössä.
  4. Yhdistä haara päähän, kun malli on valmis käytettäväksi tuotannossa.

Tämän uuden ratkaisun ansiosta mallin käyttöönotto Veriffissä on suoraviivainen osa kehitysprosessia. Uusien mallien kehitysaika on lyhentynyt 10 päivästä keskimäärin 2 päivään.

SageMakerin hallitun infrastruktuurin hallinta ja automaattinen skaalaus toivat Veriffille lisäetuja. He käyttivät InvocationsPerInstance CloudWatch-mittari skaalautuu liikennemallien mukaan ja säästää kustannuksissa luotettavuudesta tinkimättä. Mittarin kynnysarvon määrittämiseksi he suorittivat vaiheittaisen päätepisteen kuormitustestauksen löytääkseen parhaan kompromissin viiveen ja kustannusten välillä.

Otettuaan käyttöön seitsemän tuotantomallia MME:issä ja analysoituaan kulutusta, Veriff ilmoitti 75 %:n kustannussäästön GPU-mallin toiminnassa verrattuna alkuperäiseen Kubernetes-pohjaiseen ratkaisuun. Myös käyttökustannukset pienenivät, koska instanssien manuaalisen provisioinnin taakka poistui yhtiön DevOps-insinööreiltä.

Yhteenveto

Tässä viestissä tarkastelimme, miksi Veriff valitsi Sagemaker MME:t itsehallitun mallin käyttöönoton sijaan Kubernetesissa. SageMaker ottaa kantaa erittelemättömään raskaiden nostoihin, jolloin Veriff voi lyhentää mallin kehitysaikaa, lisätä suunnittelun tehokkuutta ja alentaa dramaattisesti reaaliaikaisten päätelmien kustannuksia säilyttäen samalla liiketoimintakriittisten toimintojensa vaatiman suorituskyvyn. Lopuksi esittelimme Veriffin yksinkertaisen mutta tehokkaan mallin käyttöönoton CI/CD-putkilinjan ja mallin versiointimekanismin, joita voidaan käyttää referenssitoteutuksena ohjelmistokehityksen parhaiden käytäntöjen ja SageMaker MME:iden yhdistämisessä. Löydät koodinäytteitä useiden mallien isännöinnistä käyttämällä SageMaker MME:itä GitHub.


Tietoja Tekijät

Kuinka Veriff lyhensi käyttöönottoaikaa 80 % käyttämällä Amazon SageMakerin usean mallin päätepisteitä | Amazon Web Services PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.Ricard Borràs on Senior Machine Learning Veriffissä, missä hän johtaa MLOps-työtä yrityksessä. Hän auttaa datatieteilijöitä rakentamaan nopeampia ja parempia AI/ML-tuotteita rakentamalla yritykseen Data Science Platformin ja yhdistämällä useita avoimen lähdekoodin ratkaisuja AWS-palveluihin.

Kuinka Veriff lyhensi käyttöönottoaikaa 80 % käyttämällä Amazon SageMakerin usean mallin päätepisteitä | Amazon Web Services PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.João Moura on AI/ML Specialist Solutions -arkkitehti AWS:ssä Espanjassa. Hän auttaa asiakkaita syväoppimismallien laajamittaisessa koulutuksessa ja päätelmien optimoinnissa sekä laajemmin laajojen ML-alustojen rakentamisessa AWS:lle.

Kuinka Veriff lyhensi käyttöönottoaikaa 80 % käyttämällä Amazon SageMakerin usean mallin päätepisteitä | Amazon Web Services PlatoBlockchain Data Intelligence. Pystysuuntainen haku. Ai.Miguel Ferreira työskentelee Sr. Solutions Architectina AWS:ssä Helsingissä. AI/ML on ollut elinikäinen kiinnostus, ja hän on auttanut useita asiakkaita integroimaan Amazon SageMakerin ML-työnkulkuihinsa.

Aikaleima:

Lisää aiheesta AWS-koneoppiminen