首页 私有化部署Llama
文章
取消

私有化部署Llama

开篇

  最近一直研究各种AI,也尝试了很多,今天想自己深入研究一下,从在 Ubuntu 上私有化部署一个AI开始。

Ollama

  Ollama 是一个本地部署的大模型运行框架,它提供了一个简单的命令行工具来帮助用户在本地运行大模型。Ollama 支持多个大模型,包括 运行Llama 3、Phi 3、Mistral、Gemma和其他型号和定制并创建您自己的模型。Ollama 支持 macOS、Linux 和 Windows。

安装

1
curl -fsSL https://ollama.com/install.sh | sh

macOS、 Windows 上安装只需要下载对应版本安装即可。

命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
root@mmy83:~# ollama -h
Large language model runner

Usage:
  ollama [flags]
  ollama [command]

Available Commands:
  serve       Start ollama
  create      Create a model from a Modelfile
  show        Show information for a model
  run         Run a model
  pull        Pull a model from a registry
  push        Push a model to a registry
  list        List models
  cp          Copy a model
  rm          Remove a model
  help        Help about any command

Flags:
  -h, --help      help for ollama
  -v, --version   Show version information

Use "ollama [command] --help" for more information about a command.

快速开始

1
ollama run llama3

  漫长的等待之后,安装成功了,对的,安装成功了!而且这时候还可以直接通过命令行进行交互。但是这个交互界面并不友好,所有需要一个友好的界面。

安装 Open WebUI

1
2
# 需要先安装docker,并且和ollama在同一台机器上
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main

问题解决

  安装 Open WebUI 后,发现无法连接到ollama,原因很简单,因为ollama默认只能127.0.0.1访问,所以需要修改一下配置。

1
2
# 为了允许其他服务器访问ollama服务,需要将host设置成0.0.0.0,修改ollama的配置文件
vim /etc/systemd/system/ollama.service
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[Unit]
Description=Ollama Service
After=network-online.target

[Service]
ExecStart=/usr/local/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment=“PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin”
# 增加这一行
Environment=“OLLAMA_HOST=0.0.0.0”

[Install]
WantedBy=default.target
1
2
3
# 重启ollama
systemctl daemon-reload
systemctl restart ollama

仓库

  Ollama支持Ollama.com/library上提供的型号列表,也可以通过ollama create命令创建自己的模型。

  以下是一些可以下载的示例模型:

ModelParametersSizeDownload
Llama 38B4.7GBollama run llama3
Llama 370B40GBollama run llama3:70b
Phi-33.8B2.3GBollama run phi3
Mistral7B4.1GBollama run mistral
Neural Chat7B4.1GBollama run neural-chat
Starling7B4.1GBollama run starling-lm
Code Llama7B3.8GBollama run codellama
Llama 2 Uncensored7B3.8GBollama run llama2-uncensored
LLaVA7B4.5GBollama run llava
Gemma2B1.4GBollama run gemma:2b
Gemma7B4.8GBollama run gemma:7b
Solar10.7B6.1GBollama run solar

创建模型

  ollama create 命令可以创建自己的模型,需要指定模型名称和模型文件,Ollama支持在Modelfile中导入GGUF模型。

下载

  Ollama支持在Modelfile中导入GGUF模型,从https://huggingface.co/zhouzr/Llama3-8B-Chinese-Chat-GGUF/tree/main下载模型文件。

下载模型文件

Modelfile

1
2
3
4
5
6
7
8
9
10
11
12
13
14
FROM ./Llama3-8B-Chinese-Chat.q6_k.GGUF
TEMPLATE """{{ if .System }}<|start_header_id|>system<|end_header_id|>

{{ .System }}<|eot_id|>{{ end }}{{ if .Prompt }}<|start_header_id|>user<|end_header_id|>

{{ .Prompt }}<|eot_id|>{{ end }}<|start_header_id|>assistant<|end_header_id|>

{{ .Response }}<|eot_id|>"""
PARAMETER stop "<|start_header_id|>"
PARAMETER stop "<|end_header_id|>"
PARAMETER stop "<|eot_id|>"
PARAMETER stop "<|reserved_special_token"

创建

1
2
ollama create Llama3-8B-Chinese-Chat-q6 -f Modelfile
ollama run Llama3-8B-Chinese-Chat-q6
本文由作者按照 CC BY 4.0 进行授权

人工智能回答:程序员如何构建自己的护城河

Ollama:Modelfile说明