1. 简介#
Ollama 是一个基于 Go 语言开发的简单易用的开源本地大语言模型运行框架,可一键部署如 Llama 3, Mistral, Gemm 等大型语言模型。可以将其类比为 Docker,事实上它也的确制定了类 Docker 的一种模型应用标准。
2. 安装#
Olloma 提供了各个平台的客户端,但是我更喜欢将其安装在 Docker 中。
docker pull ollama/ollama
启动 Ollama 容器
docker run -d -v ~/ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
以该方式启动,Ollama 只会使用 CPU 来运算大语言模型,但是其实大语言模型更需要的是 GPU 提供的浮点数运算。而 Docker 未进行配置的话是无法访问到主机的 GPU 的,而如果主机上安装有 NVIDIA GPU的的话,则可以通过安装 NVIDIA Container Toolkit来让 Docker 可以利用到 NVIDIA GPU。以 Ubuntu 为例:
- 配置软件源
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
- 更新包列表
sudo apt-get update
- 安装 NVIDIA Container Toolkit 软件包
sudo apt-get install -y nvidia-container-toolkit
- 配置 Docker 的 runtime 为 NVIDIA Container Toolkit 提供的 nvidia-ctk
sudo apt-get install -y nvidia-container-toolkit
- 重启 Docker
配置完毕后便可以GPU加速模式启动Ollama:
docker run -d --gpus=all -v ~/ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
3. 使用#
Ollama 容器成功启动之后就可以进入到容器中与 Ollama 通过命令与其进行交互。这些命令包括但不限于:
ollama list
:显示模型列表。ollama show
:显示模型的信息ollama pull
:拉取模型ollama push
:推送模型ollama cp
:拷贝一个模型ollama rm
:删除一个模型ollama run
:运行一个模型
官方提供了一个
模型仓库,ollama pull
就是从这里拉取的模型文件,有 Llama, Mistral 等,也有国产的 Qwen(通义千问)等一系列开源大模型。
我们来试用下 Meta 最新开源的 Llama3
ollama run llama3
Ollama 在拉取完成模型后,便会直接运行模型,会默认进入交互状态
这里使用的是 Llama3 8B 模型,在我 RTX 2080 8GB 的 GPU 上运行的还是很快。Llama3 还有参数量更为庞大的 70B 模型,这个以我目前 GPU 的算力就几乎无法运行了。
在与大模型的交互框里输入 /?
便可看到该界面的命令说明
可以看到可以通过命令来设置 session 变量、查看模型信息、保存对话等,也允许通过 """
来输入多行文件。输入 /bye
便可退出交互。
除了命令行对话窗,Ollama 还提供了 REST API,可以通过 API 来调用 Ollama 中的大语言模型,具体的调用方法可以查阅 API 文档。
curl http://localhost:11434/api/chat -d '{
"model": "llama3",
"messages": [
{ "role": "user", "content": "why is the sky blue?" }
],
"stream": false
}'
除了以上两种交互方式,作为目前最为火热的 AI 领域中的热门项目,围绕着 Ollama 生态,也衍生出了一大批的优秀开源项目,其中也不乏为 Ollama 提供图形化界面的开源项目,例如: Open WebUI、 Lollms-Webui、 Enchanted等等。此外 Ollama 兼容了 OpenAI 的接口,使其能够无缝对接多数基于OpenAI接口的项目,这一特性极大拓宽了Ollama 生态的应用范围与灵活性。