掘金 人工智能 04月27日 12:28
大模型对话风格微调项目实战——部署上线篇
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文介绍了如何将微调后的大模型部署上线,为用户提供服务。主要包括选择vLLM作为部署框架,安装vLLM并启动服务器,以及使用Streamlit开发Web应用,实现用户通过Web界面与模型进行对话。通过LCCC数据集和GLM-4生成多样化风格数据,使用XTuner框架对Qwen2.5-1.5B模型进行QLoRA微调,最终采用vLLM高效部署并集成Streamlit构建Web应用。实践表明微调后的模型能稳定输出指定风格,本地部署方案显著降低API调用成本,轻量级Web界面提供良好的用户体验。

🚀**模型部署框架选择与安装:** 文章选择了vLLM作为大模型部署框架,并详细介绍了vLLM的安装步骤,包括创建conda环境和使用pip安装vllm。

🖥️**Web应用开发:** 使用Streamlit快速搭建了一个Web应用,用户可以在Web界面与微调后的模型进行对话。文章提供了完整的代码示例,包括初始化OpenAI客户端、处理用户输入和显示历史消息等。

💡**关键技术与优势:** 本项目通过LCCC数据集和GLM-4生成多样化风格数据,并使用XTuner框架对Qwen2.5-1.5B模型进行QLoRA微调。实验结果表明,微调后的模型能够稳定输出指定风格,且本地部署方案能够显著降低API调用成本。

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

目录

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

背景介绍

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

本文的任务

部署模型到本地服务器

部署框架选择

在部署模型到本地服务器之前,我们需要选择一个合适的部署框架。目前比较流行的部署框架有:

框架的选择需要根据实际情况进行选择,本文选择vLLM作为部署框架。

安装vLLM

conda create -n vllm python=3.10 -yconda activate vllmpip install vllm

启动vLLM服务器

vllm serve \    /mnt/model/Qwen/Qwen2___5-1___5B-Instruct_Merge

开发Web应用

开发框架选择

前端开发是一个复杂的系统工程,考虑到本文的目的,我们不展开讨论,而是选择一个简单的前端框架进行效果演示:Streamlit。

安装Streamlit

conda create -n streamlit python=3.10 -yconda activate streamlitpip install streamlit

开发Web应用

下面是一个简单的Web应用,用户可以通过Web界面与模型进行对话。

import streamlit as stfrom 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,然后在终端中运行:

streamlit run .\chat_app.py

效果演示

总结

本项目完整实现了从数据收集、模型微调到部署上线的全流程。通过LCCC数据集和GLM-4生成多样化风格数据,使用XTuner框架对Qwen2.5-1.5B模型进行QLoRA微调,最终采用vLLM高效部署并集成Streamlit构建Web应用。实践表明:

    微调后的模型能稳定输出指定风格(温柔/毒舌)本地部署方案显著降低API调用成本轻量级Web界面提供良好的用户体验未来可扩展支持更多对话风格,并优化推理性能。本项目为对话风格定制提供了完整的技术方案参考。

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

大模型 风格微调 vLLM Streamlit 模型部署
相关文章