space / app.py
prodnobody's picture
Update app.py
ba0f91a verified
Raw
History Blame
2 kB
import gradio as gr
import spaces
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
MODEL_NAME = "LiquidAI/LFM2.5-2.6B" # or your actual repo id
# -------------------------
# LOAD TOKENIZER + MODEL
# -------------------------
tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME)
model = AutoModelForCausalLM.from_pretrained(
MODEL_NAME,
dtype=torch.float16 # torch_dtype is deprecated
).to("cuda") # single-GPU placement, no accelerate needed
model.eval()
# -------------------------
# OPTIONAL GPU TEST
# -------------------------
zero = torch.tensor([0], device="cuda")
print(zero.device) # should be cuda:0
@spaces.GPU
def greet(n):
print(zero.device)
return f"Hello {zero + n} Tensor"
# -------------------------
# CHAT FUNCTION
# -------------------------
def model_chat(message, history):
# history: list of (user, assistant) tuples
messages = []
for user_msg, bot_msg in history:
messages.append({"role": "user", "content": user_msg})
messages.append({"role": "assistant", "content": bot_msg})
messages.append({"role": "user", "content": message})
inputs = tokenizer.apply_chat_template(
messages,
add_generation_prompt=True,
tokenize=True,
return_dict=True,
return_tensors="pt",
).to(model.device)
with torch.no_grad():
outputs = model.generate(
**inputs,
max_new_tokens=256,
do_sample=True,
temperature=0.8,
top_p=0.95,
)
# slice off the prompt tokens
generated = outputs[0][inputs["input_ids"].shape[-1]:]
response = tokenizer.decode(generated, skip_special_tokens=True)
return response
# -------------------------
# GRADIO APP
# -------------------------
demo = gr.ChatInterface(
fn=model_chat,
title="LiquidAI/LFM2.5-2.6B Chat Demo",
description="Chat with the LiquidAI/LFM2.5-2.6B model.",
)
if __name__ == "__main__":
demo.launch()