TensorFlow Serving és un sistema flexible i d'alt rendiment per servir models de machine learning (ML) en producció. Està dissenyat per facilitar el desplegament de models de TensorFlow, permetent actualitzacions ràpides i eficients dels models sense interrompre el servei. En aquesta secció, aprendrem com configurar i utilitzar TensorFlow Serving per desplegar models de ML.
Objectius d'aprenentatge
- Entendre què és TensorFlow Serving i per què és útil.
- Aprendre a instal·lar TensorFlow Serving.
- Configurar TensorFlow Serving per servir un model de ML.
- Realitzar peticions a un model servit amb TensorFlow Serving.
Què és TensorFlow Serving?
TensorFlow Serving és una biblioteca que permet servir models de ML en producció de manera eficient. Proporciona les següents funcionalitats clau:
- Desplegament de models: Permet desplegar models de ML de manera fàcil i ràpida.
- Actualitzacions de models: Suporta actualitzacions de models sense interrupcions del servei.
- Escalabilitat: Dissenyat per manejar grans volums de peticions amb baixa latència.
- Integració amb TensorFlow: Optimitzat per treballar amb models de TensorFlow, però també suporta altres tipus de models.
Instal·lació de TensorFlow Serving
Requisits previs
Abans d'instal·lar TensorFlow Serving, assegura't de tenir Docker instal·lat al teu sistema. Docker és una eina que permet crear, desplegar i executar aplicacions dins de contenidors.
Instal·lació amb Docker
-
Descarrega la imatge de TensorFlow Serving:
docker pull tensorflow/serving
-
Verifica que la imatge s'ha descarregat correctament:
docker images
Servir un model amb TensorFlow Serving
Pas 1: Preparar el model
Abans de servir un model, necessitem tenir un model de TensorFlow guardat en el format adequat. Suposem que tenim un model guardat en un directori anomenat my_model
.
Pas 2: Executar TensorFlow Serving
-
Executa TensorFlow Serving amb el model:
docker run -p 8501:8501 --name=tf_serving
--mount type=bind,source=/path/to/my_model,target=/models/my_model
-e MODEL_NAME=my_model -t tensorflow/serving-p 8501:8501
: Mapa el port 8501 del contenidor al port 8501 de l'amfitrió.--mount type=bind,source=/path/to/my_model,target=/models/my_model
: Mapa el directori del model de l'amfitrió al directori del model del contenidor.-e MODEL_NAME=my_model
: Estableix el nom del model.
Pas 3: Realitzar peticions al model servit
Un cop TensorFlow Serving està en funcionament, podem realitzar peticions al model utilitzant HTTP. Suposem que el model espera una entrada en format JSON.
-
Exemple de petició amb
curl
:curl -d '{"instances": [1.0, 2.0, 5.0]}'
-X POST http://localhost:8501/v1/models/my_model:predict-d '{"instances": [1.0, 2.0, 5.0]}'
: Dades d'entrada en format JSON.-X POST http://localhost:8501/v1/models/my_model:predict
: URL de l'API de predicció.
Pas 4: Interpretar la resposta
La resposta de TensorFlow Serving serà en format JSON i contindrà les prediccions del model. Per exemple:
Exercici pràctic
Objectiu
Desplegar un model de TensorFlow utilitzant TensorFlow Serving i realitzar una petició de predicció.
Passos
- Guarda un model de TensorFlow en un directori anomenat
my_model
. - Executa TensorFlow Serving utilitzant Docker per servir el model.
- Realitza una petició de predicció al model utilitzant
curl
.
Solució
-
Guardar el model:
import tensorflow as tf # Crear i entrenar un model simple model = tf.keras.Sequential([ tf.keras.layers.Dense(10, activation='relu', input_shape=(3,)), tf.keras.layers.Dense(1) ]) model.compile(optimizer='adam', loss='mean_squared_error') model.fit([[1, 2, 3]], [[1]], epochs=1) # Guardar el model model.save('/path/to/my_model')
-
Executar TensorFlow Serving:
docker run -p 8501:8501 --name=tf_serving
--mount type=bind,source=/path/to/my_model,target=/models/my_model
-e MODEL_NAME=my_model -t tensorflow/serving -
Realitzar una petició de predicció:
curl -d '{"instances": [[1.0, 2.0, 3.0]]}'
-X POST http://localhost:8501/v1/models/my_model:predict
Resum
En aquesta secció, hem après què és TensorFlow Serving i com utilitzar-lo per servir models de ML en producció. Hem vist com instal·lar TensorFlow Serving utilitzant Docker, com configurar-lo per servir un model i com realitzar peticions de predicció al model servit. Aquestes habilitats són essencials per desplegar models de ML de manera eficient i escalable en entorns de producció.
Curs de TensorFlow
Mòdul 1: Introducció a TensorFlow
- Què és TensorFlow?
- Configuració de TensorFlow
- Conceptes bàsics de TensorFlow
- Hola món amb TensorFlow
Mòdul 2: Conceptes bàsics de TensorFlow
Mòdul 3: Gestió de dades a TensorFlow
Mòdul 4: Construcció de xarxes neuronals
- Introducció a les xarxes neuronals
- Creació d'una xarxa neuronal simple
- Funcions d'activació
- Funcions de pèrdua i optimitzadors
Mòdul 5: Xarxes neuronals convolucionals (CNNs)
Mòdul 6: Xarxes neuronals recurrents (RNNs)
- Introducció a les RNNs
- Construcció d'una RNN
- Memòria a llarg termini (LSTM)
- Unitats recurrents amb porta (GRUs)
Mòdul 7: Tècniques avançades de TensorFlow
- Capes i models personalitzats
- TensorFlow Hub
- Aprenentatge per transferència
- Ajust de hiperparàmetres