در حال نصب 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
نصب و راه اندازی
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 -
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