Multiprocess.pool.RemoteTraceback и TypeError: не удалось привести массив строки типа к нулю при загрузке набора данных Linux

Ответить
Anonymous
 Multiprocess.pool.RemoteTraceback и TypeError: не удалось привести массив строки типа к нулю при загрузке набора данных

Сообщение Anonymous »

Я столкнулся с ошибкой при попытке загрузить и обработать набор данных GAIR/MathPile с помощью библиотеки наборов данных Hugging Face. Кажется, ошибка возникает во время приведения типов в pyarrow в многопроцессорной среде. Ниже приведен код, который я использую

Код: Выделить всё

def get_hf_dataset_gair(path: str = '~/data/GAIR/MathPile/train/') -> Dataset:
path: str = os.path.expanduser(path)
dataset = load_dataset(path, split='train', num_proc=os.cpu_count())
print(dataset[0])  # Preview a single example from the dataset

# Remove unnecessary columns
all_columns = dataset.column_names
all_columns.remove('text')
dataset = dataset.remove_columns(all_columns)

# Shuffle and select 10k examples
dataset = dataset.shuffle(seed=42)
dataset = dataset.select(10_000)
return dataset
При запуске кода я получаю следующую ошибку:

Код: Выделить всё

multiprocess.pool.RemoteTraceback:
"""
Traceback (most recent call last):
File "/lfs/hyperturing1/0/brando9/miniconda/envs/beyond_scale_2/lib/python3.11/site-packages/datasets/builder.py", line 1869, in _prepare_split_single
writer.write_table(table)
...
TypeError: Couldn't cast array of type string to null
Вот полная трассировка стека:

Код: Выделить всё

Traceback (most recent call last):
File "/lfs/hyperturing1/0/brando9/miniconda/envs/beyond_scale_2/lib/python3.11/site-packages/datasets/builder.py", line 1869, in _prepare_split_single
writer.write_table(table)
File "/lfs/hyperturing1/0/brando9/miniconda/envs/beyond_scale_2/lib/python3.11/site-packages/datasets/arrow_writer.py", line 580, in write_table
pa_table = table_cast(pa_table, self._schema)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/lfs/hyperturing1/0/brando9/miniconda/envs/beyond_scale_2/lib/python3.11/site-packages/datasets/table.py", line 2283, in table_cast
return cast_table_to_schema(table, schema)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
...
TypeError: Couldn't cast array of type string to null
Похоже, это связано с приведением типов между типами pyarrow. Я подозреваю, что это как-то связано со схемой набора данных, но я не знаю, как устранить ошибку. Я проверил, что набор данных загружен правильно, и использую следующую среду:
Версия набора данных Hugging Face: 2.x.x
Python 3.11
OS : Linux (работает на сервере)
Многопроцессорность настроена на использование всех доступных процессоров (num_proc=os.cpu_count())
Кто-нибудь сталкивался с этой проблемой раньше или есть ли у кого-нибудь предложения по ее устранению ?
ссылка: https://huggingface.co/datasets/GAIR/Ma ... cussions/3

Подробнее здесь: https://stackoverflow.com/questions/790 ... f-type-str
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»