郑州专业做网站公司,网站建设的生存期模型,wordpress的主题下载,做详情页的网站BlueLM-7B-Chat WebDemo 部署
模型介绍
BlueLM-7B 是由 vivo AI 全球研究院自主研发的大规模预训练语言模型#xff0c;参数规模为 70 亿。BlueLM-7B 在 C-Eval 和 CMMLU 上均取得领先结果#xff0c;对比同尺寸开源模型中具有较强的竞争力(截止11月1号)。本次发布共包含 7…BlueLM-7B-Chat WebDemo 部署
模型介绍
BlueLM-7B 是由 vivo AI 全球研究院自主研发的大规模预训练语言模型参数规模为 70 亿。BlueLM-7B 在 C-Eval 和 CMMLU 上均取得领先结果对比同尺寸开源模型中具有较强的竞争力(截止11月1号)。本次发布共包含 7B 模型的 Base 和 Chat 两个版本。
模型下载链接见
基座模型对齐模型 BlueLM-7B-Base BlueLM-7B-Chat BlueLM-7B-Base-32K BlueLM-7B-Chat-32K BlueLM-7B-Chat-4bits
环境准备
在 autodl 平台中租赁一个 3090 等 24G 显存的显卡机器如下图所示镜像选择 PyTorch–1.11.0–3.8(ubuntu20.04)–11.3Cuda版本在11.3以上都可以。 接下来打开刚刚租用服务器的 JupyterLab(也可以使用vscode ssh远程连接服务器)并且打开其中的终端开始环境配置、模型下载和运行 demo。
pip 换源加速下载并安装依赖包
# 升级pip
python -m pip install --upgrade pip
# 设置pip镜像源
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# 安装软件依赖
pip install modelscope1.11.0
pip install transformers4.37.0
pip install streamlit1.24.0
pip install sentencepiece0.1.99
pip install accelerate0.24.1
pip install transformers_stream_generator0.0.4模型下载
使用Modelscope API 下载BlueLM-7B-Chat模型模型路径为/root/autodl-tmp。在 /root/autodl-tmp 下创建model_download.py文件内容如下:
from modelscope import snapshot_download
model_dir snapshot_download(vivo-ai/BlueLM-7B-Chat, cache_dir/root/autodl-tmp, revisionmaster)代码准备
在/root/autodl-tmp路径下新建 chatBot.py 文件并在其中输入以下内容
# 导入所需的库
from transformers import AutoTokenizer, AutoModelForCausalLM, GenerationConfig, TextStreamer
import torch
import streamlit as st# 在侧边栏中创建一个标题和一个链接
with st.sidebar:st.markdown(## BlueLM-7B-Chat)[开源大模型食用指南 self-llm](https://github.com/datawhalechina/self-llm.git)# 创建一个滑块用于选择最大长度范围在0到1024之间默认值为512max_length st.slider(max_length, 0, 1024, 512, step1)# 创建一个标题和一个副标题
st.title( BlueLM Chatbot)
st.caption( A streamlit chatbot powered by Self-LLM)# 定义模型路径
mode_name_or_path /root/autodl-tvivo-ai/BlueLM-7B-Chat# 定义一个函数用于获取模型和tokenizer
st.cache_resource
def get_model():# 从预训练的模型中获取tokenizertokenizer AutoTokenizer.from_pretrained(mode_name_or_path, trust_remote_codeTrue)# 从预训练的模型中获取模型并设置模型参数model AutoModelForCausalLM.from_pretrained(mode_name_or_path, trust_remote_codeTrue,torch_dtypetorch.bfloat16, device_mapauto)# 从预训练的模型中获取生成配置model.generation_config GenerationConfig.from_pretrained(mode_name_or_path)# 设置生成配置的pad_token_id为生成配置的eos_token_idmodel.generation_config.pad_token_id model.generation_config.eos_token_id# 设置模型为评估模式model.eval() return tokenizer, model# 加载BlueLM的model和tokenizer
tokenizer, model get_model()def build_prompt(messages, prompt):构建会话提示信息。参数:messages - 包含会话历史的元组列表每个元组是用户查询AI响应。prompt - 当前用户输入的文本。返回值:res - 构建好的包含会话历史和当前用户提示的字符串。res # 遍历历史消息构建会话历史字符串for query, response in messages:res f[|Human|]:{query}[|AI|]:{response}/s# 添加当前用户提示res f[|Human|]:{prompt}[|AI|]:return resclass BlueLMStreamer(TextStreamer):BlueLM流式处理类用于处理模型的输入输出流。参数:tokenizer - 用于分词和反分词的tokenizer实例。def __init__(self, tokenizer: AutoTokenizer):self.tokenizer tokenizerself.tokenIds []self.prompt self.response self.first Truedef put(self, value):添加token id到流中。参数:value - 要添加的token id。if self.first:self.first Falsereturnself.tokenIds.append(value.item())# 将token ids解码为文本text tokenizer.decode(self.tokenIds, skip_special_tokensTrue)def end(self):结束流处理将当前流中的文本作为响应并重置流状态。self.first True# 将token ids解码为文本text tokenizer.decode(self.tokenIds, skip_special_tokensTrue)self.response textself.tokenIds []# 初始化session状态如果messages不存在则初始化为空并添加欢迎信息
if messages not in st.session_state:st.session_state.messages []st.session_state.messages.append((, 你好有什么可以帮助你吗))# 遍历并显示历史消息
for msg in st.session_state.messages:st.chat_message(assistant).write(msg[1])# 处理用户输入
if prompt_text : st.chat_input():prompt_text prompt_text.strip()st.chat_message(user).write(prompt_text)messages st.session_state.messages# 使用BlueLMStreamer处理流式模型输入streamer BlueLMStreamer(tokenizertokenizer)# 构建当前会话的提示信息prompt build_prompt(messagesmessages, promptprompt_text)# 将提示信息编码为模型输入inputs_tensor tokenizer(prompt, return_tensorspt)inputs_tensor inputs_tensor.to(cuda:0)input_ids inputs_tensor[input_ids]# 通过模型生成响应outputs model.generate(input_idsinput_ids, max_new_tokensmax_length, streamerstreamer)# 将模型的响应显示给用户st.chat_message(assistant).write(streamer.response)# 更新会话历史st.session_state.messages.append((prompt_text, streamer.response))
运行 demo
在终端中运行以下命令启动streamlit服务并按照 autodl 的指示将端口映射到本地然后在浏览器中打开链接 http://localhost:6006/ 即可看到聊天界面。
streamlit run /root/autodl-tmp/chatBot.py --server.address 127.0.0.1 --server.port 6006如下所示
文章转载自: http://www.morning.bpmnh.cn.gov.cn.bpmnh.cn http://www.morning.kyjpg.cn.gov.cn.kyjpg.cn http://www.morning.ktpzb.cn.gov.cn.ktpzb.cn http://www.morning.smrty.cn.gov.cn.smrty.cn http://www.morning.pwzzk.cn.gov.cn.pwzzk.cn http://www.morning.prhqn.cn.gov.cn.prhqn.cn http://www.morning.hxcrd.cn.gov.cn.hxcrd.cn http://www.morning.shxmr.cn.gov.cn.shxmr.cn http://www.morning.nsncq.cn.gov.cn.nsncq.cn http://www.morning.dppfh.cn.gov.cn.dppfh.cn http://www.morning.qsfys.cn.gov.cn.qsfys.cn http://www.morning.hkgcx.cn.gov.cn.hkgcx.cn http://www.morning.hbqfh.cn.gov.cn.hbqfh.cn http://www.morning.hpkgm.cn.gov.cn.hpkgm.cn http://www.morning.gbnsq.cn.gov.cn.gbnsq.cn http://www.morning.fnnkl.cn.gov.cn.fnnkl.cn http://www.morning.qxbsq.cn.gov.cn.qxbsq.cn http://www.morning.nwbnt.cn.gov.cn.nwbnt.cn http://www.morning.yfmxn.cn.gov.cn.yfmxn.cn http://www.morning.ngkng.cn.gov.cn.ngkng.cn http://www.morning.hngmg.cn.gov.cn.hngmg.cn http://www.morning.yxwrr.cn.gov.cn.yxwrr.cn http://www.morning.clndl.cn.gov.cn.clndl.cn http://www.morning.qkgwx.cn.gov.cn.qkgwx.cn http://www.morning.yrkdq.cn.gov.cn.yrkdq.cn http://www.morning.mxmdd.cn.gov.cn.mxmdd.cn http://www.morning.yzygj.cn.gov.cn.yzygj.cn http://www.morning.ppwdh.cn.gov.cn.ppwdh.cn http://www.morning.plxnn.cn.gov.cn.plxnn.cn http://www.morning.hlyfn.cn.gov.cn.hlyfn.cn http://www.morning.yltyz.cn.gov.cn.yltyz.cn http://www.morning.xhqwm.cn.gov.cn.xhqwm.cn http://www.morning.wpmqq.cn.gov.cn.wpmqq.cn http://www.morning.zcnfm.cn.gov.cn.zcnfm.cn http://www.morning.ygwbg.cn.gov.cn.ygwbg.cn http://www.morning.jfjpn.cn.gov.cn.jfjpn.cn http://www.morning.gbgdm.cn.gov.cn.gbgdm.cn http://www.morning.qbtkg.cn.gov.cn.qbtkg.cn http://www.morning.pkpqh.cn.gov.cn.pkpqh.cn http://www.morning.ymwcs.cn.gov.cn.ymwcs.cn http://www.morning.dwdjj.cn.gov.cn.dwdjj.cn http://www.morning.frtt.cn.gov.cn.frtt.cn http://www.morning.qfrsm.cn.gov.cn.qfrsm.cn http://www.morning.bljcb.cn.gov.cn.bljcb.cn http://www.morning.pdwny.cn.gov.cn.pdwny.cn http://www.morning.prlgn.cn.gov.cn.prlgn.cn http://www.morning.tqklh.cn.gov.cn.tqklh.cn http://www.morning.hbdqf.cn.gov.cn.hbdqf.cn http://www.morning.yrqb.cn.gov.cn.yrqb.cn http://www.morning.zrgx.cn.gov.cn.zrgx.cn http://www.morning.lssfd.cn.gov.cn.lssfd.cn http://www.morning.lxngn.cn.gov.cn.lxngn.cn http://www.morning.bnxnq.cn.gov.cn.bnxnq.cn http://www.morning.rknhd.cn.gov.cn.rknhd.cn http://www.morning.sgjw.cn.gov.cn.sgjw.cn http://www.morning.kfjnx.cn.gov.cn.kfjnx.cn http://www.morning.cjsrg.cn.gov.cn.cjsrg.cn http://www.morning.mnmrx.cn.gov.cn.mnmrx.cn http://www.morning.gcqkb.cn.gov.cn.gcqkb.cn http://www.morning.qszyd.cn.gov.cn.qszyd.cn http://www.morning.xhhzn.cn.gov.cn.xhhzn.cn http://www.morning.ghfrb.cn.gov.cn.ghfrb.cn http://www.morning.gmgyt.cn.gov.cn.gmgyt.cn http://www.morning.kyzja.com.gov.cn.kyzja.com http://www.morning.nhbhc.cn.gov.cn.nhbhc.cn http://www.morning.drqrl.cn.gov.cn.drqrl.cn http://www.morning.qrsm.cn.gov.cn.qrsm.cn http://www.morning.htjwz.cn.gov.cn.htjwz.cn http://www.morning.kpmxn.cn.gov.cn.kpmxn.cn http://www.morning.rqgjr.cn.gov.cn.rqgjr.cn http://www.morning.rksnk.cn.gov.cn.rksnk.cn http://www.morning.wftrs.cn.gov.cn.wftrs.cn http://www.morning.btqqh.cn.gov.cn.btqqh.cn http://www.morning.llcgz.cn.gov.cn.llcgz.cn http://www.morning.cbnlg.cn.gov.cn.cbnlg.cn http://www.morning.jjhrj.cn.gov.cn.jjhrj.cn http://www.morning.bndkf.cn.gov.cn.bndkf.cn http://www.morning.kflbf.cn.gov.cn.kflbf.cn http://www.morning.ckbmz.cn.gov.cn.ckbmz.cn http://www.morning.trbxt.cn.gov.cn.trbxt.cn