Sakalti commited on
Commit
2c2a43f
·
verified ·
1 Parent(s): fa68cc3

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +52 -0
app.py ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import requests
3
+ import torch
4
+ from transformers import AutoModel, AutoTokenizer
5
+ from huggingface_hub import HfApi
6
+
7
+ def convert_and_deploy(url, model_name, hf_username, hf_token):
8
+ # セーフテンソルファイルをダウンロード
9
+ response = requests.get(url)
10
+ if response.status_code != 200:
11
+ return "ファイルのダウンロードに失敗しました。URLを確認してください。"
12
+
13
+ # ファイルを保存
14
+ file_path = "model.safetensors"
15
+ with open(file_path, "wb") as f:
16
+ f.write(response.content)
17
+
18
+ # モデルを読み込み
19
+ model = AutoModel.from_pretrained("path_to_model", torch_dtype=torch.float16, use_safetensors=True)
20
+ model.load_state_dict(torch.load(file_path))
21
+
22
+ # モデルをfloat16形式で保存
23
+ model.save_pretrained(f"{model_name}_float16", torch_dtype=torch.float16)
24
+
25
+ # モデルをHugging Faceにデプロイ
26
+ api = HfApi()
27
+ api.upload_folder(
28
+ folder_path=f"{model_name}_float16",
29
+ repo_id=f"{hf_username}/{model_name}",
30
+ token=hf_token,
31
+ path_in_repo=f"{model_name}_float16",
32
+ create_remote_repo=True
33
+ )
34
+
35
+ return "モデルをfloat16に変換し、Hugging Faceにデプロイしました。"
36
+
37
+ # Gradioインターフェースの作成
38
+ iface = gr.Interface(
39
+ fn=convert_and_deploy,
40
+ inputs=[
41
+ gr.inputs.Textbox(label="セーフテンソルURL"),
42
+ gr.inputs.Textbox(label="モデル名"),
43
+ gr.inputs.Textbox(label="Hugging Face ユーザー名"),
44
+ gr.inputs.Textbox(label="Hugging Face Write Token")
45
+ ],
46
+ outputs=gr.outputs.Textbox(label="結果"),
47
+ title="モデルの変換とデプロイ",
48
+ description="セーフテンソルURL、モデル名、Hugging Face ユーザー名、およびHugging Face Write Tokenを入力して、モデルをfloat16に変換し、Hugging Faceにデプロイします。"
49
+ )
50
+
51
+ # インターフェースの起動
52
+ iface.launch()