Sakalti commited on
Commit
1808c45
·
verified ·
1 Parent(s): d50d386

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +61 -0
app.py ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import gradio as gr
3
+ from transformers import AutoTokenizer, AutoModelForCausalLM, Trainer, TrainingArguments
4
+ from datasets import load_dataset
5
+ from huggingface_hub import login
6
+
7
+ # Gradioで使うための関数
8
+ def start_training(write_token, repo_name):
9
+ # Hugging Face APIトークンでログイン
10
+ login(token=write_token)
11
+
12
+ # データセットをロード
13
+ dataset = load_dataset("cc100", lang="ja")
14
+
15
+ # モデルとトークナイザーをロード
16
+ model_name = "Qwen/Qwen2.5-0.5B-Instruct"
17
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
18
+ model = AutoModelForCausalLM.from_pretrained(model_name)
19
+
20
+ # トレーニング引数の設定
21
+ training_args = TrainingArguments(
22
+ output_dir="./results", # 結果の保存先
23
+ num_train_epochs=3, # エポック数
24
+ per_device_train_batch_size=8, # バッチサイズ
25
+ per_device_eval_batch_size=8, # 評価バッチサイズ
26
+ warmup_steps=500, # ウォームアップステップ数
27
+ weight_decay=0.01, # 重みの減衰
28
+ logging_dir="./logs", # ログディレクトリ
29
+ )
30
+
31
+ # Trainerの設定
32
+ trainer = Trainer(
33
+ model=model,
34
+ args=training_args,
35
+ train_dataset=dataset["train"],
36
+ eval_dataset=dataset["test"],
37
+ )
38
+
39
+ # トレーニングの実行
40
+ trainer.train()
41
+
42
+ # トレーニングが完了した後にモデルをHugging Face Hubにアップロード
43
+ model.push_to_hub(repo_name)
44
+ tokenizer.push_to_hub(repo_name)
45
+
46
+ return f"トレーニングが完了しました。モデルが'{repo_name}'にアップロードされました。"
47
+
48
+ # Gradioインターフェースを設定
49
+ interface = gr.Interface(
50
+ fn=start_training,
51
+ inputs=[
52
+ gr.Textbox(label="Hugging Face Write Token"),
53
+ gr.Textbox(label="Hugging Face リポジトリ名") # リポジトリパスの入力
54
+ ],
55
+ outputs="text",
56
+ title="モデル トレーニング",
57
+ description="このボタンを押すと、指定したトークンでトレーニングが開始されます。"
58
+ )
59
+
60
+ # アプリの起動
61
+ interface.launch()