解决方案

MOSS模型量化版部署过程

seo靠我 2023-09-24 08:54:37

文章目录

项目背景配置环境与准备部署推理命令行部署报错1报错2: 网页版部署

项目背景

2023年4月21日,复旦大学自然语言处理实验室正式开放MOSS模型,是国内首个插件增强的开源对话大语言模型

。MOSSSEO靠我 相关代码、数据、模型参数已在 GitHub 和 Hugging Face 等平台开放,

项目地址:https://github.com/OpenLMLab/MOSS。

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

具体对应的模型版本如下:

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

mosSEO靠我s-moon-003-sft-int8: 8bit量化版本的moss-moon-003-sft模型,约占用24GB显存即可进行推理。

moss-moon-003-sft-plugin-int4: 4biSEO靠我t量化版本的moss-moon-003-sft-plugin模型,约占用12GB显存即可进行推理。

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

由于本次实验所使用的配置如下:

CPU&内存:28核(vCPU)112 GB

操作系统:Ubuntu_64

GPU:NVIDIA Tesla SEO靠我P100

显存:16G

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

配置环境与准备

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

git clone https://gSEO靠我ithub.com/OpenLMLab/MOSS.git cd MOSS

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

conda create --name moss pythSEO靠我on=3.8 conda activate moss

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

pip install -r requirements.txt

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

pip install triton

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

pip install gradio pip insSEO靠我tall mdtex2html

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

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

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

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

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

下载完成后,得到model_path为:/data/sim_chatgpt/SEO靠我moss-moon-003-sft-int4/models–fnlp–moss-moon-003-sft-int4/snapshots/4e33058483a36ade9067f7f25f3127cbSEO靠我95386b01

部署推理

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

命令行部署

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

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

报错1

ValueError:SEO靠我

/data/sim_chatgpt/moss-moon-003-sft-int4/models–fnlp–moss-moon-003-sft-int4/snapshots/4e33058483a36aSEO靠我de9067f7f25f3127cb95386b01

is not a folder containing a .index.json file.

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

# model = SEO靠我load_checkpoint_and_dispatch( # raw_model, model_path, device_map="auto", no_split_module_clSEO靠我asses=["MossBlock"], dtype=torch.float16 # ) model = MossForCausalLM.from_pretrainedSEO靠我(model_path, trust_remote_code=True).half().cuda()

报错2:

运行时报错,如下图所示:

python: /project/lib/Analysis/UtilSEO靠我ity.cpp:136: bool mlir::supportMMA(mlir::Value, int): Assertion `(version == 1 || version == 2) && “SEO靠我Unexpected MMA layout version found”’ failed.

遇到问题:https://github.com/OpenLMLab/MOSS/issues/149

issue中SEO靠我有人提到:

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

另外有人实测V100 32GB可以跑int4量化模型SEO靠我.

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

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

另外,需要注意SEO靠我需要修改两个地方:

1、修改model

2、修改model_path

运行

python moss_cli_demo.py

但我并没有尝试成功,一个原因在于,github链接中没有setup_env.py,只有SEO靠我setup.py,另一个原因是即使按照github链接中提供的安装方式,无法安装成功。

待更…

网页版部署

命令行版本成功后更新网页版部署

“SEO靠我”的新闻页面文章、图片、音频、视频等稿件均为自媒体人、第三方机构发布或转载。如稿件涉及版权等问题,请与 我们联系删除或处理,客服邮箱:html5sh@163.com,稿件内容仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同 其观点或证实其内容的真实性。

网站备案号:浙ICP备17034767号-2