bracket233 commited on
Commit
d8f83a7
·
verified ·
1 Parent(s): 4e87fae

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +31 -0
app.py ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from transformers import AutoTokenizer
3
+ from optimum.onnxruntime import ORTModelForCausalLM, ORTOptions
4
+
5
+
6
+ # 选超轻量模型:微软Phi-3-mini(仅38亿参数,推理极快)
7
+ model_name = "microsoft/Phi-3-mini-4k-instruct-ONNX"
8
+
9
+
10
+ # 开启INT8量化+动态批处理,CPU计算量直接减半
11
+ options = ORTOptions(enable_int8=True, enable_dynamic_quantization=True)
12
+ model = ORTModelForCausalLM.from_pretrained(model_name, from_transformers=True, ort_options=options)
13
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
14
+
15
+
16
+ def generate_text(input_texts):
17
+     inputs = tokenizer(input_texts, return_tensors="pt", padding=True, truncation=True, max_length=32)
18
+     outputs = model.generate(
19
+         **inputs,
20
+         max_new_tokens=8,    # 生成长度砍到极致
21
+         temperature=0.1,    # 温度调低,减少随机计算
22
+         do_sample=False,
23
+         num_beams=1,
24
+         early_stopping=True # 到句号就停,不做无用功
25
+     )
26
+     return tokenizer.batch_decode(outputs, skip_special_tokens=True)
27
+
28
+
29
+ # 界面支持多行输入(批量处理请求,CPU利用率拉满)
30
+ iface = gr.Interface(fn=generate_text, inputs=gr.Textbox(multiline=True), outputs="text")
31
+ iface.launch()