Google Cloud AI Platform tilbyder et omfattende miljø til at bygge, træne og implementere maskinlæringsmodeller i stor skala ved hjælp af Google Clouds robuste infrastruktur. Ved hjælp af Google Cloud Consoles brugergrænseflade kan brugerne orkestrere arbejdsgange til modeludvikling uden at skulle interagere direkte med kommandolinjeværktøjer. Den trinvise vejledning nedenfor demonstrerer, hvordan man træner og implementerer en simpel AI-model – specifikt et neuralt netværk til klassificering – ved hjælp af den grafiske brugerflade, fremhæver bedste praksis og giver didaktisk værdi hele vejen igennem.
Forudsætninger
Før du fortsætter, skal du sørge for at have:
1. En Google Cloud Platform (GCP)-konto med aktiveret fakturering.
2. Tilstrækkelige tilladelser (f.eks. projektredaktør eller ejer) til at bruge AI-platformtjenester.
3. En Cloud Storage-bucket i dit GCP-projekt til at gemme data og modeller.
4. AI-platformen, Compute Engine og Cloud Storage API'erne, der er aktiveret til dit projekt.
Trin 1: Forbered dine data
Kvaliteten og formatet af dine data påvirker modellens ydeevne betydeligt. Som en demonstration kan man overveje det velkendte Iris-datasæt, et simpelt klassifikationsproblem med flere klasser.
1. Hent datasættet
– Download Iris-datasættet i CSV-format fra en pålidelig kilde (f.eks. UCI Machine Learning Repository).
2. Upload data til cloud-lagring
– Log ind på GCP-konsollen.
– Naviger til "Lager" > "Browser".
– Klik på "Opret spand", hvis du ikke har en, eller vælg en eksisterende spand.
– Klik på "Upload filer", og vælg din CSV-fil.
3. Tjek dataskema
– Brug fanen "Forhåndsvisning" i Cloud Storage til at visualisere din CSV og verificere integriteten af dine data.
Didaktisk note: Lagring af inputdata i Cloud Storage er standardpraksis i distribueret cloud-træning. Det afkobler data- og beregningsressourcer, hvilket muliggør problemfri adgang fra flere træningsmedarbejdere.
Trin 2: Opret en træningsapplikation
Til distribueret træning eller brug af brugerdefinerede modeller forventer AI Platform, at din træningskode er i Python, typisk pakket som et Python-modul. Til simple modeller leverer AI Platform dog præbyggede containere via "Brugerdefinerede job"- eller "AutoML"-indstillinger. Denne vejledning fokuserer på brugen af et brugerdefineret Python-script for maksimal fleksibilitet.
1. Skriv din modelkode
– Opret et Python-script (f.eks. `trainer/task.py`), der:
– Indlæser datasættet fra Cloud Storage.
– Forbehandler dataene.
– Definerer en simpel Keras sekventiel model til klassificering.
– Træner modellen og gemmer outputtet i Cloud Storage.
– Eksempel på kodeuddrag (forenklet):
python import os import pandas as pd import tensorflow as tf from tensorflow import keras def load_data(file_path): return pd.read_csv(file_path) def create_model(input_shape): model = keras.Sequential([ keras.layers.Dense(10, activation='relu', input_shape=(input_shape,)), keras.layers.Dense(3, activation='softmax') ]) model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy']) return model def main(): # Environment variables set by AI Platform input_path = os.environ['AIP_DATA_FORMAT'] output_dir = os.environ['AIP_MODEL_DIR'] df = load_data(input_path) X = df.iloc[:, :-1].values y = df.iloc[:, -1].values model = create_model(X.shape[1]) model.fit(X, y, epochs=10) model.save(output_dir) if __name__ == '__main__': main()
- Bemærk: For produktions- eller større datasæt bør du inkorporere bedste praksis såsom blandning, tog-test-opdeling og datanormalisering.
2. Pak koden
– Strukturer din kodemappe som følger:
trainer/ __init__.py task.py
– Komprimer `trainer`-mappen til en `.tar.gz`-fil til upload.
3. Upload kode til cloud-lagring
– Naviger til din lagerbeholder.
– Upload `.tar.gz`-filen, der indeholder din træningskode.
Didaktisk note: Pakkekode muliggør reproducerbarhed og versionskontrol, som begge er vigtige i samarbejdsbaserede og distribuerede ML-arbejdsgange.
Trin 3: Opret et træningsjob via GCP-konsollen
1. Naviger til Vertex AI
– Gå til "Vertex AI" > "Træning" i GCP-konsollen.
2. Start et nyt træningsjob
– Klik på "Opret" for at starte et nyt træningsjob.
– Vælg "Tilpasset træning".
3. Konfigurer træningsjobbet
- Vist navn: Indtast et genkendeligt navn til dit job.
- Region: Vælg en region tæt på din dataplacering for at opnå ydeevne og omkostningseffektivitet.
- Python-pakkeplacering: Indtast stien til Cloud Storage til din `.tar.gz`-fil (f.eks. `gs://your-bucket/trainer.tar.gz`).
- Python-modulnavn: Angiv modulets startpunkt (f.eks. `trainer.task`).
4. Angiv træningscontainer
– Vælg "TensorFlow" som framework (f.eks. TensorFlow 2.8), hvis din kode er afhængig af det.
– Systemet udfylder automatisk kompatible Docker-containere.
5. Angiv inputargumenter og hyperparametre (valgfrit)
– Du kan tilføje argumenter for hyperparametre, stier eller andre runtime-variabler.
– Eksempel: `–input-path=gs://din-spand/iris.csv –output-dir=gs://din-spand/model-output`
6. Konfigurer beregningsressourcer
- Maskintype: For simple modeller er `n1-standard-4` tilstrækkelig.
- Accelerator: Ingen påkrævet, medmindre der trænes dybe eller komplekse modeller.
- Størrelse på arbejdspuljen: Indstil til 1 for træning med én node eller mere for distribueret træning (se afsnittet om distribueret træning nedenfor).
7. Outputmodelkatalog
– Angiv en Cloud Storage-sti til de trænede modelartefakter (f.eks. `gs://your-bucket/model-output`).
8. Opret og kør jobbet
– Klik på "Opret" for at starte jobbet. Overvåg status i konsolbrugergrænsefladen under fanen "Træningsjob".
Didaktisk note: Brug af den grafiske brugergrænseflade fjerner kompleksiteten i kommandolinjen, hvilket gør arbejdsgangen mere tilgængelig for nye brugere og dem, der fokuserer på prototyping.
Trin 4: (Valgfrit) Aktivér distribueret træning
For større datasæt eller dybe neurale netværk kan træning distribueres på tværs af flere maskiner.
1. Find "Konfiguration af arbejdsgruppe" i konfigurationen "Træningsjob".
2. Tilføj yderligere arbejderpuljer:
- Høvding: 1 (hovednode)
- Arbejdere: Angiv nummer baseret på datasæt-/modelstørrelse.
- Parameterservere: Bruges til modelparameterkoordinering, relevant for distribuerede TensorFlow-job.
3. For hver pool skal du angive maskintype og Docker-image (skal matche dit framework og din version).
4. Sørg for, at din kode understøtter distribueret træning (f.eks. ved at bruge `tf.distribute.Strategy`).
Didaktisk note: Distribueret træning kan reducere træningstiden betydeligt for store problemer. Det introducerer overvejelser som datasharding, synkronisering og netværksoverhead. For simple modeller og datasæt er træning på én node tilstrækkelig.
Trin 5: Implementer modellen via GCP-konsollens brugergrænseflade
Når træningen er færdig, er modelartefakterne tilgængelige i din angivne Cloud Storage-bucket. Implementer derefter modellen til online forudsigelse.
1. Registrer modellen
– I "Vertex AI" > "Modeller" skal du klikke på "Upload model".
– Vælg "Fra trænede modelartefakter".
– Angiv Cloud Storage-stien til din gemte modelmappe (f.eks. `gs://your-bucket/model-output`).
2. Modelramme og format
– Angiv frameworket (f.eks. TensorFlow) og versionen.
– Vertex AI registrerer automatisk modeltypen (SavedModel, scikit-learn pickle osv.).
3. Modelvisningsnavn
– Indtast et unikt visningsnavn for din model.
4. Område
– Vælg den region, der matcher din trænings- og opbevaringslokation.
5. Opret modellen
– Klik på "Opret" og vent på, at registreringen er fuldført.
6. Implementer til et slutpunkt
– Når modellen er registreret, skal du klikke på "Implementer til slutpunkt".
– Opret et nyt slutpunkt eller vælg et eksisterende.
– Konfigurer trafikopdeling, hvis der implementeres flere versioner.
- Maskintype: Vælg en passende instanstype til visning; for små modeller er `n1-standard-2` tilstrækkelig.
- Minimum/maksimum antal replikaer: Indstil skaleringsparametre baseret på forventet anmodningsvolumen.
– Aktivér eventuelt GPU/TPU-acceleration for hurtigere inferens.
7. Implementer
– Klik på "Implementer". Implementeringsprocessen kan tage flere minutter.
Didaktisk note: Adskillelse af modelregistrering og implementering muliggør robust versionskontrol og A/B-testning, hvilket understøtter bedste praksis for MLOps.
Trin 6: Test den implementerede model
1. Forbered testdata
– Formatér inputdata som krævet af modellen (f.eks. som et JSON-objekt med de samme funktioner som træningsdataene).
2. Brug konsollen til testning
– I Vertex AI > Endpoints skal du vælge dit implementerede endpoint.
– Klik på "Testslutpunkt".
– Indsæt dine testdata i anmodningsteksten.
– Klik på "Send anmodning" og se resultaterne af forudsigelsen.
Didaktisk note: Test via GUI'en muliggør hurtig validering, før modellen integreres i produktionsapplikationer via REST API eller klientbiblioteker.
Trin 7: Overvåg og administrer modelydelse
1. Se forudsigelser og logfiler
– Adgang til logfiler fra slutpunktet for forudsigelsesanmodninger, latenstid og fejl.
– Brug "Overvågning" i Vertex AI til at oprette alarmer og spore ressourceudnyttelse.
2. Opdater eller omtræn modellen
– Når forbedrede data- eller modelversioner er tilgængelige, gentages trænings- og implementeringsprocessen.
– Opdater slutpunktet for at dirigere trafik til den nye modelversion uden nedetid.
Trin 8: Ryd op i ressourcer
For at undgå unødvendige gebyrer:
1. Slet ubrugte modeller, slutpunkter og træningsjob fra Vertex AI.
2. Fjern store filer fra Cloud Storage-buckets, hvis de ikke længere er nødvendige.
3. Frigiv alle reserverede IP-adresser eller beregningsressourcer.
Eksempler og didaktisk værdi
- Eksempel 1: Træning af én node med Iris-datasæt
– Træning af en Keras-model med Iris-datasættet via GUI'en demonstrerer principperne for cloudbaseret maskinlæring, herunder afkobling af datalagring, modulpakning og reproducerbar træning.
- Eksempel 2: Distribueret træning for flere medarbejdere
– Ved skalering til store tabeldatasæt muliggør konfiguration af flere arbejdspuljer via GUI'en distribueret data- og modelparallelisme. Dette introducerer studerende til avancerede ML-tekniske koncepter såsom synkroniseringsbarrierer og parameterservere.
Den GUI-drevne arbejdsgang på Google Cloud AI Platform er pædagogisk værdifuld, da den:
– Sænker adgangsbarrierer for begyndere ved at tilbyde en visuel, trinvis proces.
– Illustrerer adskillelsen mellem data, model og infrastruktur.
– Forstærker den iterative karakter af modeludvikling – forberedelse af data, træning, evaluering, implementering, overvågning og genoptræning.
– Demonstrerer branchestandardpraksis for MLOps, herunder versionskontrol, overvågning og skalerbar implementering.
Almindelige faldgruber og fejlfinding
- Tilladelsesfejl: Sørg for, at din tjenestekonto har de nødvendige tilladelser til at få adgang til Cloud Storage, AI Platform og Compute Engine.
- Ressourcegrænser: Hvis træningsjob mislykkes på grund af kvoteproblemer, skal du kontrollere dit projekts kvoter og anmode om forhøjelser, hvis det er nødvendigt.
- Uoverensstemmelse mellem dataformat: Bekræft altid CSV-skemaet og forbehandlingstrinnene for at sikre, at de stemmer overens med forventningerne til modelinput.
- Model implementeres ikke: Sørg for, at modellen er gemt i et format, der er kompatibelt med Vertex AI (f.eks. TensorFlow SavedModel).
Avancerede emner til udforskning
- Tuning af hyperparameter: Brug Vertex AI's indbyggede hyperparameter-tuningfunktion til at automatisere optimal parametersøgning.
- Rørledninger: Orkestrer flertrins ML-arbejdsgange for reproducerbarhed og automatisering.
- Modelovervågning: Opsæt kontinuerlig evaluering og afdriftsdetektion for modeller i produktion.
Denne trinvise tilgang via den grafiske brugergrænseflade opbygger grundlæggende kompetencer inden for cloudbaseret maskinlæring og forbereder brugerne til mere sofistikerede, automatiserede eller kodedrevne arbejdsgange, efterhånden som deres ekspertise vokser.
Andre seneste spørgsmål og svar vedr Distribueret træning i skyen:
- Hvad er den enkleste trinvise procedure til at øve sig i distribueret AI-modeltræning i Google Cloud?
- Hvad er den første model, man kan arbejde med, med nogle praktiske forslag til at begynde med?
- Hvad er ulemperne ved distribueret træning?
- Hvilke trin er involveret i at bruge Cloud Machine Learning Engine til distribueret træning?
- Hvordan kan du overvåge udviklingen af et træningsjob i Cloud Console?
- Hvad er formålet med konfigurationsfilen i Cloud Machine Learning Engine?
- Hvordan fungerer dataparallelisme i distribueret træning?
- Hvad er fordelene ved distribueret træning i maskinlæring?