mlabonne/FineTome-100k
收藏数据集概述
数据集名称
mlabonne/FineTome-100k
数据集描述
- 该数据集用于训练模型,包含100k个示例。
- 数据集格式为ShareGPT。
数据集处理流程
-
导入数据集:
- 从Hugging Face下载数据集,并将其分片存储到Tigris中。
- 每个分片最多包含500万个示例。
- 数据集下载后进行标准化处理,然后保存到Tigris。
-
导入模型:
- 从Hugging Face下载模型权重,并将其存储到Tigris。
- 模型权重和分词器模型均存储在Tigris中。
-
预处理数据集:
- 加载每个分片数据集,并使用模型的分词格式进行预处理。
- 预处理后的数据集保存回Tigris。
-
模型训练:
- 加载模型并叠加LoRA(低秩适应)模型。
- 对每个分片数据集进行训练,训练完成后将权重保存到Tigris。
数据集存储
- 数据集和模型权重存储在Tigris中,使用
s3://{bucket_name}/路径。
相关代码
-
数据集导入和分片代码: python dataset = load_dataset(dataset_name, split="train", streaming=True) for shard_id, shard in enumerate(dataset.iter(5_000_000)): dataset = Dataset.from_dict(shard, features=dataset.features) ds.save_to_disk(f"s3://{bucket_name}/raw/{dataset_name}/{shard_id}", storage_options=storage_options)
-
模型导入代码: python model, tokenizer = FastLanguageModel.from_pretrained( model_name = model_name, max_seq_length = 4096, dtype = None, load_in_4bit = False, ) model.save_pretrained(f"{home_dir}/tigris/models/{model_name}") tokenizer.save_pretrained(f"{home_dir}/tigris/models/{model_name}")
-
数据集预处理代码: python def prechew(examples): convos = examples["conversations"] texts = [tokenizer.apply_chat_template(convo, tokenize = False, add_generation_prompt = False) for convo in convos] return { "text" : texts, }
-
模型训练代码: python model = FastLanguageModel.get_peft_model(model, ...) trainer = SFTTrainer( model = model, tokenizer = tokenizer, train_dataset = dataset, dataset_text_field = "text", args = TrainingArguments( num_train_epochs = 1, ..., ), ..., ) trainer_stats = trainer.train() print(trainer_stats)




