MOSS模型量化版部署过程

这篇具有很好参考价值的文章主要介绍了MOSS模型量化版部署过程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

项目背景

2023年4月21日,复旦大学自然语言处理实验室正式开放MOSS模型,是国内首个插件增强的开源对话大语言模型。MOSS 相关代码、数据、模型参数已在 GitHub 和 Hugging Face 等平台开放,
项目地址:https://github.com/OpenLMLab/MOSS。

MOSS 对硬件要求还是较高,如果想本地部署的话,仍但需要非常大的开销。如果使用A100 或 A800 可以单卡运行,而使用NVIDIA 3090 只能并行多卡运行,GPU 显存至少需要 30GB。但如果想在消费级显卡上进行部署,就只能部署量化后的版本,如下图所示:
MOSS模型量化版部署过程
具体对应的模型版本如下:

moss-moon-003-sft-int4: 4bit量化版本的moss-moon-003-sft模型,约占用12GB显存即可进行推理。
moss-moon-003-sft-int8: 8bit量化版本的moss-moon-003-sft模型,约占用24GB显存即可进行推理。
moss-moon-003-sft-plugin-int4: 4bit量化版本的moss-moon-003-sft-plugin模型,约占用12GB显存即可进行推理。
moss-moon-003-sft-plugin-int8: 8bit量化版本的moss-moon-003-sft-plugin模型,约占用24GB显存即可进行推理。

由于本次实验所使用的配置如下:
CPU&内存:28核(vCPU)112 GB
操作系统:Ubuntu_64
GPU:NVIDIA Tesla P100
显存:16G

故选择 moss-moon-003-sft-int4 模型进行部署实验。

配置环境与准备

1、登录服务器,下载本仓库内容至服务器,进入MOSS目录

git clone https://github.com/OpenLMLab/MOSS.git
cd MOSS

2、创建python3.8版本的conda环境,并进入

conda create --name moss python=3.8
conda activate moss

3、根据 requirements.txt 安装环境依赖

pip install -r requirements.txt

4、安装使用量化模型所需的包(4/8-bit)

pip install triton

5、安装gradio,以便可以使用基于Gradio的网页demo

pip install gradio
pip install mdtex2html

其中,mdtex2html 是因为运行时有报错缺少此包,故这里可以提前装好。

6、下载模型文件,这里直接从huggingface上下载到服务器

# 安装 huggingface_hub
pip install huggingface_hub
# 进入模型文件的指定位置
cd /data/sim_chatgpt/

然后使用下面代码,将模型文件安装到指定位置

from huggingface_hub import snapshot_download
snapshot_download(repo_id="fnlp/moss-moon-003-sft-int4", cache_dir="./moss-moon-003-sft-int4")

下载完成后,得到model_path为:/data/sim_chatgpt/moss-moon-003-sft-int4/models–fnlp–moss-moon-003-sft-int4/snapshots/4e33058483a36ade9067f7f25f3127cb95386b01

部署推理

这里有两种方式,一种是命令行,在服务器上直接运行;一种是网页版,可以通过链接在浏览器访问。

命令行部署

这里我们要运行 moss_cli_demo.py 文件,在运行前需要修改model_path,如下:

parser.add_argument("--model_name", default="/data/sim_chatgpt/moss-moon-003-sft-int4/models--fnlp--moss-moon-003-sft-int4/snapshots/4e33058483a36ade9067f7f25f3127cb95386b01"

报错1

ValueError:
/data/sim_chatgpt/moss-moon-003-sft-int4/models–fnlp–moss-moon-003-sft-int4/snapshots/4e33058483a36ade9067f7f25f3127cb95386b01
is not a folder containing a .index.json file.

解决办法
将下面代码进行替换(注释掉)

# model = load_checkpoint_and_dispatch(
#     raw_model, model_path, device_map="auto", no_split_module_classes=["MossBlock"], dtype=torch.float16
# )
model = MossForCausalLM.from_pretrained(model_path, trust_remote_code=True).half().cuda()

报错2:

运行时报错,如下图所示:
MOSS模型量化版部署过程
python: /project/lib/Analysis/Utility.cpp:136: bool mlir::supportMMA(mlir::Value, int): Assertion `(version == 1 || version == 2) && “Unexpected MMA layout version found”’ failed.
遇到问题:https://github.com/OpenLMLab/MOSS/issues/149

issue中有人提到:

  • 算力小于70的显卡都不支持Float8 and Float16,P100 P40算力版本都是60+所以暂时只能使用Float32,但是显存又不够。NVDIA V100 NVIDIA TITAN V及其以上显卡可以支持。
  • triton官网说对fp16量化模型支持不完善, p100/40等老显卡都会报如上的错. 需要等他们写入更多老显卡支持。
    另外有人实测V100 32GB可以跑int4量化模型.

解决方法如下
将triton换成auto-gptq,这样就绕过了triton验证.

git clone https://github.com/PanQiWei/AutoGPTQ
conda create -n moss python==3.10
cd MOSS
python setup_env.py --install_auto_gptq

另外,需要注意需要修改两个地方:
1、修改model
2、修改model_path

运行

python moss_cli_demo.py

但我并没有尝试成功,一个原因在于,github链接中没有setup_env.py,只有setup.py,另一个原因是即使按照github链接中提供的安装方式,无法安装成功。
MOSS模型量化版部署过程
由于以上问题并没有得到解决,故决定换一台GPU进行尝试(不在一棵树上吊死)。
尝试使用可以免费试用的阿里云GPU(用的V100,支持资源包抵扣)服务器来部署。

使用免费试用的阿里云GPU部署

1、打开网址:https://free.aliyun.com/,并进行登录;
2、左侧产品类别中选中机器学习平台API后,选择 5000CU*H 3个月,并点击免费试用:
MOSS模型量化版部署过程
3、点击后,选择个人认证,继续认证成功即可:
MOSS模型量化版部署过程
4、开通机器学习PAI并创建默认工作空间
MOSS模型量化版部署过程
MOSS模型量化版部署过程
MOSS模型量化版部署过程
5、创建DSW实例,并选择V100,选择官方镜像
MOSS模型量化版部署过程
MOSS模型量化版部署过程
选择官方镜像:
pytorch:1.12-gpu-py39-cu113-ubuntu20.04
MOSS模型量化版部署过程

6、等待启动
MOSS模型量化版部署过程
但无奈一直启动失败…(后面考虑换个时间再试试)
MOSS模型量化版部署过程
后过了两三个小时后,可以重启成功了(所以不要放弃,哈哈),点击打开进入。
MOSS模型量化版部署过程
选中Terminal
MOSS模型量化版部署过程
先用git clone命令下载MOSS项目

git clone https://github.com/OpenLMLab/MOSS.git

MOSS模型量化版部署过程
进入MOSS目录,并安装所需要的包

cd MOSS
pip install -r requirements.txt

MOSS模型量化版部署过程
先试下torch是否可用(因为配置机器的时候选的是1.12的torch)
MOSS模型量化版部署过程
torch报错,可以用pyotrch官网命令重新安装下torch

pip install torch==1.13.1+cu116 torchvision==0.14.1+cu116 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu116

再来看下torch是否可用
MOSS模型量化版部署过程
将默认加载的模型设置为moss-moon-003-sft-int8

vi moss_cli_demo.py
# 修改第第16行 default = 'fnlp/moss-moon-003-sft-int8'

运行moss_cli_demo.py文件

python moss_cli_demo.py

由于我们没有提前下载好要加载的模型,运行代码后会自动下载指定的模型。
MOSS模型量化版部署过程
下载模型速度还是很快的,大概半小时左右。
但运行的时候,没办法运行成功(也没有报错,加载数据后就没后续了),大概率是显存不够的原因,这里的显存只有16G,故又讲model_name改回原来的 ‘fnlp/moss-moon-003-sft-int4’,
执行python moss_cli_demo.py命令。
MOSS模型量化版部署过程
就可以和MOSS进行对话了
MOSS模型量化版部署过程
推理的速度还是比较慢的,感觉用了1分钟左右才输出答案。

GPU使用率及显存占用情况如下:
MOSS模型量化版部署过程
可以看出基本上占了14个G左右了,随着对话的增多,显存还会继续增加。

在AutoDL平台上部署

地址:https://www.autodl.com/home
租一台32G显存的V100
MOSS模型量化版部署过程
版本配置如下:
MOSS模型量化版部署过程
选好后,点击立即创建。
MOSS模型量化版部署过程
MOSS模型量化版部署过程

使用提供的ssh账号和密码进行登录。
MOSS模型量化版部署过程
进入conda环境

source activate

安装git-lfs:https://www.cnblogs.com/allmignt/p/12353756.html

下载本仓库内容至本地/远程服务器

git clone https://github.com/OpenLMLab/MOSS.git 

进入MOSS,安装所需的包

cd MOSS
pip install -r requirements.txt 

因为模型文件比较大,故需要将模型文件下载到数据盘中,以免造成数据盘内存溢出。

# 进入数据盘
cd /root/autodl-tmp/
git clone https://huggingface.co/fnlp/moss-moon-003-sft-int8.git

修改模型文件加载路径

model_path = '/root/autodl-tmp/moss-moon-003-sft-int8'

运行 python moss_cli_demo.py即可。
MOSS模型量化版部署过程文章来源地址https://www.toymoban.com/news/detail-458378.html

到了这里,关于MOSS模型量化版部署过程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Llama2通过llama.cpp模型量化 Windows&Linux本地部署

    LLaMA ,它是一组基础语言模型,参数范围从7B到65B。在数万亿的tokens上训练的模型,并表明可以专门使用公开可用的数据集来训练最先进的模型,而无需求助于专有和不可访问的数据集。特别是, LLaMA-13B在大多数基准测试中都优于GPT-3(175B) ,并且LLaMA65B与最好的型号Chinch

    2024年02月05日
    浏览(59)
  • 【通义千问】大模型Qwen GitHub开源工程学习笔记(4)-- 模型的量化与离线部署

    量化方案基于AutoGPTQ,提供了Int4量化模型,其中包括Qwen-7B-Chat和Qwen-14B-Chat。更新承诺在模型评估效果几乎没有损失的情况下,降低存储要求并提高推理速度。量化是指将模型权重和激活的精度降低以节省存储空间并提高推理速度的过程。AutoGPTQ是一种专有量化工具。Int4是指

    2024年02月08日
    浏览(48)
  • 第八章:AI大模型的部署与优化8.1 模型压缩与加速8.1.2 量化与剪枝

    作者:禅与计算机程序设计艺术 8.1.1 背景介绍 随着深度学习技术的不断发展,人工智能模型的规模越来越庞大。然而,这也带来了新的问题:大模型需要更多的计算资源和存储空间,同时在移动设备上运行效率较低。因此,模型压缩与加速成为了当前研究的热点。 8.1.2 核心

    2024年03月08日
    浏览(49)
  • LLMs 蒸馏, 量化精度, 剪枝 模型优化以用于部署 Model optimizations for deployment

    现在,您已经了解了如何调整和对齐大型语言模型以适应您的任务,让我们讨论一下将模型集成到应用程序中需要考虑的事项。 在这个阶段有许多重要的问题需要问。第一组问题与您的LLM在部署中的功能有关。您需要模型生成完成的速度有多快?您有多少计算预算可用?您是

    2024年02月07日
    浏览(53)
  • 苹果AppleMacOs系统Sonoma本地部署无内容审查(NSFW)大语言量化模型Causallm

    最近Mac系统在运行大语言模型(LLMs)方面的性能已经得到了显著提升,尤其是随着苹果M系列芯片的不断迭代,本次我们在最新的MacOs系统Sonoma中本地部署无内容审查大语言量化模型Causallm。 这里推荐使用koboldcpp项目,它是由c++编写的kobold项目,而MacOS又是典型的Unix操作系统,

    2024年03月09日
    浏览(41)
  • 《书生·浦语大模型全链路开源开放体系》笔记第五课 LMDeploy 的量化和部署

    首先我们可以使用  vgpu-smi  查看显卡资源使用情况。 可以点击终端(TERMINAL)窗口右侧的「+」号创建新的终端窗口。大家可以新开一个窗口,执行下面的命令实时观察 GPU 资源的使用情况。 结果如下图所示,该窗口会实时检测 GPU 卡的使用情况。 接下来我们切换到刚刚的终

    2024年01月21日
    浏览(53)
  • 《书生·浦语大模型全链路开源开放体系》第五课作业 LMDeploy 的量化和部署

    使用 LMDeploy 以本地对话、网页Gradio、API服务中的一种方式部署 InternLM-Chat-7B 模型,生成 300 字的小故事(需截图) 这一部分主要涉及本地推理和部署。我们先看一张图。 我们把从架构上把整个服务流程分成下面几个模块。 模型推理/服务。主要提供模型本身的推理,一般来说

    2024年03月09日
    浏览(57)
  • llama.cpp一种在本地CPU上部署的量化模型(超低配推理llama)

    前不久,Meta前脚发布完开源大语言模型LLaMA, 随后就被网友“泄漏”,直接放了一个磁力链接下载链接。 然而那些手头没有顶级显卡的朋友们,就只能看看而已了 但是 Georgi Gerganov 开源了一个项目llama.cpp ggerganov/llama.cpp: Port of Facebook’s LLaMA model in C/C++ (github.com) 次项目的牛逼

    2023年04月23日
    浏览(47)
  • 2023初学者如何玩转玩转PyTorch?《21个项目玩转PyTorch实战》

    通过经典项目入门 PyTorch,通过前沿项目提升 PyTorch,基于PyTorch玩转深度学习,本书适合人工智能、机器学习、深度学习方面的人员阅读,也适合其他 IT 方面从业者,另外,还可以作为相关专业的教材。 京东自营购买链接:https://item.jd.com/13522327.html PyTorch 是基于 Torch 库的开

    2024年02月06日
    浏览(50)
  • 类ChatGPT的部署与微调(下):从ChatGLM、MOSS到ChatDoctor、可商用

    随着『GPT4多模态/Microsoft 365 Copilot/Github Copilot X/ChatGPT插件』的推出,绝大部分公司的技术 产品 服务,以及绝大部分人的工作都将被革新一遍 类似iPhone的诞生 大家面向iOS编程 有了App Store 现在有了ChatGPT插件/GPT应用商店,以后很多公司 很多人面向GPT编程(很快技术人员

    2024年02月01日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包