引言 (踩的坑,省流引言的内容没有有使模型跑起来)
最近想在本地部署一个deepseek模型,就在网上搞了3 4天终于是能够部署下来了,在部署的时候也是成功的踩了无数的坑,比如我先问al如何在本地部署一个语言模型,al给我的建议是,先去hugging face中下好你要的模型,当然hugging face是访问不了的,要访问进行hf_mirror这个,然后去复制模型的下载链接然后我得到了这个
只有这个python下载链接不行的,,所以要去下transformers这个库,那么如何下呢,答:使用pip指令,pip嘛是python的一个下载各种插件的工具好用,下载工具就一行代码 pip install transformers
但是当我下好pip之后发现下载慢的要死,原来是他是在hugging face.co这里下载的,nnd这个网站我科学上网都进不去,得用国内镜像源
https://hf-mirror.com
,后来发现改为全球节点才进去nnd,
pip install transformers 来下载,结果慢得要死,配置下国内源
pip config set global.index-url='https://mirrors.aliyun.com/pypi/simple/'
改为alli的镜像下载快多了,之前kb的现在几十mb 可以使用pip config list来看是否配置好了
把transformers下好之后,复制代码就去使用,md下半天没有下好,一看报错,好家伙又要访问hugging face.io去下载,于是我寻思那就科学上网
下吧(我已经下过了)有俩个model要下载,shards0/2看出来的,一共14个g,然后发现去找发现可以使用国内的镜像网站去下 而且我没时间了hh
https://hf-mirror.com
又去配置了下国内源
这个是临时的,结果搞笑了
居然下不了,国内的源的下不了了,神奇了,那我前俩天咋下的,不过也没事,反正我下下来了也跑不起,报的错我还记得,文件空间不够,意思是我的内存不够了,得 哦对我的是笔记本
i9-13900hx和4060的,然后又想到ai给我说的要量化的 得量化为4-bit的,然后就又去搞怎么量化
去问,哈要用到bitsandbytes
这个工具,又去下了这个工具 pip install bitsandbytes
,然后还需要pytorch 和cuda,pytorch 和cuda 这俩可真是一个无敌大坑,作用是cuda给你的程序提供gpu算力支持,pytorch,用python代码使用cuda(我的理解哈,也不大懂的),我之前不知道适配的事,下了个12.3,又去看pytorch,傻眼了
感觉不支持的验证,但是为了保险起见,我删了cuda12.3下为了12.4,pytorch下支持cuda12.4的
cuda下好之后,cuda的环境变量啥的都搞的服服帖帖的
pytorch是用他给的指令下慢得不行,于是使用镜像源下,
pip3 install torch torchvision torchaudio --index-url https://mirrors.aliyun.com/pypi/simple//whl/cu124
下好之后,觉得成了,在python中运行nnd已运行报错
一问ai问的是deepseek,说的bitsandbytes无法使用cuda,然后去检查这里pytorch和cuda是否适配,结果不适配,然后就各种问ai,删了重下,啥的,后面刷到个帖子,说不要用镜像源的源来下,就得用给指令的来下,我看他倒是成了,我这样搞,不行,就是不适配,然后我就怀疑是windows系统的错hh,因为ai和搜到的大多给我的都是bash指令,是类 Unix 操作系统,Linux的标准命令工具,当然这是我搞了2 3天不成功之后气的给的理由,然后放弃了这条路,还是ollama好用,还有在图形化运行模型的时候,全是给我推荐的是使用docker容器来运行,也是去搞了下,开始的时候发现不呢正常运行,为什么呢,一看原来是没有启动hyper-v这东西是linux的,要创造个虚拟机来运行,那就去启动把,一看傻眼了
没有hyper-v
后面又去搜 使用这行命令安装的
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
之后docker能用了,去运行时要是使用openwebui,然后openwebui也是有现成的给我用
都是在docker中下openwebui的,一用,慢的要死,最后等他下好全部都下玩了有个一下午把,结果又失败了,果断放弃,使用pip下载openwebui,几分钟就解决了,ok我能想到的坑就先这多了,现在进入正题
正题
在python中创建一个项目
这里自动给我给创建了虚拟环境,有个虚拟环境,这样你在这个环境入无论咋折腾对外都不会有什么影响,在部署模型的时候也容易对依赖下了右删,删了又下的,还不错
运行虚拟环境
F:\virtual_env\v2\.venv\Scripts
这样就成功了
还有更方便的
下载open-webui 这个是用来图形化使用模型的,你也不想对个黑框框对话把
pip install open-webui
下载ollama,在ollama中下载模型
Ollama
下载好ollama软件之后,
这里下载模型
复制这个连接在cmd中运行,当然要确保ollama 已经启动可以使用
ollama serve启动和确认
这样就是成功启动了 输入复制的下载
成功之后会会这样就代表模型运行起来了可以进行对话了
我刚刚直接退出了,也可以这样运行
启动open-webui服务
open-webui serve
他会自动连接ollama的
这样就启动成功了 访问http://127.0.0.1:8080就能进行对话了
一些错误的解决
在启动的过程中可能会有个报错 比如这个
他说的是 OpenMP这个库被多次初始化,我的解决方案比较粗暴 设置这个环境变量
KMP_DUPLICATE_LIB_OK=TRUE 告诉OpenMp运行库可以重复初始化
具体是
cmd:setx KMP_DUPLICATE_LIB_OK TRUE 这是设置的是永久的环境变量
再次运行当然有可能失败,有点神奇可以这样搞
这样是设置的是临时的环境变量,是用os.system("set KMP_DUPLICATE_LIB_OK=TRUE") 不行,有点神奇,我这样就不行
在启动时 还可能有这个错误
open-webui会在启动的时候访问hugging face.co这个网站,可是访问不了的,那就会等到访问失败才会去链接本地的模型,会大大增加启动的时间,我算了下,访问了启动会需要大约3分钟才会启动,而直接加载本地的大约10秒就好了
比如这样
我的解决是增加了这个环境变量
DISABLE_MODEL_DOWNLOAD = true
也是有点神奇我早上运行可以,中午不行,晚上把他搞为永久的变量了之后又可以了
也就是
setx DISABLE_MODEL_DOWNLOAD true
反正这些环境变量我使用set这个指令来进行配置都不行,运行结果都是错的,很神奇
end~~