当前位置:   article > 正文

本地部署知识库——大模型框架xinference的本地架设_xinference 本地模型

xinference 本地模型

本地部署知识库——大模型框架xinference的本地架设


前言

断断续续也研究了1个来月了,期间还遭遇了docker被ban的惨剧,导致我一个新手要开始学习这种繁琐的本地开发步骤,目前还未感受到这样做的优点,但是看很多技术大佬都是这样做的,相信有它的道理吧。
这一系列陆续会涉及以下内容:
1.大模型框架xinference的本地架设
2.知识库管理软件fastgpt、dify、maxkb、langchain chatchat、ragflow的架设和使用
3.各类大模型的尝试(主要是笔记本性能有限,只能不断尝试最适合自己的)
4.其它辅助类工具如embedding、reranker的调试使用


一、为什么使用xinference

最早使用的是ollama,也是图个简单方便,当时对大模型的参数是什么概念没有太多了解,所以下载了14b的模型压根跑不起来,但是太小的如1.5b的效果确实不太好。

后来在学习的过程中关注到一位做企业RAG产品的技术经理,他在知乎上分享自己的经验心得,提到了他们用的最多的是清华的Chatglm3-6b,我的机器也就是个3060 6g内存的游戏本,所以打算试一试这个模型。

从网上找了很多安装Chatglm3-6b的教程,对我来说都太复杂了,现阶段的我只想找一个能一键安装的才好~~~

后来无奈之下,了解到了xinference中可以直接安装Chatglm3-6b。其实,之前也尝试过安装xinference,但是安装好后界面有了,却无法下载选择的大模型,不知道是网络的原因还是根本没有安装成功,放弃后继续使用了ollama+fastgpt的组合。

这次过程也是历经坎坷,最主要的是docker部署的方式没有成功,不得不采用本地开发的模式(是这样说吧),记下来为下次再走同样的路省点事吧。

过程中参照学习了很多人的文章、经验,我会把他们的文章链接放到下面,感谢各位大佬了!

二、安装步骤

写在前面

这一路折腾下来终于算是成功了,有很多需要总结的地方,有些问题在解决的过程中就逐渐淡忘了,这一段是下面所有工作做完之后的总结,有一些我在下面每一步当中也提到过了,写在前面主要是为了让大家提前做好工作,避免和我踩一样的坑。
1.采用的环境
因为日常办公的需要,windows系统是不可或缺的,根据不断摸索,我是在windows下的WSL下完成的,原谅我还不知道怎么具体解释WSL这个东西是个啥,我是在安装docker的过程中根据别人的建议装了这么一个东西,应该是虚拟内存的一个什么东西吧。
2.一些前置工作
整体上来还是根据https://zhuanlan.zhihu.com/p/690702664中的作者所提议的,首先安装好Visual Studio安装套件和anaconda。

然后在WSL命令行窗口进行各种命令输入的时候,主要是pip命令,会发现下载速度很慢,经查pip下载速度过慢的原因就是 pip 默认使用的是国外的源,那么我们只要把国外的源换成国内的,下载速度就可以提升很多了,使用以下命令:

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip config set install.trusted-host mirrors.aliyun.com
  • 1
  • 2

这样就可以使用国内源了,下载速度一下子就起飞了。

1.偷懒用docker部署失败

首先从fastgpt的文档中去看了看如何安装xinference
https://doc.fastgpt.in/docs/development/custom-models/xinference/

我发现哎,计算机这个行业的门槛真的是高,可能写文档的人认为大家的水平已经到了一个档次了,所以不需要太过于废话,但是对于初学者来说,真的是处处懵逼。

比如,文档中把xinference的安装分为服务器安装和个人设备安装两大类,其中服务器安装提到了docker部署的方法,可是哎个人设备安装那里却没有提,所以我就纳闷啊,个人设备是能不能按呢?那我只能试一下了。。。

命令非常简单哈

docker run  -p 9997:9997 --gpus all xprobe/xinference:latest xinference-local -H 0.0.0.0
  • 1

但是吧,docker最近不是被ban了嘛,镜像死活pull不过来,我魔法后一开始能pull动,还剩几个文件的时候又卡住不动了,没办法我又去找怎么解决这个问题。。。
就这一来一回,一下午没了。

好在最后通过在docker设置里加入第三方镜像地址的方法,解决了这个问题,期间就看见好几个上G的大文件,我现在已经把C盘敞开了用了,各种乱七八糟的东西因为现在自己还不了解具体怎么回事,只能按默认的路径来。

最后,终于装完了,但是docker里那个xinference的容器却无法启动!我手动启动,只见它闪一下,就又自动停了,我真的是理解不能啊。。。网上查了查资料还是无法解决,最终走上了这条路。

2.windows之殇

其实在写这篇文章的过程中,我的xinference还依旧在安装的过程之中,知乎上一位大佬的经验文章给了我很大的帮助,贴在下面:
https://zhuanlan.zhihu.com/p/690702664
他把自己踩得坑已经列出来了,但是,可能跟每个人的机器、环境等各种因素有关吧,我也有我的坑,目前最大的坑,就是windows系统真的不适合折腾。。。

当我按照上面这个大佬的教程一步步完成之后,当然也不算一步步完成, 因为过程中还是有其他报错,最关键的就是在执行pip install "xinference[all]"这一句时,有几个包没有安装成功,具体错误如下

ERROR: Could not build wheels for chatglm-cpp, pynini, which is required to install pyproject.toml-based projects
  • 1

哦对了,这期间我还在各个命令行窗口间反复横跳了好几次,因为我不懂“都是输入命令,为啥要切换不同的命令行窗口呢?”,在我一开始的认知里,windows自带的CMD就是一切命令的归宿。

这期间,kimi给了莫大的帮助,很多这种基础入门知识都通过问他问题得到了解答。

所以在根据上面大佬的提示安装完anaconda后,在kimi的提示下,我才打开了 anaconda prompt这个命令行窗口,在CMD中一些报错的命令,终于可以走起来了。

但是吧,无论如何,最终还是有一个pynini 包无法安装完成,报错信息我也看不懂,kimi的解释我也只能勉强看懂,但无法解决。

后来又将pip install “xinference[all]”(这个命令是把所有的推理后端引擎全部安装的意思),换成了pip install “xinference[transformers,vllm]”(这两类应该是比较常见的),但依然报错,在kimi的解读下,我感觉跟系统环境有点关系,所以还是切换到了WSL下,当然我不知道我的表述是否正确,通俗、直白、简单的说就是:
我从windows下的anaconda prompt命令行窗口
来到了windows下的WSL的linux shell窗口(在搜索框搜索wsl会出现一个应用,点击打开就出现了一个命令行窗口)

3.迈向成功

好,现在一切操作都是基于windows下的WSL的linux shell窗口了。

再次按照https://zhuanlan.zhihu.com/p/690702664中的步骤,首先创建conda环境

conda create -n Xinference python=3.10
conda activate Xinference
  • 1
  • 2

这个过程是没有任何报错的。
然后下载 chatglm_cpp-0.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl后使用pip安装,**注意,这和文章中是不一样的!!!!**文章中是基于在windows环境下安装的另外一个包,一定要看清!!!

接下来是pytorch部分

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
python -c "import torch; print(torch.cuda.is_available())" # 检查CUDA版本的Pytorch是否安装成功,报True即可
  • 1
  • 2

注意要一句一句复制执行,我在这个时候还没有把源换为国内,下载速度只有200多K,换好之后下载后面的东西时,都是慢速的。

最最关键的来了!!!
不要按照文章中写的去执行pip install “xinference[all]”,这样会让你下载所有的推理后端,我试过了,会出现一些报错,然后会导致开启xinference服务时无法成功。

这里应该执行pip install “xinference[transformers,vllm]”,这次与在windows的anaconda prompt中的情形不一样了,全程没有报错直接OK了。

最后,就是开启xinference-local --host 0.0.0.0 --port 9997服务了,当然你先不要弄,听我接着说。

因为xinference默认的是从huggingface下载大模型,网络原因根本下载不下来,所以跟上面一样,需要更换为国内的源,这样,上面那句命令就要变为:
XINFERENCE_MODEL_SRC=modelscope xinference-local --host 0.0.0.0 --port 9997
这样,下载源就换为阿里的源了,同时服务也开启了。
这时候你在浏览器打开http://127.0.0.1:9997/应该可以看到xinference的界面了。

但是下载大模型需要的空间比较大,我看了半天没看懂怎么更换目录,依然使用的C盘,C盘已经红温了。。。

总结

第一次写这种所谓的技术文章,甚至都不算技术文章,就是自己的一个实践过程,一个心得体会就是,不要轻易的放弃,多思考,多学习,总是 能找到方法的。

之前在研究ragflow的时候,在B站上去找教程,正好看到一个兄弟全程记录自己安装ragflow的过程,一共得录了20多个视频,每个视频都在1小时左右,好在最后一个视频说成功了,很不容易,也佩服他的坚持。

接下来,应该还会继续更新一些其他在研究RAG过程中的心得,希望对同样有困惑的小白能有所帮助吧。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/在线问答5/article/detail/807901
推荐阅读
相关标签
  

闽ICP备14008679号