تثبيت ModelServer
التثبيت باستخدام Docker
الطريقة الأسهل والأكثر مباشرة لاستخدام TensorFlow Serving هي باستخدام صور Docker . نوصي بشدة بهذا المسار إلا إذا كانت لديك احتياجات محددة لم تتم معالجتها عن طريق التشغيل في حاوية.
نصيحة: هذه أيضًا هي الطريقة الأسهل لجعل خدمة TensorFlow تعمل مع دعم وحدة معالجة الرسومات .
التثبيت باستخدام 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.
للحصول على قائمة بهذه التبعيات، راجع TensorFlow Serving Development Dockerfiles [ CPU , GPU ].
تثبيت عامل الميناء
تعليمات التثبيت العامة موجودة على موقع Docker .
استنساخ البرنامج النصي للبناء
بعد تثبيت Docker، نحتاج إلى الحصول على المصدر الذي نريد البناء منه. سوف نستخدم Git لاستنساخ الفرع الرئيسي لخدمة TensorFlow:
git clone https://github.com/tensorflow/serving.git
cd serving
يبني
من أجل البناء في بيئة محكمة مع الاهتمام بجميع التبعيات، سنستخدم البرنامج النصي run_in_docker.sh
. يقوم هذا البرنامج النصي بتمرير أوامر البناء إلى حاوية Docker. افتراضيًا، سيتم إنشاء البرنامج النصي باستخدام أحدث صورة تطوير Docker ليلاً.
يستخدم TensorFlow Serving 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/...
...
البناء الأمثل
إذا كنت ترغب في تطبيق التحسينات الموصى بها بشكل عام، بما في ذلك استخدام مجموعات التعليمات الخاصة بالنظام الأساسي لمعالجك، فيمكنك إضافة --config=nativeopt
إلى أوامر بناء Bazel عند إنشاء TensorFlow Serving.
على سبيل المثال:
tools/run_in_docker.sh bazel build --config=nativeopt tensorflow_serving/...
من الممكن أيضًا التجميع باستخدام مجموعات تعليمات محددة (مثل AVX). أينما ترى bazel build
في الوثائق، ما عليك سوى إضافة العلامات المقابلة:
مجموعة التعليمات | أعلام |
---|---|
AVX | --copt=-mavx |
AVX2 | --copt=-mavx2 |
FMA | --copt=-mfma |
إس إس إي 4.1 | --copt=-msse4.1 |
إس إس إي 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 .
TensorFlow يخدم حزمة Python API PIP
لتشغيل كود عميل Python دون الحاجة إلى إنشاء واجهة برمجة التطبيقات (API)، يمكنك تثبيت حزمة PIP tensorflow-serving-api
باستخدام:
pip install tensorflow-serving-api