yeonsoo commited on
Commit
a4fc148
·
1 Parent(s): 6455592
Files changed (1) hide show
  1. app.py +46 -4
app.py CHANGED
@@ -1,8 +1,50 @@
1
  import gradio as gr
 
 
2
 
3
- def greet(name):
4
- return "Hello " + name + "!!"
5
 
6
- demo = gr.Interface(fn=greet, inputs="text", outputs="text")
7
- print("doneasdf")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8
  demo.launch()
 
1
  import gradio as gr
2
+ from transformers import AutoTokenizer, AutoModelForSequenceClassification, Trainer, TrainingArguments
3
+ from datasets import load_dataset
4
 
5
+ # 데이터셋 로딩
6
+ dataset = load_dataset("imdb")
7
 
8
+ # 모델과 토크나이저 로딩
9
+ model_name = "distilbert-base-uncased"
10
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
11
+ model = AutoModelForSequenceClassification.from_pretrained(model_name)
12
+
13
+ # 데이터셋을 모델에 맞게 전처리
14
+ def tokenize_function(examples):
15
+ return tokenizer(examples["text"], padding="max_length", truncation=True)
16
+
17
+ tokenized_datasets = dataset.map(tokenize_function, batched=True)
18
+
19
+ # 훈련 설정
20
+ training_args = TrainingArguments(
21
+ output_dir="./results", # 결과 저장 경로
22
+ num_train_epochs=3, # 훈련 에폭 수
23
+ per_device_train_batch_size=8, # 배치 크기
24
+ per_device_eval_batch_size=8, # 검증 배치 크기
25
+ evaluation_strategy="epoch", # 에폭마다 검증
26
+ logging_dir="./logs", # 로그 저장 경로
27
+ )
28
+
29
+ trainer = Trainer(
30
+ model=model, # 훈련할 모델
31
+ args=training_args, # 훈련 인자
32
+ train_dataset=tokenized_datasets["train"], # 훈련 데이터셋
33
+ eval_dataset=tokenized_datasets["test"], # 평가 데이터셋
34
+ )
35
+
36
+ # 훈련 시작
37
+ trainer.train()
38
+
39
+ # 그라디오 인터페이스로 훈련된 모델을 UI에 연결
40
+ def classify_text(text):
41
+ inputs = tokenizer(text, return_tensors="pt", padding=True, truncation=True)
42
+ outputs = model(**inputs)
43
+ logits = outputs.logits
44
+ predicted_class = logits.argmax(-1).item()
45
+ return predicted_class
46
+
47
+ demo = gr.Interface(fn=classify_text, inputs="text", outputs="text")
48
+
49
+ # Gradio 인터페이스 실행 (훈련 후)
50
  demo.launch()