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") |