Update app.py
Browse files
app.py
CHANGED
|
@@ -2,32 +2,29 @@ import gradio as gr
|
|
| 2 |
from transformers import AutoModelForCausalLM, AutoTokenizer, TextIteratorStreamer
|
| 3 |
import torch
|
| 4 |
from threading import Thread
|
| 5 |
-
import os #
|
| 6 |
|
| 7 |
# --- 1. ๋ชจ๋ธ ๋ก๋ (Space์ GPU ํ์ฉ) ---
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
# 2. Space Setting์ ๋ฑ๋กํ Secret(HF_TOKEN)์ ํ๊ฒฝ ๋ณ์์์ ๊ฐ์ ธ์ต๋๋ค.
|
| 11 |
-
HF_AUTH_TOKEN = os.environ.get("HF_TOKEN")
|
| 12 |
|
| 13 |
print(f"๋ชจ๋ธ์ ๋ก๋ฉ ์ค์
๋๋ค: {MODEL_NAME} (Space GPU ์ฌ์ฉ)")
|
| 14 |
|
| 15 |
-
#
|
| 16 |
tokenizer = AutoTokenizer.from_pretrained(
|
| 17 |
-
MODEL_NAME
|
| 18 |
-
token=HF_AUTH_TOKEN # ์ธ์ฆ ํ ํฐ ์ ๋ฌ
|
| 19 |
)
|
| 20 |
model = AutoModelForCausalLM.from_pretrained(
|
| 21 |
MODEL_NAME,
|
| 22 |
torch_dtype=torch.float16,
|
| 23 |
-
device_map="auto"
|
| 24 |
-
token=HF_AUTH_TOKEN # ์ธ์ฆ ํ ํฐ ์ ๋ฌ
|
| 25 |
)
|
| 26 |
print("๋ชจ๋ธ ๋ก๋ฉ ์๋ฃ!")
|
| 27 |
|
| 28 |
# --- 2. ์ฑ๋ด ์๋ต ํจ์ (Gradio๊ฐ ์ด ํจ์๋ฅผ ํธ์ถ) ---
|
| 29 |
def predict(message, history):
|
| 30 |
|
|
|
|
| 31 |
history_prompt = ""
|
| 32 |
for user_msg, assistant_msg in history:
|
| 33 |
history_prompt += f"<bos>user\n{user_msg}\n<eos>assistant\n{assistant_msg}\n"
|
|
@@ -59,7 +56,7 @@ def predict(message, history):
|
|
| 59 |
# --- 3. Gradio ์ฑ๋ด UI ์์ฑ ---
|
| 60 |
chatbot_ui = gr.ChatInterface(
|
| 61 |
fn=predict,
|
| 62 |
-
title="Kanana
|
| 63 |
description=f"{MODEL_NAME} ๋ชจ๋ธ์ ํ
์คํธํฉ๋๋ค.",
|
| 64 |
theme="soft",
|
| 65 |
examples=[["ํ๊ตญ์ ์๋๋ ์ด๋์ผ?"], ["AI์ ๋ํด 3์ค๋ก ์์ฝํด์ค."]]
|
|
|
|
| 2 |
from transformers import AutoModelForCausalLM, AutoTokenizer, TextIteratorStreamer
|
| 3 |
import torch
|
| 4 |
from threading import Thread
|
| 5 |
+
import os # os ๋ชจ๋์ ํน์ ๋ชจ๋ฅด๋ ๋จ๊ฒจ๋ก๋๋ค.
|
| 6 |
|
| 7 |
# --- 1. ๋ชจ๋ธ ๋ก๋ (Space์ GPU ํ์ฉ) ---
|
| 8 |
+
# ๋ณ๋ ์ธ์ฆ(ํ ํฐ)์ด ํ์ ์๋ 'kanana-nano' ๊ณต๊ฐ ๋ชจ๋ธ๋ก ๋ณ๊ฒฝํ์ต๋๋ค.
|
| 9 |
+
MODEL_NAME = "kakaocorp/kanana-nano-2.1b-instruct"
|
|
|
|
|
|
|
| 10 |
|
| 11 |
print(f"๋ชจ๋ธ์ ๋ก๋ฉ ์ค์
๋๋ค: {MODEL_NAME} (Space GPU ์ฌ์ฉ)")
|
| 12 |
|
| 13 |
+
# ์ด ๋ชจ๋ธ์ ๊ณต๊ฐ ๋ชจ๋ธ์ด๋ฏ๋ก ํ ํฐ(token=...) ํ๋ผ๋ฏธํฐ๊ฐ ํ์ ์์ต๋๋ค.
|
| 14 |
tokenizer = AutoTokenizer.from_pretrained(
|
| 15 |
+
MODEL_NAME
|
|
|
|
| 16 |
)
|
| 17 |
model = AutoModelForCausalLM.from_pretrained(
|
| 18 |
MODEL_NAME,
|
| 19 |
torch_dtype=torch.float16,
|
| 20 |
+
device_map="auto"
|
|
|
|
| 21 |
)
|
| 22 |
print("๋ชจ๋ธ ๋ก๋ฉ ์๋ฃ!")
|
| 23 |
|
| 24 |
# --- 2. ์ฑ๋ด ์๋ต ํจ์ (Gradio๊ฐ ์ด ํจ์๋ฅผ ํธ์ถ) ---
|
| 25 |
def predict(message, history):
|
| 26 |
|
| 27 |
+
# Kanana์ ํ๋กฌํํธ ํ์
|
| 28 |
history_prompt = ""
|
| 29 |
for user_msg, assistant_msg in history:
|
| 30 |
history_prompt += f"<bos>user\n{user_msg}\n<eos>assistant\n{assistant_msg}\n"
|
|
|
|
| 56 |
# --- 3. Gradio ์ฑ๋ด UI ์์ฑ ---
|
| 57 |
chatbot_ui = gr.ChatInterface(
|
| 58 |
fn=predict,
|
| 59 |
+
title="Kanana-Nano ์ฑ๋ด ํ
์คํธ ๐ค",
|
| 60 |
description=f"{MODEL_NAME} ๋ชจ๋ธ์ ํ
์คํธํฉ๋๋ค.",
|
| 61 |
theme="soft",
|
| 62 |
examples=[["ํ๊ตญ์ ์๋๋ ์ด๋์ผ?"], ["AI์ ๋ํด 3์ค๋ก ์์ฝํด์ค."]]
|