leepokai commited on
Commit
db62c9a
·
verified ·
1 Parent(s): 18e5aaf

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +25 -40
app.py CHANGED
@@ -8,51 +8,36 @@ perplexity = evaluate.load("perplexity", module_type="metric")
8
  # 创建推理客户端
9
  client = InferenceClient("HuggingFaceH4/zephyr-7b-beta")
10
 
11
- def respond(message, history: list[tuple[str, str]], system_message, max_tokens, temperature, top_p):
12
- messages = [{"role": "system", "content": system_message}]
 
13
 
14
- for val in history:
15
- if val[0]:
16
- messages.append({"role": "user", "content": val[0]})
17
- if val[1]:
18
- messages.append({"role": "assistant", "content": val[1]})
19
-
20
- messages.append({"role": "user", "content": message})
21
-
22
- response = ""
23
-
24
- for message in client.chat_completion(
25
  messages,
26
- max_tokens=max_tokens,
27
- stream=True,
28
- temperature=temperature,
29
- top_p=top_p,
30
- ):
31
- token = message.choices[0].delta.content
32
- response += token
33
- yield response
34
 
35
  # 计算困惑度
36
- perplexity_results = perplexity.compute(model_id='gpt2', add_start_token=False, predictions=[response])
37
  perplexity_value = perplexity_results['perplexity']
38
-
39
- # 将困惑度结果添加到聊天回复中
40
- yield f"Perplexity of the response: {perplexity_value}"
41
-
42
- demo = gr.ChatInterface(
43
- respond,
44
- additional_inputs=[
45
- gr.Textbox(value="You are a friendly Chatbot.", label="System message"),
46
- gr.Slider(minimum=1, maximum=2048, value=512, step=1, label="Max new tokens"),
47
- gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Temperature"),
48
- gr.Slider(
49
- minimum=0.1,
50
- maximum=1.0,
51
- value=0.95,
52
- step=0.05,
53
- label="Top-p (nucleus sampling)"
54
- ),
55
- ]
56
  )
57
 
58
  if __name__ == "__main__":
 
8
  # 创建推理客户端
9
  client = InferenceClient("HuggingFaceH4/zephyr-7b-beta")
10
 
11
+ def compute_perplexity(message):
12
+ # 制备消息列表,这里只有用户消息
13
+ messages = [{"role": "user", "content": message}]
14
 
15
+ # 通过客户端完成聊天生成任务
16
+ response = client.chat_completion(
 
 
 
 
 
 
 
 
 
17
  messages,
18
+ max_tokens=512,
19
+ stream=False,
20
+ temperature=0.7,
21
+ top_p=0.95
22
+ )
23
+
24
+ # 获取生成的文本内容
25
+ generated_text = response.choices[0].delta.content
26
 
27
  # 计算困惑度
28
+ perplexity_results = perplexity.compute(model_id='gpt2', add_start_token=False, predictions=[generated_text])
29
  perplexity_value = perplexity_results['perplexity']
30
+
31
+ # 返回困惑度结果
32
+ return f"Perplexity of the response: {perplexity_value}"
33
+
34
+ # 设置 Gradio 界面
35
+ demo = gr.Interface(
36
+ fn=compute_perplexity,
37
+ inputs="text",
38
+ outputs="text",
39
+ title="Compute Perplexity",
40
+ description="Enter a text to compute its perplexity based on the gpt2 model."
 
 
 
 
 
 
 
41
  )
42
 
43
  if __name__ == "__main__":