Tbb1111 commited on
Commit
e8dce74
·
verified ·
1 Parent(s): 6928084

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +44 -24
app.py CHANGED
@@ -1,30 +1,50 @@
 
 
1
  import gradio as gr
2
- from transformers import MarianMTModel, MarianTokenizer
3
 
4
- # 加载 MarianMT 模型和分词器
5
- model_name = "Helsinki-NLP/opus-mt-en-zh"
6
- model = MarianMTModel.from_pretrained(model_name).to("cpu") # 强制使用 CPU
7
- tokenizer = MarianTokenizer.from_pretrained(model_name)
8
 
9
- # 翻译功能
10
- def translate_text(input_text):
11
- # 使用 MarianMT 模型进行翻译
12
- inputs = tokenizer(input_text, return_tensors="pt", padding=True, truncation=True)
13
- outputs = model.generate(**inputs)
14
- translated_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
15
-
16
- return translated_text
 
17
 
18
- # 创建 Gradio 界面
19
- with gr.Blocks() as demo:
20
- gr.Markdown("# 英文文本翻译器")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21
 
22
- with gr.Row():
23
- text_input = gr.Textbox(label="输入英文文本", lines=5)
24
-
25
- translate_button = gr.Button("开始翻译")
26
- output_text = gr.Textbox(label="翻译后的中文文本", lines=5)
 
 
 
 
 
 
 
 
27
 
28
- translate_button.click(fn=translate_text, inputs=text_input, outputs=output_text)
29
-
30
- demo.launch()
 
1
+ import torch
2
+ from transformers import AutoTokenizer, AutoModelForCausalLM, GenerationConfig
3
  import gradio as gr
 
4
 
5
+ model_name = "deepseek-ai/deepseek-llm-7b-chat"
 
 
 
6
 
7
+ # 加载 tokenizer 和模型
8
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
9
+ model = AutoModelForCausalLM.from_pretrained(
10
+ model_name,
11
+ torch_dtype=torch.bfloat16 if torch.cuda.is_available() else torch.float32,
12
+ device_map="auto" if torch.cuda.is_available() else None
13
+ )
14
+ model.generation_config = GenerationConfig.from_pretrained(model_name)
15
+ model.generation_config.pad_token_id = model.generation_config.eos_token_id
16
 
17
+ # 推理函数
18
+ def chat(prompt, max_new_tokens=256, temperature=0.7, top_p=0.9):
19
+ messages = [{"role": "user", "content": prompt}]
20
+ input_tensor = tokenizer.apply_chat_template(
21
+ messages, add_generation_prompt=True, return_tensors="pt"
22
+ ).to(model.device)
23
+ with torch.no_grad():
24
+ outputs = model.generate(
25
+ input_tensor,
26
+ max_new_tokens=max_new_tokens,
27
+ temperature=temperature,
28
+ top_p=top_p,
29
+ do_sample=True,
30
+ eos_token_id=tokenizer.eos_token_id
31
+ )
32
+ result = tokenizer.decode(outputs[0][input_tensor.shape[1]:], skip_special_tokens=True)
33
+ return result
34
 
35
+ # Gradio 界面
36
+ iface = gr.Interface(
37
+ fn=chat,
38
+ inputs=[
39
+ gr.Textbox(lines=4, label="请输入您的问题"),
40
+ gr.Slider(32, 1024, step=16, value=256, label="最大生成长度"),
41
+ gr.Slider(0.1, 1.5, step=0.1, value=0.7, label="Temperature"),
42
+ gr.Slider(0.1, 1.0, step=0.05, value=0.9, label="Top-p")
43
+ ],
44
+ outputs=gr.Textbox(label="模型回复"),
45
+ title="DeepSeek LLM 7B Chat 演示",
46
+ description="基于 Hugging Face Spaces 的部署示例"
47
+ )
48
 
49
+ if __name__ == "__main__":
50
+ iface.launch()