Kunstig intelligens (AI) er blevet et vigtigt og populært emne i teknologisamfundet. Efterhånden som AI har udviklet sig, har vi set forskellige typer af maskinlæringsmodeller (ML) dukke op. En tilgang, kendt som ensemble modellering, har hurtigt vundet indpas blandt dataforskere og praktikere. I dette indlæg diskuterer vi, hvad ensemblemodeller er, og hvorfor deres brug kan være gavnligt. Vi giver derefter et eksempel på, hvordan du kan træne, optimere og implementere dine tilpassede ensembler ved hjælp af Amazon SageMaker.
Ensemblelæring refererer til brugen af flere læringsmodeller og algoritmer for at opnå mere præcise forudsigelser end nogen enkelt, individuel læringsalgoritme. De har vist sig at være effektive i forskellige applikationer og læringsindstillinger såsom cybersikkerhed [1] og registrering af svindel, fjernmåling, forudsigelse af de bedste næste skridt i finansiel beslutningstagning, medicinsk diagnose og endda computersyn og NLP-opgaver (natural language processing). Vi er tilbøjelige til at kategorisere ensembler efter de teknikker, der bruges til at træne dem, deres sammensætning og den måde, de sammensmelter de forskellige forudsigelser til en enkelt slutning. Disse kategorier omfatter:
- Øget – Træning sekventielt flere svage elever, hvor hver forkert forudsigelse fra tidligere elever i sekvensen tillægges en højere vægt og input til den næste elev, hvorved der skabes en stærkere elev. Eksempler inkluderer AdaBoost, Gradient Boosting og XGBoost.
- sække – Bruger flere modeller til at reducere variansen af en enkelt model. Eksempler omfatter Random Forest og Extra Trees.
- Stabling (blanding) – Bruger ofte heterogene modeller, hvor forudsigelser af hver enkelt estimator stables sammen og bruges som input til en endelig estimator, der håndterer forudsigelsen. Denne endelige estimators træningsproces bruger ofte krydsvalidering.
Der er flere metoder til at kombinere forudsigelserne til den eneste, som modellen til sidst producerer, for eksempel ved hjælp af en meta-estimator såsom lineær elev, en stemmemetode, der bruger flere modeller til at lave en forudsigelse baseret på flertalsafstemning for klassifikationsopgaver, eller et ensemble med et gennemsnit for regression.
Selvom flere biblioteker og rammer leverer implementeringer af ensemblemodeller, såsom XGBoost, CatBoost eller scikit-learns tilfældige skov, fokuserer vi i dette indlæg på at medbringe dine egne modeller og bruge dem som et stable-ensemble. Men i stedet for at bruge dedikerede ressourcer til hver model (dedikeret trænings- og tuningjob og hosting-endepunkter pr. model), træner, tuner og implementerer vi et tilpasset ensemble (flere modeller) ved hjælp af et enkelt SageMaker-træningsjob og et enkelt tuningjob og implementerer til et enkelt slutpunkt, hvorved mulige omkostninger og driftsomkostninger reduceres.
BYOE: Medbring dit eget ensemble
Der er flere måder at træne og implementere heterogene ensemblemodeller på med SageMaker: du kan træne hver model i en separat træningsjob og optimer hver model separat ved hjælp af Amazon SageMaker Automatisk Model Tuning. Når du hoster disse modeller, tilbyder SageMaker forskellige omkostningseffektive måder at hoste flere modeller på den samme lejerinfrastruktur. Detaljerede implementeringsmønstre for denne type indstillinger kan findes i Modelhostingmønstre i Amazon SageMaker, del 1: Fælles designmønstre til opbygning af ML-applikationer på Amazon SageMaker. Disse mønstre inkluderer brug af flere endepunkter (for hver trænet model) eller et enkelt multi-model slutpunkt, eller endda en enkelt multi-container slutpunkt hvor beholderne kan påkaldes individuelt eller lænket i en rørledning. Alle disse løsninger inkluderer en meta-estimator (for eksempel i en AWS Lambda funktion), der påberåber hver model og implementerer blandings- eller afstemningsfunktionen.
Men at køre flere træningsjob kan medføre drifts- og omkostningsoverhead, især hvis dit ensemble kræver træning på de samme data. Tilsvarende kræver hosting af forskellige modeller på separate endepunkter eller containere og kombination af deres forudsigelsesresultater for bedre nøjagtighed flere påkaldelser og introducerer derfor yderligere administrations-, omkostninger- og overvågningsindsatser. SageMaker understøtter f.eks ensemble ML-modeller ved hjælp af Triton Inference Server, men denne løsning kræver, at modellerne eller modelensemblerne understøttes af Triton-backend. Derudover kræves der yderligere indsats fra kundens side for at konfigurere Triton-serveren og yderligere læring for at forstå, hvordan forskellige Triton-backends fungerer. Derfor foretrækker kunderne en mere ligetil måde at implementere løsninger på, hvor de kun behøver at sende invokationen én gang til slutpunktet og har fleksibiliteten til at kontrollere, hvordan resultaterne aggregeres for at generere det endelige output.
Løsningsoversigt
For at løse disse bekymringer gennemgår vi et eksempel på ensembletræning ved hjælp af et enkelt træningsjob, optimering af modellens hyperparametre og implementering af den ved hjælp af en enkelt container til et serverløst slutpunkt. Vi bruger to modeller til vores ensemblestak: CatBoost og XGBoost (som begge er boostende ensembler). Til vores data bruger vi diabetes datasæt [2] fra scikit-learn-biblioteket: Den består af 10 funktioner (alder, køn, kropsmasse, blodtryk og seks blodserummålinger), og vores model forudsiger sygdomsprogressionen 1 år efter at baseline-træk blev indsamlet (en regressionsmodel).
Det fulde kodelager kan findes på GitHub.
Træn flere modeller i et enkelt SageMaker-job
Til træning af vores modeller bruger vi SageMaker træningsjob i Script-tilstand. Med Script-tilstand kan du skrive tilpasset træning (og senere inferenskode), mens du bruger SageMaker-rammebeholdere. Rammebeholdere gør dig i stand til at bruge færdige miljøer, der administreres af AWS, der inkluderer alle nødvendige konfigurationer og moduler. For at demonstrere, hvordan du kan tilpasse en rammebeholder, som et eksempel, bruger vi den forudbyggede SKLearn-beholder, som ikke inkluderer XGBoost- og CatBoost-pakkerne. Der er to muligheder for at tilføje disse pakker: enten forlænge den indbyggede beholder for at installere CatBoost og XGBoost (og derefter implementere som en brugerdefineret container), eller brug SageMaker træningsjobscripttilstandsfunktionen, som giver dig mulighed for at levere en requirements.txt
fil, når du opretter træningsestimatoren. SageMaker-træningsjobbet installerer de listede biblioteker i requirements.txt
fil under kørselstiden. På denne måde behøver du ikke at administrere dit eget Docker-billedlager, og det giver mere fleksibilitet til at køre træningsscripts, der har brug for yderligere Python-pakker.
Den følgende kodeblok viser den kode, vi bruger til at starte træningen. Det entry_point
parameter peger på vores træningsscript. Vi bruger også to af SageMaker SDK API's overbevisende funktioner:
- Først angiver vi den lokale sti til vores kildemappe og afhængigheder i
source_dir
,dependencies
henholdsvis parametre. SDK'et vil komprimere og uploade disse mapper til Amazon Simple Storage Service (Amazon S3) og SageMaker vil gøre dem tilgængelige på træningsinstansen under arbejdsbiblioteket/opt/ml/code
. - For det andet bruger vi SDK
SKLearn
estimator-objekt med vores foretrukne Python- og framework-version, så SageMaker trækker den tilsvarende container. Vi har også defineret en tilpasset træningsmetrik 'validation:rmse
', som vil blive udsendt i træningsloggene og fanget af SageMaker. Senere bruger vi denne metrik som den objektive metrik i tuning-jobbet.
hyperparameters = {"num_round": 6, "max_depth": 5}
estimator_parameters = {
"entry_point": "multi_model_hpo.py",
"source_dir": "code",
"dependencies": ["my_custom_library"],
"instance_type": training_instance_type,
"instance_count": 1,
"hyperparameters": hyperparameters,
"role": role,
"base_job_name": "xgboost-model",
"framework_version": "1.0-1",
"keep_alive_period_in_seconds": 60,
"metric_definitions":[
{'Name': 'validation:rmse', 'Regex': 'validation-rmse:(.*?);'}
]
}
estimator = SKLearn(**estimator_parameters)
Dernæst skriver vi vores træningsscript (multi_model_hpo.py). Vores script følger et simpelt flow: fange hyperparametre som jobbet blev konfigureret med og træne CatBoost-modellen , XGBoost model. Vi implementerer også en k-fold kryds valideringsfunktion. Se følgende kode:
if __name__ == "__main__":
parser = argparse.ArgumentParser() # Sagemaker specific arguments. Defaults are set in the environment variables.
parser.add_argument("--output-data-dir", type=str, default=os.environ["SM_OUTPUT_DATA_DIR"])
parser.add_argument("--model-dir", type=str, default=os.environ["SM_MODEL_DIR"])
parser.add_argument("--train", type=str, default=os.environ["SM_CHANNEL_TRAIN"])
parser.add_argument("--validation", type=str, default=os.environ["SM_CHANNEL_VALIDATION"])
.
.
.
"""
Train catboost
"""
K = args.k_fold
catboost_hyperparameters = {
"max_depth": args.max_depth,
"eta": args.eta,
}
rmse_list, model_catboost = cross_validation_catboost(train_df, K, catboost_hyperparameters)
.
.
.
"""
Train the XGBoost model
""" hyperparameters = {
"max_depth": args.max_depth,
"eta": args.eta,
"objective": args.objective,
"num_round": args.num_round,
} rmse_list, model_xgb = cross_validation(train_df, K, hyperparameters)
Efter at modellerne er trænet, beregner vi middelværdien af både CatBoost- og XGBoost-forudsigelserne. Resultatet, pred_mean
, er vores ensembles endelige forudsigelse. Derefter bestemmer vi mean_squared_error
mod valideringssættet. val_rmse
bruges til evaluering af hele ensemblet under træning. Bemærk, at vi også udskriver RMSE-værdien i et mønster, der passer til det regex, vi brugte i metric_definitions
. Senere vil SageMaker Automatic Model Tuning bruge det til at fange den objektive metrik. Se følgende kode:
pred_mean = np.mean(np.array([pred_catboost, pred_xgb]), axis=0)
val_rmse = mean_squared_error(y_validation, pred_mean, squared=False)
print(f"Final evaluation result: validation-rmse:{val_rmse}")
Endelig gemmer vores script begge modelartefakter i outputmappen, der er placeret på /opt/ml/model
.
Når et træningsjob er afsluttet, pakker og kopierer SageMaker indholdet af /opt/ml/model
bibliotek som et enkelt objekt i komprimeret TAR-format til den S3-placering, du har angivet i jobkonfigurationen. I vores tilfælde samler SageMaker de to modeller i en TAR-fil og uploader den til Amazon S3 i slutningen af træningsjobbet. Se følgende kode:
model_file_name = 'catboost-regressor-model.dump'
# Save CatBoost model
path = os.path.join(args.model_dir, model_file_name)
print('saving model file to {}'.format(path))
model.save_model(path)
.
.
.
# Save XGBoost model
model_location = args.model_dir + "/xgboost-model"
pickle.dump(model, open(model_location, "wb"))
logging.info("Stored trained model at {}".format(model_location))
Sammenfattende skal du bemærke, at vi i denne procedure downloadede dataene én gang og trænede to modeller ved hjælp af et enkelt træningsjob.
Automatisk tuning af ensemblemodeller
Fordi vi bygger en samling af ML-modeller, er det upraktisk at udforske alle mulige hyperparameter-permutationer. SageMaker tilbyder Automatisk modelindstilling (AMT), som leder efter de bedste modelhyperparametre ved at fokusere på de mest lovende kombinationer af værdier inden for intervaller, som du angiver (det er op til dig at definere de rigtige intervaller at udforske). SageMaker understøtter flere optimeringsmetoder for dig at vælge imellem.
Vi starter med at definere de to dele af optimeringsprocessen: den objektive metrik og de hyperparametre, vi ønsker at tune. I vores eksempel bruger vi valideringen RMSE som målmetrik, og vi tuner eta
, max_depth
(for andre hyperparametre, se XGBoost Hyperparametre , CatBoost hyperparametre):
from sagemaker.tuner import (
IntegerParameter,
ContinuousParameter,
HyperparameterTuner,
) hyperparameter_ranges = {
"eta": ContinuousParameter(0.2, 0.3),
"max_depth": IntegerParameter(3, 4)
}
metric_definitions = [{"Name": "validation:rmse", "Regex": "validation-rmse:([0-9.]+)"}]
objective_metric_name = "validation:rmse"
Vi skal også sikre i træningsscript at vores hyperparametre ikke er hårdkodede og hentes fra SageMaker runtime-argumenterne:
catboost_hyperparameters = {
"max_depth": args.max_depth,
"eta": args.eta,
}
SageMaker skriver også hyperparametrene til en JSON-fil og kan læses fra /opt/ml/input/config/hyperparameters.json
på træningsinstansen.
Ligesom CatBoost fanger vi også hyperparametrene for XGBoost-modellen (bemærk at objective
, num_round
er ikke indstillet):
catboost_hyperparameters = {
"max_depth": args.max_depth,
"eta": args.eta,
}
Til sidst starter vi hyperparameterindstillingsjobbet ved hjælp af disse konfigurationer:
tuner = HyperparameterTuner(
estimator,
objective_metric_name,
hyperparameter_ranges,
max_jobs=4,
max_parallel_jobs=2,
objective_type='Minimize'
)
tuner.fit({"train": train_location, "validation": validation_location}, include_cls_metadata=False)
Når jobbet er færdigt, kan du hente værdierne for det bedste træningsjob (med minimal RMSE):
job_name=tuner.latest_tuning_job.name
attached_tuner = HyperparameterTuner.attach(job_name)
attached_tuner.describe()["BestTrainingJob"]
For mere information om AMT, se Udfør automatisk modeljustering med SageMaker.
Deployment
For at implementere vores brugerdefinerede ensemble skal vi levere et script til at håndtere slutningsanmodningen og konfigurere SageMaker-hosting. I dette eksempel brugte vi en enkelt fil, der indeholder både trænings- og inferenskoden (multi_model_hpo.py). SageMaker bruger koden under if _ name _ == "_ main _"
til træningen og funktionerne model_fn
, input_fn
og predict_fn
ved implementering og betjening af modellen.
Inferens script
Ligesom med træning bruger vi SageMaker SKLearn-rammebeholderen med vores eget inferensscript. Scriptet vil implementere tre metoder, der kræves af SageMaker.
Første, model_fn
metode læser vores gemte modelartefaktfiler og indlæser dem i hukommelsen. I vores tilfælde returnerer metoden vores ensemble som all_model
, som er en Python-liste, men du kan også bruge en ordbog med modelnavne som nøgler.
def model_fn(model_dir):
catboost_model = CatBoostRegressor()
catboost_model.load_model(os.path.join(model_dir, model_file_name))
model_file = "xgboost-model"
model = pickle.load(open(os.path.join(model_dir, model_file), "rb"))
all_model = [catboost_model, model]
return all_model
Sekund, input_fn
metode deserialiserer anmodningens inputdata, der skal videregives til vores slutningsbehandler. For mere information om input-handlere, se Tilpasning af din egen inferensbeholder.
def input_fn(input_data, content_type):
dtype=None
payload = StringIO(input_data)
return np.genfromtxt(payload, dtype=dtype, delimiter=",")
Det tredje predict_fn
metoden er ansvarlig for at få forudsigelser fra modellerne. Metoden tager modellen og de data, der returneres fra input_fn
som parametre og returnerer den endelige forudsigelse. I vores eksempel får vi CatBoost-resultatet fra modellistens første medlem (model[0]
) og XGBoost fra det andet medlem (model[1]
), og vi bruger en blandingsfunktion, der returnerer middelværdien af begge forudsigelser:
def predict_fn(input_data, model):
predictions_catb = model[0].predict(input_data)
dtest = xgb.DMatrix(input_data)
predictions_xgb = model[1].predict(dtest,
ntree_limit=getattr(model, "best_ntree_limit", 0),
validate_features=False)
return np.mean(np.array([predictions_catb, predictions_xgb]), axis=0)
Nu hvor vi har vores trænede modeller og inferensscript, kan vi konfigurere miljøet til at implementere vores ensemble.
SageMaker Serverless Inference
Selvom der er mange hostingmuligheder i SageMaker, i dette eksempel bruger vi et serverløst slutpunkt. Serverløse slutpunkter starter automatisk computerressourcer og skalerer dem ind og ud afhængigt af trafikken. Dette fjerner de udifferentierede tunge løft ved at administrere servere. Denne mulighed er ideel til arbejdsbelastninger, der har inaktive perioder mellem trafikken og kan tolerere koldstart.
Konfiguration af det serverløse slutpunkt er ligetil, fordi vi ikke behøver at vælge instanstyper eller administrere skaleringspolitikker. Vi behøver kun at angive to parametre: hukommelsesstørrelse og maksimal samtidighed. Det serverløse slutpunkt tildeler automatisk computerressourcer proportionalt med den hukommelse, du vælger. Hvis du vælger en større hukommelsesstørrelse, har din container adgang til flere vCPU'er. Du bør altid vælge dit endepunkts hukommelsesstørrelse i henhold til din modelstørrelse. Den anden parameter, vi skal angive, er maksimal samtidighed. For et enkelt endepunkt kan denne parameter sættes op til 200 (i skrivende stund er grænsen for det samlede antal serverløse endepunkter i en region 50). Du skal bemærke, at den maksimale samtidighed for et individuelt endepunkt forhindrer det endepunkt i at optage alle de påkaldelser, der er tilladt for din konto, fordi eventuelle endepunktkaldelser ud over det maksimale begrænses (for mere information om den samlede samtidighed for alle serverløse endepunkter pr. region, se til Amazon SageMaker-endepunkter og kvoter).
from sagemaker.serverless.serverless_inference_config import ServerlessInferenceConfig
serverless_config = ServerlessInferenceConfig(
memory_size_in_mb=6144,
max_concurrency=1,
)
Nu hvor vi har konfigureret slutpunktet, kan vi endelig implementere den model, der blev valgt i vores hyperparameteroptimeringsjob:
estimator=attached_tuner.best_estimator()
predictor = estimator.deploy(serverless_inference_config=serverless_config)
Ryd op
Selvom serverløse endepunkter har nul omkostninger, når de ikke bruges, skal du, når du er færdig med at køre dette eksempel, sørge for at slette endepunktet:
predictor.delete_endpoint(predictor.endpoint)
Konklusion
I dette indlæg dækkede vi én tilgang til at træne, optimere og implementere et tilpasset ensemble. Vi detaljerede processen med at bruge et enkelt træningsjob til at træne flere modeller, hvordan man bruger automatisk modeljustering til at optimere ensemblehyperparametrene, og hvordan man implementerer et enkelt serverløst slutpunkt, der blander slutningerne fra flere modeller.
Brug af denne metode løser potentielle omkostninger og driftsproblemer. Omkostningerne ved et træningsjob er baseret på de ressourcer, du bruger i løbet af brugen. Ved kun at downloade dataene én gang til træning af de to modeller, reducerede vi med halvdelen af jobbets datadownloadfase og den brugte mængde, der gemmer dataene, og reducerede derved uddannelsesjobbets samlede omkostninger. Desuden kørte AMT-jobbet fire træningsjob, hver med den førnævnte reducerede tid og opbevaring, så det repræsenterer 4 gange i omkostningsbesparelse! Med hensyn til modelimplementering på et serverløst slutpunkt, fordi du også betaler for mængden af data, der behandles, betaler du halvdelen af I/O-dataafgifterne ved kun at kalde slutpunktet én gang for to modeller.
Selvom dette indlæg kun viste fordelene med to modeller, kan du bruge denne metode til at træne, tune og implementere adskillige ensemblemodeller for at se en endnu større effekt.
Referencer
[1] Raj Kumar, P. Arun; Selvakumar, S. (2011). "Distribueret denial of service-angrebsdetektion ved hjælp af et ensemble af neurale klassifikatorer". Computer kommunikation. 34 (11): 1328-1341. doi:10.1016/j.comcom.2011.01.012.
[2] Bradley Efron, Trevor Hastie, Iain Johnstone og Robert Tibshirani (2004) "Least Angle Regression," Annals of Statistics (med diskussion), 407-499. (https://web.stanford.edu/~hastie/Papers/LARS/LeastAngle_2002.pdf)
Om forfatterne
Melanie Li, ph.d, er en Senior AI/ML Specialist TAM hos AWS med base i Sydney, Australien. Hun hjælper virksomhedskunder med at bygge løsninger, der udnytter de avancerede AI/ML-værktøjer på AWS og giver vejledning om arkitektur og implementering af maskinlæringsløsninger med bedste praksis. I sin fritid elsker hun at udforske naturen udendørs og tilbringe tid med familie og venner.
Uri Rosenberg er AI & ML Specialist Technical Manager for Europa, Mellemøsten og Afrika. Med base i Israel arbejder Uri på at give virksomhedskunder mulighed for at designe, bygge og drive ML-arbejdsbelastninger i stor skala. I sin fritid nyder han at cykle, vandre og minimere RMSE'er.
- SEO Powered Content & PR Distribution. Bliv forstærket i dag.
- PlatoData.Network Vertical Generative Ai. Styrk dig selv. Adgang her.
- PlatoAiStream. Web3 intelligens. Viden forstærket. Adgang her.
- PlatoESG. Automotive/elbiler, Kulstof, CleanTech, Energi, Miljø, Solenergi, Affaldshåndtering. Adgang her.
- BlockOffsets. Modernisering af miljømæssig offset-ejerskab. Adgang her.
- Kilde: https://aws.amazon.com/blogs/machine-learning/efficiently-train-tune-and-deploy-custom-ensembles-using-amazon-sagemaker/
- :har
- :er
- :ikke
- :hvor
- ][s
- $OP
- 1
- 10
- 100
- 11
- 200
- 2011
- 50
- 60
- 7
- a
- Om
- adgang
- Ifølge
- Konto
- nøjagtighed
- præcis
- tilføje
- Yderligere
- Derudover
- adresse
- afrika
- Efter
- mod
- alder
- AI
- AI / ML
- algoritme
- algoritmer
- Alle
- tilladt
- tillader
- også
- altid
- Amazon
- Amazon SageMaker
- Amazon Web Services
- blandt
- beløb
- an
- ,
- enhver
- applikationer
- tilgang
- ER
- argumenter
- AS
- At
- angribe
- Australien
- Automatisk Ur
- automatisk
- til rådighed
- gennemsnit
- væk
- AWS
- Bagende
- baseret
- Baseline
- BE
- fordi
- bliver
- været
- være
- gavnlig
- fordele
- BEDSTE
- bedste praksis
- Bedre
- mellem
- Beyond
- blanding
- blandinger
- Bloker
- blod
- Blood Pressure
- krop
- fremme
- både
- bringe
- Bringe
- bygge
- Bygning
- indbygget
- bundter
- men
- by
- beregne
- CAN
- fange
- fanget
- tilfælde
- kategorier
- lænket
- afgifter
- Vælg
- klassificering
- kode
- forkølelse
- samling
- kombinationer
- kombinerer
- Fælles
- Kommunikation
- samfund
- overbevisende
- fuldføre
- Compute
- computer
- Computer Vision
- Bekymringer
- Konfiguration
- konfigureret
- består
- Container
- Beholdere
- indhold
- kontrol
- Tilsvarende
- Koste
- omkostningseffektiv
- dækket
- Oprettelse af
- skik
- kunde
- Kunder
- tilpasse
- Cybersecurity
- data
- Beslutningstagning
- dedikeret
- defaults
- definere
- definerede
- definere
- demonstrere
- Denial of Service
- Afhængigt
- indsætte
- implementering
- implementering
- Design
- design mønstre
- detaljeret
- Detektion
- Bestem
- forskellige
- mapper
- diskutere
- diskussion
- Sygdom
- forskelligartede
- Docker
- Er ikke
- Dont
- downloade
- dumpe
- varighed
- i løbet af
- hver
- Øst
- effekt
- effektiv
- effektivt
- indsats
- enten
- emerge
- bemyndige
- muliggøre
- ende
- Endpoint
- sikre
- Enterprise
- Miljø
- miljøer
- især
- Europa
- evaluering
- Endog
- udviklet sig
- eksempel
- eksempler
- udforske
- Udforskning
- ekstra
- familie
- Feature
- Funktionalitet
- File (Felt)
- Filer
- endelige
- Endelig
- finansielle
- Fornavn
- Fleksibilitet
- flow
- Fokus
- fokusering
- efter
- følger
- Til
- skov
- format
- fundet
- fire
- Framework
- rammer
- bedrageri
- bedrageri afsløring
- venner
- fra
- fuld
- funktion
- funktioner
- Endvidere
- Gevinst
- vinder
- generere
- få
- få
- given
- større
- vejledning
- Halvdelen
- håndtere
- Håndterer
- Have
- he
- tunge
- tunge løft
- hjælper
- hende
- højere
- hans
- host
- Hosting
- Hvordan
- How To
- Men
- HTML
- http
- HTTPS
- Hyperparameter optimering
- Tuning af hyperparameter
- ideal
- tomgang
- if
- billede
- gennemføre
- gennemføre
- redskaber
- vigtigt
- in
- omfatter
- omfatter
- individuel
- Individuelt
- oplysninger
- Infrastruktur
- indgang
- installere
- instans
- i stedet
- Intelligens
- ind
- indføre
- Introducerer
- påberåbes
- påberåber sig
- israel
- spørgsmål
- IT
- Job
- Karriere
- jpg
- json
- nøgler
- Venlig
- kendt
- Sprog
- større
- senere
- lancere
- læring
- løftestang
- Li
- biblioteker
- Bibliotek
- løft
- GRÆNSE
- Liste
- Børsnoterede
- belastninger
- lokale
- placeret
- placering
- logning
- UDSEENDE
- elsker
- maskine
- machine learning
- Main
- Flertal
- lave
- administrere
- lykkedes
- ledelse
- leder
- styring
- Masse
- maksimal
- betyde
- målinger
- medicinsk
- medlem
- Hukommelse
- Flet
- metode
- metoder
- metrisk
- Mellemøsten
- Middle East
- måske
- mindste
- minimering
- ML
- tilstand
- model
- modeller
- Moduler
- overvågning
- mere
- mest
- flere
- navn
- navne
- Natural
- Natural Language Processing
- Natur
- nødvendig
- Behov
- næste
- NLP
- Varsel..
- nummer
- talrige
- objekt
- objektiv
- of
- Tilbud
- tit
- on
- engang
- ONE
- kun
- betjene
- operationelle
- optimering
- Optimer
- optimering
- Option
- Indstillinger
- or
- OS
- Andet
- vores
- ud
- udendørs
- output
- samlet
- egen
- pakker
- parameter
- parametre
- del
- dele
- Bestået
- sti
- Mønster
- mønstre
- Betal
- per
- perioder
- fase
- pipeline
- plato
- Platon Data Intelligence
- PlatoData
- punkter
- politikker
- Populær
- mulig
- Indlæg
- potentiale
- praksis
- forudsige
- forudsigelse
- Forudsigelser
- Predictor
- forudser
- foretrække
- foretrækkes
- tryk
- forhindrer
- tidligere
- procedure
- behandle
- Behandlet
- forarbejdning
- producere
- progression
- lovende
- gennemprøvet
- give
- giver
- Python
- tilfældig
- hurtigt
- Læs
- reducere
- Reduceret
- reducere
- refererer
- betragte
- regulært udtryk
- region
- fjern
- Repository
- repræsentere
- anmode
- påkrævet
- Kræver
- Ressourcer
- henholdsvis
- ansvarlige
- resultere
- Resultater
- afkast
- afkast
- højre
- ROBERT
- roller
- Kør
- kører
- s
- sagemaker
- SageMaker Automatisk Model Tuning
- samme
- Gem
- besparelse
- Scale
- skalering
- forskere
- scikit-lære
- scripts
- SDK
- Anden
- se
- set
- valgt
- send
- senior
- adskille
- Sequence
- Serum
- Serverless
- Servere
- tjeneste
- Tjenester
- servering
- sæt
- indstillinger
- flere
- Køn
- hun
- bør
- viste
- Shows
- Tilsvarende
- Simpelt
- enkelt
- SIX
- Størrelse
- So
- løsninger
- Løsninger
- Løser
- Kilde
- specialist
- specifikke
- specificeret
- tilbringe
- stable
- stablet
- stabling
- Stanford
- starte
- starter
- state-of-the-art
- statistik
- Steps
- opbevaring
- opbevaret
- forhandler
- ligetil
- stærkere
- sådan
- RESUMÉ
- Understøttet
- Understøtter
- sikker
- sydney
- tager
- tager
- mål
- opgaver
- Teknisk
- teknikker
- Teknologier
- lejer
- end
- at
- deres
- Them
- derefter
- Der.
- derved
- derfor
- Disse
- de
- denne
- dem
- selvom?
- tre
- Gennem
- tid
- gange
- til
- sammen
- værktøjer
- emne
- I alt
- trækkraft
- Trafik
- Tog
- uddannet
- Kurser
- Træer
- Trevor
- Triton
- to
- typer
- under
- forstå
- Brug
- brug
- anvendte
- bruger
- ved brug af
- validering
- værdi
- Værdier
- forskellige
- udgave
- vision
- bind
- Afstemningen
- ønsker
- var
- Vej..
- måder
- we
- web
- webservices
- vægt
- var
- Hvad
- hvornår
- som
- mens
- Hele
- hvorfor
- vilje
- med
- inden for
- Arbejde
- arbejder
- virker
- skriver
- skrivning
- XGBoost
- år
- Du
- Din
- zephyrnet
- nul