Dibiddo commited on
Commit
eee38ad
·
verified ·
1 Parent(s): 02da15b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +48 -22
app.py CHANGED
@@ -1,22 +1,48 @@
1
- from transformers import AutoModel, AutoTokenizer
2
- import gradio as gr
3
-
4
- # 加载模型和分词器
5
- model_id = "BioMistral/BioMistral-7B"
6
- tokenizer = AutoTokenizer.from_pretrained(model_id)
7
- model = AutoModel.from_pretrained(model_id)
8
-
9
- def generate_text(prompt):
10
- # 对输入进行编码
11
- inputs = tokenizer(prompt, return_tensors="pt")
12
- # 生成文本(这里使用模型的输出作为示例)
13
- outputs = model(**inputs)
14
-
15
- # 处理输出(这里返回最后一个隐藏状态的形状作为示例)
16
- return outputs.last_hidden_state.tolist() # 转换为列表以便Gradio显示
17
-
18
- # 创建Gradio界面
19
- iface = gr.Interface(fn=generate_text, inputs="text", outputs="text")
20
-
21
- # 启动Gradio界面并共享链接
22
- iface.launch(share=True)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from transformers import AutoModelForCausalLM, AutoTokenizer
2
+ import torch
3
+
4
+ # 加载指令模型
5
+ model = AutoModelForCausalLM.from_pretrained(
6
+ "MediaTek-Research/Breeze-7B-Instruct-v1_0",
7
+ device_map="auto",
8
+ torch_dtype=torch.bfloat16,
9
+ )
10
+
11
+ # 加载基础模型(如果需要)
12
+ # model_base = AutoModelForCausalLM.from_pretrained(
13
+ # "MediaTek-Research/Breeze-7B-Base-v1_0",
14
+ # device_map="auto",
15
+ # torch_dtype=torch.bfloat16,
16
+ # )
17
+
18
+ # 加载分词器
19
+ tokenizer = AutoTokenizer.from_pretrained("MediaTek-Research/Breeze-7B-Instruct-v1_0")
20
+
21
+ # 定义SYS_PROMPT
22
+ SYS_PROMPT = "You are a helpful AI assistant built by MediaTek Research. The user you are helping speaks Traditional Chinese and comes from Taiwan."
23
+
24
+ # 定义聊天内容
25
+ chat = [
26
+ {"role": "user", "content": "你好,請問你可以完成什麼任務?"},
27
+ {"role": "assistant", "content": "你好,我可以幫助您解決各種問題、提供資訊和協助您完成許多不同的任務。例如:回答技術問題、提供建議、翻譯文字、尋找資料或協助您安排行程等。請告訴我如何能幫助您。"},
28
+ {"role": "user", "content": "太棒了!"},
29
+ ]
30
+
31
+ # 应用聊天模板
32
+ prompt = tokenizer.apply_chat_template(chat, tokenize=False)
33
+ full_prompt = f"<s>{SYS_PROMPT} [INST] {prompt} [/INST]"
34
+
35
+ # 生成文本
36
+ inputs = tokenizer(full_prompt, return_tensors="pt").to(model.device)
37
+ outputs = model.generate(
38
+ inputs["input_ids"],
39
+ max_new_tokens=128,
40
+ top_p=0.95,
41
+ top_k=50,
42
+ repetition_penalty=1.1,
43
+ temperature=0.7,
44
+ )
45
+
46
+ # 解码输出
47
+ generated_text = tokenizer.decode(outputs[0], skip_special_tokens=True)
48
+ print(generated_text)