欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > ollama使用详解

ollama使用详解

2025/2/25 10:27:48 来源:https://blog.csdn.net/james506/article/details/145371756  浏览:    关键词:ollama使用详解

1. 概述

官网:Ollama

GITHUB:

ollama/ollama: Get up and running with Llama 2, Mistral, Gemma, and other large language models. (github.com)

open-webui(ollama webui)

open-webui/open-webui: User-friendly WebUI for LLMs (Formerly Ollama WebUI) (github.com)

ollama支持的模型库:

library (ollama.com)

Ollama是一个开源的大型语言模型服务,提供了类似OpenAI的API接口和聊天界面,可以非常方便地部署最新版本的GPT模型并通过接口使用。支持热加载模型文件,无需重新启动即可切换不同的模型。

Ollama的优势:提供类似OpenAI的简单内容生成接口,极易上手使用,类似ChatGPT的的聊天界面,无需开发直接与模型聊天,支持热切换模型,灵活多变。

Ollama可以让你很好的运行当前流行的各种大模型,并与各种其他平台相结合,对外提供大模型服务,比如 ollama + oneapi,ollama + lobe-chat,ollama + gpustack 等。

ollama可以很好的支持 CPU 和 GPU 两种运行方式。

最好的参考文档及FAQ

ollama/docs at main · ollama/ollama (github.com)

faq.md 中有包含所有环境变量的说明。

2. 部署实施

系统环境:ubuntu22.04 64bit (本文试验环境)

2.1 下载

 Download Ollama on Linux

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

通过输出日志,可以看到下载完毕后,自动安装,并创建了systemd服务。

>>> 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# 运行
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]
Description=Ollama Service
After=network-online.target[Service]
ExecStart=/usr/local/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
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"
Environment="CUDA_VISIBLE_DEVICES=0,1,2,3"
Environment="OLLAMA_HOST=0.0.0.0:11434"[Install]
WantedBy=default.target

默认ollama是采用CPU运算,如果要使用GPU,则需要配置 Environment="CUDA_VISIBLE_DEVICES=0,1,2,3" 根据实际情况分配即可。

修改完后,reload and restart:

systemctl daemon-reload
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

For example, to preload a model and leave it in memory use:

curl http://localhost:11434/api/generate -d '{"model": "llama2", "keep_alive": -1}'

To unload the model and free up memory use:

curl http://localhost:11434/api/generate -d '{"model": "llama2", "keep_alive": 0}'

直接在 ollama.service 中添加设置 OLLAMA_KEEP_ALIVE=-1 即可。

但现在有一个问题,这种方法同时只能一个模型驻留在内存中。

2.5 单模型多请求和多模型多请求

可以设置环境变量:

OLLAMA_NUM_PARALLEL

OLLAMA_MAX_LOADED_MODELS

3. 通过docker安装与运行

各种指令参考:

# 外部端口:内部端口
docker run -d -p 11434:11434 ollama/ollama
# 外部访问
本地:http://localhost:11434# 务必要添加 --restart always 参数# 无GPU
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama --restart always ollama/ollama# 有GPU
docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama --restart always ollama/ollamadocker run -d --gpus=all -v ollama:/root/.ollama -e OLLAMA_ORIGINS="*" -p 11434:11434 --name ollama --restart always ollama/ollamadocker 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# 进入容器指令,ollama为容器名称:
docker exec -it ollama /bin/bash
# 运行模型,需要先进入容器内,然后运行
ollama run qwen2.5:0.5b # 用于测试# 然后在外部通过链接访问测试

可以通过 -e 参数设置环境变量,-v 参数挂载卷。

-e OLLAMA_NUM_PARALLEL=2
-e OLLAMA_MAX_LOADED_MODELS=2
# 因浏览器安全限制,需要为 Ollama 进行跨域配置后方可正常使用。比如 lobe-chat中,就需要配套此参数。
-e OLLAMA_ORIGINS="*"
# 具体可以参见 docs/faq.md 文件

4. 常用指令

# 帮助
ollama -h# Create a model
ollama create mymodel -f ./Modelfile
# Pull a model
ollama pull llama2
# Remove a model
ollama rm llama2
# Copy a model
# # 很多模型下载后,包含了很长的路径信息,不方便处理,可以通过cp指令,拷贝一份,然后重新简洁命名。
ollama cp  sdfxxxxx/llama2  my-llama2
# List models
ollama list
# Run a model
ollama run llama2sudo systemctl stop ollama # 停止服务
sudo systemctl start ollama # 启动服务
# 监听http服务,指定GPU
export OLLAMA_HOST="0.0.0.0:11434"
export CUDA_VISIBLE_DEVICES="0"ollama serve # 启动 如果以服务的方式已运行,则此处运行时会提示端口已占用ollama show --modelfile xxxx  # 可以查看模型信息

指令参考:

ollama/cmd/cmd.go at main · ollama/ollama (github.com)

环境变量:

OLLAMA_HOST         The host:port to bind to (default "127.0.0.1:11434")
OLLAMA_ORIGINS      A comma separated list of allowed origins.
OLLAMA_MODELS       The path to the models directory (default is "~/.ollama/models")
OLLAMA_KEEP_ALIVE   The duration that models stay loaded in memory (default is "5m")
OLLAMA_DEBUG        Set to 1 to enable additional debug logging

查看日志:利用 journalctl 处理

# -e 直接跳转到页的最后
# -r 时间倒序查看
# -n 10 最新的10条
# -f 实时查看
journalctl -e -u ollama -f -r # 具体详情,可以查询 journalctl 说明。

(end)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词