1 引言

本文将介绍 ollama+llama3 的最基本的安装和使用方法。只要你的 GPU 和 Docker 环境可用,基本上只需不超过五行的命令就能完成(实际上可能只需要一行)。使用 ollama 安装 llama3 比预期中要方便得多。

项目地址:https://github.com/ollama/ollama 65.5K Star

2 Docker 安装

1
$ docker pull ollama/ollama

镜像大小约 438M,不包含 Python&Torch 环境,所以很省空间。

1
2
3
$ docker run --rm -d -e OLLAMA_ORIGINS="app://obsidian.md*" --gpus=all -v /exports/ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
$ docker exec -it ollama bash
$ ollama run llama3

在初次使用时,会下载模型,大约需要 4.7G 的存储空间,这可能是量化版本。下载完成后,就可以直接与其对话了:

在使用过程中,显存的使用量大约为 5.4G。

此外需要注意的是,docker 启动了一个 web 界面供用户进行设置。默认情况下,只有在本地主机 localhost 的浏览器中才能打开。

2.1 使用 api 访问

使用类似 openai 方式调用在命令行调用 ollama

1
2
3
4
5
6
7
curl http://localhost:11434/v1/chat/completions -d '{
"model": "llama3",
"messages": [
{ "role": "user", "content": "你好,请用中文回答我" }
],
"stream": false
}'

直接使用 openai 的 api 调用 ollama:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
from openai import OpenAI

client = OpenAI(
base_url = 'http://localhost:11434/v1', # 默认只仅本机访问
api_key='ollama',
)

response = client.chat.completions.create(
model="llama3",
messages=[
{"role": "user", "content": "你好,请用中文与我交谈"}
]
)
print(response.choices[0].message.content)

3 用后感

(个人感觉,仅供参考)

  • 默认情况下,该系统会提供英文回答。即使明确指定中文回答,偶尔也会蹦出几个英文单词。在用模型翻译工作时,也存在这样的问题。
  • 运行时约占用 5.4G 显存,其推理速度与当前的 ChatGPT-3.5 网页版本基本相当,几乎不会感到明显的延迟。
  • Llama3 的风格和价值观与 ChatGPT 相似,但略显啰嗦。我个人感觉这可能与训练语料过多有关:似乎有很多信息,但没有形成自己的想法,从这个角度看 OpenAI 效果更好。
  • 我觉得目前的开源模型中,4.7G 的模型(可能是 8G 的量化版本)真的有可能替代 ChatGPT,在内容质量,响应速度,资源占用方面都能接受。但可能由于该模型过小,对指令的遵从能力略差,给人的感觉略有点不靠谱。