Spaces:
Build error
Build error
import os | |
from unsloth import FastLanguageModel | |
from transformers import TrainingArguments, Trainer | |
from datasets import load_dataset | |
import torch | |
# Validate environment variable | |
HF_TOKEN = os.getenv("HF_TOKEN") | |
if not HF_TOKEN: | |
raise ValueError("HF_TOKEN environment variable not set") | |
# Load quantized model | |
try: | |
model, tokenizer = FastLanguageModel.from_pretrained( | |
model_name="deepseek-ai/DeepSeek-V3", | |
dtype=torch.bfloat16, | |
load_in_4bit=True, | |
token=HF_TOKEN | |
) | |
FastLanguageModel.for_training(model) | |
except Exception as e: | |
raise RuntimeError(f"Failed to load model: {str(e)}") | |
# Load and prepare dataset (example - replace with your actual dataset) | |
try: | |
dataset = load_dataset("imdb") # Example dataset | |
tokenized_dataset = dataset.map( | |
lambda x: tokenizer(x["text"], truncation=True, padding="max_length"), | |
batched=True | |
) | |
except Exception as e: | |
raise RuntimeError(f"Failed to load/prepare dataset: {str(e)}") | |
# Training arguments | |
training_args = TrainingArguments( | |
output_dir="/app/checkpoints", | |
per_device_train_batch_size=4, | |
per_device_eval_batch_size=4, | |
num_train_epochs=2, | |
learning_rate=2e-5, | |
save_steps=500, | |
save_total_limit=2, | |
evaluation_strategy="steps", | |
eval_steps=500, | |
logging_dir="/app/logs", | |
logging_steps=100, | |
fp16=False, | |
bf16=True, | |
deepspeed="/app/ds_config.json" | |
) | |
# Initialize trainer | |
trainer = Trainer( | |
model=model, | |
args=training_args, | |
train_dataset=tokenized_dataset["train"], | |
eval_dataset=tokenized_dataset["test"] | |
) | |
# Train | |
try: | |
trainer.train() | |
except Exception as e: | |
raise RuntimeError(f"Training failed: {str(e)}") | |
# Save model | |
model.save_pretrained("/app/fine_tuned_model") | |
tokenizer.save_pretrained("/app/fine_tuned_model") |