TensorFlow सर्विंग (TF सर्विंग) RPC या REST API का उपयोग करके बड़ी उत्पादन सेटिंग्स में TensorFlow मॉडल को ऑनलाइन चलाने का एक उपकरण है। TensorFlow निर्णय वन (TF-DF) मूल रूप से TF सर्विंग >=2.11 द्वारा समर्थित है।
टीएफ-डीएफ मॉडल सीधे टीएफ सर्विंग के साथ संगत हैं। Yggdrasil मॉडल को पहले परिवर्तित करने के बाद TF सर्विंग के साथ उपयोग किया जा सकता है।
सीमाएँ
TensorFlow महत्वपूर्ण मात्रा में गणना ओवरहेड जोड़ता है। छोटे, विलंबता संवेदनशील मॉडल (उदाहरण के लिए, मॉडल अनुमान समय ~ 1μs) के लिए, यह ओवरहेड मॉडल द्वारा आवश्यक समय से बड़ा परिमाण का क्रम हो सकता है। इस मामले में, TF-DF मॉडल को Yggdrasil डिसीजन फ़ॉरेस्ट के साथ चलाने की अनुशंसा की जाती है।
उपयोग उदाहरण
निम्नलिखित उदाहरण दिखाता है कि टीएफ सर्विंग में टीएफ-डीएफ मॉडल कैसे चलाया जाए:
सबसे पहले, टीएफ सर्विंग स्थापित करें । इस उदाहरण में, हम टीएफ-सर्विंग + टीएफ-डीएफ के पूर्व-संकलित संस्करण का उपयोग करेंगे।
# 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}"
टिप्पणियाँ: टीएफ-सर्विंग के लिए मॉडल के पूर्ण पथ की आवश्यकता होती है। यही कारण है कि हम $(pwd)
उपयोग करते हैं।
टीएफ-सर्विंग मॉडल वर्जनिंग का समर्थन करता है। मॉडल को एक निर्देशिका में समाहित किया जाना चाहिए जिसका नाम मॉडल का संस्करण है। एक मॉडल संस्करण एक पूर्णांक है, उदाहरण के लिए, "1"। यहां टीएफ-सर्विंग के लिए एक विशिष्ट निर्देशिका है।
-
/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
अब, हम मॉडल पर टीएफ-सेरिंग शुरू कर सकते हैं।
./tensorflow_model_server \
--rest_api_port=8502 \
--model_name=my_model \
--model_base_path=/tmp/tf_serving_model
अंत में, आप रेस्ट एपीआई का उपयोग करके टीएफ सर्विंग के लिए अनुरोध भेज सकते हैं। दो प्रारूप उपलब्ध हैं: पूर्वानुमान+इंस्टेंस एपीआई और पूर्वानुमान+इनपुट एपीआई। यहां उनमें से प्रत्येक का एक उदाहरण दिया गया है:
# 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"]} }'