غابات القرار TensorFlow وخدمة TensorFlow

TensorFlow Serving (TF Serving) هي أداة لتشغيل نماذج TensorFlow عبر الإنترنت في إعدادات الإنتاج الكبيرة باستخدام RPC أو REST API. يتم دعم غابات القرار TensorFlow (TF-DF) محليًا بواسطة TF Serving >=2.11.

تتوافق نماذج TF-DF بشكل مباشر مع خدمة TF. يمكن استخدام نماذج Yggdrasil مع TF Serving بعد تحويلها أولاً.

محددات

يضيف TensorFlow قدرًا كبيرًا من النفقات الحسابية. بالنسبة للنماذج الصغيرة الحساسة لزمن الوصول (على سبيل المثال، وقت استدلال النموذج ~1μs)، يمكن أن يكون هذا الحمل أكبر من حيث الحجم من الوقت الذي يحتاجه النموذج نفسه. في هذه الحالة، يوصى بتشغيل نماذج TF-DF باستخدام Yggdrasil Decision Forests .

مثال الاستخدام

يوضح المثال التالي كيفية تشغيل نموذج TF-DF في خدمة TF:

أولاً، قم بتثبيت خدمة TF . في هذا المثال، سوف نستخدم نسخة مجمعة مسبقًا من 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

في هذا المثال، نستخدم نموذج TF-DF تم تدريبه بالفعل.

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

ملاحظات: تتطلب خدمة TF المسار الكامل للنموذج. لهذا السبب نستخدم $(pwd) .

يدعم TF-Serving إصدار النموذج. يجب أن يكون النموذج موجودًا في دليل اسمه هو إصدار النموذج. إصدار النموذج هو عدد صحيح، على سبيل المثال، "1". فيما يلي دليل نموذجي لخدمة TF.

  • /path/to/model
    • 1 : الإصدار 1 من النموذج
    • 5 : الإصدار 5 من النموذج
    • 6 : الإصدار 6 من النموذج

في هذا المثال، نحتاج فقط إلى وضع النموذج في دليل يسمى "1".

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

الآن، يمكننا أن نبدأ TF-Sering على النموذج.

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

وأخيرًا، يمكنك إرسال طلب إلى TF Serving باستخدام Rest API. يتوفر تنسيقان: واجهة برمجة تطبيقات التوقع+المثيلات وواجهة برمجة تطبيقات التوقع+المدخلات. وفيما يلي مثال على كل واحد منهم:

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