diff --git a/dataset/lm_dataset.py b/dataset/lm_dataset.py
index bbc4197..6aa220b 100644
--- a/dataset/lm_dataset.py
+++ b/dataset/lm_dataset.py
@@ -28,10 +28,13 @@ def pre_processing_chat(conversations, add_system_ratio=0.2):
return [{'role': 'system', 'content': random.choice(SYSTEM_PROMPTS)}] + conversations
return conversations
-def post_processing_chat(prompt_content, empty_think_ratio=0.2):
+def post_processing_chat(prompt_content, empty_think_ratio=0.2, remove_empty_think=None):
# 以80%概率移除空思考标签
- if '\n\n\n\n' in prompt_content and random.random() > empty_think_ratio:
- prompt_content = prompt_content.replace('\n\n\n\n', '')
+ if '\n\n\n\n' in prompt_content:
+ if remove_empty_think is None:
+ remove_empty_think = random.random() > empty_think_ratio
+ if remove_empty_think:
+ prompt_content = prompt_content.replace('\n\n\n\n', '')
return prompt_content
class PretrainDataset(Dataset):
@@ -139,12 +142,13 @@ class DPODataset(Dataset):
chosen_prompt = self.tokenizer.apply_chat_template(
chosen, tokenize=False, add_generation_prompt=False
)
- chosen_prompt = post_processing_chat(chosen_prompt)
rejected_prompt = self.tokenizer.apply_chat_template(
rejected, tokenize=False, add_generation_prompt=False
)
- rejected_prompt = post_processing_chat(rejected_prompt)
+ remove_empty_think = random.random() > 0.2
+ chosen_prompt = post_processing_chat(chosen_prompt, remove_empty_think=remove_empty_think)
+ rejected_prompt = post_processing_chat(rejected_prompt, remove_empty_think=remove_empty_think)
chosen_encoding = self.tokenizer(
chosen_prompt, truncation=True, max_length=self.max_length, padding='max_length'
)
@@ -253,4 +257,4 @@ class AgentRLDataset(Dataset):
if __name__ == "__main__":
- pass
\ No newline at end of file
+ pass