modelscope / data-juicer

A one-stop data processing system to make data higher-quality, juicier, and more digestible for (multimodal) LLMs! 🍎 🍋 🌽 ➡️ ➡️🍸 🍹 🍷为大模型提供更高质量、更丰富、更易”消化“的数据!
Apache License 2.0
2.83k stars 173 forks source link

[Bug]: 去重的hash计算卡在100%上,一直不过滤 #387

Closed xiafeng-nb closed 1 month ago

xiafeng-nb commented 2 months ago

Before Reporting 报告之前

Search before reporting 先搜索,再报告

OS 系统

Ubuntu

Installation Method 安装方式

pip

Data-Juicer Version Data-Juicer版本

latest

Python Version Python版本

3.10

Describe the bug 描述这个bug

昨天用7月份的代码处理redpajama的cc数据还能正常运行,今天拉了版最新代码后再运行会一直卡在document_simhash_deduplicator_compute_hash (num_proc=10): 100%|##########| 776770/776770 [04:52<00:00, 358.93 examples/s] 我处理的数据是单个jsonl文件,开启了10个np image

To Reproduce 如何复现

python tools/process_data.py --config configs/data_juicer_recipes/redpajama-cc-2023-06-refine.yaml

Configs 配置信息

# global parameters
project_name: 'Data-Juicer-recipes-cc-2023-06'
dataset_path: '/redpajama-cc'  # path to your dataset directory or file
export_path: '/djdata/dj_en_head_0000.jsonl'

np: 10 # number of subprocess to process your dataset
open_tracer: true

# process schedule
# a list of several process operators with their arguments

process:
  - document_simhash_deduplicator:
      tokenization: space
      window_size: 6
      lowercase: true
      ignore_pattern: '\p{P}'
      num_blocks: 6
      hamming_distance: 4

  - clean_email_mapper:
  - clean_links_mapper:
  - fix_unicode_mapper:
  - punctuation_normalization_mapper:
  - whitespace_normalization_mapper:

  - alphanumeric_filter:
      tokenization: false
      min_ratio: 0.7508  # 3sigma
      max_ratio: 0.8591  # 3sigma -- 1036821
  - average_line_length_filter:  # for code
      max_len: 1500  # < 3sigma -- 395868
  - character_repetition_filter:
      rep_len: 10
      max_ratio: 0.3  # > 3sigma -- 195026
  - flagged_words_filter:
      lang: en
      tokenization: true
      max_ratio: 0.0015  # 3sigma -- 287896
  - language_id_score_filter:  # remove language filter
      min_score: 0.793  # 3sigma -- 2173246
  - maximum_line_length_filter:  # for code
      max_len: 5000  # < 3sigma -- 797111
  - perplexity_filter:
      lang: en
      max_ppl: 5000  # 3sigma -- 942162
  - special_characters_filter:
      min_ratio: 0.15  # > 3sigma
      max_ratio: 0.35  # > 3sigma -- 1155090
  - text_length_filter:
      max_len: 58187  # 3sigma -- 1165902
  - words_num_filter:
      lang: en
      tokenization: true
      min_num: 20
      max_num: 11529  # 3sigma -- 1185363
  - word_repetition_filter:
      lang: en
      tokenization: true
      rep_len: 10
      max_ratio: 0.2962  # 3sigma -- 2407282

Logs 报错日志

No response

Screenshots 截图

No response

Additional 额外信息

No response

HYLcool commented 2 months ago

嗨 @xiafeng-nb ,感谢你对 Data-Juicer 的关注与使用!

我们本地没能复现这种情况,请问这里会卡多久?这个现象是能够稳定复现的吗?以及在卡住的时候你的机器的各项资源占用是否有达到满负荷或者接近满负荷的状态吗?

xiafeng-nb commented 2 months ago

去重大概会卡半个小时才会往后进行,其余算子也都会变慢很多,用新版的代码和7月17号之前的版本去处理同一个jsonl文件,同一个算子最慢的会比之前慢10倍,两张图都是5个np,用的是https://data.together.xyz/redpajama-data-1T/v1.0.0/urls.txt的2023-06的jsonl文件 image 1D4CEC03DC2E74AD3DAA974955802D5D

xiafeng-nb commented 2 months ago

嗨 @xiafeng-nb ,感谢你对 Data-Juicer 的关注与使用!

我们本地没能复现这种情况,请问这里会卡多久?这个现象是能够稳定复现的吗?以及在卡住的时候你的机器的各项资源占用是否有达到满负荷或者接近满负荷的状态吗?

不同算子卡住时间不一样,最慢的能卡快1小时,这期间机器资源占用变小,没有满负荷的状态,使用小文件处理时候没有这个问题,但是用5g大小的jsonl文件,可以稳定复现

xiafeng-nb commented 2 months ago

有个问题想请教下,针对redpajama这些数据集的“菜谱”,从文档里看是使用3sigma方法对数据分布观察计算,得到每个超参数值,这是怎么确定上调或者下调如语言评分过滤算子的超参数值会对模型训练更好的呢,是每次调完超参数处理数据,再训练模型然后评估下性能,然后再调再评估,直到最高点就停止吗。

drcege commented 2 months ago

嗨 @xiafeng-nb ,感谢你对 Data-Juicer 的关注与使用! 我们本地没能复现这种情况,请问这里会卡多久?这个现象是能够稳定复现的吗?以及在卡住的时候你的机器的各项资源占用是否有达到满负荷或者接近满负荷的状态吗?

不同算子卡住时间不一样,最慢的能卡快1小时,这期间机器资源占用变小,没有满负荷的状态,使用小文件处理时候没有这个问题,但是用5g大小的jsonl文件,可以稳定复现

我们使用与您相同的 yaml 配置,在 CC/2023-06/head_0000.jsonl 文件上仍然没能复现卡住较长时间的问题;每个算子结束之后通常只有几秒钟的缓存同步时间。建议关闭 tracer 和 cache,观察是否有改善,检查是否磁盘读写较慢?

drcege commented 2 months ago

去重大概会卡半个小时才会往后进行,其余算子也都会变慢很多,用新版的代码和7月17号之前的版本去处理同一个jsonl文件,同一个算子最慢的会比之前慢10倍,两张图都是5个np,用的是https://data.together.xyz/redpajama-data-1T/v1.0.0/urls.txt的2023-06的jsonl文件 image 1D4CEC03DC2E74AD3DAA974955802D5D

感谢反馈!我们在7月17号后的版本中加入了容错机制,避免因为单个样本异常导致处理进程终止;这不可避免地增加了开销,对计算轻量的 OP 影响尤为显著。我们在 PR #402 中增加了开关,通过关闭容错机制恢复原来的速度,欢迎测试反馈~