Add eot tokens to texts;
This commit is contained in:
26
Dataset.py
26
Dataset.py
@@ -16,20 +16,14 @@ class Dataset:
|
|||||||
|
|
||||||
if file.name.lower().endswith(".txt"):
|
if file.name.lower().endswith(".txt"):
|
||||||
textDataset = self.loadFile("text", str(file), context)
|
textDataset = self.loadFile("text", str(file), context)
|
||||||
datasets.append(textDataset["train"])
|
self.__loadTextDataset(textDataset, datasets, tokenizer)
|
||||||
|
|
||||||
elif file.name.lower().endswith(".json") or file.name.lower().endswith(".jsonl"):
|
elif file.name.lower().endswith(".json") or file.name.lower().endswith(".jsonl"):
|
||||||
qaDataset = self.loadFile("json", str(file), context)
|
qaDataset = self.loadFile("json", str(file), context)
|
||||||
if "text" in qaDataset['train'].features:
|
if "text" in qaDataset['train'].features:
|
||||||
datasets.append(qaDataset["train"])
|
self.__loadTextDataset(qaDataset, datasets, tokenizer)
|
||||||
elif "question" in qaDataset['train'].features and "answer" in qaDataset['train'].features:
|
elif "question" in qaDataset['train'].features and "answer" in qaDataset['train'].features:
|
||||||
def datasetChatEncoder(record):
|
self.__loadQaDataset(qaDataset, datasets, tokenizer)
|
||||||
chat = (
|
|
||||||
{"role": "user", "content": f"{record['question']}"},
|
|
||||||
{"role": "assistant", "content": f"{record['answer']}"},
|
|
||||||
)
|
|
||||||
return {"text": tokenizer.apply_chat_template(chat, continue_final_message = True, tokenize = False)}
|
|
||||||
datasets.append(qaDataset.map(datasetChatEncoder, remove_columns=("question", "answer"))["train"])
|
|
||||||
else:
|
else:
|
||||||
print("Cannot load dataset, json dataset neither contains 'text' nor 'question', 'answer'")
|
print("Cannot load dataset, json dataset neither contains 'text' nor 'question', 'answer'")
|
||||||
|
|
||||||
@@ -51,3 +45,17 @@ class Dataset:
|
|||||||
print(dataset)
|
print(dataset)
|
||||||
|
|
||||||
return dataset
|
return dataset
|
||||||
|
|
||||||
|
def __loadTextDataset(self, textDataset, datasets, tokenizer):
|
||||||
|
def datasetTextEncoder(record):
|
||||||
|
return {"text": record['text'] + tokenizer.eos_token}
|
||||||
|
datasets.append(textDataset.map(datasetTextEncoder)["train"])
|
||||||
|
|
||||||
|
def __loadQaDataset(self, qaDataset, datasets, tokenizer):
|
||||||
|
def datasetChatEncoder(record):
|
||||||
|
chat = (
|
||||||
|
{"role": "user", "content": f"{record['question']}"},
|
||||||
|
{"role": "assistant", "content": f"{record['answer']}"},
|
||||||
|
)
|
||||||
|
return {"text": tokenizer.apply_chat_template(chat, continue_final_message = True, tokenize = False)}
|
||||||
|
datasets.append(qaDataset.map(datasetChatEncoder, remove_columns=("question", "answer"))["train"])
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ trGradientAccSteps=
|
|||||||
trGradientCheckpointing=
|
trGradientCheckpointing=
|
||||||
# optional bool, reduces memory consumption
|
# optional bool, reduces memory consumption
|
||||||
trGroupByLength=true
|
trGroupByLength=true
|
||||||
# optional bool, naively pack traning sequences together (reduces memory consumption)
|
# optional bool, naively pack traning sequences together
|
||||||
trPacking=
|
trPacking=
|
||||||
|
|
||||||
[Lora]
|
[Lora]
|
||||||
|
|||||||
Reference in New Issue
Block a user