01
chatglm3-6b 简介
chatglm3 是智谱 ai 和清华大学 keg 实验室联合发布的新一代对话预训练模型。chatglm3-6b 是 chatglm3 系列中的开源模型,在填写问卷进行登记后亦允许免费商业使用。
问卷:
引用自:https://github.com/thudm/chatglm3
请使用命令,将 chatglm3-6b 模型下载到本地 (例如,保存到 d 盘) :
git clone https://www.modelscope.cn/zhipuai/chatglm3-6b.git
左滑查看更多
02
bigdl-llm 简介
bigdl-llm 是开源,遵循 apache 2.0许可证,专门用于在英特尔的硬件平台上加速大语言模型(large language model, llm)推理计算的软件工具包。它是在原有的 bigdl 框架基础上,为了应对大语言模型在推理过程中对性能和资源的高要求而设计的。bigdl-llm 旨在通过优化和硬件加速技术来提高大语言模型的运行效率,减少推理延迟,并降低资源消耗。
本文将详细介绍基于 bigdl-llm 在英特尔独立显卡上量化和部署 chatglm3-6b 模型。
03
部署平台简介:
算力魔方是一款可以 diy 的迷你主机,采用了抽屉式设计,后续组装、升级、维护只需要拔插模块。
通过选择计算模块的版本,再搭配不同额 io 模块可以组成丰富的配置,适应不同场景。性能不够时,可以升级计算模块提升算力, io 接口不匹配时,可以更换 io 模块调整功能,而无需重构整个系统。本文在带有 a380独立显卡的算力模方上完成验证。
04
在英特尔独立显卡上部署 chatglm3-6b
4.1
搭建开发环境
第一步:请下载并安装 visual studio 2022 community edition。安装时务必选择“使用 c++的桌面开发”。注意:不要修改默认安装路径!
下载链接:
第二步:请下载并安装英特尔独立显卡驱动程序。
下载链接:
https://www.intel.cn/content/www/cn/zh/download/785597/intel-arc-iris-xe-graphics-windows.html
第三步:请下载并安装 intel oneapi base toolkit。
下载链接:
https://www.intel.com/content/www/us/en/developer/tools/oneapi/base-toolkit-download.html
第四步:请下载并安装 anaconda,然后用下面的命令创建名为“bigdl”的虚拟环境。
conda create -n bigdl python=3.9 libuvconda activate bigdl
4.2
安装 bigdl-llm[xpu]
第一步:用下载器 (例如:迅雷) 下载*.whl 安装包到本地。
下载链接:
https://intel-extension-for-pytorch.s3.amazonaws.com/ipex_stable/xpu/torch-2.1.0a0%2bcxx11.abi-cp39-cp39-win_amd64.whl
https://intel-extension-for-pytorch.s3.amazonaws.com/ipex_stable/xpu/torchvision-0.16.0a0%2bcxx11.abi-cp39-cp39-win_amd64.whl
https://intel-extension-for-pytorch.s3.amazonaws.com/ipex_stable/xpu/intel_extension_for_pytorch-2.1.10%2bxpu-cp39-cp39-win_amd64.whl
第二步:执行命令:
# 从本地安装已下载的.whl安装包pip install torch-2.1.0a0+cxx11.abi-cp39-cp39-win_amd64.whlpip install torchvision-0.16.0a0+cxx11.abi-cp39-cp39-win_amd64.whlpip install intel_extension_for_pytorch-2.1.10+xpu-cp39-cp39-win_amd64.whl# 安装支持英特尔显卡的bigdl-llmpip install --pre --upgrade bigdl-llm[xpu] -i https://mirrors.aliyun.com/pypi/simple/
左滑查看更多
详情参考:
https://bigdl.readthedocs.io/en/latest/doc/llm/overview/install_gpu.html
4.3
第三步:运行范例程序
首先:执行命令,配置环境变量:
conda activate bigdlcall c:program files (x86)inteloneapisetvars.batset sycl_cache_persistent=1set bigdl_llm_xmx_disabled=1
左滑查看更多
若系统中有集成显卡,请执行下面的命令,保证英特尔独立显卡是“xpu”指代的计算设备,
详情参考:
https://github.com/intel-analytics/bigdl/issues/9768
set oneapi_device_selector=level_zero:1
左滑查看更多
然后,请下载范例程序并运行:
https://gitee.com/pauntech/chat-glm3/blob/master/chatglm3_infer_gpu.py
import timefrom bigdl.llm.transformers import automodelfrom transformers import autotokenizerimport intel_extension_for_pytorch as ipeximport torchchatglm_v3_prompt_format = {prompt}# 请指定chatglm3-6b的本地路径model_path = d:/chatglm3-6b# 载入chatglm3-6b模型并实现int4量化model = automodel.from_pretrained(model_path, load_in_4bit=true, trust_remote_code=true)# run the optimized model on intel gpumodel = model.to('xpu')# 载入tokenizertokenizer = autotokenizer.from_pretrained(model_path, trust_remote_code=true)# 制作chatglm3格式提示词 prompt = chatglm_v3_prompt_format.format(prompt=what is intel?)# 对提示词编码input_ids = tokenizer.encode(prompt, return_tensors=pt)input_ids = input_ids.to('xpu')st = time.time()# 执行推理计算,生成tokensoutput = model.generate(input_ids,max_new_tokens=32)end = time.time()# 对生成tokens解码并显示output_str = tokenizer.decode(output[0], skip_special_tokens=true)print(f'inference time: {end-st} s')print('-'*20, 'prompt', '-'*20)print(prompt)print('-'*20, 'output', '-'*20)print(output_str)
运行结果,如下所示:
4.4
运行 chatglm3-6b webui demo
首先,请先安装依赖软件包:
pip install gradio mdtex2html streamlit -i https://mirrors.aliyun.com/pypi/simple/
然后,运行命令,配置环境变量:
conda activate bigdlcall c:program files (x86)inteloneapisetvars.batset sycl_cache_persistent=1set bigdl_llm_xmx_disabled=1
若系统中有集成显卡,请执行下面的命令,保证英特尔独立显卡是“xpu”指代的计算设备。
详情参考:
https://github.com/intel-analytics/bigdl/issues/9768
set oneapi_device_selector=level_zero:1
最后,请下载范例程序:
https://gitee.com/pauntech/chat-glm3/blob/master/chatglm3_web_demo_gpu.py
并运行:
streamlit run chatglm3_web_demo_gpu.py
左滑查看更多
运行结果如下:
05
总结
bigdl-llm 工具包简单易用,仅需三步即可完成开发环境搭建、bigdl-llm[xpu]安装以及 chatglm3-6b 模型的 int4量化以及在英特尔独立显卡上的部署。
公话网智能家居系统设计方案
微型直线导轨具备哪些性能及特点?
华为nova8系列正式发布,将重新定义Vlog手机
基于区块链技术而推出的智能手机Acute angle介绍
D类放大器设计时的散热问题
三步完成在英特尔独立显卡上量化和部署ChatGLM3-6B模型
英伟达RTX3080开售秒无 黄牛2倍价格转手
运营商补贴将刺激3G市场,2010年中国3G手机出货量预增五
贴片电感和贴片磁珠的区别
小米MIX和荣耀Magic对比评测:定位相同思路不同 谁会棋高一招?
边缘计算需要知道哪一些东西
真菌毒素检测仪的用途及性能
量子通讯争议,都在争些什么?
中科大携手华为在人工智能领域开启战略合作
英特尔发布第九代Core新品 搭载英特尔全新处理器
美国禁售华为背后的主谋疑是特朗普
3D打印技术与手机指纹扫描仪的火花
IFA:手机家电缺亮点 智能手表成新宠
华为荣耀8青春版和荣耀V9即将一起发布 荣耀8青春版配置揭晓
分布式能源微网控制保护和能量管理解决方案