大模型对话风格微调项目实战——部署上线篇

大模型对话风格微调项目实战------部署上线篇

目录

  1. 背景介绍
  2. 本文的任务
  3. 部署模型到本地服务器
  4. 开发Web应用
  5. 总结

背景介绍

本文是《大模型对话风格微调项目实战》的最后一篇文章,主要介绍如何将微调后的模型部署上线,为用户提供服务。

本文的任务

  • 部署模型到本地服务器
  • 开发一个简单的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应用。实践表明:

  1. 微调后的模型能稳定输出指定风格(温柔/毒舌)
  2. 本地部署方案显著降低API调用成本
  3. 轻量级Web界面提供良好的用户体验 未来可扩展支持更多对话风格,并优化推理性能。本项目为对话风格定制提供了完整的技术方案参考。
相关推荐
没有钱的钱仔13 分钟前
深度学习概念
人工智能·深度学习
星尘安全17 分钟前
研究人员发现严重 AI 漏洞,Meta、英伟达及微软推理框架面临风险
人工智能·microsoft·网络安全·程序员必看
共绩算力20 分钟前
【共绩 AI 小课堂】Class 5 Transformer架构深度解析:从《Attention Is All You Need》论文到现代大模型
人工智能·架构·transformer·共绩算力
极客BIM工作室23 分钟前
VideoCAD:大规模CAD UI交互与3D推理视频数据集,开启智能CAD建模新范式
人工智能·机器学习
帮帮志23 分钟前
01.【AI大模型对话】通过简化大语言模型(LLM)技术来实现对话
人工智能·ai·语言模型·大模型·智能
蒋星熠26 分钟前
常见反爬策略与破解反爬方法:爬虫工程师的攻防实战指南
开发语言·人工智能·爬虫·python·网络安全·网络爬虫
陈橘又青27 分钟前
CANN在智能安防场景中的落地实践:释放硬件潜能,简化AI开发
人工智能·网络协议·学习·ai·编辑器
是店小二呀27 分钟前
在家搭个私人影院?LibreTV+cpolar,随时随地看片自由
开发语言·人工智能
爱看科技1 小时前
智能眼镜AR领航XR市场增长浪潮,三星/微美全息布局竞速引领AI消费新势力!
人工智能·ar·xr
这张生成的图像能检测吗1 小时前
(论文速读)多任务深度学习框架下基于Lamb波的多损伤数据集构建与量化算法
人工智能·深度学习·算法·数据集·结构健康监测