| 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() |