Cài đặt ModelServer
Cài đặt bằng Docker
Cách dễ dàng và đơn giản nhất để sử dụng TensorFlow Serve là sử dụng Docker image . Chúng tôi thực sự khuyên bạn nên sử dụng tuyến đường này trừ khi bạn có các nhu cầu cụ thể không được giải quyết bằng cách chạy trong vùng chứa.
MẸO: Đây cũng là cách dễ nhất để Dịch vụ TensorFlow hoạt động với sự hỗ trợ của GPU .
Cài đặt bằng APT
Các tệp nhị phân có sẵn
Tệp nhị phân TensorFlow Serve ModelServer có sẵn ở hai biến thể:
tensorflow-model-server : Máy chủ được tối ưu hóa hoàn toàn sử dụng một số tối ưu hóa trình biên dịch cụ thể trên nền tảng như hướng dẫn SSE4 và AVX. Đây phải là tùy chọn ưa thích của hầu hết người dùng nhưng có thể không hoạt động trên một số máy cũ.
tensorflow-model-server-universal : Được biên soạn với các tối ưu hóa cơ bản nhưng không bao gồm các bộ hướng dẫn cụ thể về nền tảng, do đó sẽ hoạt động trên hầu hết nếu không muốn nói là tất cả các máy hiện có. Sử dụng cái này nếu tensorflow-model-server
không hoạt động cho bạn. Lưu ý rằng tên nhị phân giống nhau cho cả hai gói, vì vậy nếu bạn đã cài đặt tensorflow-model-server, trước tiên bạn nên gỡ cài đặt nó bằng cách sử dụng
apt-get remove tensorflow-model-server
Cài đặt
Thêm URI phân phối phục vụ TensorFlow làm nguồn gói (thiết lập một lần)
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 -
Cài đặt và cập nhật TensorFlow ModelServer
apt-get update && apt-get install tensorflow-model-server
Sau khi cài đặt, tệp nhị phân có thể được gọi bằng lệnh tensorflow_model_server
.
Bạn có thể nâng cấp lên phiên bản mới hơn của tensorflow-model-server bằng:
apt-get upgrade tensorflow-model-server
Xây dựng từ nguồn
Cách tiếp cận được khuyến nghị để xây dựng từ nguồn là sử dụng Docker. Các hình ảnh phát triển Docker phục vụ TensorFlow gói gọn tất cả các phần phụ thuộc mà bạn cần để xây dựng phiên bản TensorFlow Serve của riêng mình.
Để biết danh sách các phần phụ thuộc này là gì, hãy xem Tệp Docker phát triển dịch vụ TensorFlow [ CPU , GPU ].
Cài đặt Docker
Hướng dẫn cài đặt chung có trên trang Docker .
Sao chép tập lệnh xây dựng
Sau khi cài đặt Docker, chúng ta cần lấy nguồn mà chúng ta muốn xây dựng. Chúng tôi sẽ sử dụng Git để sao chép nhánh chính của TensorFlow Serve:
git clone https://github.com/tensorflow/serving.git
cd serving
Xây dựng
Để xây dựng trong một môi trường kín đáo với tất cả các phần phụ thuộc được quan tâm, chúng tôi sẽ sử dụng tập lệnh run_in_docker.sh
. Tập lệnh này chuyển các lệnh xây dựng tới vùng chứa Docker. Theo mặc định, tập lệnh sẽ được xây dựng bằng hình ảnh phát triển Docker hàng đêm mới nhất.
TensorFlow Serve sử dụng Bazel làm công cụ xây dựng. Bạn có thể sử dụng lệnh Bazel để xây dựng các mục tiêu riêng lẻ hoặc toàn bộ cây nguồn.
Để xây dựng toàn bộ cây, hãy thực hiện:
tools/run_in_docker.sh bazel build -c opt tensorflow_serving/...
Các tệp nhị phân được đặt trong thư mục bazel-bin và có thể được chạy bằng lệnh như:
bazel-bin/tensorflow_serving/model_servers/tensorflow_model_server
Để kiểm tra bản dựng của bạn, hãy thực hiện:
tools/run_in_docker.sh bazel test -c opt tensorflow_serving/...
Xem hướng dẫn cơ bản và hướng dẫn nâng cao để biết thêm các ví dụ chuyên sâu về cách chạy Dịch vụ TensorFlow.
Xây dựng các phiên bản cụ thể của TensorFlow Serve
Nếu bạn muốn xây dựng từ một nhánh cụ thể (chẳng hạn như nhánh phát hành), hãy chuyển -b <branchname>
vào lệnh git clone
.
Chúng tôi cũng sẽ muốn điều chỉnh môi trường xây dựng cho nhánh mã đó bằng cách chuyển tập lệnh run_in_docker.sh
tới hình ảnh phát triển Docker mà chúng tôi muốn sử dụng.
Ví dụ: để xây dựng phiên bản 1.10 của TensorFlow Serve:
$ 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/...
...
Xây dựng được tối ưu hóa
Nếu muốn áp dụng các tối ưu hóa thường được đề xuất, bao gồm cả việc sử dụng các tập lệnh dành riêng cho nền tảng cho bộ xử lý của mình, bạn có thể thêm --config=nativeopt
vào các lệnh xây dựng Bazel khi xây dựng Dịch vụ TensorFlow.
Ví dụ:
tools/run_in_docker.sh bazel build --config=nativeopt tensorflow_serving/...
Cũng có thể biên dịch bằng các tập lệnh cụ thể (ví dụ AVX). Bất cứ nơi nào bạn thấy bazel build
trong tài liệu, chỉ cần thêm các cờ tương ứng:
Bộ hướng dẫn | Cờ |
---|---|
AVX | --copt=-mavx |
AVX2 | --copt=-mavx2 |
FMA | --copt=-mfma |
SSE 4.1 | --copt=-msse4.1 |
SSE 4.2 | --copt=-msse4.2 |
Tất cả được hỗ trợ bởi bộ xử lý | --copt=-march=native |
Ví dụ:
tools/run_in_docker.sh bazel build --copt=-mavx2 tensorflow_serving/...
Xây dựng với sự hỗ trợ GPU
Để xây dựng phiên bản tùy chỉnh của TensorFlow Serve có hỗ trợ GPU, chúng tôi khuyên bạn nên xây dựng bằng hình ảnh Docker được cung cấp hoặc làm theo cách tiếp cận trong GPU Dockerfile .
Gói PIP API Python của TensorFlow
Để chạy mã máy khách Python mà không cần xây dựng API, bạn có thể cài đặt gói PIP tensorflow-serving-api
bằng cách sử dụng:
pip install tensorflow-serving-api