Phi-3.5-mini-instruct基础教程:如何修改webui.py添加自定义system prompt
2026/5/9 6:03:06 网站建设 项目流程

Phi-3.5-mini-instruct基础教程:如何修改webui.py添加自定义system prompt

1. 引言

Phi-3.5-mini-instruct是微软推出的轻量级开源指令微调大模型,在长上下文代码理解和多语言任务上表现优异。这个教程将手把手教你如何修改webui.py文件,为这个强大的模型添加自定义system prompt功能。

通过本教程,你将学会:

  • 理解system prompt的作用
  • 定位并修改关键代码
  • 测试自定义prompt的效果
  • 解决常见问题

2. 准备工作

2.1 环境确认

在开始修改前,请确保:

  • 模型已正确部署并运行
  • 可以访问webui.py文件
  • 有基本的Python代码编辑能力

检查服务状态:

supervisorctl status phi-3.5-mini-instruct

2.2 备份重要文件

修改前建议备份原始文件:

cp /root/Phi-3.5-mini-instruct/webui.py /root/Phi-3.5-mini-instruct/webui.py.bak

3. 理解system prompt

3.1 什么是system prompt

system prompt是给模型的初始指令,用于设定对话的基本规则和行为模式。它可以帮助:

  • 定义AI的角色(如编程助手、写作帮手)
  • 设定回答风格(正式、幽默、简洁)
  • 限制回答范围(如只回答技术问题)

3.2 默认prompt分析

Phi-3.5-mini-instruct的默认prompt通常包含:

  • 基本行为准则
  • 安全限制
  • 通用对话模板

4. 修改webui.py

4.1 定位关键代码

打开webui.py文件,找到模型初始化部分(通常在文件开头附近):

model = AutoModelForCausalLM.from_pretrained(...) tokenizer = AutoTokenizer.from_pretrained(...)

4.2 添加system prompt变量

在模型初始化后添加:

DEFAULT_SYSTEM_PROMPT = """你是一个乐于助人的AI助手,专门回答技术问题。 请用清晰、专业的语言回答,如果不知道答案请直接说明。 回答时请考虑代码安全性和最佳实践。"""

4.3 修改生成函数

找到生成响应的函数(通常名为generatepredict),修改输入处理部分:

def generate(input_text, max_length=256, temperature=0.3, top_p=0.8, top_k=20, repetition_penalty=1.1): # 组合system prompt和用户输入 full_prompt = f"{DEFAULT_SYSTEM_PROMPT}\n\n用户: {input_text}\n助手:" inputs = tokenizer(full_prompt, return_tensors="pt").to(device) outputs = model.generate( **inputs, max_length=max_length, temperature=temperature, top_p=top_p, top_k=top_k, repetition_penalty=repetition_penalty, use_cache=False # 解决DynamicCache问题 ) return tokenizer.decode(outputs[0], skip_special_tokens=True)

4.4 更新Gradio界面

如果需要在前端显示或修改system prompt,找到UI定义部分添加:

with gr.Blocks() as demo: system_prompt = gr.Textbox( label="System Prompt", value=DEFAULT_SYSTEM_PROMPT, lines=5 ) input_text = gr.Textbox(label="输入问题") # ...其他UI元素...

5. 测试修改

5.1 重启服务

应用修改后需要重启服务:

supervisorctl restart phi-3.5-mini-instruct

5.2 验证效果

尝试不同场景的提问:

  • 技术问题:"如何用Python读取CSV文件?"
  • 通用问题:"告诉我一个笑话" 观察回答是否符合你设定的system prompt风格

6. 进阶定制

6.1 多角色预设

可以添加多个预设角色:

PROMPT_PRESETS = { "技术专家": "你是一个资深技术专家...", "写作助手": "你是一个创意写作助手...", "语言教师": "你是一个耐心的语言教师..." }

6.2 动态切换

在UI中添加下拉菜单:

preset_select = gr.Dropdown( label="预设角色", choices=list(PROMPT_PRESETS.keys()), value="技术专家" )

7. 常见问题解决

7.1 修改后服务无法启动

检查日志定位问题:

tail -f /root/Phi-3.5-mini-instruct/logs/phi35.err

常见原因:

  • Python语法错误
  • 缩进问题
  • 缺少依赖

7.2 prompt效果不明显

尝试:

  • 简化prompt语言
  • 增加具体指令
  • 调整温度参数(0.1-0.5效果较好)

8. 总结

通过本教程,你已经学会了:

  1. 理解system prompt的重要性
  2. 安全修改webui.py文件
  3. 添加自定义prompt功能
  4. 测试和优化prompt效果

下一步建议:

  • 尝试不同的prompt风格
  • 分享你的最佳prompt实践
  • 探索模型的其他定制可能性

获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询