modelscope / modelscope/ms-swift
sft微调qwen3.5 构造自己的VQA数据集jsonl ,报错An error occurred while generating the dataset
Open
Nobody has claimed this yet.
bug
stale
- Dominant language
- Python
- Stars
- 15.7k
- Forks
- 1.7k
- Avg merge
- 1d 16h
- Merged PRs (30d)
- 136
Description
Checklist / 检查清单
- I have searched existing issues, and this is a new bug report. / 我已经搜索过现有的 issues,确认这是一个新的 bug report。
Bug Description / Bug 描述
[INFO:swift] default_system: None
[INFO:swift] max_length: 2048
[INFO:swift] response_prefix: '<think>\n'
[INFO:swift] agent_template: qwen3_5
[INFO:swift] norm_bbox: norm1000
[INFO:swift] Setting ROOT_IMAGE_DIR: None. You can adjust this hyperparameter through the environment variable: `ROOT_IMAGE_DIR`.
[INFO:swift] Setting QWENVL_BBOX_FORMAT: legacy. You can adjust this hyperparameter through the environment variable: `QWENVL_BBOX_FORMAT`.
[INFO:swift] Start time of running main: 2026-03-13 17:15:58.510713
[INFO:swift] swift.__version__: 4.1.0.dev0
[INFO:swift] SelfCognitionPreprocessor has been successfully configured with name: ('swift-robot', 'swift-robot'), author: ('swift', 'swift').
Setting num_proc from 4 back to 1 for the train split to disable multiprocessing as it only contains one shard.
Generating train split: 0 examples [00:00, ? examples/s]Failed to load JSON from file '/appdata/zhangkailin/Qwen2.5-VL/data_process_genn/process/result/safety_vqa_data_v6_1223_50.json_swift0313.jsonl' with error <class 'pyarrow.lib.ArrowInvalid'>: JSON parse error: Column(/messages/[]/content) changed from string to object in row 0
Generating train split: 0 examples [00:00, ? examples/s]
[rank0]: Traceback (most recent call last):
[rank0]: File "/home/zhangkailin/.conda/envs/swift3/lib/python3.12/site-packages/datasets/packaged_modules/json/json.py", line 160, in _generate_tables
[rank0]: df = pandas_read_json(f)
[rank0]: ^^^^^^^^^^^^^^^^^^^
[rank0]: File "/home/zhangkailin/.conda/envs/swift3/lib/python3.12/site-packages/datasets/packaged_modules/json/json.py", line 38, in pandas_read_json
[rank0]: return pd.read_json(path_or_buf, **kwargs)
[rank0]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[rank0]: File "/home/zhangkailin/.conda/envs/swift3/lib/python3.12/site-packages/pandas/io/json/_json.py", line 815, in read_json
[rank0]: return json_reader.read()
[rank0]: ^^^^^^^^^^^^^^^^^^
[rank0]: File "/home/zhangkailin/.conda/envs/swift3/lib/python3.12/site-packages/pandas/io/json/_json.py", line 1014, in read
[rank0]: obj = self._get_object_parser(self.data)
[rank0]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[rank0]: File "/home/zhangkailin/.conda/envs/swift3/lib/python3.12/site-packages/pandas/io/json/_json.py", line 1040, in _get_object_parser
[rank0]: obj = FrameParser(json, **kwargs).parse()
[rank0]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[rank0]: File "/home/zhangkailin/.conda/envs/swift3/lib/python3.12/site-packages/pandas/io/json/_json.py", line 1176, in parse
[rank0]: self._parse()
[rank0]: File "/home/zhangkailin/.conda/envs/swift3/lib/python3.12/site-packages/pandas/io/json/_json.py", line 1392, in _parse
[rank0]: ujson_loads(json, precise_float=self.precise_float), dtype=None
[rank0]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[rank0]: ValueError: Trailing data
[rank0]: During handling of the above exception, another exception occurred:
[rank0]: Traceback (most recent call last):
[rank0]: File "/home/zhangkailin/.conda/envs/swift3/lib/python3.12/site-packages/datasets/builder.py", line 1855, in _prepare_split_single
[rank0]: for _, table in generator:
[rank0]: File "/home/zhangkailin/.conda/envs/swift3/lib/python3.12/site-packages/datasets/packaged_modules/json/json.py", line 163, in _generate_tables
[rank0]: raise e
[rank0]: File "/home/zhangkailin/.conda/envs/swift3/lib/python3.12/site-packages/datasets/packaged_modules/json/json.py", line 137, in _generate_tables
[rank0]: pa_table = paj.read_json(
[rank0]: ^^^^^^^^^^^^^^
[rank0]: File "pyarrow/_json.pyx", line 342, in pyarrow._json.read_json
[rank0]: File "pyarrow/error.pxi", line 155, in pyarrow.lib.pyarrow_internal_check_status
[rank0]: File "pyarrow/error.pxi", line 92, in pyarrow.lib.check_status
[rank0]: pyarrow.lib.ArrowInvalid: JSON parse error: Column(/messages/[]/content) changed from string to object in row 0
[rank0]: The above exception was the direct cause of the following exception:
[rank0]: Traceback (most recent call last):
[rank0]: File "/appdata/zhangkailin/ms-swift-new/swift/cli/sft.py", line 20, in <module>
[rank0]: sft_main()
[rank0]: File "/appdata/zhangkailin/ms-swift-new/swift/pipelines/train/sft.py", line 354, in sft_main
[rank0]: return SwiftSft(args).main()
[rank0]: ^^^^^^^^^^^^^^^^^^^^^
[rank0]: File "/appdata/zhangkailin/ms-swift-new/swift/pipelines/base.py", line 52, in main
[rank0]: result = self.run()
[rank0]: ^^^^^^^^^^
[rank0]: File "/appdata/zhangkailin/ms-swift-new/swift/ray/base.py", line 168, in wrapper
[rank0]: return func(self, *args, **kwargs)
[rank0]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[rank0]: File "/appdata/zhangkailin/ms-swift-new/swift/pipelines/train/sft.py", line 174, in run
[rank0]: train_dataset, val_dataset = self._prepare_dataset()
[rank0]: ^^^^^^^^^^^^^^^^^^^^^^^
[rank0]: File "/appdata/zhangkailin/ms-swift-new/swift/ray/base.py", line 168, in wrapper
[rank0]: return func(self, *args, **kwargs)
[rank0]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[rank0]: File "/appdata/zhangkailin/ms-swift-new/swift/pipelines/train/sft.py", line 120, in _prepare_dataset
[rank0]: train_dataset, val_dataset = self._get_dataset()
[rank0]: ^^^^^^^^^^^^^^^^^^^
[rank0]: File "/appdata/zhangkailin/ms-swift-new/swift/pipelines/train/sft.py", line 84, in _get_dataset
[rank0]: train_dataset, val_dataset = load_dataset(
[rank0]: ^^^^^^^^^^^^^
[rank0]: File "/appdata/zhangkailin/ms-swift-new/swift/dataset/loader.py", line 327, in load_dataset
[rank0]: train_dataset = loader.load(dataset_syntax, dataset_meta, use_hf=use_hf)
[rank0]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[rank0]: File "/appdata/zhangkailin/ms-swift-new/swift/dataset/loader.py", line 159, in load
[rank0]: dataset = self._load_dataset_path(
[rank0]: ^^^^^^^^^^^^^^^^^^^^^^^^
[rank0]: File "/appdata/zhangkailin/ms-swift-new/swift/dataset/loader.py", line 55, in _load_dataset_path
[rank0]: dataset = hf_load_dataset(file_type, data_files=dataset_path, **kwargs)
[rank0]: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[rank0]: File "/home/zhangkailin/.conda/envs/swift3/lib/python3.12/site-packages/datasets/load.py", line 2084, in load_dataset
[rank0]: builder_instance.download_and_prepare(
[rank0]: File "/home/zhangkailin/.conda/envs/swift3/lib/python3.12/site-packages/datasets/builder.py", line 925, in download_and_prepare
[rank0]: self._download_and_prepare(
[rank0]: File "/home/zhangkailin/.conda/envs/swift3/lib/python3.12/site-packages/datasets/builder.py", line 1001, in _download_and_prepare
[rank0]: self._prepare_split(split_generator, **prepare_split_kwargs)
[rank0]: File "/home/zhangkailin/.conda/envs/swift3/lib/python3.12/site-packages/datasets/builder.py", line 1742, in _prepare_split
[rank0]: for job_id, done, content in self._prepare_split_single(
[rank0]: File "/home/zhangkailin/.conda/envs/swift3/lib/python3.12/site-packages/datasets/builder.py", line 1898, in _prepare_split_single
[rank0]: raise DatasetGenerationError("An error occurred while generating the dataset") from e
[rank0]: datasets.exceptions.DatasetGenerationError: An error occurred while generating the dataset
[rank0]:[W313 17:16:00.670177029 ProcessGroupNCCL.cpp:1553] Warning: WARNING: destroy_process_group() was not called before program exit, which can leak resources. For more info, please see https://pytorch.org/docs/stable/distributed.html#shutdown (function operator())
How to Reproduce / 如何复现
latex-ocr 开源数据集没问题,自己构造的vqa报错,参考https://swift.readthedocs.io/zh-cn/latest/Customization/Custom-dataset.html
Additional Information / 补充信息
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the custom JSONL file and compare its messages/content structure with the Custom dataset documentation. Then trace dataset loading through swift/dataset/loader.py and the sft.py entry point, using the reported ArrowInvalid error as the first check. Done means the supplied VQA JSONL loads as a train split without DatasetGenerationError.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- data, machine-learning
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100