ডকারের সাথে বিকাশ করা হচ্ছে

একটি উন্নয়ন চিত্র টানা

একটি উন্নয়ন পরিবেশের জন্য যেখানে আপনি টেনসরফ্লো সার্ভিং তৈরি করতে পারেন, আপনি চেষ্টা করতে পারেন:

docker pull tensorflow/serving:latest-devel

একটি উন্নয়ন পরিবেশের জন্য যেখানে আপনি GPU সমর্থন সহ TensorFlow সার্ভিং তৈরি করতে পারেন, ব্যবহার করুন:

docker pull tensorflow/serving:latest-devel-gpu

আপনি টানতে পারেন এমন চিত্রগুলির অন্যান্য সংস্করণগুলির জন্য ডকার হাব টেনসরফ্লো/সার্ভিং রেপো দেখুন।

উন্নয়ন উদাহরণ

ডেভেলপমেন্ট ডকার ইমেজগুলির একটি টানার পরে, আপনি জিআরপিসি পোর্ট (8500) খোলার সময় এটি চালাতে পারেন:

docker run -it -p 8500:8500 --gpus all tensorflow/serving:latest-devel

উন্নয়ন পরিবেশ পরীক্ষা করা

একটি মডেল পরীক্ষা করতে, পাত্রের ভিতর থেকে চেষ্টা করুন:

# train the mnist model
python tensorflow_serving/example/mnist_saved_model.py /tmp/mnist_model
# serve the model
tensorflow_model_server --port=8500 --model_name=mnist --model_base_path=/tmp/mnist_model/ &
# test the client
python tensorflow_serving/example/mnist_client.py --num_tests=1000 --server=localhost:8500

ডকারফাইলস

আমরা বর্তমানে নিম্নলিখিত ডকারফাইলগুলি বজায় রাখি:

  • Dockerfile , যা টেনসরফ্লো সার্ভিং ইনস্টল করা একটি ন্যূনতম ভিএম।

  • Dockerfile.gpu , যা nvidia-docker সাথে ব্যবহার করার জন্য GPU সমর্থন সহ TensorFlow সার্ভিং সহ একটি ন্যূনতম VM।

  • Dockerfile.devel , যা TensorFlow সার্ভিং তৈরির জন্য প্রয়োজনীয় সমস্ত নির্ভরতা সহ একটি ন্যূনতম VM।

  • Dockerfile.devel-gpu , যা GPU সমর্থন সহ TensorFlow সার্ভিং নির্মাণের জন্য প্রয়োজনীয় সমস্ত নির্ভরতা সহ একটি ন্যূনতম VM।

একটি ডকারফাইল থেকে একটি ধারক তৈরি করা

আপনি যদি একটি ডকারফাইল থেকে নিজের ডকার ইমেজ তৈরি করতে চান তবে আপনি ডকার বিল্ড কমান্ডটি চালিয়ে তা করতে পারেন:

Dockerfile :

docker build --pull -t $USER/tensorflow-serving .

Dockerfile.gpu :

docker build --pull -t $USER/tensorflow-serving-gpu -f Dockerfile.gpu .

Dockerfile.devel :

docker build --pull -t $USER/tensorflow-serving-devel -f Dockerfile.devel .

Dockerfile.devel-gpu :

docker build --pull -t $USER/tensorflow-serving-devel-gpu -f Dockerfile.devel-gpu .

টিপ: একটি ছবি তৈরি করার চেষ্টা করার আগে, ডকার হাব টেনসরফ্লো/সার্ভিং রেপো পরীক্ষা করে নিশ্চিত করুন যে আপনার চাহিদা পূরণ করে এমন একটি চিত্র ইতিমধ্যেই বিদ্যমান নেই।

উত্স থেকে বিল্ডিং অনেক RAM খরচ করে. যদি আপনার সিস্টেমে RAM একটি সমস্যা হয়, আপনি Bazel চালু করার সময় --local_ram_resources=2048 উল্লেখ করে RAM ব্যবহার সীমিত করতে পারেন। আরও তথ্যের জন্য Bazel ডক্স দেখুন। আপনি টেনসরফ্লো সার্ভিং তৈরি করছেন এমন অপ্টিমাইজেশনগুলিকে টুইক করতে আপনি এই একই পদ্ধতি ব্যবহার করতে পারেন। যেমন:

docker build --pull --build-arg TF_SERVING_BUILD_OPTIONS="--copt=-mavx \
  --cxxopt=-D_GLIBCXX_USE_CXX11_ABI=0 --local_ram_resources=2048" -t \
  $USER/tensorflow-serving-devel -f Dockerfile.devel .

একটি ধারক চলমান

এটি ধরে নেয় আপনি Dockerfile.devel কন্টেইনার তৈরি করেছেন।

জিআরপিসি পোর্ট (8500) খোলার কন্টেইনার চালানোর জন্য:

docker run -it -p 8500:8500 $USER/tensorflow-serving-devel

টিপ: আপনি যদি একটি GPU ইমেজ চালাচ্ছেন, NVIDIA রানটাইম ব্যবহার করে চালাতে ভুলবেন না --runtime=nvidia

এখান থেকে, আপনি একটি উন্নয়ন পরিবেশ পরীক্ষা করার জন্য নির্দেশাবলী অনুসরণ করতে পারেন।

একটি অপ্টিমাইজড পরিবেশন বাইনারি নির্মাণ

টেনসরফ্লো সার্ভিং এর মডেল সার্ভার চালানোর সময়, আপনি একটি লগ বার্তা লক্ষ্য করতে পারেন যা এইরকম দেখাচ্ছে:

I external/org_tensorflow/tensorflow/core/platform/cpu_feature_guard.cc:141]
Your CPU supports instructions that this TensorFlow binary was not compiled to
use: AVX2 FMA

এটি ইঙ্গিত করে যে আপনার মডেল সার্ভার বাইনারিটি CPU চালু হওয়ার জন্য সম্পূর্ণরূপে অপ্টিমাইজ করা হয়নি। আপনি যে মডেলটি পরিবেশন করছেন তার উপর নির্ভর করে, আরও অপ্টিমাইজেশনের প্রয়োজন নাও হতে পারে। যাইহোক, একটি অপ্টিমাইজড বাইনারি তৈরি করা সোজা।

প্রদত্ত Dockerfile.devel বা Dockerfile.devel-gpu ফাইল থেকে একটি ডকার ইমেজ তৈরি করার সময়, ModelServer বাইনারি পতাকা -march=native দিয়ে তৈরি করা হবে। এর ফলে আপনি যে হোস্ট সমর্থনে ডকার ইমেজ তৈরি করছেন তার সমস্ত CPU অপ্টিমাইজেশন সহ Bazel একটি ModelServer বাইনারি তৈরি করবে।

আপনার হোস্টের জন্য সম্পূর্ণরূপে অপ্টিমাইজ করা একটি পরিবেশন চিত্র তৈরি করতে, সহজভাবে:

  1. TensorFlow সার্ভিং প্রকল্প ক্লোন করুন

    git clone https://github.com/tensorflow/serving
    cd serving
    
  2. একটি অপ্টিমাইজড মডেল সার্ভার দিয়ে একটি ইমেজ তৈরি করুন

    • CPU এর জন্য:

      docker build --pull -t $USER/tensorflow-serving-devel \
        -f tensorflow_serving/tools/docker/Dockerfile.devel .
      
    • GPU এর জন্য: `

      docker build --pull -t $USER/tensorflow-serving-devel-gpu \
        -f tensorflow_serving/tools/docker/Dockerfile.devel-gpu .
      
  3. বেস হিসাবে উন্নয়ন চিত্রের সাথে একটি পরিবেশন চিত্র তৈরি করুন

    • CPU এর জন্য:

      docker build -t $USER/tensorflow-serving \
        --build-arg TF_SERVING_BUILD_IMAGE=$USER/tensorflow-serving-devel \
        -f tensorflow_serving/tools/docker/Dockerfile .
      

      আপনার নতুন অপ্টিমাইজ করা ডকার ইমেজটি এখন $USER/tensorflow-serving , যা আপনি স্ট্যান্ডার্ড tensorflow/serving:latest image মতো ব্যবহার করতে পারেন।

    • GPU এর জন্য:

      docker build -t $USER/tensorflow-serving-gpu \
        --build-arg TF_SERVING_BUILD_IMAGE=$USER/tensorflow-serving-devel-gpu \
        -f tensorflow_serving/tools/docker/Dockerfile.gpu .
      

      আপনার নতুন অপ্টিমাইজ করা ডকার ইমেজ এখন $USER/tensorflow-serving-gpu , যা আপনি স্ট্যান্ডার্ড tensorflow/serving:latest-gpu ইমেজের মতো ব্যবহার করতে পারেন।