Tensorflow Hub 模块重用
Tensorflow Hub module reuse
假设我想使用来自 TF Hub 的特定 module
(文本嵌入)来创建两个不同的 models
,然后我想导出和提供它们。
选项 1:
为每个 model
导入 module
,将每个分类器放在最上面,并导出 2 models
;在各自的 docker 容器中提供服务。这些 models
包含底层嵌入模块和分类器。
选项 2:
为 module
本身提供服务,并将其输出转到 2 个不同的服务 models
,它们本身不包含嵌入。 (这甚至可能吗?)
我的计算机科学背景告诉我选项 2 更好,因为我们正在为两个模型重新使用原始嵌入模块,并将模型本身与嵌入模块解耦.
然而,从实际的角度来看,当数据科学家编码时,他们正在导入 module
并在其上使用分类器进行训练,因此导出 [=13= 变得很麻烦] 本身没有底层嵌入。
谁能指出我正确的方向?希望我的问题是有道理的,我自己不是数据科学家,我更多来自开发背景。
谢谢
将分类器放在嵌入模块之上会产生相当强的依赖性:分类器必须针对特定的嵌入进行训练 space。除非您做出非常特殊的安排,否则仅换入另一个嵌入模块是行不通的。所以选项 1 非常好:它产生两个可以独立提供和更新的模型。它们有一些重叠,类似于两个使用相同库的静态链接程序,但源代码仍然是模块化的:通过它们的共同签名使用 Hub 嵌入模块使它们可以互换。
相比之下,选项 2 为您提供了三个具有重要依赖性的活动部分。如果你的目标是简单,我不会去那里。
假设我想使用来自 TF Hub 的特定 module
(文本嵌入)来创建两个不同的 models
,然后我想导出和提供它们。
选项 1:
为每个 model
导入 module
,将每个分类器放在最上面,并导出 2 models
;在各自的 docker 容器中提供服务。这些 models
包含底层嵌入模块和分类器。
选项 2:
为 module
本身提供服务,并将其输出转到 2 个不同的服务 models
,它们本身不包含嵌入。 (这甚至可能吗?)
我的计算机科学背景告诉我选项 2 更好,因为我们正在为两个模型重新使用原始嵌入模块,并将模型本身与嵌入模块解耦.
然而,从实际的角度来看,当数据科学家编码时,他们正在导入 module
并在其上使用分类器进行训练,因此导出 [=13= 变得很麻烦] 本身没有底层嵌入。
谁能指出我正确的方向?希望我的问题是有道理的,我自己不是数据科学家,我更多来自开发背景。
谢谢
将分类器放在嵌入模块之上会产生相当强的依赖性:分类器必须针对特定的嵌入进行训练 space。除非您做出非常特殊的安排,否则仅换入另一个嵌入模块是行不通的。所以选项 1 非常好:它产生两个可以独立提供和更新的模型。它们有一些重叠,类似于两个使用相同库的静态链接程序,但源代码仍然是模块化的:通过它们的共同签名使用 Hub 嵌入模块使它们可以互换。
相比之下,选项 2 为您提供了三个具有重要依赖性的活动部分。如果你的目标是简单,我不会去那里。