首页 > 解决方案 > Bert 句子转换器在微调期间停止/退出

问题描述

我正在按照此处所述的 BERT 说明进行微调

这是我的代码:

from sentence_transformers import SentenceTransformer, SentencesDataset, InputExample, losses, evaluation
from torch.utils.data import DataLoader

# load model
embedder = SentenceTransformer('bert-large-nli-mean-tokens')
print("embedder loaded...")

# define your train dataset, the dataloader, and the train loss
train_dataset = SentencesDataset(x_sample["input"].tolist(), embedder)
train_dataloader = DataLoader(train_dataset, shuffle=False, batch_size=16)
train_loss = losses.CosineSimilarityLoss(embedder)

sentences1 = ['This list contains the first column', 'With your sentences', 'You want your model to evaluate on']
sentences2 = ['Sentences contains the other column', 'The evaluator matches sentences1[i] with sentences2[i]', 'Compute the cosine similarity and compares it to scores[i]']
scores = [0.3, 0.6, 0.2]
evaluator = evaluation.EmbeddingSimilarityEvaluator(sentences1, sentences2, scores)

# tune the model
embedder.fit(train_objectives=[(train_dataloader, train_loss)], 
    epochs=1, 
    warmup_steps=100, 
    evaluator=evaluator, 
    evaluation_steps=1)

在 4% 时,训练停止并且程序存在且没有警告或错误。没有输出。

我不知道如何排除故障 - 任何帮助都会很棒。

编辑:将标题从失败更改为停止/退出,因为我不知道它是否失败

这是我在终端上看到的:Epoch: 0%| 杀灭:0%|

“Killed”这个词与迭代这个词重叠......也许是记忆问题?仅供参考:我在 windows 的 ubuntu vm 上使用 wsl 从 vscode 的终端运行它

在 github 上找到问题: https ://github.com/ElderResearch/gpu_docker/issues/38

标签: pythonmachine-learningbert-language-modelsentence-similarity

解决方案


我的解决方案是将批处理和工作人员设置为一个,而且速度非常慢

train_dataloader = DataLoader(train_dataset, shuffle=False, batch_size=1, num_workers=1)

推荐阅读