说我想使用TF Hub中的特定module
(文本嵌入)创建两个不同的models
,然后我想将其导出并提供服务。
选项1:
为每个module
导入model
,将每个分类器放在顶部,然后导出2 models
;在自己的docker容器中服务每个人。这些models
包含基础嵌入模块和分类器。
选项2:
服务module
本身,并将其输出发送到2个不同的models
服务,该服务本身不包含嵌入。 (甚至有可能吗?)
我的计算机科学背景告诉我,选项2 更好,因为我们对两个模型都重新使用了原始的嵌入模块,还使模型本身与嵌入模块脱钩了。
但是,从实际的角度来看,当数据科学家进行编码时,他们正在导入module
并在其顶部使用分类器进行训练,因此必须导出model
本身变得很麻烦没有底层嵌入。
有人能指出我正确的方向吗?希望我的问题有意义,我自己不是数据科学家,而是更多来自开发背景。
谢谢
答案 0 :(得分:1)
将分类器放置在嵌入模块的顶部会产生相当强的依赖性:必须将分类器训练到特定的嵌入空间。除非您做出非常特殊的安排,否则仅交换另一个嵌入模块将不起作用。因此,选项1相当不错:它产生了两个可以独立提供和更新的模型。它们有一些重叠,类似于使用同一库的两个静态链接程序,但是源代码仍然是模块化的:通过其公共签名使用Hub嵌入模块可以使它们互换。
相比之下,选项2为您提供了三个具有重要依存关系的活动部分。如果您的目标是简单,那么我就不会去那里。