大模型对话风格微调项目实战------部署上线篇
目录
背景介绍
本文是《大模型对话风格微调项目实战》的最后一篇文章,主要介绍如何将微调后的模型部署上线,为用户提供服务。
本文的任务
- 部署模型到本地服务器
- 开发一个简单的Web应用,用户可以通过Web界面与模型进行对话
部署模型到本地服务器
部署框架选择
在部署模型到本地服务器之前,我们需要选择一个合适的部署框架。目前比较流行的部署框架有:
- vLLM
- Ollama
- LMDeploy
框架的选择需要根据实际情况进行选择,本文选择vLLM作为部署框架。
安装vLLM
bash
conda create -n vllm python=3.10 -y
conda activate vllm
pip install vllm
启动vLLM服务器
bash
vllm serve \
/mnt/model/Qwen/Qwen2___5-1___5B-Instruct_Merge
开发Web应用
开发框架选择
前端开发是一个复杂的系统工程,考虑到本文的目的,我们不展开讨论,而是选择一个简单的前端框架进行效果演示:Streamlit。
安装Streamlit
bash
conda create -n streamlit python=3.10 -y
conda activate streamlit
pip install streamlit
开发Web应用
下面是一个简单的Web应用,用户可以通过Web界面与模型进行对话。
python
import streamlit as st
from openai import OpenAI
# 初始化客户端
client = OpenAI(base_url="http://localhost:8000/v1/", api_key="_")
# 设置页面标题
st.title("效果演示")
# 初始化session状态(仅用于显示历史)
if "messages" not in st.session_state:
st.session_state.messages = []
# 显示历史消息
for message in st.session_state.messages:
with st.chat_message(message["role"]):
st.markdown(message["content"])
# 获取用户输入
if prompt := st.chat_input("请输入您的问题,或输入exit退出"):
# 处理退出命令
if prompt.lower() == "exit":
st.info("退出对话。")
st.stop()
# 添加用户消息到显示历史
st.session_state.messages.append({"role": "user", "content": prompt})
with st.chat_message("user"):
st.markdown(prompt)
try:
# 发起API请求(每次只发送当前消息)
response = client.chat.completions.create(
messages=[{"role": "user", "content": prompt}], # 每次只发送当前问题
model="/mnt/model/Qwen/Qwen2___5-1___5B-Instruct_Merge"
)
# 获取模型回复
model_response = response.choices[0].message.content
# 添加AI回复到显示历史
st.session_state.messages.append({"role": "assistant", "content": model_response})
with st.chat_message("assistant"):
st.markdown(model_response)
except Exception as e:
st.error(f"发生错误:{e}")
运行Web应用
将上面的代码保存为chat_app.py
,然后在终端中运行:
bash
streamlit run .\chat_app.py
效果演示

总结
本项目完整实现了从数据收集、模型微调到部署上线的全流程。通过LCCC数据集和GLM-4生成多样化风格数据,使用XTuner框架对Qwen2.5-1.5B模型进行QLoRA微调,最终采用vLLM高效部署并集成Streamlit构建Web应用。实践表明:
- 微调后的模型能稳定输出指定风格(温柔/毒舌)
- 本地部署方案显著降低API调用成本
- 轻量级Web界面提供良好的用户体验 未来可扩展支持更多对话风格,并优化推理性能。本项目为对话风格定制提供了完整的技术方案参考。