最近大模型风起云涌,可以说这是碳基生命灭亡的元年。大家都在搞自己的大模型,我也在阿里云,腾讯云分别部署了moss,羊驼,chat-glm等大模型测试训练,可是这些都很费钱。今天想着自己的笔记本能不能搞一个,网上很多都是基于英伟达显卡的,可是我的电脑没有独立显卡,难道就与自己的大模型无缘了?
功夫不负有心人,最近在github搜索,发现了一个可以在没有独立显卡笔记本上部署的开源项目JittorLLMs。具体位置:GitHub - Jittor/JittorLLMs: 计图大模型推理库,具有高性能、配置要求低、中文支持好、可移植等特点。项目介绍的还是很好的。大模型推理库JittorLLMs有以下几个特点:1)成本低:相比同类框架,本库可大幅降低硬件配置要求(减少80%),没有显卡,2G内存就能跑大模型,人人皆可在普通机器上,实现大模型本地部署;是目前已知的部署成本最低的大模型库;2)支持广:目前支持了4种大模型:ChatGLM大模型;鹏程盘古大模型;BlinkDL的ChatRWKV;国外Meta的LLaMA大模型;后续还将支持MOSS等国内优秀的大模型,统一运行环境配置,降低大模型用户的使用门槛。3)可移植:用户不需要修改任何代码,只需要安装Jittor版torch(JTorch),即可实现模型的迁移,以便于适配各类异构计算设备和环境。4)速度快:大模型加载速度慢,Jittor框架通过零拷贝技术,大模型加载开销降低40%,同时,通过元算子自动编译优化,计算性能相比同类框架提升20%以上。 既然说的如此好,那就来试试。 原文写的很简单git clone GitLink | 确实开源 --depth 1加python web_demo.py chatglm 就能启动。可是大家都知道,开源项目本地复制坑一定是多多的。下面记录我的复刻过程:
anaconda-project 0.10.1 requires ruamel-yaml, which is not installed.
conda-repo-cli 1.0.4 requires pathlib, which is not installed.
daal4py 2021.3.0 requires daal==2021.2.3, which is not installed.
spyder 5.1.5 requires pyqt5<5.13, which is not installed. pyqt5=5.12.1
spyder 5.1.5 requires pyqtwebengine<5.13, which is not installed.
numba 0.54.1 requires numpy<1.21,>=1.17, but you have numpy 1.24.3 which is incompatible.--numpy1.19.5
pyppeteer 0.2.6 requires urllib3<2.0.0,>=1.25.8, but you have urllib3 2.0.2 which is incompatible.---urllib3 1.26.13
scipy 1.7.1 requires numpy<1.23.0,>=1.16.5, but you have numpy 1.24.3 which is incompatible.numpy1.19.5
torchaudio 0.11.0 requires torch==1.11.0, but you have torch 2.0.0 which is incompatible.
.,这种也是大家安装python库一定会遇到的问题。根据以上提示。pip install ruamel-yaml,pathlib,daal==2021.2.3.安装daal时会遇到tbb的错误。到Anaconda3\Lib\site-packages`,然后删除所有与这个包相关的文件和文件夹,再次更新即可成功。接着安装PyQt5==5.12.3,numpy1.19.5,urllib3 1.26.13 ,torch==1.11.0。unistall numpy 1.24.3 , urllib3 2.0.2,torch 2.0.0.然后再继续安装numba 0.54.1,pyppeteer 0.2.6 ,scipy 1.7.1,torchaudio 0.11.0, gradio。按照以上顺序与版本安装,基本就不会报错了。
4)python web_demo.py chatglm 首先会下载模型。下载过程中会报osserror,这个把缓存中的模型文件(bin文件),复制到models/chatglm/目录下即可。
5)下载完模型以后,程序还会报缺少各模型自己的依赖。这个时候可以python -m pip install -r models/chatglm/requirements.txt -i Simple Index,执行完成后,程序正常启动
6)本地启动以后,如果要用127.0.0.1访问。调整web_demo.py的demo.queue().launch(share=False, inbrowser=False, server_port=51234, server_name="127.0.0.1")。最后启动成功,花了3个小时,终于复刻成功。不过笔记本效率还是不行,回答问题反应慢。有兴趣的可以试试。56g内存的台式机比较好。