Rừng quyết định TensorFlow và phục vụ TensorFlow

Phục vụ TensorFlow (Phục vụ TF) là một công cụ để chạy các mô hình TensorFlow trực tuyến trong cài đặt sản xuất lớn bằng cách sử dụng API RPC hoặc REST. Rừng quyết định TensorFlow (TF-DF) được hỗ trợ nguyên bản bởi TF Serve >=2.11.

Các mẫu TF-DF tương thích trực tiếp với TF Serve. Các mô hình Yggdrasil có thể được sử dụng với TF Serve sau khi được chuyển đổi trước.

Hạn chế

TensorFlow bổ sung thêm một lượng chi phí tính toán đáng kể. Đối với các mô hình nhỏ, nhạy cảm với độ trễ (ví dụ: thời gian suy luận của mô hình ~1µs), chi phí chung này có thể lớn hơn rất nhiều so với thời gian mà chính mô hình đó cần. Trong trường hợp này, nên chạy các mô hình TF-DF với Rừng Quyết định Yggdrasil .

Ví dụ sử dụng

Ví dụ sau đây cho thấy cách chạy mô hình TF-DF trong Phục vụ TF:

Đầu tiên cài đặt TF Serve . Trong ví dụ này, chúng tôi sẽ sử dụng phiên bản được biên dịch trước của TF-Serving + TF-DF.

# 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

Trong ví dụ này, chúng tôi sử dụng mô hình TF-DF đã được đào tạo.

# 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}"

Lưu ý: TF-Serving yêu cầu đường dẫn đầy đủ của mô hình. Đây là lý do tại sao chúng tôi sử dụng $(pwd) .

TF-Serving hỗ trợ phiên bản mô hình. Mô hình phải được chứa trong một thư mục có tên là phiên bản của mô hình. Phiên bản mô hình là một số nguyên, ví dụ: "1". Đây là một thư mục điển hình cho TF-Serving.

  • /path/to/model
    • 1 : Phiên bản 1 của mô hình
    • 5 : Phiên bản 5 của mô hình
    • 6 : Phiên bản 6 của mô hình

Đối với ví dụ này, chúng ta chỉ cần đặt mô hình vào thư mục có tên "1".

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

Bây giờ chúng ta có thể bắt đầu TF-Sering trên mô hình.

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

Cuối cùng, bạn có thể gửi yêu cầu tới TF Serve bằng Rest API. Có hai định dạng: API dự đoán+phiên bản và API dự đoán+đầu vào. Dưới đây là một ví dụ về mỗi người trong số họ:

# 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"]} }'