การติดตั้งโมเดลเซิร์ฟเวอร์
การติดตั้งโดยใช้ Docker
วิธีที่ง่ายที่สุดและตรงไปตรงมาที่สุดในการใช้ TensorFlow Serving คือการใช้ อิมเมจ 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 เวอร์ชันของคุณเอง
หากต้องการทราบว่าการขึ้นต่อกันเหล่านี้คืออะไร โปรดดูที่ TensorFlow Serving Development Dockerfiles [ CPU , GPU ]
การติดตั้งนักเทียบท่า
คำแนะนำในการติดตั้งทั่วไปอยู่ ที่ไซต์ Docker
โคลนสคริปต์บิลด์
หลังจากติดตั้ง Docker แล้ว เราจำเป็นต้องได้รับซอร์สที่เราต้องการสร้าง เราจะใช้ Git เพื่อโคลนสาขาหลักของ TensorFlow Serving:
git clone https://github.com/tensorflow/serving.git
cd serving
สร้าง
เพื่อสร้างในสภาพแวดล้อมที่ปิดสนิทโดยมีการพึ่งพาทั้งหมด เราจะใช้สคริปต์ run_in_docker.sh
สคริปต์นี้ส่งคำสั่ง build ไปยังคอนเทนเนอร์ 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 Serving เวอร์ชันเฉพาะ
หากคุณต้องการสร้างจากสาขาเฉพาะ (เช่น สาขา release) ให้ส่ง -b <branchname>
ไปยังคำสั่ง git clone
นอกจากนี้ เรายังต้องการจับคู่สภาพแวดล้อมการสร้างสำหรับสาขาของโค้ดนั้น โดยการส่งสคริปต์ run_in_docker.sh
ไปยังอิมเมจการพัฒนา Docker ที่เราต้องการใช้
ตัวอย่างเช่น หากต้องการสร้าง TensorFlow Serving เวอร์ชัน 1.10:
$ 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 build เมื่อสร้าง TensorFlow Serving
ตัวอย่างเช่น:
tools/run_in_docker.sh bazel build --config=nativeopt tensorflow_serving/...
นอกจากนี้ยังสามารถคอมไพล์โดยใช้ชุดคำสั่งเฉพาะ (เช่น AVX) เมื่อใดก็ตามที่คุณเห็น bazel build
ในเอกสารประกอบ เพียงเพิ่มแฟล็กที่เกี่ยวข้อง:
ชุดคำสั่ง | ธง |
---|---|
เอวีเอ็กซ์ | --copt=-mavx |
AVX2 | --copt=-mavx2 |
เอฟเอ็มเอ | --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