File size: 1,702 Bytes
b5e932c b717579 b5e932c 996b567 b5e932c b717579 996b567 b717579 b5e932c b717579 996b567 b5e932c 996b567 b5e932c 996b567 b717579 996b567 b717579 996b567 b717579 996b567 b717579 996b567 b5e932c b717579 b5e932c 996b567 b717579 996b567 b717579 b5e932c | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | import gradio as gr
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
# Model
model_name = "deepseek-ai/deepseek-coder-1.3b-instruct"
# Load tokenizer
tokenizer = AutoTokenizer.from_pretrained(model_name)
tokenizer.pad_token = tokenizer.eos_token
# Load model (CPU optimized)
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype=torch.float32,
low_cpu_mem_usage=True
)
model.to("cpu")
model.eval()
# Generate function
def generate_code(prompt):
if not prompt.strip():
return "Please enter a prompt."
formatted_prompt = f"""You are a professional programmer.
Write clean, complete, and correct code.
Instruction:
{prompt}
Response:
"""
inputs = tokenizer(
formatted_prompt,
return_tensors="pt",
truncation=True,
max_length=512
)
with torch.no_grad():
outputs = model.generate(
**inputs,
max_new_tokens=120,
temperature=0.2,
top_p=0.9,
do_sample=True,
repetition_penalty=1.2,
eos_token_id=tokenizer.eos_token_id,
pad_token_id=tokenizer.eos_token_id
)
output_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
# Clean output
result = output_text.replace(formatted_prompt, "").strip()
return result
# UI
iface = gr.Interface(
fn=generate_code,
inputs=gr.Textbox(
lines=5,
placeholder="Example: Create a login page using HTML and CSS"
),
outputs=gr.Textbox(lines=12),
title="DeepSeek Coder AI (Optimized)",
description="Code generator running on Hugging Face Spaces (CPU optimized)."
)
iface.launch() |