File size: 1,698 Bytes
b9cf68a bf07e8f 4d35d17 60fca78 b9cf68a 60fca78 bf07e8f b9cf68a bf07e8f b9cf68a bf07e8f b9cf68a bf07e8f b9cf68a 4d35d17 bf07e8f 4d35d17 bf07e8f b9cf68a bf07e8f b9cf68a bf07e8f b9cf68a bf07e8f b9cf68a bf07e8f b9cf68a bf07e8f b9cf68a bf07e8f b9cf68a bf07e8f b9cf68a bf07e8f |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
import gradio as gr
import pandas as pd
from datasets import Dataset
from transformers import AutoTokenizer, TrainingArguments, Trainer, AutoModelForCausalLM
import torch
import zerogpu
# Initialize ZeroGPU
zerogpu.initialize()
def train_model(file, hf_token):
try:
# Basic data loading test
df = pd.read_csv(file.name)
print(f"Loaded CSV with {len(df)} rows")
# Load tokenizer and model
model_name = "facebook/opt-125m"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
model_name,
device_map=None, # Force simple device mapping
low_cpu_mem_usage=True
)
model = model.to('cpu') # Explicitly move to CPU
# Basic dataset creation
dataset = Dataset.from_pandas(df)
args = TrainingArguments(
output_dir="./results",
per_device_train_batch_size=1,
num_train_epochs=1,
no_cuda=True,
local_rank=-1
)
trainer = Trainer(
model=model,
args=args,
train_dataset=dataset,
tokenizer=tokenizer
)
return f"Setup successful! Loaded {len(df)} rows"
except Exception as e:
return f"Error: {str(e)}\nType: {type(e)}"
demo = gr.Interface(
fn=train_model,
inputs=[
gr.File(label="Upload CSV file"),
gr.Textbox(label="HF Token", type="password")
],
outputs="text",
title="Product Classifier Training (CPU)",
)
if __name__ == "__main__":
demo.launch(debug=True) # Enable debug mode
|