大家好,注册张大妈很久了,但是一直潜水,白嫖了大佬们无数作业。
今年以来人工智能很火,本菜鸟也给
NAS
加了魔改2080ti 22G,尝试了在unraid上部署了stable diffusion和text generation WebUI。
stable diffusion WebUI大家已经很熟悉了。text generation WebUI则是LLM(大语言模型)领域的"stable diffusion WebUI",可以很方便的运行各种开源大语言模型,比如chatGLM2,Llama2等等。windows和linux平台下已经有不少大佬开发了一键启动器,unraid也可以通过虚拟机来运行,但我更喜欢以docker化的方式来部署,这样硬件占用小,也更加灵活,并且可以通过异地组网或
dd
ns的方式远程访问一个完全私有且本地化部署的“GPT”!它还支持各种api和插件,来实现不同功能,比如搭配long-chain和闻达知识库来搭建个人智能知识库,搭配sider来搭建个人AI助理,等等!
stable diffusion在unraid上的部署已经有不少大佬写了教程,text generation WebUI目前在中文互联网似乎没看到unraid下的部署教程。
于是简单记录一下自己在unraid系统下通过docker部署text generation WebUI的过程,算是对众位大佬和unraid用户的一点微小回馈。文笔不是很好,所有也就不BB了,咱们直接上干货。
(以下部署需要magic加持,如果是使用国内源的朋友,请按自己设置的源进行操作。)
(该镜像有
CPU
分支,但本篇作业基于N卡,如果是希望基于CPU部署的朋友可以参考作者的github项目主页说明自行摸索)
(请提前安装nvidia driver、nvidia-smi)
dock镜像:atinoda/text-generation-webui:default
dockhub排行第一的镜像就是,注意作者推荐的tag是default(还有个default-nightly,这个类似于开发版或者尝鲜版)
点击安装,在弹出的对话框选择“是”
然后经过一段时间的耐心等待,镜像下载完毕,进入docker部署。
以下是抄作业环节:
额外参数: --runtime=nvidia
unraid自动CA化后只有3个端口选项,默认是5000、5005、7860,分别对应API、Steaming以及最重要的WebUI端口。这几个可以不需要动。
接下来新建选项(划重点:可以抄作业了!!):
1、新建PUID,PGID(可选,个人习惯,不喜欢也可以不建这两项)
uid,gid可以在这里看:
输入“id 用户名” 来查看用户名对应的uid,gid。
2、新建变量NVIDIA_VISIBLE_DEVICES(镜像运行环境其实自带了这个变量,默认为all,即允许调用任意nvidia GPU。这里把它独立出来是因为本菜鸟上了两张2080ti,方便指定硬件。)
3、最关键的一步!!新建变量EXTRA_LAUNCH_ARGS,最少填入--listen,否则无法访问WebUI!!
其他可选项如图,关于这些选项的详细解释,可以参阅这篇博客:http://blog.csdn.net/zhongguobaozi/article/details/132022904。在此感谢原作者!
5、剩下的就是新建各项目录映射,容器路径不可更改,
主机
路径则对应到你需要映射的目录。例如:
/app/characters - /mnt/user/appdata/text-generation-webui-docker/characters/
需要映射的目录容器路径(名称随意,你也可以抄作业):
/app/charaters
/app/loras
/app/models
/app/presets
/app/prompts
/app/training
/app/extensions
最后点击应用进行部署。
部署后查看日志,发现有报错-“文件夹不存在”:
到主机目录下找到training文件夹,在下面建两个子文件夹:
搞定,这下没有报错了!
将下载的LLM放入主机目录下的models文件夹内
打开WEBUI,点上方'Model',刷新模型列表,选择LLM模型,调整载入选项,点‘Load’,载入模型。
VRAM拉满,选择4bit量化还是8bit量化。量化bit越低,显存需求越小,运行速度越快,但精度也越低。反之则显存需求越大,速度越慢,但模型精度越高,模型回答的质量也越高。
看到这个就代表模型载入成功了
接下来点击左上角‘Chat’返回对话界面,看看会发生什么?
哈哈,搞定!
PS:
关于text generation WebUI的使用方法和设置细节,可以参考上面那篇博客和以下这位B站up主(B站ID:
热爱生活的小鲍
)的视频: