Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
import os
|
2 |
import gradio as gr
|
3 |
-
from transformers import AutoModelForCausalLM, AutoTokenizer
|
4 |
import torch
|
5 |
|
6 |
# グローバル変数の初期化
|
@@ -10,30 +10,42 @@ tokenizer = None
|
|
10 |
# Hugging Face トークンの取得
|
11 |
HUGGING_FACE_TOKEN = os.getenv('HUGGINGFACE_TOKEN')
|
12 |
if not HUGGING_FACE_TOKEN:
|
13 |
-
raise ValueError("環境変数
|
14 |
|
15 |
def load_model():
|
16 |
global model, tokenizer
|
17 |
if model is None:
|
18 |
model_name = "Guchyos/gemma-2b-elyza-task"
|
19 |
try:
|
20 |
-
#
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21 |
tokenizer = AutoTokenizer.from_pretrained(
|
22 |
model_name,
|
23 |
-
token=HUGGING_FACE_TOKEN
|
|
|
24 |
)
|
25 |
|
26 |
-
#
|
27 |
model = AutoModelForCausalLM.from_pretrained(
|
28 |
model_name,
|
|
|
29 |
torch_dtype=torch.float32,
|
30 |
device_map="cpu",
|
31 |
token=HUGGING_FACE_TOKEN,
|
32 |
-
load_in_8bit=False,
|
33 |
-
load_in_4bit=False,
|
34 |
-
|
35 |
)
|
36 |
|
|
|
|
|
|
|
37 |
except Exception as e:
|
38 |
raise Exception(f"モデルの読み込みに失敗しました: {str(e)}")
|
39 |
return model, tokenizer
|
@@ -48,7 +60,9 @@ def predict(message, history):
|
|
48 |
outputs = model.generate(
|
49 |
**inputs,
|
50 |
max_new_tokens=128,
|
51 |
-
do_sample=False
|
|
|
|
|
52 |
)
|
53 |
|
54 |
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
|
|
|
1 |
import os
|
2 |
import gradio as gr
|
3 |
+
from transformers import AutoModelForCausalLM, AutoTokenizer, AutoConfig
|
4 |
import torch
|
5 |
|
6 |
# グローバル変数の初期化
|
|
|
10 |
# Hugging Face トークンの取得
|
11 |
HUGGING_FACE_TOKEN = os.getenv('HUGGINGFACE_TOKEN')
|
12 |
if not HUGGING_FACE_TOKEN:
|
13 |
+
raise ValueError("環境変数 HUGGING_FACE_TOKEN が設定されていません")
|
14 |
|
15 |
def load_model():
|
16 |
global model, tokenizer
|
17 |
if model is None:
|
18 |
model_name = "Guchyos/gemma-2b-elyza-task"
|
19 |
try:
|
20 |
+
# まずモデルの設定を読み込む
|
21 |
+
config = AutoConfig.from_pretrained(
|
22 |
+
model_name,
|
23 |
+
token=HUGGING_FACE_TOKEN,
|
24 |
+
trust_remote_code=True
|
25 |
+
)
|
26 |
+
|
27 |
+
# トークナイザーの読み込み
|
28 |
tokenizer = AutoTokenizer.from_pretrained(
|
29 |
model_name,
|
30 |
+
token=HUGGING_FACE_TOKEN,
|
31 |
+
trust_remote_code=True
|
32 |
)
|
33 |
|
34 |
+
# モデルの読み込み
|
35 |
model = AutoModelForCausalLM.from_pretrained(
|
36 |
model_name,
|
37 |
+
config=config,
|
38 |
torch_dtype=torch.float32,
|
39 |
device_map="cpu",
|
40 |
token=HUGGING_FACE_TOKEN,
|
41 |
+
load_in_8bit=False,
|
42 |
+
load_in_4bit=False,
|
43 |
+
trust_remote_code=True
|
44 |
)
|
45 |
|
46 |
+
# モデルを評価モードに設定
|
47 |
+
model.eval()
|
48 |
+
|
49 |
except Exception as e:
|
50 |
raise Exception(f"モデルの読み込みに失敗しました: {str(e)}")
|
51 |
return model, tokenizer
|
|
|
60 |
outputs = model.generate(
|
61 |
**inputs,
|
62 |
max_new_tokens=128,
|
63 |
+
do_sample=False,
|
64 |
+
pad_token_id=tokenizer.pad_token_id,
|
65 |
+
eos_token_id=tokenizer.eos_token_id
|
66 |
)
|
67 |
|
68 |
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
|