Naar inhoud
lightbulb Welkom op de nieuwe kennisbank | We hebben de docs volledig vernieuwd met meer dan 160 features. Bekijk wat nieuw isarrow_forward

Custom training jobs uitvoeren op Vertex AI

Met custom training draai je je eigen trainingscode op beheerde Google-infrastructuur. Leer hoe je dat opzet, hardware kiest en je model netjes beheert.

Soms wil je volledige controle over hoe een model traint. Geen kant-en-klare AutoML, maar je eigen code met je eigen framework, je eigen architectuur en je eigen logica. Daarvoor zijn custom training jobs. Je schrijft de trainingscode, Vertex AI regelt de infrastructuur eronder.

Het voordeel is dat je niet zelf servers hoeft te beheren. Je geeft aan welke hardware je nodig hebt, Vertex AI start die machines, draait je training en ruimt daarna alles weer op. Je betaalt alleen voor de tijd dat de training echt draait.

Hoe een custom training job werkt

Je levert je trainingscode aan op een van twee manieren. Of je verpakt alles in een eigen container, of je geeft een Python-pakket aan dat Vertex AI in een vooraf gebouwde container draait. Containers geven de meeste vrijheid, het Python-pakket is sneller op te zetten.

Bij het starten kies je de hardware. Voor lichte training volstaat een CPU, voor zwaar werk pak je een of meer GPU's. Vertex AI start de machines, draait je code en stopt de machines weer zodra de training klaar is.

info

Je betaalt alleen voor draaitijd

Je betaalt voor de hardware zolang de training draait, niet langer. Een job die twee uur duurt, kost twee uur rekentijd. Daarna worden de machines vrijgegeven en stoppen de kosten.

Je code voorbereiden

Je trainingscode moet weten waar de data staat en waar het model heen moet. Vertex AI geeft die locaties mee via omgevingsvariabelen. De belangrijkste zijn AIP_MODEL_DIR voor het pad waar je het getrainde model wegschrijft en AIP_CHECKPOINT_DIR voor tussentijdse checkpoints. Beide wijzen naar een map in Cloud Storage onder de baseOutputDirectory die je bij de job opgeeft.

Voor toegang tot Cloud Storage hoef je niet per se een client-bibliotheek te gebruiken. Vertex AI koppelt je buckets aan elke trainingsmachine onder de map /gcs/, zodat je data kunt lezen en schrijven alsof het lokale bestanden zijn. Dat scheelt boilerplate in je code.

Houd je code robuust. Een trainingsjob kan lang duren, dus zorg dat hij tussentijds voortgang opslaat. Valt er iets uit, dan kun je verder vanaf het laatste checkpoint in plaats van helemaal opnieuw te beginnen.

Zo zet je een custom training job op

  1. Schrijf je trainingscode en test hem lokaal op een kleine dataset.
  2. Verpak de code in een container of bereid een Python-pakket voor.
  3. Zet je trainingsdata klaar in Cloud Storage.
  4. Laat je code wegschrijven naar AIP_MODEL_DIR en sla checkpoints op in AIP_CHECKPOINT_DIR.
  5. Configureer de job met de gewenste hardware en regio.
  6. Start de job en volg de logs in de console.
  7. Haal het getrainde model op uit Cloud Storage en registreer het in het modelregister.

Hardware kiezen

De hardwarekeuze bepaalt snelheid en kosten. Een CPU is goedkoop maar traag voor zware modellen. Een GPU versnelt training fors maar kost meer per uur. Voor de allergrootste modellen zijn er gespecialiseerde versnellers, zoals Cloud TPU's.

Begin klein. Test je code eerst op een goedkope machine met een kleine dataset om fouten eruit te halen. Schaal pas op naar dure hardware als je zeker weet dat je code klopt. Zo verspil je geen geld aan een job die op een fout crasht.

warning

Faal snel en goedkoop

Test je trainingscode altijd eerst lokaal of op goedkope hardware met een mini-dataset. Een fout die pas na een uur op dure GPU's opduikt, kost onnodig veel. Begin klein en schaal pas op als de code bewezen werkt.

Schalen en verdelen

Voor grote modellen of grote datasets kun je training over meerdere machines verdelen. Dat heet gedistribueerde training. Vertex AI ondersteunt dit, maar je code moet er wel op voorbereid zijn. Niet elk model schaalt vanzelf over meerdere machines. Je definieert een primaire worker en daarnaast extra worker-replica's, waarna je framework de communicatie tussen de machines regelt.

Overweeg deze stap pas als een enkele machine echt te traag is. Gedistribueerde training is krachtig maar voegt complexiteit toe. Voor veel projecten is een goede enkele GPU-machine ruim voldoende.

Een verstandige opbouw ziet er zo uit:

  1. Test lokaal met een kleine dataset om de logica te valideren.
  2. Draai een korte cloud-job op een goedkope machine om de integratie te checken.
  3. Draai de volledige training op de juiste hardware.
  4. Schaal naar gedistribueerde training alleen als een enkele machine te traag blijkt.

Resultaat beheren

Na een geslaagde training staat je model in Cloud Storage. Registreer het in het modelregister van Vertex AI, zodat je overzicht houdt over versies. Vanuit het register deploy je het model later naar een endpoint of gebruik je het voor batch-voorspellingen.

Noteer bij elk model welke data en welke instellingen tot dit resultaat leidden. Reproduceerbaarheid is goud waard als je later moet uitleggen waarom een model doet wat het doet, of als je een eerdere versie wilt herstellen.

lightbulb

Koppel een experiment aan je jobs

Log je metrieken en parameters per run, bijvoorbeeld via Vertex AI Experiments of TensorBoard. Zo kun je later runs naast elkaar leggen en zien welke hardware, dataset en hyperparameters tot het beste model leidden.

Veelgestelde vragen

Wat is het verschil met AutoML?

Bij AutoML schrijf je geen trainingscode en kies je vooral data en doel. Bij custom training schrijf je je eigen code en heb je volledige controle over framework, architectuur en logica.

Welke frameworks kan ik gebruiken?

Vrijwel alle gangbare ML-frameworks, omdat je je eigen container of Python-pakket aanlevert met de bibliotheken die je nodig hebt. Voor populaire frameworks zoals TensorFlow, PyTorch en scikit-learn zijn er ook vooraf gebouwde containers.

Betaal ik als de training stilstaat?

Nee, je betaalt alleen voor de tijd dat de job daadwerkelijk draait. Zodra de training klaar is of stopt, worden de machines vrijgegeven en stoppen de kosten.

Hoe voorkom ik dat een lange training verloren gaat bij een storing?

Sla tussentijds checkpoints op in de map die AIP_CHECKPOINT_DIR aanwijst. Bij een herstart kan je code dan verder vanaf het laatste punt in plaats van opnieuw te beginnen.

Hoe lees ik mijn data het makkelijkst in?

Vertex AI koppelt je Cloud Storage-buckets onder /gcs/ op elke machine. Je kunt je data daar lezen alsof het lokale bestanden zijn, zonder aparte client-code.

Wanneer kies ik voor gedistribueerde training?

Pas als een enkele machine te traag is voor je model of dataset. Het levert snelheid op maar voegt complexiteit toe, dus voor veel projecten volstaat een enkele krachtige GPU-machine.

Custom training geeft je de vrijheid om elk model op jouw manier te trainen, zonder zelf servers te beheren. Test klein, schaal bewust en beheer je resultaten netjes in het modelregister.