私有化大模型部署最佳解决方案
一、引言
在当今的人工智能浪潮中,大型语言模型(LLM)凭借其出色的文本处理和理解能力,已经成为了AI技术领域的重要组成部分。然而,商业化的LLM往往价格不菲,且存在隐私问题,这限制了广大研究者和开发者的创新与实验空间。幸运的是,开源社区如 Ollama 提供了高质量的替代方案,使得更多的用户和开发者能够便捷地探索和利用大型语言模型的强大功能。
二、什么是Ollama?
Ollama 是一个强大的开源工具,专为构建和部署大型语言模型(LLM)设计。它提供了一个直观的命令行界面和服务器支持,使用户能够轻松下载、运行和管理各种流行的开源LLM。与需要复杂配置和强大硬件的传统 LLM 不同,Ollama 让使用大模型变得像操作手机App一样简单便捷。
Ollama 支持多种大语言模型,如Qwen2、Llama3、Phi3、Gemma2等,它不仅简化了在本地环境中的运行和测试过程,还降低了技术门槛,让开发者、研究人员和技术爱好者可以快速部署和实验最新的模型技术。
Ollama官网
Ollama官方 GitHub 源代码仓库
三、Ollama 软件安装、一些常用的系统参数设置
3.1 安装Ollama
-
macOS
-
Windows
-
Linux
curl -fsSL https://ollama.com/install.sh | sh
-
Docker
CPU版本
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/ollama/ollama:latest
GPU版本
1、安装 Nvidia container toolkit
2、在 Docker 容器中运行 Ollamadocker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/ollama/ollama:latest
3.2 启动Ollama
-
Bash
ollama serve
输出以下信息:
并且访问 http://127.0.0.1:11434 出现如下提示,表示服务启动成功
3.3 常用系统参数设置
Ollama安装后,有几个常用的系统环境变量参数建议进行设置:
!!!不知道怎么配置系统环境变量参数的小伙伴可以参考这篇文章
-
OLLAMA_MODELS:
模型文件存放目录,默认目录为当前用户目录(Windows 目录:C:\Users%username%.ollama\models,MacOS 目录:~/.ollama/models,Linux 目录:/usr/share/ollama/.ollama/models),如果是 Windows 系统建议修改,避免 C 盘空间吃紧
比如我配置的如下图所示:
-
OLLAMA_HOST:
Ollama 服务监听的网络地址,默认为127.0.0.1,如果允许其他电脑访问 Ollama(如:局域网中的其他电脑),建议设置成0.0.0.0,从而允许其他网络访问 -
OLLAMA_PORT:
Ollama 服务监听的默认端口,默认为11434,如果端口有冲突,可以修改设置成其他端口 -
OLLAMA_ORIGINS:
HTTP 客户端请求来源,英文逗号分隔列表,若本地使用无严格要求,可以设置成星号,代表不受限制 -
OLLAMA_KEEP_ALIVE:
大模型加载到内存中后的存活时间,默认为5m即 5 分钟(如:纯数字如 300 代表 300 秒,0 代表处理请求响应后立即卸载模型,任何负数则表示一直存活);我们可设置成24h,即模型在内存中保持 24 小时,提高访问速度 -
OLLAMA_NUM_PARALLEL:
请求处理并发数量,默认为1,即单并发串行处理请求,可根据实际情况进行调整 -
OLLAMA_MAX_QUEUE:
请求队列长度,默认值为512,可以根据情况设置,超过队列长度请求被抛弃 -
OLLAMA_DEBUG:
输出 Debug 日志标识,应用研发阶段可以设置成1,即输出详细日志信息,便于排查问题 -
OLLAMA_MAX_LOADED_MODELS:
最多同时加载到内存中模型的数量,默认为1,即只能有 1 个模型在内存中
四、Ollama 管理本地大模型
4.1 下载或者更新本地大模型
-
Bash
ollama pull 模型名称:参数规格
注:大模型仓库地址,在仓库中可以搜索你想要尝试的大模型,比如llama3、qwen等
比如我们选择llama3模型,然后根据自己电脑的配置,选择适配的参数规格,复制右边的命令
打开cmd窗口,粘贴刚才复制的命令,回车
等待下载完即可,下载完后会自动进入聊天对话模式
输入你想问的问题即可
4.2 展示本地大模型列表
-
Bash
ollama list
比如我下载了两个模型:llama3:8b和llama3:70b
4.3 删除单个本地大模型
-
Bash
ollama rm 模型名称:参数规格
4.4 启动本地模型
-
Bash
ollama run 模型名称:参数规格
启动完后,会自动聊天对话模式
4.5 查看本地运行中模型列表
-
Bash
ollama ps
比如刚才我启动了llama3:8b模型,这里是可以看到的
五、基于 WebUI 部署 Ollama 可视化对话界面
尽管Ollama提供了一个基本的控制台对话界面,但这种方式可能无法充分展示其强大的功能。为了提供更加友好和直观的用户体验,接下来可以部署一个基于 Web 的可视化聊天界面。这种可视化界面不仅美观,还能使用户通过简洁的图形界面与模型交互,极大地增强了互动性和易用性。部署这样的WebUI,用户可以更直观地理解和探索大模型的能力,从而更有效地利用Ollama来管理和运行各种语言模型。
5.1 下载并安装 Node.js
!!!不知道怎么下载和安装的小伙伴可以参考这篇文章
5.2 下载ollama-webui工程代码
-
Git
如果你有git工具,随便在一个文件夹下执行以下命令即可git clone https://github.com/ollama-webui/ollama-webui-lite ollama-webui
-
直接下载后解压
如果你没有git工具,可以到这里,下载压缩包,然后随便在一个文件夹下解压这个压缩包即可
下载解压后的效果如下:
5.3 设置 Node.js 工具包镜像源(下载提速)
-
Bash
npm config set registry http://mirrors.cloud.tencent.com/npm/
5.4 安装 Node.js 依赖的工具包
-
Bash
npm install
5.5 启动 Web 可视化界面
-
Bash
npm run dev
如果看到以上输出,代表 Web 可视化界面启动成功了!!!
浏览器打开 Web 可视化界面:http://localhost:3000/
其中Ollama官网也提供了很多WebUI项目的推荐,有兴趣的小伙伴可以选择适合自己的界面
六、总结
私有化部署大型语言模型提供了数据安全、性能优化和成本效益等多方面的优势。Ollama 作为一个强大的开源工具,极大地简化了大模型的部署和管理过程,降低了技术门槛。通过Ollama,用户不仅能够轻松下载和运行各种开源LLM,还可以高效地进行本地管理。尤其是通过其WebUI界面,Ollama使得模型的操作和交互变得更加直观和便捷。总体来说,Ollama为研究人员、开发者和技术爱好者提供了一种高效、安全且成本可控的方式来探索和利用最新的大型语言模型技术,推动了人工智能技术的本地化和个性化发展。
完结撒花!!!