Download SDLM/utils/data_process/statistic.py from lll2343/nv_dlms: direct link, hf CLI and curl.
- Browser
- Download file 1.38 kB
-
https://huggingface.co/lll2343/nv_dlms/resolve/main/SDLM/utils/data_process/statistic.py
- Command line
-
hf download hf://lll2343/nv_dlms/SDLM/utils/data_process/statistic.py
-
curl -L -o statistic.py https://huggingface.co/lll2343/nv_dlms/resolve/main/SDLM/utils/data_process/statistic.py
1.38 kB
| import json | |
| from transformers import AutoTokenizer | |
| from tqdm import tqdm | |
| meta_json = './shell/playground/data/meta/sft_opc436k_scale_math_1m_smoltalk_1m_tulu_1m.json' | |
| with open(meta_json, "r", encoding="utf-8") as file: | |
| meta = json.load(file) | |
| tokenizer = AutoTokenizer.from_pretrained( | |
| './shell/playground/ckpt/Qwen2.5-3B', | |
| add_eos_token=True, # for |im_end| | |
| trust_remote_code=True, | |
| use_fast=False | |
| ) | |
| token_dict = {} | |
| for data_name, data_item in meta.items(): | |
| annotation = data_item['annotation'] | |
| print(f'processing... {annotation}') | |
| anno_token_cnt = 0 | |
| with open(annotation, 'r') as f: | |
| raw_data = f.readlines() | |
| for data_item in tqdm(raw_data): | |
| data_item = json.loads(data_item) | |
| sample = '' | |
| for conversation in data_item['conversations']: | |
| sample += conversation['value'] | |
| input_ids = tokenizer( | |
| [sample], | |
| return_tensors='np', | |
| padding=False, | |
| truncation=False, | |
| ).input_ids | |
| anno_token_cnt += input_ids.shape[1] | |
| token_dict[annotation] = anno_token_cnt | |
| print(f'{annotation} total {anno_token_cnt}') | |
| print(token_dict) | |
| with open("utils/data_process/data_token_stastic.json", "w", encoding="utf-8") as f: | |
| json.dump(token_dict, f, ensure_ascii=False, indent=4) | |