Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -33,32 +33,27 @@ except ImportError as e:
|
|
33 |
print(f"砖讙讬讗讛 讘讬讘讜讗 讛住驻专讬讜转: {str(e)}")
|
34 |
sys.exit(1)
|
35 |
|
36 |
-
# 专砖讬诪转 诪讜讚诇讬诐
|
37 |
MODELS = {
|
38 |
-
"
|
39 |
-
"
|
40 |
-
"
|
41 |
-
"
|
42 |
-
"
|
43 |
-
"google/flan-t5-small": "诪讜讚诇 讛谞讞讬讜转 拽讟谉 转讜诪讱 讘诪讙讜讜谉 砖驻讜转 - 讟讜讘 诇砖讗诇讜转 讜转砖讜讘讜转",
|
44 |
-
"distilgpt2": "诪讜讚诇 GPT-2 拽讟谉 讜诪讛讬专 - 讟讜讘 诇讬爪讬专转 讟拽住讟"
|
45 |
}
|
46 |
|
47 |
# 诪讬诇讜谉 讛讙讚专讜转 讗讜驻讟讬诪诇讬讜转 诇驻讬 住讜讙讬 诪讜讚诇讬诐
|
48 |
MODEL_CONFIGS = {
|
49 |
-
"
|
50 |
-
"
|
51 |
-
},
|
52 |
-
"t5": { # 诇诪讜讚诇讬 T5 讜-MT5
|
53 |
-
"max_length": 150,
|
54 |
"do_sample": True,
|
55 |
-
"temperature": 0.
|
56 |
-
"top_p": 0.
|
57 |
-
"repetition_penalty": 1.
|
58 |
-
"
|
59 |
},
|
60 |
-
"default": { #
|
61 |
-
"max_new_tokens":
|
62 |
"do_sample": True,
|
63 |
"temperature": 0.7,
|
64 |
"top_p": 0.92,
|
@@ -76,7 +71,7 @@ else:
|
|
76 |
print("讗讝讛专讛: 讟讜拽谉 HF_TOKEN 诇讗 诪讜讙讚专 讘住讘讬讘转 讛注讘讜讚讛. 讬讬转讻谉 砖诇讗 转讛讬讛 讙讬砖讛 诇诪讜讚诇讬诐 诪讜讙讘诇讬诐.")
|
77 |
|
78 |
# 讛讙讚专转 诪砖转谞讬诐 讙诇讜讘诇讬讬诐
|
79 |
-
default_model_name = "
|
80 |
current_model_name = default_model_name
|
81 |
generator = None
|
82 |
|
@@ -106,33 +101,13 @@ def load_model(model_name, status_box=None):
|
|
106 |
status_box = gr.Markdown(f"讟讜注谉 讗转 讛诪讜讚诇: {model_name}...")
|
107 |
|
108 |
try:
|
109 |
-
#
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
model=model_name,
|
117 |
-
device_map="auto",
|
118 |
-
torch_dtype="auto"
|
119 |
-
)
|
120 |
-
elif "t5" in model_name.lower() or "mt5" in model_name.lower() or "flan-t5" in model_name.lower():
|
121 |
-
# 诪讜讚诇讬 T5 诪转讗讬诪讬诐 诇讟拽住讟-诇讟拽住讟
|
122 |
-
generator = transformers.pipeline(
|
123 |
-
"text2text-generation",
|
124 |
-
model=model_name,
|
125 |
-
device_map="auto",
|
126 |
-
torch_dtype="auto"
|
127 |
-
)
|
128 |
-
else:
|
129 |
-
# 诪讜讚诇讬诐 专讙讬诇讬诐 诇讬爪讬专转 讟拽住讟
|
130 |
-
generator = transformers.pipeline(
|
131 |
-
"text-generation",
|
132 |
-
model=model_name,
|
133 |
-
device_map="auto",
|
134 |
-
torch_dtype="auto"
|
135 |
-
)
|
136 |
|
137 |
if status_box is not None:
|
138 |
status_box = gr.Markdown(f"**讛诪讜讚诇 {model_name} 谞讟注谉 讘讛爪诇讞讛!**")
|
@@ -159,53 +134,29 @@ def ask_model(prompt):
|
|
159 |
return "讛诪讜讚诇 诇讗 谞讟注谉 讘讛爪诇讞讛. 谞住讛 诇讟注讜谉 诪讜讚诇 转讞讬诇讛."
|
160 |
|
161 |
try:
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
#
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
top_p=0.92, # 谞讜拽诇讬讜住 讚讙讬诪讛 - 砖讜诪专 注诇 诪讙讜讜谉 转砖讜讘讜转
|
178 |
-
repetition_penalty=1.2, # 诪讜谞注 讞讝专讜转
|
179 |
-
num_beams=4 # 讞讬驻讜砖 拽专谉 诇转讜爪讗讜转 讗讬讻讜转讬讜转 讬讜转专
|
180 |
-
)
|
181 |
-
if isinstance(outputs, list) and len(outputs) > 0:
|
182 |
-
return outputs[0]["generated_text"]
|
183 |
-
else:
|
184 |
-
return str(outputs)
|
185 |
else:
|
186 |
-
|
187 |
-
outputs = generator(
|
188 |
-
prompt,
|
189 |
-
max_new_tokens=150, # 讗讜专讱 转讜爪讗讛 诪拽住讬诪诇讬
|
190 |
-
do_sample=True, # 讚讙讬诪讛 讗拽专讗讬转 讘诪拽讜诐 greedy
|
191 |
-
temperature=0.7, # 讗讬讝讜谉 讘讬谉 讚讬讜拽 讜讬爪讬专转讬讜转
|
192 |
-
top_p=0.92, # 谞讜拽诇讬讜住 讚讙讬诪讛 - 砖讜诪专 注诇 诪讙讜讜谉 转砖讜讘讜转
|
193 |
-
repetition_penalty=1.1, # 诪讜谞注 讞讝专讜转
|
194 |
-
no_repeat_ngram_size=2, # 诪谞讬注转 讞讝专讛 注诇 讘讬讙专诪讜转 (讝讜讙讜转 诪讬诇讬诐)
|
195 |
-
return_full_text=False # 诪讞讝讬专 专拽 讗转 讛讟拽住讟 讛讞讚砖 砖谞讜爪专
|
196 |
-
)
|
197 |
-
|
198 |
-
# 诪讞讝讬专 讗转 讛讟拽住讟 砖谞讜爪专
|
199 |
-
if isinstance(outputs, list) and len(outputs) > 0:
|
200 |
-
return outputs[0]["generated_text"]
|
201 |
-
else:
|
202 |
-
return str(outputs)
|
203 |
except Exception as e:
|
204 |
return f"砖讙讬讗讛 讘讛驻注诇转 讛诪讜讚诇: {str(e)}"
|
205 |
|
206 |
# 讬爪讬专转 诪诪砖拽 诪砖转诪砖
|
207 |
with gr.Blocks() as demo:
|
208 |
-
gr.Markdown("# 诪注专讻转 爪'讗讟 注诐
|
209 |
|
210 |
# 讗讝讜专 讘讞讬专转 诪讜讚诇 讜讟注讬谞讛
|
211 |
with gr.Row():
|
@@ -263,9 +214,9 @@ with gr.Blocks() as demo:
|
|
263 |
"住驻专 诇讬 注诇 讘讬谞讛 诪诇讗讻讜转讬转",
|
264 |
"诪讛 讚注转讱 注诇 讛砖驻讛 讛注讘专讬转?",
|
265 |
"讻转讜讘 住讬驻讜专 拽爪专 注诇 讬专讜砖诇讬诐",
|
266 |
-
"
|
267 |
-
"
|
268 |
-
"
|
269 |
],
|
270 |
input_text
|
271 |
)
|
@@ -273,8 +224,8 @@ with gr.Blocks() as demo:
|
|
273 |
gr.Markdown("""
|
274 |
### 讛注专讜转:
|
275 |
- 讘讞专 诪讜讚诇 诪讛专砖讬诪讛 讜诇讞抓 注诇 '讟注谉 诪讜讚诇' 讻讚讬 诇讛讞诇讬祝 讗转 讛诪讜讚诇 讛谞讜讻讞讬
|
276 |
-
-
|
277 |
-
-
|
278 |
- 讛讟注讬谞讛 讛专讗砖讜谞讬转 砖诇 讻诇 诪讜讚诇 注砖讜讬讛 诇拽讞转 诪住驻专 砖谞讬讜转 注讚 讚拽讜转
|
279 |
""")
|
280 |
|
|
|
33 |
print(f"砖讙讬讗讛 讘讬讘讜讗 讛住驻专讬讜转: {str(e)}")
|
34 |
sys.exit(1)
|
35 |
|
36 |
+
# 专砖讬诪转 诪讜讚诇讬诐 Qwen3-Coder
|
37 |
MODELS = {
|
38 |
+
"Qwen/Qwen1.5-0.5B-Chat": "诪讜讚诇 Qwen 拽讟谉 - 转讜诪讱 讘注讘专讬转 讜诪转讗讬诐 诇砖讬讞讛 讜转讻谞讜转",
|
39 |
+
"Qwen/Qwen1.5-1.8B-Chat": "诪讜讚诇 Qwen 讘讬谞讜谞讬 - 转讜诪讱 讘砖驻讜转 专讘讜转 讻讜诇诇 注讘专讬转",
|
40 |
+
"Qwen/Qwen1.5-4B-Chat": "诪讜讚诇 Qwen 讞讝拽 讬讜转专 - 转讜诪讱 讘砖驻讜转 专讘讜转 讜拽讬讚讜讚",
|
41 |
+
"Qwen/Qwen1.5-7B-Chat": "诪讜讚诇 Qwen 讞讝拽 诪讗讜讚 - 诪转讗讬诐 诇砖讬讞讛 讜转讻谞讜转 诪转拽讚诪转",
|
42 |
+
"Qwen/Qwen1.5-7B-Coder": "诪讜讚诇 Qwen3-Coder - 诪砖讜驻专 诇转讻谞讜转 讜诪砖讬诪讜转 拽讜讚"
|
|
|
|
|
43 |
}
|
44 |
|
45 |
# 诪讬诇讜谉 讛讙讚专讜转 讗讜驻讟讬诪诇讬讜转 诇驻讬 住讜讙讬 诪讜讚诇讬诐
|
46 |
MODEL_CONFIGS = {
|
47 |
+
"qwen": { # 诇诪讜讚诇讬 Qwen
|
48 |
+
"max_new_tokens": 512,
|
|
|
|
|
|
|
49 |
"do_sample": True,
|
50 |
+
"temperature": 0.7,
|
51 |
+
"top_p": 0.95,
|
52 |
+
"repetition_penalty": 1.05,
|
53 |
+
"no_repeat_ngram_size": 3
|
54 |
},
|
55 |
+
"default": { # 诇诪讜讚诇讬诐 讗讞专讬诐
|
56 |
+
"max_new_tokens": 256,
|
57 |
"do_sample": True,
|
58 |
"temperature": 0.7,
|
59 |
"top_p": 0.92,
|
|
|
71 |
print("讗讝讛专讛: 讟讜拽谉 HF_TOKEN 诇讗 诪讜讙讚专 讘住讘讬讘转 讛注讘讜讚讛. 讬讬转讻谉 砖诇讗 转讛讬讛 讙讬砖讛 诇诪讜讚诇讬诐 诪讜讙讘诇讬诐.")
|
72 |
|
73 |
# 讛讙讚专转 诪砖转谞讬诐 讙诇讜讘诇讬讬诐
|
74 |
+
default_model_name = "Qwen/Qwen1.5-7B-Coder"
|
75 |
current_model_name = default_model_name
|
76 |
generator = None
|
77 |
|
|
|
101 |
status_box = gr.Markdown(f"讟讜注谉 讗转 讛诪讜讚诇: {model_name}...")
|
102 |
|
103 |
try:
|
104 |
+
# Qwen 诪讜讚诇讬诐 诪转讗讬诪讬诐 诇爪'讗讟
|
105 |
+
generator = transformers.pipeline(
|
106 |
+
"text-generation",
|
107 |
+
model=model_name,
|
108 |
+
device_map="auto",
|
109 |
+
torch_dtype="auto"
|
110 |
+
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
111 |
|
112 |
if status_box is not None:
|
113 |
status_box = gr.Markdown(f"**讛诪讜讚诇 {model_name} 谞讟注谉 讘讛爪诇讞讛!**")
|
|
|
134 |
return "讛诪讜讚诇 诇讗 谞讟注谉 讘讛爪诇讞讛. 谞住讛 诇讟注讜谉 诪讜讚诇 转讞讬诇讛."
|
135 |
|
136 |
try:
|
137 |
+
# 讟讬驻讜诇 讘诪讜讚诇讬 Qwen
|
138 |
+
outputs = generator(
|
139 |
+
prompt,
|
140 |
+
max_new_tokens=512, # 讗讜专讱 转讜爪讗讛 诪拽住讬诪诇讬 - 讛讙讚诇谞讜 注讘讜专 Qwen
|
141 |
+
do_sample=True, # 讚讙讬诪讛 讗拽专讗讬转 讘诪拽讜诐 greedy
|
142 |
+
temperature=0.7, # 讗讬讝讜谉 讘讬谉 讚讬讜拽 讜讬爪讬专转讬讜转
|
143 |
+
top_p=0.95, # 谞讜拽诇讬讜住 讚讙讬诪讛 - 砖讜诪专 注诇 诪讙讜讜谉 转砖讜讘讜转
|
144 |
+
repetition_penalty=1.05, # 诪讜谞注 讞讝专讜转
|
145 |
+
no_repeat_ngram_size=3, # 诪谞讬注转 讞讝专讛 注诇 讘讬讙专诪讜转 (讝讜讙讜转 诪讬诇讬诐)
|
146 |
+
return_full_text=False # 诪讞讝讬专 专拽 讗转 讛讟拽住讟 讛讞讚砖 砖谞讜爪专
|
147 |
+
)
|
148 |
+
|
149 |
+
# 诪讞讝讬专 讗转 讛讟拽住讟 砖谞讜爪专
|
150 |
+
if isinstance(outputs, list) and len(outputs) > 0:
|
151 |
+
return outputs[0]["generated_text"]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
152 |
else:
|
153 |
+
return str(outputs)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
154 |
except Exception as e:
|
155 |
return f"砖讙讬讗讛 讘讛驻注诇转 讛诪讜讚诇: {str(e)}"
|
156 |
|
157 |
# 讬爪讬专转 诪诪砖拽 诪砖转诪砖
|
158 |
with gr.Blocks() as demo:
|
159 |
+
gr.Markdown("# 诪注专讻转 爪'讗讟 注诐 诪讜讚诇讬 Qwen3-Coder")
|
160 |
|
161 |
# 讗讝讜专 讘讞讬专转 诪讜讚诇 讜讟注讬谞讛
|
162 |
with gr.Row():
|
|
|
214 |
"住驻专 诇讬 注诇 讘讬谞讛 诪诇讗讻讜转讬转",
|
215 |
"诪讛 讚注转讱 注诇 讛砖驻讛 讛注讘专讬转?",
|
216 |
"讻转讜讘 住讬驻讜专 拽爪专 注诇 讬专讜砖诇讬诐",
|
217 |
+
"讻转讜讘 诇讬 拽讜讚 讘驻讬讬转讜谉 砖诪讞砖讘 讗转 诪住驻专讬 驻讬讘讜谞讗爪'讬",
|
218 |
+
"讻转讜讘 诇讬 拽讜讚 讘-JavaScript 砖讬讜爪专 讗驻诇讬拽爪讬讬转 专砖讬诪转 诪砖讬诪讜转",
|
219 |
+
"讛住讘专 诇讬 注诇 诪注专讻讜转 诪讘讜住住讜转 讟专谞住驻讜专诪专讬诐"
|
220 |
],
|
221 |
input_text
|
222 |
)
|
|
|
224 |
gr.Markdown("""
|
225 |
### 讛注专讜转:
|
226 |
- 讘讞专 诪讜讚诇 诪讛专砖讬诪讛 讜诇讞抓 注诇 '讟注谉 诪讜讚诇' 讻讚讬 诇讛讞诇讬祝 讗转 讛诪讜讚诇 讛谞讜讻讞讬
|
227 |
+
- 诪讜讚诇讬 Qwen 诪转讗讬诪讬诐 讘诪讬讜讞讚 诇爪'讗讟 讜转讻谞讜转
|
228 |
+
- 诪讜诪诇抓 诇讛转讞讬诇 注诐 讛诪讜讚诇 讛拽讟谉 讬讜转专 (0.5B) 讜诇讛砖转诪砖 讘诪讜讚诇讬诐 讛讙讚讜诇讬诐 讬讜转专 专拽 注讘讜专 诪砖讬诪讜转 诪讜专讻讘讜转
|
229 |
- 讛讟注讬谞讛 讛专讗砖讜谞讬转 砖诇 讻诇 诪讜讚诇 注砖讜讬讛 诇拽讞转 诪住驻专 砖谞讬讜转 注讚 讚拽讜转
|
230 |
""")
|
231 |
|