Closed1

HuggingFaceのデータセットダウンロード中にFSTimeoutError

kun432kun432

サイズが大きいデータセット、別ストレージにデータがあってスクリプトを使っているようなケース、でどうやら起きることがあるっぽい。

例えば以下のデータセット。

https://huggingface.co/datasets/shunk031/JDocQA

import datasets

dataset = datasets.load_dataset(
  path="shunk031/JDocQA", 
  rename_pdf_category=True,
  trust_remote_code=True,
)
Downloading data:  18%
 6.52G/37.0G [05:00<23:07, 22.0MB/s]
---------------------------------------------------------------------------
CancelledError                            Traceback (most recent call last)
/usr/local/lib/python3.10/dist-packages/aiohttp/streams.py in _wait(self, func_name)
    314             with self._timer:
--> 315                 await waiter
    316         finally:

CancelledError: 

The above exception was the direct cause of the following exception:

TimeoutError                              Traceback (most recent call last)
25 frames
TimeoutError: 

The above exception was the direct cause of the following exception:

FSTimeoutError                            Traceback (most recent call last)
/usr/local/lib/python3.10/dist-packages/fsspec/asyn.py in sync(loop, func, timeout, *args, **kwargs)
     99     if isinstance(return_result, asyncio.TimeoutError):
    100         # suppress asyncio.TimeoutError, raise FSTimeoutError
--> 101         raise FSTimeoutError from return_result
    102     elif isinstance(return_result, BaseException):
    103         raise return_result

FSTimeoutError:

上記が結構な頻度で起きる。何度かリトライ&環境変える(Colaboratory・ローカルのJupyter)などしても、自分は一度も成功しなかった。

以下に対処策があった。

https://github.com/huggingface/datasets/issues/7164#issuecomment-2439589751

自分の場合は以下でいけた。

import datasets, aiohttp

dataset = datasets.load_dataset(
  path="shunk031/JDocQA", 
  rename_pdf_category=True,
  trust_remote_code=True,
  # 以下を追加
  storage_options={'client_kwargs': {'timeout': aiohttp.ClientTimeout(total=3600)}}
)
このスクラップは25日前にクローズされました