概述Ollama官方地址:ollama。 官方已经讲的很清楚,但是在离线环境下,官方的文档还是显得很麻烦,而且镜像库的拉取部署也没有讲的很清楚。 从目前,我个人接触的Agent、RAG等框架,现今实现更多的是如下的接入模式: 对于自己玩还行,调用官方开放平台免费的api,申请api_key即可;但在内网要玩起来就很麻烦了,连不到网,而且本地部署的模型,框架又不支持引入(我个人遇到过这种情况,譬如LangChain)。 现在更多的推理部署框架开源起来,譬如Ollama,xinference,vllm等,这些推理部署框架接入原生LLM后,实现了高并发、高性能、快捷方便的部署方式;部署起来后,对外只需要提供一个API端口,甚至是UI界面即可由第三方框架接入。 Ollama离线部署下载离线二进制包,ollama;注意,这是一个二进制文件,下载后,可以直接运行,不过先给一个权限。我的docker系统环境是ubuntu。新建一个文件夹,路径是/home/Ollama,将下载后的二进制包重命名为ollama, chmod +x ./ollma
文件夹结构如下: 然后执行ollama的命令,启动服务,可以先看看ollama支持的命令: 启动即可,如下: 在这里我强烈建议,把info那段输出好好的阅读下,这里面包含了ollama的环境变量信息。 列举ollama的模型列表,执行命令list即可,刚部署完是空的。 模型拉取在内网环境下,服务器不能联网,那么就不能使用ollama run xxx一键拉取,虽然ollama官方提供了手动下载的方式,但我没有尝试,因为有点难,而且对我来说还是有点问题。最后我换了个思路:先用VM拉取模型到本地,然后再模型上传到内网服务器上,ollama一识别就可以了。正常来说应该是没问题的,因为用run命令也是下载到本地,然后Ollama识别,按道理只要下载到了指定目录,正常来说,不管是哪种方式(手动或是自动)应该是一致的。
在VM上,指定模型的下载路径,如下: OLLAMA_MODELS=/home/ollama_sitepackage/ ./ollama run glm4:9b
环境变量都已经在上面截图的info级别信息打印出来了,留心看看。
不过,最后总会有个报错,但可以忽略,因为模型已经下载了,可以在文件夹内查看,如下: 然后将这整个文件夹都上传到内网。 查看list列表: 最终指定环境变量启动ollama: OLLAMA_HOST=0.0.0.0:11434 OLLAMA_MODELS=/home/ollama_sitepackage/ ./ollama serve
完美运行: 总结很多的框架都支持在线拉取,但由于实际环境的限制,不会有这么便捷;但不管是远程在线拉取还是离线下载上传,只要清楚其原理逻辑,顺着推演,都是可以做到的。 |