我们正在尝试使用Vespa中的ML模型,我们在Vespa中存储了文本数据,有人能帮助我们解决以下问题-
发布于 2020-08-20 12:11:23
这是一个非常宽泛的问题,答案很大程度上取决于你的目标是什么。一般来说,在Vespa中使用ONNX模型的文档可以在这里找到:
https://docs.vespa.ai/documentation/onnx.html
使用ONNX BERT模型进行排序的示例可以在Transformers示例应用程序中找到:
https://github.com/vespa-engine/sample-apps/tree/master/transformers
请注意,这两个链接都假定您有一个现有的模型。一般来说,Vespa是一个服务平台,在模型培训过程中通常不使用。因此,Vespa并不真正关心你的模型来自哪里,无论是科学知识-学习,火炬或任何其他系统。ONNX是各种系统间ML模型交换的通用格式。
然而,有一些基本的想法,我认为我应该了解,也许可以澄清一点。Vespa目前认为所有ML模型都有数值(以张量的形式)输入和输出。这意味着你不能直接把文本放到你的模型中,让文本从另一边出来。现在大多数文本数据被编码成某种形式的数字表示,例如嵌入向量,或者,如上面的BERT示例所示,文本被标记,使得每个令牌都得到自己的向量表示。模型计算后,嵌入向量或令牌集表示可以解码回文本.
Vespa目前处理计算部分,编码/解码文本到嵌入或其他表示的(预)处理目前由用户决定。Vespa确实提供了丰富的特性,可以在这方面以文档和查询处理器的形式提供帮助。因此,您可以创建一个文件处理机,将每个传入文档的文本编码为某种表示形式,然后再存储它。同样,可以创建一个搜索者 (查询处理器),在文档对其进行评分之前,将传入的文本查询编码到兼容的表示形式。
因此,一般来说,您将使用任何嵌入策略或标记化策略对您的模型进行Vespa之外的培训。在部署Vespa应用程序时,可以使用任何所需的自定义处理代码来添加模型,这些代码在输入或查询Vespa时使用。
如果你有一个更具体的例子,你想要实现什么,我可以更具体。
https://stackoverflow.com/questions/63500917
复制相似问题