You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用nlpaug BackTranslationAug遇RuntimeError:DataLoader Worker意外退出

环境信息

  • nlpaug版本:1.1.11
  • 操作系统:Mac OS

问题描述

使用nlpaug的反向翻译功能做数据增强时,触发RuntimeError: DataLoader worker (pid(s) xxx) exited unexpectedly错误。

复现代码

import nlpaug.augmenter.word as naw

text = 'The quick brown fox jumped over the lazy dog'
back_translation_aug = naw.BackTranslationAug(from_model_name='facebook/wmt19-en-ru', to_model_name='facebook/wmt19-ru-en',batch_size=2,force_reload=True)
print(back_translation_aug.augment(text))

报错详情

File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/nlpaug/base_augmenter.py", line 98, in augment
    result = action_fx(clean_data)
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/nlpaug/augmenter/word/back_translation.py", line 70, in substitute
    augmented_text = self.model.predict(data)
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/nlpaug/model/lang_models/machine_translation_transformers.py", line 39, in predict
    src_translated_texts = self.translate_one_step_batched(texts, self.src_tokenizer, self.src_model)
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/nlpaug/model/lang_models/machine_translation_transformers.py", line 58, in translate_one_step_batched
    for batch in tokenized_dataloader:
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/torch/utils/data/dataloader.py", line 521, in __next__
    data = self._next_data()
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/torch/utils/data/dataloader.py", line 1186, in _next_data
    idx, data = self._get_data()
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/torch/utils/data/dataloader.py", line 1152, in _get_data
    success, data = self._try_get_data()
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/torch/utils/data/dataloader.py", line 1003, in _try_get_data
    raise RuntimeError('DataLoader worker (pid(s) {}) exited unexpectedly'.format(pids_str)) from e
RuntimeError: DataLoader worker (pid(s) 3954) exited unexpectedly

解决方案

这个错误是Mac OS上PyTorch DataLoader的常见问题,和多进程加载机制冲突有关,可尝试以下几种解决方法:

  1. 禁用多进程加载
    初始化BackTranslationAug时添加num_workers=0参数,强制用主进程处理数据,避免多进程冲突:

    back_translation_aug = naw.BackTranslationAug(
        from_model_name='facebook/wmt19-en-ru', 
        to_model_name='facebook/wmt19-ru-en',
        batch_size=2,
        force_reload=True,
        num_workers=0
    )
    
  2. 降低批次大小
    当前batch_size=2可能超出Mac内存承载,尝试改为batch_size=1:

    back_translation_aug = naw.BackTranslationAug(
        from_model_name='facebook/wmt19-en-ru', 
        to_model_name='facebook/wmt19-ru-en',
        batch_size=1,
        force_reload=True
    )
    
  3. 设置环境变量
    在代码开头添加以下环境变量,解决Mac多进程fork机制的兼容性问题:

    import os
    os.environ["PYTORCH_ENABLE_MPS_FALLBACK"] = "1"
    os.environ["OMP_NUM_THREADS"] = "1"
    

内容的提问来源于stack exchange,提问作者MAC

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 04:30:28