Hutan Keputusan TensorFlow dan Penyajian TensorFlow

TensorFlow Serving (TF Serving) adalah alat untuk menjalankan model TensorFlow secara online dalam pengaturan produksi besar menggunakan RPC atau REST API. TensorFlow Decision Forests (TF-DF) didukung secara asli oleh TF Serving >=2.11.

Model TF-DF secara langsung kompatibel dengan TF Serving. Model Yggdrasil dapat digunakan dengan TF Serving setelah dikonversi terlebih dahulu.

Keterbatasan

TensorFlow menambahkan sejumlah besar overhead komputasi. Untuk model kecil yang sensitif terhadap latensi (misalnya, waktu inferensi model ~1µs), overhead ini bisa jauh lebih besar daripada waktu yang dibutuhkan oleh model itu sendiri. Dalam hal ini, disarankan untuk menjalankan model TF-DF dengan Yggdrasil Decision Forests .

Contoh penggunaan

Contoh berikut menunjukkan cara menjalankan model TF-DF di TF Serving:

Pertama, instal TF Melayani . Dalam contoh ini, kita akan menggunakan versi TF-Serving + TF-DF yang telah dikompilasi sebelumnya.

# Download TF Serving
wget https://github.com/tensorflow/decision-forests/releases/download/serving-1.0.1/tensorflow_model_server_linux.zip
unzip tensorflow_model_server_linux.zip

# Check that TF Serving works.
./tensorflow_model_server --version

Dalam contoh ini, kami menggunakan model TF-DF yang sudah dilatih.

# Get a TF-DF model
git clone https://github.com/tensorflow/decision-forests.git
MODEL_PATH=$(pwd)/decision-forests/tensorflow_decision_forests/test_data/model/saved_model_adult_rf

echo "The TF-DF model is available at: ${MODEL_PATH}"

Catatan: TF-Serving memerlukan jalur lengkap model. Inilah mengapa kami menggunakan $(pwd) .

TF-Serving mendukung pembuatan versi model. Model harus terdapat dalam direktori yang namanya merupakan versi model. Versi model adalah bilangan bulat, misalnya "1". Berikut adalah direktori khas untuk TF-Serving.

  • /path/to/model
    • 1 : Versi 1 model
    • 5 : Versi 5 model
    • 6 : Versi 6 model

Untuk contoh ini, kita hanya perlu meletakkan model di direktori bernama “1”.

mkdir -p /tmp/tf_serving_model
cp -R "${MODEL_PATH}" /tmp/tf_serving_model/1

Sekarang, kita dapat memulai TF-Sering pada model tersebut.

./tensorflow_model_server \
    --rest_api_port=8502 \
    --model_name=my_model \
    --model_base_path=/tmp/tf_serving_model

Terakhir, Anda dapat mengirim permintaan ke TF Serving menggunakan Rest API. Tersedia dua format: API prediksi+instances dan API prediksi+input. Berikut ini contoh masing-masingnya:

# Predictions with the predict+instances API.
curl http://localhost:8502/v1/models/my_model:predict -X POST \
    -d '{"instances": [{"age":39,"workclass":"State-gov","fnlwgt":77516,"education":"Bachelors","education_num":13,"marital_status":"Never-married","occupation":"Adm-clerical","relationship":"Not-in-family","race":"White","sex":"Male","capital_gain":2174,"capital_loss":0,"hours_per_week":40,"native_country":"United-States"}]}'
# Predictions with the predict+inputs API
curl http://localhost:8502/v1/models/my_model:predict -X POST \
    -d '{"inputs": {"age":[39],"workclass":["State-gov"],"fnlwgt":[77516],"education":["Bachelors"],"education_num":[13],"marital_status":["Never-married"],"occupation":["Adm-clerical"],"relationship":["Not-in-family"],"race":["White"],"sex":["Male"],"capital_gain":[2174],"capital_loss":[0],"hours_per_week":[40],"native_country":["United-States"]} }'