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

  1. Entendre què és TensorFlow Serving i per què és útil.
  2. Aprendre a instal·lar TensorFlow Serving.
  3. Configurar TensorFlow Serving per servir un model de ML.
  4. 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

  1. Descarrega la imatge de TensorFlow Serving:

    docker pull tensorflow/serving
    
  2. 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

  1. 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.

  1. 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:

{
    "predictions": [0.1, 0.9, 0.8]
}

Exercici pràctic

Objectiu

Desplegar un model de TensorFlow utilitzant TensorFlow Serving i realitzar una petició de predicció.

Passos

  1. Guarda un model de TensorFlow en un directori anomenat my_model.
  2. Executa TensorFlow Serving utilitzant Docker per servir el model.
  3. Realitza una petició de predicció al model utilitzant curl.

Solució

  1. 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')
    
  2. 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
  3. 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ó.

© Copyright 2024. Tots els drets reservats