0

假设我想使用moduleTF Hub 中的特定(文本嵌入)来创建两个不同的models,然后我想导出并提供服务。

选项 1: 导入modulefor each model,将每个分类器放在顶部,然后导出 2 models;在各自的 docker 容器中提供服务。这些models包含底层嵌入模块和分类器。

选项 2:module自身服务,并使其输出转到 2 个不同的服务models,它们本身不包含嵌入。(这甚至可能吗?)

我的计算机科学背景告诉我,选项 2更好,因为我们正在为两个模型重新使用原始嵌入模块,同时将模型本身与嵌入模块解耦。

然而,从实际的角度来看,当数据科学家在编码时,他们正在导入module并在其上使用分类器进行训练,因此必须在model没有底层嵌入的情况下导出自身变得很麻烦。

谁能指出我正确的方向?希望我的问题是有道理的,我自己不是数据科学家,我更多地来自开发背景。

谢谢

4

1 回答 1

1

将分类器放在嵌入模块之上会产生相当强的依赖性:必须将分类器训练到特定的嵌入空间。除非您做出非常特殊的安排,否则仅交换另一个嵌入模块是行不通的。所以选项 1 非常好:它产生了两个可以独立服务和更新的模型。它们有一些重叠,类似于使用同一个库的两个静态链接程序,但源代码仍然是模块化的:通过它们的共同签名使用 Hub 嵌入模块使它们可以互换。

相比之下,选项 2 为您提供了三个具有重要依赖关系的移动部分。如果您的目标是简单,我不会去那里。

于 2018-11-27T10:08:35.663 回答