python - 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
解决方案
我的解决方案是将批处理和工作人员设置为一个,而且速度非常慢
train_dataloader = DataLoader(train_dataset, shuffle=False, batch_size=1, num_workers=1)
推荐阅读
- react-native-navigation-v2 - Wix React Native Navigation V2,如何在 Android 上锁定方向肖像
- android - 方法声明期间的错误
- javascript - 如何将 max-old-space-size 内存限制设置为使用 memory-usage 包运行的 Nodejs
- javascript - 如何在屏幕上打印函数的所有参数
- ruby - Ruby gem Nokogiri 1.9.1 在具有不同 LibXML 版本的 Mac 上失败
- php - Codeigniter 缓存问题。缓存的数据在网站上不起作用
- json - 如何在 JSON 字符串中传递变量
- python - 如何使用带有参数化占位符的 sqlite3 Python 库创建 SQLite 表?
- r - 整理 Igraph 图
- javascript - 简单的 Node/Express 应用程序无法识别会话存储