data-juicer
data-juicer copied to clipboard
在执行自己的算子的时候出现RuntimeError: One of the subprocesses has abruptly died during map operation.To debug the error, disable multiprocessing.
Before Asking 在提问之前
-
[x] I have read the README carefully. 我已经仔细阅读了 README 上的操作指引。
-
[x] I have pulled the latest code of main branch to run again and the problem still existed. 我已经拉取了主分支上最新的代码,重新运行之后,问题仍不能解决。
Search before asking 先搜索,再提问
- [x] I have searched the Data-Juicer issues and found no similar questions. 我已经在 issue列表 中搜索但是没有发现类似的问题。
Question
我自己实现了一个新的算子,主要功能是调用一些自己实现的大模型接口去做模型推理和评测的相关任务,之前都可以正常运行,但是有一段时间有多个任务都出现如下的报错:
Traceback (most recent call last): File "/mnt/jd_afsqh/gaominyu/code/jdh_data-jucier/data_juicer/core/data.py", line 216, in process dataset, resource_util_per_op = Monitor.monitor_func( File "/mnt/jd_afsqh/gaominyu/code/jdh_data-jucier/data_juicer/core/monitor.py", line 231, in monitor_func ret = func() File "/mnt/jd_afsqh/gaominyu/code/jdh_data-jucier/data_juicer/ops/base_op.py", line 350, in run new_dataset = dataset.map( File "/mnt/jd_afsqh/gaominyu/code/jdh_data-jucier/data_juicer/core/data.py", line 324, in map new_ds = NestedDataset(super().map(*args, **kargs)) File "/mnt/afs2/zhy/my_conda_env/dj/lib/python3.9/site-packages/datasets/arrow_dataset.py", line 557, in wrapper out: Union["Dataset", "DatasetDict"] = func(self, *args, **kwargs) File "/mnt/afs2/zhy/my_conda_env/dj/lib/python3.9/site-packages/datasets/arrow_dataset.py", line 3166, in map for rank, done, content in iflatmap_unordered( File "/mnt/afs2/zhy/my_conda_env/dj/lib/python3.9/site-packages/datasets/utils/py_utils.py", line 713, in iflatmap_unordered raise RuntimeError( RuntimeError: One of the subprocesses has abruptly died during map operation.To debug the error, disable multiprocessing. 2025-05-27 07:34:04 | INFO | data_juicer.utils.logger_utils:230 - Processing finished with:
算子中的并发量设置的是10,感觉似乎不太像并发量太大导致子进程崩溃的。 后面似乎又没出现过这个报错。 这个报错大概是什么原因导致的呢
Additional 额外信息
No response
我也遇到了这个问题 某些算子运行时会出现 把num_proc 设置为1时才不会报错
我也遇到了这个问题 某些算子运行时会出现 把num_proc 设置为1时才不会报错
这个一般是什么导致的呢?设置为1应该不会错但太慢了,感觉我这边的接口能够容纳的并发数应该大于这个值,不知道是什么原因导致的这个报错
你用的是哪个版本的data-juicer?最近有升级过么?
大佬,可以帮忙看看我这个问题吗,感觉问题有一点点像,我没有自己实现算子,调用算子的时候num_proc!=1的话有的算子貌似不做计算,不太懂哪里的问题https://github.com/modelscope/data-juicer/issues/682