跳过正文

Ollama 本地部署大语言模型

·238 字·2 分钟· loading · loading ·
技术分享 AI LLM
chirizcc
作者
chirizcc
目录

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 为例:

  1. 配置软件源
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
  1. 更新包列表
sudo apt-get update
  1. 安装 NVIDIA Container Toolkit 软件包
sudo apt-get install -y nvidia-container-toolkit
  1. 配置 Docker 的 runtime 为 NVIDIA Container Toolkit 提供的 nvidia-ctk
sudo apt-get install -y nvidia-container-toolkit
  1. 重启 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 生态的应用范围与灵活性。

相关文章

Go json 踩坑记录
·296 字·2 分钟· loading · loading
技术分享 Go Golang