نصب و راه اندازی

در حال نصب ModelServer

نصب با استفاده از داکر

ساده ترین و سرراست ترین راه استفاده از سرویس TensorFlow با تصاویر Docker است. ما این مسیر را به شدت توصیه می کنیم، مگر اینکه نیازهای خاصی داشته باشید که با اجرا در یک کانتینر برطرف نمی شوند.

نکته: همچنین این ساده‌ترین راه برای کارکرد TensorFlow Serving با پشتیبانی GPU است.

نصب با استفاده از APT

باینری های موجود

باینری TensorFlow Serving ModelServer در دو نوع موجود است:

tensorflow-model-server : سرور کاملاً بهینه شده که از برخی بهینه‌سازی‌های کامپایلر خاص پلتفرم مانند دستورالعمل‌های SSE4 و AVX استفاده می‌کند. این باید برای اکثر کاربران گزینه ترجیحی باشد، اما ممکن است در برخی از ماشین های قدیمی کار نکند.

tensorflow-model-server-universal : با بهینه‌سازی‌های اولیه کامپایل شده است، اما شامل مجموعه دستورالعمل‌های خاص پلتفرم نمی‌شود، بنابراین باید روی اکثر ماشین‌های موجود، اگر نه همه، کار کند. اگر tensorflow-model-server برای شما کار نمی کند از این استفاده کنید. توجه داشته باشید که نام باینری برای هر دو بسته یکسان است، بنابراین اگر قبلا tensorflow-model-server را نصب کرده اید، ابتدا باید با استفاده از آن را حذف نصب کنید.

apt-get remove tensorflow-model-server

نصب و راه اندازی

  1. URI توزیع سرویس TensorFlow را به عنوان منبع بسته اضافه کنید (تنظیم یک بار)

    echo "deb [arch=amd64] http://storage.googleapis.com/tensorflow-serving-apt stable tensorflow-model-server tensorflow-model-server-universal" | sudo tee /etc/apt/sources.list.d/tensorflow-serving.list && \
    curl https://storage.googleapis.com/tensorflow-serving-apt/tensorflow-serving.release.pub.gpg | sudo apt-key add -
    
  2. TensorFlow ModelServer را نصب و به روز کنید

    apt-get update && apt-get install tensorflow-model-server
    

پس از نصب، باینری را می توان با استفاده از دستور tensorflow_model_server فراخوانی کرد.

شما می توانید به نسخه جدیدتر tensorflow-model-server ارتقا دهید:

apt-get upgrade tensorflow-model-server

ساخت از مبدا

رویکرد توصیه شده برای ساختن از منبع، استفاده از Docker است. تصاویر توسعه TensorFlow Serving Docker تمام وابستگی‌هایی را که برای ساختن نسخه خود از TensorFlow Serving نیاز دارید، در خود گنجانده است.

برای فهرستی از این وابستگی‌ها، به Dockerfiles توسعه سرویس TensorFlow [ CPU ، GPU ] مراجعه کنید.

نصب Docker

دستورالعمل نصب کلی در سایت داکر موجود است.

اسکریپت ساخت را کلون کنید

پس از نصب داکر، باید منبعی را که می‌خواهیم از آن بسازیم، دریافت کنیم. ما از Git برای شبیه سازی شاخه اصلی TensorFlow Serving استفاده خواهیم کرد:

git clone https://github.com/tensorflow/serving.git
cd serving

ساختن

برای ساختن در یک محیط هرمتیک با رعایت تمام وابستگی ها، از اسکریپت run_in_docker.sh استفاده می کنیم. این اسکریپت دستورات ساخت را به یک ظرف Docker ارسال می کند. به طور پیش فرض، اسکریپت با آخرین تصویر توسعه شبانه Docker ساخته می شود.

سرویس TensorFlow از Bazel به عنوان ابزار ساخت خود استفاده می کند. شما می توانید از دستورات Bazel برای ساختن اهداف منفرد یا کل درخت منبع استفاده کنید.

برای ساخت کل درخت، اجرا کنید:

tools/run_in_docker.sh bazel build -c opt tensorflow_serving/...

باینری ها در دایرکتوری bazel-bin قرار می گیرند و می توانند با استفاده از دستوری مانند:

bazel-bin/tensorflow_serving/model_servers/tensorflow_model_server

برای تست ساخت، اجرا کنید:

tools/run_in_docker.sh bazel test -c opt tensorflow_serving/...

برای مثال‌های عمیق‌تر از اجرای TensorFlow Serving ، آموزش پایه و آموزش پیشرفته را ببینید.

ساختن نسخه های خاص از سرویس TensorFlow

اگر می خواهید از یک شاخه خاص (مانند یک شاخه انتشار) بسازید، -b <branchname> را به دستور git clone ارسال کنید.

ما همچنین می‌خواهیم با ارسال اسکریپت run_in_docker.sh به تصویر توسعه Docker که می‌خواهیم استفاده کنیم، محیط ساخت را برای آن شاخه کد مطابقت دهیم.

به عنوان مثال، برای ساخت نسخه 1.10 سرویس TensorFlow:

$ git clone -b r1.10 https://github.com/tensorflow/serving.git
...
$ cd serving
$ tools/run_in_docker.sh -d tensorflow/serving:1.10-devel \
  bazel build tensorflow_serving/...
...
ساخت بهینه شده

اگر می‌خواهید بهینه‌سازی‌های توصیه‌شده عمومی را اعمال کنید، از جمله استفاده از مجموعه دستورالعمل‌های خاص پلتفرم برای پردازنده‌تان، می‌توانید هنگام ساخت TensorFlow Serving --config=nativeopt به دستورات ساخت Bazel اضافه کنید.

مثلا:

tools/run_in_docker.sh bazel build --config=nativeopt tensorflow_serving/...

همچنین امکان کامپایل با استفاده از مجموعه دستورالعمل های خاص (مانند AVX) وجود دارد. هر جا که bazel build در اسناد مشاهده کردید، به سادگی پرچم های مربوطه را اضافه کنید:

مجموعه دستورالعمل پرچم ها
AVX --copt=-mavx
AVX2 --copt=-mavx2
FMA --copt=-mfma
SSE 4.1 --copt=-msse4.1
SSE 4.2 --copt=-msse4.2
همه توسط پردازنده پشتیبانی می شوند --copt=-march=native

مثلا:

tools/run_in_docker.sh bazel build --copt=-mavx2 tensorflow_serving/...
ساخت با پشتیبانی GPU

به منظور ایجاد نسخه سفارشی از TensorFlow Serving با پشتیبانی GPU، توصیه می‌کنیم یا با تصاویر Docker ارائه شده بسازید یا از رویکرد GPU Dockerfile پیروی کنید.

بسته PIP API پایتون سرویس TensorFlow

برای اجرای کد کلاینت پایتون بدون نیاز به ساخت API، می توانید بسته PIP tensorflow-serving-api را با استفاده از:

pip install tensorflow-serving-api