TensorFlow Serving — Triển Khai Model Vào Production
Máy chủ model production của Google. Model có version, canary + A/B testing, batch GPU, gRPC + REST. Serve SavedModel trong 60 giây bằng Docker.
TensorFlow Serving là hệ thống serving model máy học linh hoạt, hiệu suất cao của Google cho production. Nó lo phần inference của ML: nhận model đã huấn luyện, quản lý vòng đời và trả prediction cho client qua truy cập có version — thông qua bảng tra cứu đếm tham chiếu hiệu suất cao.
Nó Giải Quyết Điều Gì#
Serving model ML trong production khó hơn tưởng tượng:
- Làm sao cập nhật model mà không rớt request hay phá client?
- Làm sao chạy nhiều model / version trên cùng GPU?
- Làm sao batch request để GPU không rảnh?
- Làm sao test model mới an toàn (canary / A/B)?
TensorFlow Serving trả lời tất cả ngay lập tức.
Tính Năng Chính#
| Tính năng | Tác dụng |
|---|---|
| Model có version | Serve nhiều version đồng thời |
| Cập nhật không downtime | Triển khai version mới không cần đổi client |
| Canary & A/B testing | Điều hướng traffic đến version thử nghiệm |
| Batch GPU | Gom request thành batch, kiểm soát latency |
| gRPC + REST | Cả hai giao diện có sẵn |
| Đa servable | Model TF, embedding, vocabulary, feature transform |
| Overhead thấp | Thêm rất ít latency cho inference |
Kiến Trúc#
- ModelServer — binary serving
- SavedModel — định dạng model đã serialize mà nó tiêu thụ
- Trình quản lý version — nạp/dỡ version, hỗ trợ rollback
- Batching scheduler — gom request inference để GPU hiệu quả
Endpoint REST API#
GET /v1/models/{model} # trạng thái
GET /v1/models/{model}/versions/{v}/metadata # metadata
POST /v1/models/{model}:predict # dự đoán
POST /v1/models/{model}:classify # phân loại
POST /v1/models/{model}:regress # hồi quytextRequest là JSON; dữ liệu nhị phân (ảnh) mã hóa Base64.
Serve Model Trong 60 Giây#
# Kéo image và clone model demo
docker pull tensorflow/serving
git clone https://github.com/tensorflow/serving
TESTDATA="$(pwd)/serving/tensorflow_serving/servables/tensorflow/testdata"
# Khởi động server
docker run -t --rm -p 8501:8501 \
-v "$TESTDATA/saved_model_half_plus_two_cpu:/models/half_plus_two" \
-e MODEL_NAME=half_plus_two \
tensorflow/servingbash# Dự đoán
curl -d '{"instances": [1.0, 2.0, 5.0]}' \
-X POST http://localhost:8501/v1/models/half_plus_two:predict
# Trả về => { "predictions": [2.5, 3.0, 4.5] }bashExport SavedModel#
import tensorflow as tf
from tensorflow import keras
model = keras.Sequential([keras.layers.Dense(1, input_shape=(1,))])
model.compile(optimizer="sgd", loss="mse")
# Huấn luyện...
model.fit(x_train, y_train, epochs=10)
# Export cho TensorFlow Serving
model.export("models/regressor/1") # thư mục version "1"pythonVersioning: mỗi SavedModel nằm trong thư mục đánh số — thả thư mục mới là triển khai version mới tức thì.
Batch GPU#
Scheduler gom các request riêng lẻ thành batch để GPU chạy chung:
--enable_batching=true
--batching_parameters_file=config.jsontextCấu hình được batch size, timeout và padding. Điều này tăng throughput đáng kể cho workload nhiều request nhỏ.
TFX — Pipeline Production#
TensorFlow Serving là chặng cuối của TFX (TensorFlow Extended), pipeline ML production end-to-end của Google:
| Giai đoạn | Thành phần |
|---|---|
| Xác thực dữ liệu | Data Validation (schema, bất thường) |
| Biến đổi | Transform (feature engineering) |
| Huấn luyện | Trainer (TF + Keras) |
| Đánh giá | Evaluator (metric, fairness) |
| Serving | TensorFlow Serving / Model Server |
Giải Pháp Thay Thế#
| Hệ thống | Tốt nhất cho |
|---|---|
| TF Serving | Model TF quy mô Google, serving có version |
| Triton Inference Server | Serving GPU đa framework (tiêu chuẩn ngành) |
| TorchServe | Serving native PyTorch |
| ONNX Runtime | CPU/GPU/mobile đa framework |
| vLLM | Serving LLM với PagedAttention |
Kết Luận#
TensorFlow Serving vẫn là máy chủ model production trưởng thành nhất cho model TensorFlow — versioning, batching, canary/A-B cấp Google với overhead latency tối thiểu. Nếu stack của bạn là TensorFlow (hoặc Keras), đây là lựa chọn mặc định; với đội ngũ đa framework, Triton là lựa chọn thay thế. Kết hợp với TFX, bạn có trọn đường từ huấn luyện đến serving quy mô đội xe.