数据集:

philschmid/sharegpt-raw

许可:

other
英文

准备工作

pip3 install -r requirements.txt

数据清洗

  • 合并两个原始的JSON文件并对合并后的文件进行美化处理
  • python merge.py sharegpt_90k_raw_dataset/sg_90k_part1.json sharegpt_90k_raw_dataset/sg_90k_part2.json  sharegpt_20230401_html_unformatted.json
    python pretty_json.py --in sharegpt_20230401_html_unformatted.json --out sharegpt_20230401_html.json
    
  • (可选)验证JSON文件
  • if jq empty sharegpt_20230401_html.json 2>/dev/null; then
      echo "JSON is valid"
    else
      echo "JSON is invalid"
    fi
    
    jq length sharegpt_90k_raw_dataset/sg_90k_part1.json
    jq length sharegpt_90k_raw_dataset/sg_90k_part2.json
    jq length sharegpt_20230401_html.json
    
  • 清理数据 - 移除HTML标签等
  • python3 clean_sharegpt.py --in sharegpt_20230401_html.json --out sharegpt_20230401_clean.json
    ....
    100%|███████████████████████████████████████████████████████████████████| 90665/90665 [06:32<00:00, 230.98it/s]
    total: 90665, skip: 13745, new: 76920
    
  • 按语言筛选数据集
  • python3 optional_clean.py --in sharegpt_20230401_clean.json --out sharegpt_20230401_clean_lang_zh.json --lang zh
    ....
    return 6240 out of 76920, start dump ...
    
    python3 optional_clean.py --in sharegpt_20230401_clean.json --out sharegpt_20230401_clean_lang_en.json --lang en
    ...
    return 55413 out of 76920, start dump ...
    

    注意:代码本身不支持语言列表,我没有更改代码以适应不同的语言。您可以更改代码以支持更多的语言。但我只筛选了我需要的两种语言,并将sharegpt_20230401_clean_lang_zh.json和sharegpt_20230401_clean_lang_en.json合并成了sharegpt_20230401_clean_lang.json。

  • 拆分长对话
  • python3 split_long_conversation.py --in sharegpt_20230401_clean_lang.json --out sharegpt_20230401_clean_lang_split.json --model-name /home/ubuntu/llama-13b-hf/
    ...
    total: 61653, new: 126032
    

    好的,现在我们有了清理后的数据集sharegpt_20230401_clean_lang_split.json,应该用于微调。