Introducció

La Plataforma d'IA de Google Cloud (AI Platform) és un conjunt de serveis i eines que permeten als desenvolupadors i científics de dades construir, entrenar i desplegar models d'aprenentatge automàtic (ML) a escala. Aquest mòdul proporcionarà una visió general de les capacitats de la Plataforma d'IA, així com exemples pràctics i exercicis per ajudar-te a començar.

Continguts

Què és la Plataforma d'IA?

La Plataforma d'IA de Google Cloud és una solució completa per al desenvolupament de models d'aprenentatge automàtic. Ofereix eines per a cada pas del cicle de vida del ML, des de la preparació de dades fins al desplegament i monitoratge de models.

Característiques clau:

  • Entrenament gestionat: Permet entrenar models a gran escala utilitzant la infraestructura de Google.
  • Desplegament de models: Facilita el desplegament de models per a la inferència en temps real o per lots.
  • Integració amb altres serveis de GCP: Com BigQuery, Cloud Storage, i Dataflow.

Components principals de la Plataforma d'IA

  1. AI Platform Notebooks

  • Entorns de desenvolupament integrats (IDE) basats en Jupyter Notebooks.
  • Preconfigurats amb biblioteques populars de ML com TensorFlow, Keras, i PyTorch.

  1. AI Platform Training

  • Servei gestionat per entrenar models de ML a gran escala.
  • Suporta entrenament distribuït i acceleració amb GPU/TPU.

  1. AI Platform Prediction

  • Servei per desplegar models entrenats i fer prediccions en temps real o per lots.
  • Escalabilitat automàtica per gestionar diferents volums de sol·licituds.

  1. AI Platform Pipelines

  • Eina per crear, gestionar i monitorar fluxos de treball de ML.
  • Basat en Kubeflow Pipelines.

Entrenament de models

Passos per entrenar un model a la Plataforma d'IA:

  1. Preparació de dades: Emmagatzema les dades d'entrenament a Google Cloud Storage.
  2. Definició del model: Escriu el codi del model utilitzant TensorFlow, Keras, o una altra biblioteca de ML.
  3. Configuració de l'entrenament: Defineix els paràmetres d'entrenament, com el tipus de màquina i el nombre d'epochs.
  4. Llançament de la feina d'entrenament: Utilitza AI Platform Training per iniciar l'entrenament.

Exemple de codi per entrenar un model:

import tensorflow as tf
from tensorflow import keras

# Defineix el model
model = keras.Sequential([
    keras.layers.Dense(128, activation='relu', input_shape=(784,)),
    keras.layers.Dense(10, activation='softmax')
])

# Compila el model
model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

# Carrega les dades d'entrenament
(train_images, train_labels), (test_images, test_labels) = keras.datasets.mnist.load_data()
train_images = train_images / 255.0
test_images = test_images / 255.0

# Entrena el model
model.fit(train_images, train_labels, epochs=5)

# Guarda el model
model.save('gs://bucket_name/model')

Desplegament de models

Passos per desplegar un model a la Plataforma d'IA:

  1. Emmagatzematge del model: Guarda el model entrenat a Google Cloud Storage.
  2. Creació d'una versió del model: Utilitza AI Platform Prediction per crear una versió del model.
  3. Desplegament del model: Desplega la versió del model per fer prediccions.

Exemple de codi per desplegar un model:

# Defineix variables
MODEL_NAME="mnist_model"
MODEL_VERSION="v1"
MODEL_PATH="gs://bucket_name/model"

# Crea el model a AI Platform
gcloud ai-platform models create $MODEL_NAME --regions us-central1

# Crea una versió del model
gcloud ai-platform versions create $MODEL_VERSION \
  --model $MODEL_NAME \
  --origin $MODEL_PATH \
  --runtime-version 2.1 \
  --python-version 3.7

Exemple pràctic: Entrenament i desplegament d'un model

Objectiu:

Entrenar un model de classificació d'imatges utilitzant el conjunt de dades MNIST i desplegar-lo per fer prediccions en temps real.

Passos:

  1. Preparació de dades: Carrega i preprocesa les dades MNIST.
  2. Entrenament del model: Defineix i entrena un model de xarxa neuronal.
  3. Desplegament del model: Guarda el model a Google Cloud Storage i desplega'l utilitzant AI Platform Prediction.

Codi complet:

import tensorflow as tf
from tensorflow import keras

# Defineix el model
model = keras.Sequential([
    keras.layers.Flatten(input_shape=(28, 28)),
    keras.layers.Dense(128, activation='relu'),
    keras.layers.Dense(10, activation='softmax')
])

# Compila el model
model.compile(optimizer='adam',
              loss='sparse_categorical_crossentropy',
              metrics=['accuracy'])

# Carrega les dades d'entrenament
(train_images, train_labels), (test_images, test_labels) = keras.datasets.mnist.load_data()
train_images = train_images / 255.0
test_images = test_images / 255.0

# Entrena el model
model.fit(train_images, train_labels, epochs=5)

# Guarda el model
model.save('gs://bucket_name/model')

# Desplega el model (executa aquest codi a la terminal)
# gcloud ai-platform models create mnist_model --regions us-central1
# gcloud ai-platform versions create v1 --model mnist_model --origin gs://bucket_name/model --runtime-version 2.1 --python-version 3.7

Exercicis pràctics

Exercici 1: Entrenament d'un model de regressió

  • Utilitza un conjunt de dades de regressió (per exemple, el conjunt de dades de preus de cases).
  • Defineix i entrena un model de regressió utilitzant TensorFlow.
  • Guarda el model a Google Cloud Storage.

Exercici 2: Desplegament d'un model de regressió

  • Desplega el model de regressió entrenat utilitzant AI Platform Prediction.
  • Fes prediccions utilitzant el model desplegat.

Solucions

Exercici 1: Entrenament d'un model de regressió

import tensorflow as tf
from tensorflow import keras
import numpy as np

# Genera dades de mostra
x = np.random.rand(1000, 1)
y = 3 * x + np.random.randn(1000, 1) * 0.1

# Defineix el model
model = keras.Sequential([
    keras.layers.Dense(1, input_shape=(1,))
])

# Compila el model
model.compile(optimizer='adam', loss='mean_squared_error')

# Entrena el model
model.fit(x, y, epochs=10)

# Guarda el model
model.save('gs://bucket_name/regression_model')

Exercici 2: Desplegament d'un model de regressió

# Defineix variables
MODEL_NAME="regression_model"
MODEL_VERSION="v1"
MODEL_PATH="gs://bucket_name/regression_model"

# Crea el model a AI Platform
gcloud ai-platform models create $MODEL_NAME --regions us-central1

# Crea una versió del model
gcloud ai-platform versions create $MODEL_VERSION \
  --model $MODEL_NAME \
  --origin $MODEL_PATH \
  --runtime-version 2.1 \
  --python-version 3.7

Conclusió

En aquest mòdul, hem explorat la Plataforma d'IA de Google Cloud, incloent-hi els seus components principals, com entrenar i desplegar models, i hem treballat amb exemples pràctics. Ara tens les eines necessàries per començar a construir i desplegar els teus propis models d'aprenentatge automàtic a Google Cloud. En el següent mòdul, explorarem AutoML, una eina que facilita la creació de models de ML sense necessitat de coneixements avançats en programació.

© Copyright 2024. Tots els drets reservats