TensorFlow 服务并提供超过内存允许的模型

TensorFlow Serving and serving more models than the memory can allow

TensorFlow Serving 可以通过配置 --model_config_file 命令行参数来为多个模型提供服务。我在小型实验中成功使用了此功能。

但是,我不清楚当这些模型所需的总内存大于可用 GPU 内存时会发生什么。

服务器刚刚崩溃了吗?或者它是否支持保持模型子集可用,并且可能 unloading/loading 模型基于使用情况?

谢谢。

在内存不足时尝试加载模型将无法加载该模型。暂时没有动态loading/unloading

正如目前所写,如果没有足够的内存来加载请求加载的所有模型,它将崩溃。在内部有一个功能可以优雅地拒绝加载不适合的模型,您可以通过编写一个小的 PR 来启用它,该 PR 将 ServerCore::Options::total_model_memory_limit_bytes 选项 [1] 通过管道传递到 main.cc 中的标志。但是请注意,"fitting in memory" 的概念是基于一种估算模型 RAM 占用空间的粗略方法。

正如 Gautam 所说,它不是动态的 load/unload,尽管为此实现了一个名为 CachingManager [2].[=12= 的库(当前未在已发布的二进制文件中使用) ]

[1] https://github.com/tensorflow/serving/blob/master/tensorflow_serving/model_servers/server_core.h#L112

[2] https://github.com/tensorflow/serving/blob/master/tensorflow_serving/core/caching_manager.h