Implementation:Tensorflow Serving ServableVersionPolicy
| Knowledge Sources | |
|---|---|
| Domains | Version_Management, Configuration |
| Last Updated | 2026-02-13 17:00 GMT |
Overview
Concrete tool for configuring which model versions are loaded, defined as a protobuf message and enforced by the FileSystemStoragePathSource.
Description
ServableVersionPolicy is a protobuf message that specifies version selection rules. It is set on the model_version_policy field of ModelConfig and propagated through ServerCore::CreateStoragePathSourceConfig() to the filesystem source. The source implements three aspiration strategies: AspireLatestVersions(), AspireAllVersions(), and AspireSpecificVersions().
Usage
Set the model_version_policy field in your model configuration protobuf or config file. This is configured at server startup via --model_config_file or dynamically via HandleReloadConfigRequest.
Code Reference
Source Location
- Repository: tensorflow/serving
- File: tensorflow_serving/config/file_system_storage_path_source.proto (L8-36)
- Enforcement: tensorflow_serving/sources/storage_path/file_system_storage_path_source.cc (L97-321)
Signature
message ServableVersionPolicy {
message Latest {
uint32 num_versions = 1; // default: 1
}
message All {}
message Specific {
repeated int64 versions = 1;
}
oneof policy_choice {
Latest latest = 100;
All all = 101;
Specific specific = 102;
}
}
Import
// In ModelConfig:
import "tensorflow_serving/config/file_system_storage_path_source.proto";
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| policy_choice | oneof | Yes | One of: latest, all, or specific |
| latest.num_versions | uint32 | No | Number of latest versions to serve (default 1) |
| specific.versions | repeated int64 | No | Explicit list of version numbers to serve |
Outputs
| Name | Type | Description |
|---|---|---|
| Aspired versions | vector<ServableData> | Filtered list of versions to load |
Usage Examples
Model Config with Version Policies
# models.config - serve latest 2 versions
model_config_list {
config {
name: 'my_model'
base_path: '/models/my_model/'
model_platform: 'tensorflow'
model_version_policy {
latest {
num_versions: 2
}
}
}
}
# Serve all versions
model_config_list {
config {
name: 'my_model'
base_path: '/models/my_model/'
model_platform: 'tensorflow'
model_version_policy {
all {}
}
}
}
# Serve specific versions only
model_config_list {
config {
name: 'my_model'
base_path: '/models/my_model/'
model_platform: 'tensorflow'
model_version_policy {
specific {
versions: 42
versions: 43
}
}
}
}