Logz.io on AWS Partner Network (APN) Advanced Technology Partner AWS-osaaminen DevOps-, Security- ja Data & Analytics -aloilla. Logz.io tarjoaa ohjelmistona palveluna (SaaS) havainnointialustan, joka perustuu luokkansa parhaisiin avoimen lähdekoodin ohjelmistoratkaisuihin loki-, mittaus- ja jäljitysanalytiikkaan. Asiakkaat lähettävät Logz.iolle yhä enemmän tietoa eri tietolähteistä hallitakseen sovellusten ja palveluidensa kuntoa ja suorituskykyä. Se voi olla ylivoimaista uusille käyttäjille, jotka haluavat navigoida ajan mittaan rakennetuissa erilaisissa kojelaudoissa, käsitellä erilaisia hälytysilmoituksia ja yhdistää pisteitä tuotantoongelmien vianmäärityksessä.
Keskimääräinen havaitsemisaika (MTTD) ja keskimääräinen havaitsemisaika (MTTR) ovat keskeisiä mittareita asiakkaillemme. Ne lasketaan mittaamalla aikaa, jonka alustamme käyttäjä alkaa tutkia ongelmaa (kuten tuotantopalvelun alasajoa) siihen pisteeseen, kun hän lopettaa tiettyyn tutkimukseen liittyvien toimien suorittamisen alustalla.
Auttaakseen asiakkaita vähentämään MTTD:tä ja MTTR:ää Logz.io siirtyy koneoppimiseen (ML) tarjotakseen suosituksia asiaankuuluvista kojelaudoista ja kyselyistä sekä suorittaakseen poikkeamien havaitsemisen itseoppimisen avulla. Tämän seurauksena keskivertokäyttäjä saa koko yrityksensä kootun kokemuksen hyödyntäen monien viisautta. Huomasimme, että ratkaisumme voi vähentää MTTR:ää jopa 20 %.
MTTD:n pienentyessä käyttäjät voivat tunnistaa ongelman ja ratkaista sen nopeammin. Tietojen semanttinen kerros sisältää semantiikan tutkimuksen aloittamista ja lopettamista varten sekä jokaisen käyttäjän tietyn hälytyksen suhteen tekemän toiminnon suosion.
Tässä viestissä jaamme kuinka Logz.io käytti Amazon Sage Maker vähentääksemme aikaa ja vaivaa proof of concept (POC), kokeilujen tekemiseen tutkimuksesta tuotannon arviointiin ja miten pienensimme tuotantopäätelmäkustannuksiamme.
Haaste
Ennen kuin Logz.io käytti SageMakeria, aika tutkimuksen ja POC-testauksen ja tuotantokokeiden välillä oli melko pitkä. Tämä johtui siitä, että meidän piti luoda Spark-työpaikkoja tietojen keräämiseksi, puhdistamiseksi ja normalisoimiseksi. DevOps vaati tämän työn lukeakseen jokaisen tietolähteen. DevOps ja tietotekniikan taidot eivät kuulu ML-tiimiimme, ja tämä aiheutti suurta riippuvuutta tiimien välillä.
Toinen haaste oli tarjota tuotteillemme ML-johtopäätöspalvelua ja samalla saavuttaa optimaalinen kustannus-suorituskykysuhde. Optimaalinen skenaariomme on tukea mahdollisimman monia malleja laskentayksikölle ja samalla tarjota asiakkaille korkea samanaikaisuus useiden mallien kanssa. Meillä oli joustavuutta päättelyajassamme, koska johtopäätöspalvelun tietovirran ensimmäinen ikkunamme on 5 minuutin lokiämpäri.
Tutkimusvaihe
Datatiede on iteratiivinen prosessi, joka vaatii tutkimukselle interaktiivisen kehitysympäristön, joka validoi datan jokaisessa iteraatiossa ja tietojenkäsittelyssä. Siksi kannustamme ML-tutkijoitamme käyttämään muistikirjoja.
Kiihdyttääksemme iterointisykliä halusimme testata kannettavien tietokoneidemme koodia todellisilla tuotantotiedoilla samalla, kun käytämme sitä mittakaavassa. Lisäksi halusimme välttää DevOpsin ja tietotekniikan pullonkaulan tuotannon alkutestin aikana, samalla kun meillä oli mahdollisuus tarkastella ulostuloja ja yrittää arvioida koodin ajoaikaa.
Tämän toteuttamiseksi halusimme antaa datatieteen tiimillemme täyden hallinnan ja päästä päähän -vastuun tutkimuksesta tuotannon ensimmäiseen testaukseen. Tarvitsimme niitä hakemaan tietoja helposti säilyttäen samalla tietojen käyttöoikeuksien hallinnan ja valvomalla tätä pääsyä. Heidän täytyi myös ottaa mukautetut POC-kannettavat helposti käyttöön tuotantoon skaalautuvalla tavalla ja samalla valvoa ajonaikaa ja odotettuja kustannuksia.
Arviointivaihe
Tämän vaiheen aikana arvioimme muutamia ML-alustoja tukeaksemme sekä koulutus- että palveluvaatimuksia. Huomasimme, että SageMaker on sopivin käyttötapauksillemme, koska se tukee sekä koulutusta että päätelmiä. Lisäksi se on muokattavissa, joten voimme räätälöidä sen haluamamme tutkimusprosessin mukaan.
Aluksi aloitimme paikallisista muistikirjoista ja testasimme erilaisia kirjastoja. Törmäsimme ongelmiin massiivisten tietojen nostamisessa tuotannosta. Myöhemmin olimme jumissa mallinnusvaiheessa, joka kesti useita tunteja paikallisella koneella.
Arvioimme monia ratkaisuja ja valitsimme lopulta seuraavan arkkitehtuurin:
- DataPlate – Avoimen lähdekoodin versio DataPlate auttoi meitä keräämään ja yhdistämään tietojamme helposti Sparkimme avulla Amazonin EMR klustereita yksinkertaisella SQL:llä ja valvoa tietojen käyttöä
- SageMaker-muistikirjan ilmentymä ja käsittelytyöt – Tämä auttoi meitä ajon skaalautuvuuden sekä konetyyppien ja ML-kehysten joustavuuden kanssa samalla kun teimme yhteistyötä koodimme kanssa Git-yhteyden kautta
Tutkimusvaiheen ratkaisuarkkitehtuuri
Seuraava kaavio havainnollistaa tutkimusvaiheen ratkaisuarkkitehtuuria ja koostuu seuraavista osista:
- SageMaker muistikirjat – Datatieteilijät käyttävät näitä kannettavat tietokoneet suorittamaan tutkimustaan.
- AWS Lambda -toiminto - AWS Lambda on palvelimeton ratkaisu, joka suorittaa käsittelytyön pyynnöstä. Työ käyttää Docker-säilöä kannettavan tietokoneen kanssa, jonka haluamme suorittaa kokeilumme aikana, sekä kaikkien yleisten tiedostojemme kanssa, joiden on tuettava muistikirjaa (
requirements.txt
ja monikäsittelytoimintojen koodi erillisessä muistikirjassa). - Amazon ECR - Amazonin elastisten säiliörekisteri (Amazon ECR) varastoi Docker-konttiamme.
- SageMaker-työ – Voimme ajaa tämän tietojenkäsittelyn työ missä tahansa ML-koneessa, ja se käyttää muistikirjaamme parametrien kanssa.
- DataPlate – Tämä palvelu auttaa meitä käyttämään SQL:ää ja liittymään useisiin tietolähteisiin helposti. Se kääntää sen Spark-koodiksi ja optimoi sen samalla, kun se valvoo tietojen käyttöä ja auttaa vähentämään tietomurtoja. Xtra-versio tarjosi vielä enemmän ominaisuuksia.
- Amazonin EMR – Tämä palvelu suorittaa datapoimimme työkuormina Sparkissa ja ottaa yhteyttä kaikkiin tietoresursseihimme.
SageMaker-kannettavan ilmentymän elinkaaren avulla voimme hallita kannettavan tietokoneen enimmäisajoaikaa käyttämällä autostop.py
sapluuna skriptejä.
ML-kehysten testaamisen jälkeen valitsimme SageMaker MXNet -ytimen klusterointi- ja luokitusvaiheihimme.
Testaaksemme kannettavan tietokoneen koodia tuotantotiedoissamme suoritimme kannettavan kapseloimalla sen Dockerin kautta Amazon ECS:ssä ja suoritimme sen prosessointityönä varmistaaksemme maksimikäyttöajan erityyppisissä koneissa.
Docker-säilö auttaa myös meitä jakamaan resursseja kannettavien testien kesken. Joissakin tapauksissa muistikirja kutsuu muita kannettavia käyttämään moniprosessia jakamalla suuret datakehykset pienempiin tietokehyksiin, jotka voivat toimia samanaikaisesti jokaisella vCPU:lla suuressa konetyypissä.
Reaaliaikainen tuotantopäätösratkaisu
Tutkimusvaiheessa käytimme Parkettia Amazonin yksinkertainen tallennuspalvelu (Amazon S3) -tiedostot suositusten säilyttämiseksi. Nämä kulutetaan kerran päivässä suunnitteluputkistamme, jotta suositukset voidaan liittää hälytysmekanismiimme.
Tiekarttamme vaatii kuitenkin korkeamman virkistystaajuuden ratkaisun, eikä kerran päivässä vetäminen riitä pitkällä tähtäimellä, sillä haluamme antaa suosituksia myös tutkimuksen aikana.
Tämän ratkaisun toteuttamiseksi mittakaavassa testasimme useimpia SageMaker-päätepisteratkaisuja poikkeamien havaitsemistutkimuksessamme. Testasimme 500 esivalmistettua mallia yhdellä erityyppisellä päätepistekoneella ja käytimme samanaikaisia monisäikeisiä asiakkaita suorittamaan pyyntöjä päätepisteeseen. Mittasimme vasteajan, suorittimen, muistin ja muita mittareita (lisätietoja on kohdassa Seuraa Amazon SageMakeria Amazon CloudWatch -sovelluksella). Huomasimme, että usean mallin päätepiste sopii täydellisesti käyttötapauksillemme.
Usean mallin päätepiste voi vähentää kustannuksiamme dramaattisesti verrattuna yhteen päätepisteeseen tai jopa Kubernetesiin käyttää Flask- (tai muita Python-verkkopalveluja). Ensimmäinen oletuksemme oli, että meidän on tarjottava jokaiselle asiakkaalle yksi päätepiste, jossa käytetään 4 vCPU:n pientä konetta, ja pyydettävä keskimäärin neljää erillistä mallia, koska jokainen vCPU palvelee yhtä mallia. Monen mallin päätepisteen avulla voisimme yhdistää useampia asiakkaita yhteen usean päätepisteen koneeseen.
Meillä oli malli- ja koodaustiedostot asiakasta kohden, ja kuormitustestien jälkeen päätimme, että voimme palvella 50 asiakasta, joista jokainen käyttää 10 mallia ja jopa pienintä ml.t2.medium-instanssia ratkaisuissamme.
Tässä vaiheessa harkitsimme käyttöä usean mallin päätepisteet. Usean mallin päätepisteet tarjoavat skaalautuvan ja kustannustehokkaan ratkaisun useiden mallien käyttöönottamiseksi, jolloin voit isännöidä useita malleja yhdellä päättelysäilillä. Tämä vähentää isännöintikustannuksia parantamalla päätepisteiden käyttöä verrattuna useiden pienten yhden mallin päätepisteiden käyttöön, joista jokainen palvelee yhtä asiakasta. Se myös vähentää käyttöönoton yleiskustannuksia, koska SageMaker hallitsee mallien lataamista muistiin ja skaalaa niitä niihin suuntautuvien liikennemallien perusteella.
Lisäksi usean mallin päätepisteen etuna on, että jos sinulla on korkea päättelyaste tietyiltä asiakkailta, sen kehys säilyttää viimeiset mallit muistissa suorituskyvyn parantamiseksi.
Kun arvioimme kustannukset käyttämällä usean mallin päätepisteitä verrattuna vakiopäätepisteisiin, huomasimme, että se voisi mahdollisesti johtaa noin 80 prosentin kustannusten alenemiseen.
Lopputulos
Tässä osiossa tarkastellaan prosessin vaiheita ja tuloksia.
Käytämme elinkaarimuistikirjan konfiguraatiota mahdollistaaksemme kannettavien käyttämisen prosessointitöinä kapseloimalla muistikirjan Docker-säilöön, jotta koodi voidaan vahvistaa nopeammin ja käyttää automaattista pysäytysmekanismia:
Kloonaamme sagemaker-run-notebook GitHub-projekti ja lisää seuraava säilöön:
- Pip-vaatimukset
- Mahdollisuus käyttää muistikirjoja kannettavasta tietokoneesta, mikä mahdollistaa usean käsittelyn, jotta voimme hyödyntää kaikki ml.m5.12xlarge ilmentymäytimet
Tämän ansiosta voimme suorittaa työnkulkuja, jotka koostuvat monista muistikirjoista, jotka toimivat käsittelytöinä koodirivillä, ja samalla määritämme suoritettavan ilmentymän tyypin.
Koska voimme lisätä muistikirjaan parametreja, voimme skaalata prosessointiamme suorittamalla tietoja samanaikaisesti eri kellonaikoina, päivinä tai kuukausina tietojen hakemiseksi ja käsittelemiseksi.
Voimme myös luoda aikataulutöitä, jotka käyttävät muistikirjoja (ja jopa rajoittaa suoritusaikaa).
Voimme myös tarkkailla viimeisiä ajoja ja niiden yksityiskohtia, kuten käsittelyaikaa.
Säiliössä käytettävän paperitehtaan avulla voimme tarkastella jokaisen ajon tuotoksia, mikä auttaa meitä virheenkorjauksessa tuotannossa.
Kannettavien tulosteiden arvostelumme on tavallisen vain luku -muistikirjan muodossa.
Monikäsittelyn käyttö auttaa meitä skaalaamaan jokaisen kannettavan tietokoneen käsittelyn ja hyödyntämään sen kaikkia ydintä. Loimme muihin muistikirjoihin toimintoja, jotka voivat tehdä raskaan käsittelyn, kuten seuraavat:
- Explode JSONit
- Etsi tärkeitä rivejä DataFramesta, kun päämuistikirja jakaa DataFramen
#cpu-cores
elementtejä - Suorita klusterointitoimintoja hälytystyyppikohtaisesti samanaikaisesti
Lisäämme sitten nämä toiminnalliset muistikirjat säiliöön, joka suorittaa muistikirjaa käsittelytyönä. Katso seuraava Docker-tiedosto (huomaa COPY-komennot):
tulokset
Tutkimusvaiheessa arvioimme mahdollisuutta käyttää muistikirjojamme samalla tavalla kuin kokeilla ja arvioida, kuinka koodimme toimii kaikessa oleellisessa datassamme, ei vain näytteessä tiedoista. Huomasimme, että muistikirjojen kapseloiminen prosessointitöiden avulla voi sopia meille hyvin, koska meidän ei tarvitse kirjoittaa koodia uudelleen ja voimme hyödyntää AWS:n laskenta- ja muistioptimoituja instansseja ja seurata prosessin tilaa helposti.
Päätelmäarvioinnin aikana arvioimme erilaisia SageMaker-päätepisteratkaisuja. Huomasimme, että usean mallin päätepisteen käyttö voi auttaa meitä palvelemaan noin 50 asiakasta, joista jokaisella on useita (noin 10) mallia yhdessä esiintymässä, mikä voi täyttää alhaisen viiveen rajoituksemme ja säästää siten jopa 80 % kustannuksista. .
Tämän ratkaisuarkkitehtuurin avulla pystyimme pienentämään asiakkaidemme MTTR-arvoa, joka on tärkein mittari alustamme menestyksen mittaamiseksi. Se lyhentää kokonaisaikaa vastaamisesta hälytyslinkkiimme, joka kuvaa järjestelmissäsi olevaa ongelmaa, siihen, kun olet lopettanut ongelman tutkimisen alustallamme. Tutkimusvaiheessa mittaamme käyttäjien toimintaa ML-suositusratkaisumme kanssa ja ilman. Tämä auttaa meitä antamaan suosituksia parhaista toimista tietyn ongelman ratkaisemiseksi nopeammin ja tunnistamaan poikkeamat ongelman todellisen syyn tunnistamiseksi.
Johtopäätös ja seuraavat vaiheet
Tässä viestissä jaoimme kuinka Logz.io käytti SageMakeria MTTD:n ja MTTR:n parantamiseen.
Seuraavana vaiheena harkitsemme ratkaisun laajentamista seuraavilla ominaisuuksilla:
Kannustamme sinua kokeilemaan SageMaker muistikirjat. Jos haluat lisää esimerkkejä, katso SageMaker esimerkkejä GitHub reposta.
Tietoja Tekijät
Amit Gross johtaa Logz.ion tutkimusosastoa, joka vastaa kaikkien Logz.io-tuotteiden tekoälyratkaisuista tutkimusvaiheesta integraatiovaiheeseen. Ennen Logz.iota Amit on johtanut sekä tietotieteen että tietoturvan tutkimusryhmiä Here inc.:ssä. ja Cellebrite Inc. Amitilla on tietojenkäsittelytieteen maisteri Tel-Avivin yliopistosta.
Yaniv Vaknin on koneoppimisen asiantuntija Amazon Web Servicesissä. Ennen AWS:ää Yaniv toimi johtavissa tehtävissä AI-startupeissa ja Enterprisessa, mukaan lukien Dipsee.ai:n perustaja ja toimitusjohtaja. Yaniv työskentelee AWS-asiakkaiden kanssa hyödyntääkseen koneoppimisen tehoa todellisten tehtävien ratkaisemiseksi ja arvon saamiseksi. Vapaa-ajallaan Yaniv nauttii jalkapallon pelaamisesta poikiensa kanssa.
Eitan Sela on koneoppimisen asiantuntijaratkaisujen arkkitehti Amazon Web Services -palvelussa. Hän työskentelee AWS-asiakkaiden kanssa tarjotakseen ohjausta ja teknistä tukea, mikä auttaa heitä rakentamaan ja käyttämään koneoppimisratkaisuja AWS:ssä. Vapaa-ajallaan Eitan nauttii lenkkeilystä ja uusimpien koneoppimisartikkelien lukemisesta.
- '
- &
- 100
- 84
- kiihdyttää
- pääsy
- käyttöoikeuksien hallinta
- Mukaan
- poikki
- Toiminta
- toimet
- Advanced Technology
- Etu
- Kumppanit
- AI
- Kaikki
- Amazon
- Amazon Sage Maker
- Amazon Web Services
- keskuudessa
- Analytics
- poikkeavuuden havaitseminen
- Apache
- sovellukset
- arkkitehtuuri
- artikkelit
- keskimäärin
- AWS
- perusta
- PARAS
- Big Data
- rikkomisesta
- Vika
- rakentaa
- tapauksissa
- Aiheuttaa
- aiheutti
- toimitusjohtaja
- haaste
- muuttaa
- asiakkaat
- Perustaja
- koodi
- Yhteinen
- yritys
- noudattaminen
- Laskea
- Tietojenkäsittelyoppi
- tietojenkäsittely
- ehto
- Konfigurointi
- Liitännät
- Kontti
- sisältää
- jatkaa
- tekijänoikeus
- kustannukset
- voisi
- Asiakkaat
- tiedot
- tietojen käyttö
- Tietojen rikkominen
- tietojenkäsittely
- tietojenkäsittely
- päivä
- Kysyntä
- käyttöönotto
- Detection
- Kehitys
- DevOps
- eri
- jaettu
- Satamatyöläinen
- Telakkakontti
- alas
- aikana
- helposti
- EBS
- kaiku
- kannustaa
- päätepiste
- Tekniikka
- yritys
- ympäristö
- varustettu
- arvio
- esimerkki
- teloitus
- laajenee
- experience
- kokeilu
- vienti
- nopeampi
- Ominaisuudet
- Vihdoin
- Etunimi
- sovittaa
- Joustavuus
- seurata
- muoto
- löytyi
- Puitteet
- koko
- tehtävät
- mennä
- GitHub
- suuri
- ottaa
- terveys
- auttaa
- auttaa
- tätä
- Korkea
- hotellit
- Miten
- HTTPS
- tunnistaa
- kuva
- toteuttaa
- parantaminen
- Inc.
- Mukaan lukien
- tiedot
- integraatio
- vuorovaikutteinen
- Internet
- tutkia
- tutkimus
- kysymykset
- IT
- Job
- Työpaikat
- yhdistää
- avain
- Kubernetes
- Kieli
- suuri
- uusin
- johtaa
- Johto
- johtava
- oppiminen
- Lisenssi
- Licensed
- linja
- LINK
- kuormitus
- paikallinen
- Pitkät
- näköinen
- koneoppiminen
- Koneet
- johto
- mitata
- keskikokoinen
- Metrics
- ML
- malli
- mallintaminen
- mallit
- seuranta
- kk
- lisää
- eniten
- tarvitaan
- verkko
- kannettavat tietokoneet
- Tarjoukset
- avata
- Vaihtoehto
- tilata
- Muut
- kumppani
- kumppaniverkosto
- suorituskyky
- vaihe
- foorumi
- Platforms
- PoC
- teho
- Ongelma
- prosessi
- tuotanto
- Tuotteemme
- Ohjelma
- projekti
- todiste
- todiste käsitteestä
- toimittaa
- vetämällä
- Python
- Lukeminen
- todellinen maailma
- reaaliaikainen
- vähentää
- vaatimukset
- tutkimus
- Esittelymateriaalit
- vastaus
- arviot
- ajaa
- juoksu
- SaaS
- sagemaker
- skaalautuvuus
- Asteikko
- skaalaus
- tiede
- tutkijat
- turvallisuus
- semantiikka
- serverless
- Palvelut
- palvelevat
- setti
- asetus
- Jaa:
- yhteinen
- Yksinkertainen
- taitoja
- pieni
- So
- Jalkapallo
- Tuotteemme
- Ratkaisumme
- SOLVE
- SQL
- Vaihe
- alkoi
- Startups
- Tila
- Levytila
- varastot
- menestys
- sudo
- tuki
- Tukee
- järjestelmät
- Tekninen
- Elektroniikka
- testi
- Testaus
- testit
- aika
- yhdessä
- liikenne
- koulutus
- ui
- yliopisto
- us
- Käyttäjät
- arvo
- versio
- Näytä
- tilavuus
- verkko
- verkkopalvelut
- KUKA
- sisällä
- ilman
- Referenssit
- toimii
- maailman-