Tugevate ja korduvkasutatavate masinõppe (ML) torujuhtmete loomine võib olla keeruline ja aeganõudev protsess. Arendajad testivad tavaliselt oma töötlemis- ja koolitusskripte kohapeal, kuid torujuhtmeid endid testitakse tavaliselt pilves. Täieliku konveieri loomine ja käitamine katsetamise ajal lisab arenduse elutsüklile soovimatuid üldkulusid ja kulusid. Selles postituses kirjeldame üksikasjalikult, kuidas saate seda kasutada Amazon SageMaker Pipelines kohalik režiim ML torujuhtmete lokaalseks käitamiseks, et vähendada nii konveieri arendust kui ka tööaega, vähendades samal ajal kulusid. Pärast torujuhtme täielikku kohapealset testimist saate selle hõlpsalt uuesti käivitada Amazon SageMaker hallatavad ressursid vaid mõne koodirea muutmisega.
ML elutsükli ülevaade
ML-i uute uuenduste ja rakenduste üks peamisi tõukejõude on andmete kättesaadavus ja hulk koos odavamate arvutusvõimalustega. Mitmes valdkonnas on ML osutunud suuteliseks lahendama probleeme, mida varem ei saanud lahendada klassikaliste suurandmete ja analüütiliste tehnikatega, ning nõudlus andmeteaduse ja ML-i praktikute järele kasvab pidevalt. Väga kõrgel tasemel koosneb ML elutsükkel paljudest erinevatest osadest, kuid ML mudeli koostamine koosneb tavaliselt järgmistest üldistest sammudest:
- Andmete puhastamine ja ettevalmistamine (funktsioonide projekteerimine)
- Modellikoolitus ja häälestamine
- Mudeli hindamine
- Mudeli juurutamine (või partii teisendamine)
Andmete ettevalmistamise etapis laaditakse andmed, masseeritakse ja teisendatakse seda tüüpi sisenditeks või funktsioonideks, mida ML-mudel eeldab. Skriptide kirjutamine andmete teisendamiseks on tavaliselt iteratiivne protsess, kus kiired tagasisideahelad on arenduse kiirendamiseks olulised. Tavaliselt ei ole funktsioonide inseneri skriptide testimisel vaja kasutada kogu andmestikku, mistõttu saate kasutada kohaliku režiimi funktsioon SageMakeri töötlemisest. See võimaldab teil töötada kohapeal ja värskendada koodi iteratiivselt, kasutades väiksemat andmekogumit. Kui lõplik kood on valmis, esitatakse see kaugtöötlustööle, mis kasutab kogu andmestikku ja töötab SageMakeri hallatud eksemplaridel.
Arendusprotsess sarnaneb andmete ettevalmistamise etapiga nii mudeli koolituse kui ka mudeli hindamise etappide jaoks. Andmeteadlased kasutavad kohaliku režiimi funktsioon SageMakeri koolitusest, et itereerida kiiresti väiksemate andmekogumitega kohapeal, enne kui kasutate kõiki andmeid SageMakeri hallatavas ML-optimeeritud eksemplaride klastris. See kiirendab arendusprotsessi ja välistab katsetamise ajal SageMakeri hallatavate ML-juhtumite käitamise kulud.
Kui organisatsiooni ML küpsus kasvab, saate kasutada Amazon SageMakeri torujuhtmed luua ML-konveierid, mis ühendavad need etapid kokku, luues keerukamaid ML-i töövooge, mis töötlevad, koolitavad ja hindavad ML-mudeleid. SageMaker Pipelines on täielikult hallatav teenus ML-i töövoo erinevate etappide automatiseerimiseks, sealhulgas andmete laadimine, andmete teisendamine, mudeli koolitus ja häälestamine ning mudeli juurutamine. Kuni viimase ajani saite oma skripte arendada ja testida kohapeal, kuid pidite oma ML-i konveieri pilves testima. See muutis ML-torujuhtmete voolu ja vormi kordamise aeglaseks ja kulukaks protsessiks. Nüüd saate SageMaker Pipelines'i lisatud kohaliku režiimi funktsiooniga itereerida ja testida oma ML-konveierid sarnaselt sellega, kuidas testite ja itereerite oma töötlemis- ja koolitusskripte. Saate käitada ja testida torujuhtmeid kohalikus masinas, kasutades konveieri süntaksi ja funktsioonide kinnitamiseks väikest andmete alamhulka.
SageMakeri torujuhtmed
SageMaker Pipelines pakub täielikult automatiseeritud viisi lihtsate või keerukate ML-töövoogude käitamiseks. SageMakeri torujuhtmete abil saate hõlpsasti kasutatava Pythoni SDK abil luua ML-i töövooge ning seejärel visualiseerida ja hallata oma töövooge, kasutades Amazon SageMaker Studio. Teie andmeteaduse meeskonnad võivad olla tõhusamad ja skaleeruda kiiremini, kui salvestate ja taaskasutage SageMaker Pipelinesis loodud töövoo etappe. Samuti saate oma ML-keskkonnas mudelite koostamiseks, testimiseks, registreerimiseks ja juurutamiseks kasutada eelehitatud malle, mis automatiseerivad infrastruktuuri ja hoidla loomist. Need mallid on teie organisatsioonile automaatselt saadaval ja need on ette nähtud kasutades AWS-i teenuste kataloog tooted.
SageMaker Pipelines toob ML-i pideva integreerimise ja pideva juurutamise (CI/CD) praktikad, nagu arendus- ja tootmiskeskkondade vahelise pariteedi säilitamine, versioonikontroll, tellitav testimine ja täielik automatiseerimine, mis aitab teil ML-i kogu oma töös skaleerida. organisatsioon. DevOpsi praktikud teavad, et CI/CD tehnikate kasutamise peamised eelised hõlmavad tootlikkuse suurenemist korduvkasutatavate komponentide kaudu ja kvaliteedi paranemist automatiseeritud testimise kaudu, mis toob kaasa teie ärieesmärkide kiirema investeeringutasuvuse. Need eelised on nüüd saadaval MLOps-i praktikutele, kasutades SageMakeri torujuhtmeid ML-mudelite koolituse, testimise ja juurutamise automatiseerimiseks. Kohaliku režiimiga saate nüüd palju kiiremini itereerida, arendades samal ajal skripte, mida kasutatakse konveier. Pange tähele, et kohalikke torujuhtme eksemplare ei saa Studio IDE-s vaadata ega käivitada. kohalike torujuhtmete jaoks on aga peagi saadaval täiendavad vaatamisvõimalused.
SageMaker SDK pakub üldist eesmärki kohaliku režiimi konfiguratsioon mis võimaldab arendajatel käitada ja testida toetatud protsessoreid ja hindajaid oma kohalikus keskkonnas. Saate kasutada kohaliku režiimi koolitust nii mitme AWS-i toetatud raamistiku kujutisega (TensorFlow, MXNet, Chainer, PyTorch ja Scikit-Learn) kui ka enda tarnitavate piltidega.
SageMaker Pipelines, mis koostab korraldatud töövoo etappidest suunatud atsüklilise graafiku (DAG), toetab paljusid tegevusi, mis on osa ML elutsüklist. Kohalikus režiimis toetatakse järgmisi samme:
- Tööetappide töötlemine – Lihtsustatud ja hallatud kogemus SageMakeris andmetöötluse töökoormuse käitamiseks, nagu funktsioonide projekteerimine, andmete valideerimine, mudeli hindamine ja mudeli tõlgendamine
- Koolituse tööetapid – Iteratiivne protsess, mis õpetab mudelit ennustusi tegema, esitades näiteid koolitusandmestikust
- Hüperparameetrite häälestamise tööd – automatiseeritud viis kõige täpsema mudeli loomiseks vajalike hüperparameetrite hindamiseks ja valimiseks
- Tingimuslikud jooksusammud – samm, mis tagab torujuhtme harude tingimusliku jooksmise
- Mudeli samm – CreateModel argumentide abil saab selle sammuga luua mudeli, mida kasutatakse teisendusetappides või hilisemas lõpp-punktina juurutamisel.
- Muutke tööetappe – partii teisendustöö, mis genereerib ennustusi suurtest andmekogumitest ja teeb järeldusi, kui püsivat lõpp-punkti pole vaja
- Ebaõnnestunud sammud – samm, mis peatab konveieri töö ja märgib töö nurjunuks
Lahenduse ülevaade
Meie lahendus demonstreerib olulisi samme SageMakeri torujuhtmete loomiseks ja käitamiseks kohalikus režiimis, mis tähendab kohalike protsessori-, RAM-i ja kettaressursside kasutamist töövoo etappide laadimiseks ja käitamiseks. Teie kohalik keskkond võib töötada sülearvutis, kasutades populaarseid IDE-sid, nagu VSCode või PyCharm, või seda võib hostida SageMaker, kasutades klassikalisi sülearvuti eksemplare.
Kohalik režiim võimaldab andmeteadlastel ühendada etapid, mis võivad hõlmata töötlemis-, koolitus- ja hindamistöid, ning kogu töövoogu kohapeal käitada. Kui olete kohaliku testimise lõpetanud, saate torujuhtme uuesti käivitada SageMakeri hallatavas keskkonnas, asendades LocalPipelineSession
objektiga PipelineSession
, mis toob ML elutsüklisse järjepidevuse.
Selle sülearvuti näidise jaoks kasutame standardset avalikult kättesaadavat andmekogumit UCI masinõppe abalone andmestik. Eesmärgiks on treenida ML-mudelit, et määrata tema füüsiliste mõõtmiste põhjal leplikoo vanust. Põhimõtteliselt on see regressiooniprobleem.
Kogu selle sülearvuti näidise käitamiseks vajalik kood on saadaval GitHubis aadressil amazon-sagemaker-näited hoidla. Selles märkmiku näidises luuakse iga konveieri töövoo etapp eraldi ja ühendatakse seejärel konveieri loomiseks kokku. Loome järgmised sammud:
- Töötlemise etapp (funktsioonide projekteerimine)
- Koolituse samm (mudelkoolitus)
- Töötlemise etapp (mudeli hindamine)
- Tingimuse samm (mudeli täpsus)
- Loo mudeli samm (mudel)
- Teisenduse samm (partii teisendus)
- Registreeri mudeli samm (mudelipakett)
- Ebaõnnestunud samm (käivitamine ebaõnnestus)
Järgmine diagramm illustreerib meie torujuhet.
Eeldused
Selle postituse jätkamiseks vajate järgmist.
Kui need eeltingimused on paigas, saate näidismärkmiku käitada, nagu on kirjeldatud järgmistes jaotistes.
Ehitage oma torujuhe
Selles märkmiku näidises kasutame SageMakeri skriptirežiim enamiku ML-protsesside jaoks, mis tähendab, et pakume tegevuse teostamiseks tegelikku Pythoni koodi (skripte) ja edastame sellele koodile viite. Skriptirežiim pakub suurt paindlikkust SageMakeri töötlemise käitumise juhtimiseks, võimaldades teil oma koodi kohandada, kasutades samal ajal ära SageMakeri eelehitatud konteinerid, nagu XGBoost või Scikit-Learn. Kohandatud kood kirjutatakse Pythoni skriptifaili, kasutades lahtreid, mis algavad magic-käsuga %%writefile
, nagu järgmine:
%%writefile code/evaluation.py
Kohaliku režiimi peamine võimaldaja on LocalPipelineSession
objekt, mis on loodud Pythoni SDK-st. Järgmised koodisegmendid näitavad, kuidas luua kohalikus režiimis SageMakeri torujuhet. Kuigi saate konfigureerida kohaliku andmetee paljude kohaliku konveieri etappide jaoks, on Amazon S3 vaikekoht teisendusega väljundandmete salvestamiseks. Uus LocalPipelineSession
objekt edastatakse Pythoni SDK-le paljudes selles postituses kirjeldatud SageMakeri töövoo API kutsetes. Pange tähele, et saate kasutada local_pipeline_session
muutuja viidete toomiseks S3 vaikesalbale ja praegusele piirkonna nimele.
Enne torujuhtme üksikute etappide loomist määrame mõned torujuhtme kasutatavad parameetrid. Mõned neist parameetritest on stringiliteraalid, teised aga luuakse SDK pakutavate spetsiaalsete loenditüüpidena. Loendatav tippimine tagab, et torujuhtmele antakse kehtivad sätted, nagu see, mis edastatakse ConditionLessThanOrEqualTo
astuge allapoole:
mse_threshold = ParameterFloat(name="MseThreshold", default_value=7.0)
Andmetöötlusetapi loomiseks, mida kasutatakse siin funktsioonide projekteerimiseks, kasutame SKLearnProcessor
andmestiku laadimiseks ja teisendamiseks. Me möödume local_pipeline_session
muutuja klassi konstruktorile, mis käsib töövoo sammu käitada kohalikus režiimis:
Järgmisena loome oma esimese tegeliku torujuhtme etapi, a ProcessingStep
objekt, mis on imporditud SageMakeri SDK-st. Protsessori argumendid tagastatakse kõnest aadressile SKLearnProcessor
run() meetod. See töövoo etapp kombineeritakse teiste sammudega sülearvuti lõpu poole, et näidata tööjärjekorda konveieri sees.
Järgmisena pakume koodi koolitusetapi loomiseks, käivitades esmalt SageMakeri SDK abil standardse hinnangu. Me läbime sama local_pipeline_session
hindaja muutuja nimega xgb_train sagemaker_session
argument. Kuna soovime treenida XGBoosti mudelit, peame genereerima kehtiva pildi URI, määrates järgmised parameetrid, sealhulgas raamistiku ja mitmed versiooniparameetrid:
Valikuliselt võime kutsuda näiteks täiendavaid hindamismeetodeid set_hyperparameters()
, et pakkuda treeningtöö jaoks hüperparameetrite sätteid. Nüüd, kui hindaja on konfigureeritud, oleme valmis tegeliku koolitusetapi looma. Taas impordime TrainingStep
klass SageMaker SDK teegist:
Järgmisena ehitame mudeli hindamiseks teise töötlemisetapi. Seda tehakse luues a ScriptProcessor
näide ja läbides local_pipeline_session
objekt parameetrina:
Koolitatud mudeli juurutamise võimaldamiseks kas a SageMakeri reaalajas lõpp-punkt või partii teisenduseks peame looma a Model
objekti, edastades mudeli artefaktid, õige pildi URI ja valikuliselt meie kohandatud järelduskoodi. Seejärel läbime selle Model
vastuväite a ModelStep
, mis lisatakse kohalikku torujuhtmesse. Vaadake järgmist koodi:
Järgmisena loome partii teisenduse etapi, kus esitame funktsioonivektorite komplekti ja teeme järeldused. Kõigepealt peame looma a Transformer
objekti ja läbima local_pipeline_session
parameeter sellele. Seejärel loome a TransformStep
, edastades vajalikud argumendid ja lisage see konveieri määratlusesse:
Lõpuks tahame lisada töövoogu haru tingimuse, nii et käivitaksime partii teisenduse ainult siis, kui mudeli hindamise tulemused vastavad meie kriteeriumidele. Seda tingimust saame näidata, lisades a ConditionStep
teatud tingimuse tüübiga, nagu ConditionLessThanOrEqualTo
. Seejärel loetleme kahe haru etapid, määratledes sisuliselt torujuhtme if/else või true/false harud. Kui_sammud on esitatud dokumendis ConditionStep
(samm_loo_mudel, samm_teisendus) käivitatakse alati, kui tingimus on hinnatud True
.
Järgmine diagramm illustreerib seda tingimuslikku haru ja sellega seotud if/else samme. Käitatakse ainult ühte haru, mis põhineb mudeli hindamise etapi tulemusel võrreldes tingimuse etapis.
Nüüd, kui oleme kõik sammud määratletud ja aluseks olevad klassieksemplarid loodud, saame need ühendada konveieriks. Pakume mõningaid parameetreid ja määrame tööjärjekorra, lihtsalt loetledes sammud soovitud järjekorras. Pange tähele, et TransformStep
siin ei kuvata, kuna see on tingimusliku sammu sihtmärk ja see esitati sammuargumendina ConditionalStep
varem.
Konveieri käivitamiseks peate kutsuma kahte meetodit: pipeline.upsert()
, mis laadib torujuhtme üles aluseks olevasse teenusesse ja pipeline.start()
, mis alustab torujuhtme käitamist. Käitusoleku uurimiseks, konveieri etappide loetlemiseks ja muuks saate kasutada mitmesuguseid muid meetodeid. Kuna kasutasime kohaliku režiimi konveieri seanssi, käitatakse neid samme teie protsessoris kohapeal. Käivitusmeetodi all olev lahtri väljund näitab konveieri väljundit:
Lahtri väljundi allosas peaksite nägema järgmisega sarnast teadet:
Pipeline execution d8c3e172-089e-4e7a-ad6d-6d76caf987b7 SUCCEEDED
Naaske hallatavate ressursside juurde
Kui oleme kinnitanud, et konveier töötab vigadeta ja oleme torujuhtme voolu ja vormiga rahul, saame torujuhtme uuesti luua, kuid SageMakeri hallatavate ressurssidega ja seda uuesti käivitada. Ainus vajalik muudatus on kasutada PipelineSession
objekti asemel LocalPipelineSession
:
Alates sagemaker.workflow.pipeline_context Import LocalPipelineSessionfrom sagemaker.workflow.pipeline_context import PipelineSession
local_pipeline_session = LocalPipelineSession()pipeline_session = PipelineSession()
See teavitab teenust SageMakeri hallatavates ressurssides iga sellele seansiobjektile viitava sammu käivitamisest. Arvestades väikest muudatust, illustreerime ainult nõutavad koodimuudatused järgmises koodilahtris, kuid sama muudatus tuleks rakendada igas lahtris, kasutades local_pipeline_session
objektiks. Muudatused on aga kõigis lahtrites identsed, kuna me asendame ainult local_pipeline_session
objektiga pipeline_session
objekt
Kui kohalik seansiobjekt on kõikjal asendatud, loome konveieri uuesti ja käivitame selle SageMakeri hallatavate ressurssidega:
Koristage
Kui soovite Stuudio keskkonda korras hoida, saate SageMakeri konveieri ja mudeli kustutamiseks kasutada järgmisi meetodeid. Täieliku koodi leiate näidisest märkmik.
Järeldus
Kuni viimase ajani võisite kasutada SageMaker Processing ja SageMaker Training kohaliku režiimi funktsiooni, et itereerida oma töötlemis- ja treenimisskripte kohapeal, enne kui käivitasite need SageMakeri hallatavate ressurssidega kõikidel andmetel. SageMaker Pipelines'i uue kohaliku režiimi funktsiooniga saavad ML-i praktikud nüüd rakendada sama meetodit oma ML-konveieritel itereerides, ühendades erinevad ML-i töövood kokku. Kui konveier on tootmiseks valmis, nõuab selle käitamine SageMakeri hallatavate ressurssidega vaid mõne koodirea muutmist. See vähendab konveieri tööaega arenduse ajal, mis viib torujuhtme kiirema arendamiseni kiiremate arendustsüklitega, vähendades samal ajal SageMakeri hallatavate ressursside kulusid.
Lisateabe saamiseks külastage Amazon SageMakeri torujuhtmed or Kasutage SageMakeri torujuhtmeid, et oma tööd kohapeal juhtida.
Autoritest
Paul Hargis on keskendunud masinõppele mitmes ettevõttes, sealhulgas AWS, Amazon ja Hortonworks. Talle meeldib ehitada tehnoloogilisi lahendusi ja õpetada inimesi sellest maksimumi võtma. Enne AWS-is töötamist oli ta Amazon Exports and Expansionsi peaarhitekt, aidates veebisaidil amazon.com parandada rahvusvaheliste ostjate kogemust. Paulile meeldib aidata klientidel laiendada oma masinõppe algatusi, et lahendada reaalseid probleeme.
Niklas Palm on lahenduste arhitekt AWS-is Stockholmis, Rootsis, kus ta aitab klientidel kogu Põhjamaades pilves edu saavutada. Ta on eriti kirglik serverita tehnoloogiate, asjade interneti ja masinõppe vastu. Töövälisel ajal on Niklas innukas murdmaasuusataja ja lumelaudur ning meistermunakas.
Kirit Thadaka on ML Solutionsi arhitekt, kes töötab SageMaker Service SA meeskonnas. Enne AWS-iga liitumist töötas Kirit varajases staadiumis tehisintellekti idufirmades, millele järgnes mõnda aega nõustamine erinevates rollides tehisintellekti uurimise, MLO-de ja tehnilise juhtimise alal.
- Täpsem (300)
- AI
- ai kunst
- ai kunsti generaator
- on robot
- AIML
- Amazon SageMaker
- Amazon SageMakeri autopiloot
- tehisintellekti
- tehisintellekti sertifikaat
- tehisintellekt panganduses
- tehisintellekti robot
- tehisintellekti robotid
- tehisintellekti tarkvara
- AWS-i masinõpe
- blockchain
- plokiahela konverents ai
- coingenius
- vestluslik tehisintellekt
- krüptokonverents ai
- dall's
- sügav õpe
- google ai
- masinõpe
- Platon
- plato ai
- Platoni andmete intelligentsus
- Platoni mäng
- PlatoData
- platogaming
- skaala ai
- süntaks
- Tehniline juhend
- sephyrnet