summerMC commited on
Commit
441b3c4
·
verified ·
1 Parent(s): 43fe473

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -8
app.py CHANGED
@@ -2,6 +2,7 @@ import os
2
  import gradio as gr
3
  from llama_cpp import Llama
4
 
 
5
  os.environ["OMP_NUM_THREADS"] = "8"
6
  os.environ["OPENBLAS_NUM_THREADS"] = "8"
7
  os.environ["MKL_NUM_THREADS"] = "8"
@@ -9,9 +10,9 @@ os.environ["MKL_NUM_THREADS"] = "8"
9
  llm = Llama.from_pretrained(
10
  repo_id="summerMC/ume-GGUF",
11
  filename="ume-Q4_K_M.gguf",
12
- n_ctx=768,
13
- n_threads=8,
14
- n_batch=512,
15
  n_ubatch=128,
16
  use_mmap=True,
17
  use_mlock=False,
@@ -23,8 +24,9 @@ llm = Llama.from_pretrained(
23
  def respond(message, history, system_message, max_tokens, temperature, top_p):
24
  messages = [{"role": "system", "content": system_message}]
25
 
 
26
  for user_msg, bot_msg in history:
27
- messages.append({"role": "user", "content": user_msg)
28
  if bot_msg:
29
  messages.append({"role": "assistant", "content": bot_msg})
30
 
@@ -33,19 +35,24 @@ def respond(message, history, system_message, max_tokens, temperature, top_p):
33
  response = ""
34
  for chunk in llm.create_chat_completion(
35
  messages=messages,
36
- max_tokens=min(int(max_tokens), 256),
37
  temperature=float(temperature),
38
  top_p=float(top_p),
39
  stream=True,
40
  ):
41
- token = chunk["choices"][0].get("delta", {}).get("content", "")
 
42
  response += token
43
  yield response
44
 
 
45
  chatbot = gr.ChatInterface(
46
- respond,
47
  additional_inputs=[
48
- gr.Textbox(value="You are a concise assistant.", label="System message"),
 
 
 
49
  gr.Slider(1, 256, value=128, step=1, label="Max new tokens"),
50
  gr.Slider(0.1, 1.5, value=0.7, step=0.1, label="Temperature"),
51
  gr.Slider(0.1, 1.0, value=0.9, step=0.05, label="Top-p"),
 
2
  import gradio as gr
3
  from llama_cpp import Llama
4
 
5
+ # CPU最適化
6
  os.environ["OMP_NUM_THREADS"] = "8"
7
  os.environ["OPENBLAS_NUM_THREADS"] = "8"
8
  os.environ["MKL_NUM_THREADS"] = "8"
 
10
  llm = Llama.from_pretrained(
11
  repo_id="summerMC/ume-GGUF",
12
  filename="ume-Q4_K_M.gguf",
13
+ n_ctx=768, # 小さめにすると速い
14
+ n_threads=8, # SpaceのCPUコア数に合わせて調整
15
+ n_batch=512, # prompt処理高速化
16
  n_ubatch=128,
17
  use_mmap=True,
18
  use_mlock=False,
 
24
  def respond(message, history, system_message, max_tokens, temperature, top_p):
25
  messages = [{"role": "system", "content": system_message}]
26
 
27
+ # Gradio ChatInterface の history は [(user, assistant), ...]
28
  for user_msg, bot_msg in history:
29
+ messages.append({"role": "user", "content": user_msg})
30
  if bot_msg:
31
  messages.append({"role": "assistant", "content": bot_msg})
32
 
 
35
  response = ""
36
  for chunk in llm.create_chat_completion(
37
  messages=messages,
38
+ max_tokens=min(int(max_tokens), 256), # CPUでは長すぎると遅い
39
  temperature=float(temperature),
40
  top_p=float(top_p),
41
  stream=True,
42
  ):
43
+ delta = chunk["choices"][0].get("delta", {})
44
+ token = delta.get("content", "")
45
  response += token
46
  yield response
47
 
48
+
49
  chatbot = gr.ChatInterface(
50
+ fn=respond,
51
  additional_inputs=[
52
+ gr.Textbox(
53
+ value="You are a concise and helpful assistant.",
54
+ label="System message"
55
+ ),
56
  gr.Slider(1, 256, value=128, step=1, label="Max new tokens"),
57
  gr.Slider(0.1, 1.5, value=0.7, step=0.1, label="Temperature"),
58
  gr.Slider(0.1, 1.0, value=0.9, step=0.05, label="Top-p"),