在 Azure 机器学习服务 Nvidia Compute 中导入 sentence_transformers 时出现分段错误

Segmentation fault error in importing sentence_transformers in Azure Machine Learning Service Nvidia Compute

我想在 AML 中使用 sentence_transformers 到 运行 XLM-Roberta 模型进行句子嵌入。我有一个脚本,我在其中导入 sentence_transformers:

from sentence_transformers import SentenceTransformer

一旦我 运行 我的 AML 管道,运行 在此脚本上失败并出现以下错误:

AzureMLCompute job failed.
UserProcessKilledBySystemSignal: Job failed since the user script received system termination signal usually due to out-of-memory or segfault.
    Cause: segmentation fault
    TaskIndex: 
    NodeIp: #####
    NodeId: #####

我很确定这个导入导致了这个错误,因为如果我注释掉这个导入,脚本的其余部分将 运行。 这很奇怪,因为 sentence_transformers 安装成功。

这是我的计算详情:

Virtual machine size
STANDARD_NV24 (24 Cores, 224 GB RAM, 1440 GB Disk)
Processing Unit
GPU - 4 x NVIDIA Tesla M60

代理池:

Azure Pipelines

代理规范:

ubuntu-16.04

requirements.txt 文件:

torch==1.4.0
sentence-transformers

是否有人对此错误有解决方案?

我通过将 pytorch 版本从 1.4.0 更改为 1.6.0 解决了这个问题。 所以 requirements.txt 看起来像这样:

torch==1.6.0
sentence-transformers

起初我尝试了一个与 pytorch 1.4.0 兼容的旧版本的句子转换器。但是旧版本不支持“xml-roberta-base”模型,所以我尝试升级pytorch版本。