Spaces:
Sleeping
Sleeping
File size: 2,234 Bytes
1808c45 9c3e9e2 454b875 1808c45 90348a1 1808c45 90348a1 1808c45 |
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 |
import os
import gradio as gr
from transformers import AutoTokenizer, AutoModelForCausalLM, Trainer, TrainingArguments
from datasets import load_dataset
from huggingface_hub import login
# Gradioで使うための関数
def start_training(write_token, repo_name):
# Hugging Face APIトークンでログイン
login(token=write_token)
# range3/cc100-jaデータセットをロード
dataset = load_dataset("Sakalti/Multilingal-sakalt-data")
# モデルとトークナイザーをロード
model_name = "rinna/japanese-gpt-neox-small"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name)
# トレーニング引数の設定
training_args = TrainingArguments(
output_dir="./results", # 結果の保存先
num_train_epochs=2, # エポック数
per_device_train_batch_size=8, # バッチサイズ
per_device_eval_batch_size=8, # 評価バッチサイズ
warmup_steps=500, # ウォームアップステップ数
weight_decay=0.01, # 重みの減衰
logging_dir="./logs", # ログディレクトリ
)
# Trainerの設定
trainer = Trainer(
model=model,
args=training_args,
train_dataset=dataset["train"],
eval_dataset=dataset["test"],
)
# トレーニングの実行
trainer.train()
# トレーニングが完了した後にモデルをHugging Face Hubにアップロード
model.push_to_hub(repo_name)
tokenizer.push_to_hub(repo_name)
return f"トレーニングが完了しました。モデルが'{repo_name}'にアップロードされました。"
# Gradioインターフェースを設定
interface = gr.Interface(
fn=start_training,
inputs=[
gr.Textbox(label="Hugging Face Write Token"),
gr.Textbox(label="Hugging Face リポジトリ名") # リポジトリパスの入力
],
outputs="text",
title="モデル トレーニング",
description="このボタンを押すと、指定したトークンでトレーニングが開始されます。"
)
# アプリの起動
interface.launch() |