1. 概述
Get up and running with Llama 2/3, Mistral, Gemma, and other large language models.
Ollama是一个开源的大型语言模型服务,提供了类似OpenAI的API接口和聊天界面,可以非常方便地部署最新版本的GPT模型并通过接口使用。支持热加载模型文件,无需重新启动即可切换不同的模型。
Ollama的优势:提供类似OpenAI的简单内容生成接口,极易上手使用,类似ChatGPT的的聊天界面,无需开发直接与模型聊天,支持热切换模型,灵活多变。
GITHUB:
open-webui(ollama webui)
open-webui/open-webui: User-friendly WebUI for LLMs (Formerly Ollama WebUI) (github.com)
ollama支持的模型库:
Open WebUI:针对 LLM 用户友好的 WebUI,支持的 LLM 运行程序包括 Ollama、OpenAI 兼容的 API。
open-webui/open-webui: User-friendly WebUI for LLMs (Formerly Ollama WebUI) (github.com)
最好的参考文档及FAQ:
ollama/docs at main · ollama/ollama (github.com)
faq.md 中有包含所有环境变量的说明。
2. 部署实施(ubuntu直接安装)
系统环境:ubuntu22.04 64bit
2.1 下载
curl -fsSL https://ollama.com/install.sh | sh
通过输出日志,可以看到下载完毕后,自动安装,并创建了systemd服务。
<code>>>> Installing ollama to /usr/local/bin...
[sudo] password for ubuntu:
>>> Creating ollama user...
>>> Adding ollama user to render group...
>>> Adding ollama user to video group...
>>> Adding current user to ollama group...
>>> Creating ollama systemd service...
>>> Enabling and starting ollama service...
Created symlink /etc/systemd/system/default.target.wants/ollama.service → /etc/systemd/system/ollama.service.
>>> NVIDIA GPU installed.
可以看到创建了服务,路径:/etc/systemd/system/ollama.service,后面根据需要,可以编辑。
版本查询:
ollama --version
# 看到版本输出:ollama version is 0.1.30
安装成功!
接下来便可以用 pull 命令从在线模型库下载模型来玩了。
2.2 模型测试
在 library (ollama.com) 中查询 qwen,可以看到 Qwen已经在模型库中:
Qwen 1.5 is a series of large language models by Alibaba Cloud spanning from 0.5B to 72B parameters
选择一个模型下载:
ollama pull qwen:7b
# 4.5GB
运行:
ollama run qwen:7b
Ollama 采取了与 Docker 组织镜像相似的方案,使用模型名加上标签的形式( model:tag
)来确定具体的模型版本,不加标签时默认为 latest
,通常对应 7B 参数量 4bit 量化版。而如果要运行 13B 版本,就可以使用 13b
标签。
2.3 ollama服务
默认端口为 11434,可以通过http://ip:port 进行查看。
需要对外发布,则需要修改 OLLAMA_HOST 设置。
参考:ollama/docs/faq.md at main · ollama/ollama (github.com) 中的描述。
直接编辑 ollama.service文件,切换到root权限在,利用 vi /etc/systemd/system/ollama.service 打开编辑。参考如下:
[Unit]<br>Description=Ollama Service<br>After=network-online.target<br>[Service]<br>ExecStart=/usr/local/bin/ollama serve<br>User=ollama<br>Group=ollama<br>Restart=always<br>RestartSec=3<br>Environment="PATH=/home/ubuntu/.local/bin:/home/ubuntu/miniconda3/bin:/home/ubuntu/miniconda3/condabin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin"<br>Environment="CUDA_VISIBLE_DEVICES=0,1,2,3"<br>Environment="OLLAMA_HOST=0.0.0.0:11434"<br>Environment="OLLAMA_NUM_PARALLEL=2"<br>Environment="OLLAMA_MAX_LOADED_MODELS=2"<br>Environment="OLLAMA_KEEP_ALIVE=-1"<br>[Install]<br>WantedBy=default.target
默认ollama是采用CPU运算,如果要使用GPU,则需要配置 Environment=”CUDA_VISIBLE_DEVICES=0,1,2,3″ 根据实际情况分配即可。修改完后,reload and restart:
systemctl daemon-reload<br>systemctl restart ollama
2.4 让大模型一直驻留在内存
默认情况,ollama默认5分钟,会把model unload,但下一次载入时,会消耗更多的时间。
The keep_alive
parameter can be set to:
- a duration string (such as “10m” or “24h”)
- a number in seconds (such as 3600)
- any negative number which will keep the model loaded in memory (e.g. -1 or “-1m”)
- ‘0’ which will unload the model immediately after generating a response
直接在 ollama.service 中添加设置 OLLAMA_KEEP_ALIVE 即可。
3. 通过docker安装与运行
各种启动方式:<br>外部端口:内部端口<br>docker run -d -p 11434:11434 ollama/ollama<br>外部访问<br>本地:http://localhost:11434<br>务必要添加 --restart always 参数<br>无GPU<br>docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama --restart always ollama/ollama<br>有GPU<br>docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama --restart always ollama/ollama<br>docker run -d --gpus=all -v ollama:/root/.ollama -e OLLAMA_ORIGINS="*" -p 11434:11434 --name ollama --restart always ollama/ollama<br>docker run -d --gpus=all -v ollama:/root/.ollama -e OLLAMA_NUM_PARALLEL=2 -e OLLAMA_MAX_LOADED_MODELS=2 -e OLLAMA_ORIGINS="*" -p 11434:11434 --name ollama --restart always ollama/ollama<br>进入容器指令,ollama为容器名称:<br>docker exec -it ollama /bin/bash<br>运行模型,需要先进入容器内,然后运行<br>ollama run qwen2.5:0.5b # 用于测试
(end)