import gradio as gr | |
import spaces | |
import torch | |
from transformers import AutoModelForCausalLM, AutoTokenizer | |
model_name = "dasomaru/gemma-3-4bit-it-demo" | |
# ๐ tokenizer๋ CPU์์๋ ๋ฏธ๋ฆฌ ๋ถ๋ฌ์ฌ ์ ์์ | |
tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True) | |
# ๐ model์ CPU๋ก๋ง ๋จผ์ ์ฌ๋ฆผ (GPU ์์ง ์์) | |
model = AutoModelForCausalLM.from_pretrained( | |
model_name, | |
torch_dtype=torch.float16, # 4bit model์ด๋๊น | |
trust_remote_code=True, | |
) | |
def generate_response(prompt): | |
# ๋ชจ๋ธ ๋ฐ ํ ํฌ๋์ด์ ๋ก๋ฉ์ ํจ์ ๋ด๋ถ์์ ์ํ | |
tokenizer = AutoTokenizer.from_pretrained("dasomaru/gemma-3-4bit-it-demo") | |
model = AutoModelForCausalLM.from_pretrained("dasomaru/gemma-3-4bit-it-demo") | |
model.to("cuda") | |
inputs = tokenizer(prompt, return_tensors="pt").to("cuda") | |
outputs = model.generate(**inputs, max_new_tokens=512, temperature=0.7, | |
top_p=0.9, | |
top_k=50, | |
do_sample=True,) | |
return tokenizer.decode(outputs[0], skip_special_tokens=True) | |
demo = gr.Interface(fn=generate_response, inputs="text", outputs="text") | |
demo.launch() | |
# zero = torch.Tensor([0]).cuda() | |
# print(zero.device) # <-- 'cpu' ๐ค | |
# @spaces.GPU | |
# def greet(n): | |
# print(zero.device) # <-- 'cuda:0' ๐ค | |
# return f"Hello {zero + n} Tensor" | |
# demo = gr.Interface(fn=greet, inputs=gr.Number(), outputs=gr.Text()) | |
# demo.launch() |