这里写自定义目录标题

Ollama安装与使用

1 什么是Ollama

Ollama 中文名为羊驼,官网https://ollama.com/
Ollama提供了一个轻量级、易于扩展的框架,让开发者能够在本地机器上轻松构建和管理LLMs(大型语言模型)。通过Ollama,开发者可以访问和运行一系列预构建的模型,或者导入和定制自己的模型,无需关注复杂的底层实现细节。
Ollama的主要功能包括快速部署和运行各种大语言模型,如Llama 2、Code Llama等。它还支持从GGUF、PyTorch或Safetensors格式导入自定义模型,并提供了丰富的API和CLI命令行工具,方便开发者进行高级定制和应用开发。

2 Ollama特点

2.1 一站式管理

Ollama将模型权重、配置和数据捆绑到一个包中,定义成Modelfile,从而优化了设置和配置细节。
包括GPU使用情况。这种封装方式使得用户无需关注底层实现细节,即可快速部署和运行复杂的大语言模型。

2.2 热加载模型文件

支持热加载模型文件,无需重新启动即可切换不同的模型,
提高了灵活性,还显著增强了用户体验。

2.3 丰富的模型库

提供多种预构建的模型,如Llama 2、Llama 3、通义千问,方便用户快速在本地运行大型语言模型。

2.4 多平台支持

支持多种操作系统,包括Mac、Windows和Linux,确保了广泛的可用性和灵活性。

2.5 无复杂依赖

优化推理代码减少不必要的依赖,可以在各种硬件上高效运行。包括纯CPU推理和Apple Silicon架构。

2.6 资源占用少

Ollama的代码简洁明了,运行时占用资源少,使其能够在本地高效运行,不需要大量的计算资源。

3 Ollama下载与安装

3.1 下载及安装

在这里插入图片描述

3.2 一键安装

在linux终端中执行以下代码,进行自动下载及安装。

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

3.3 手动安装

注意:
如果您是从旧版本进行升级,应先使用 sudo rm -rf /usr/lib/ollama 命令删除旧的库文件。

3.3.1 下载并解压压缩包

curl -L https://ollama.com/download/ollama-linux-amd64.tgz -o ollama-linux-amd64.tgz
sudo tar -C /usr -xzf ollama-linux-amd64.tgz

3.3.2 命令验证

ollama -v

如果显示版本号,则说明安装成功。

test@...:~$ ollama -v
ollama version is 0.5.12

3.4 服务配置及管理

3.4.1 创建用户及用户组

sudo useradd -r -s /bin/false -U -m -d /usr/share/ollama ollama
sudo usermod -a -G ollama $(whoami)

useradd 参数说明

-r:建立系统账号
-s:指定用户登入后所使用的shell
-U:创建与用户同名的组
-m:制定用户的登入目录
-d:指定用户登入时的起始目录

usermode 参数说明

-a:将用户附加到-G选项提到的补充组中,而不从其他组中删除用户。
-G:新的补充组名称

3.4.2 创建服务文件

创建服务文件

sudo vim /etc/systemd/system/ollama.service
[Unit]
Description=Ollama Service
After=network-online.target

[Service]
ExecStart=/usr/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="PATH=$PATH"

[Install]
WantedBy=default.target

注意:
增加 Environment=“PATH=$PATH” 配置后,可以在任何目录下执行Ollama命令。

3.4.3 重新加载服务并自启动

# 重新加载系统服务的配置文件
sudo systemctl daemon-reload
# 服务在系统启动时自动启动
sudo systemctl enable ollama

3.4.4 启动服务并查看服务状态

# 启动服务
sudo systemctl start ollama
# 查看服务状态
sudo systemctl status ollama

3.4.5 重启服务

sudo systemctl restart ollama

3.4.6 更新

Ollama的更新可分为两种方式。
方式一:通过再次运行安装脚本来更新 Ollama

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

方式二:通过重新下载 Ollama

curl -L https://ollama.com/download/ollama-linux-amd64.tgz -o ollama-linux-amd64.tgz
sudo tar -C /usr -xzf ollama-linux-amd64.tgz

3.4.7 查看日志

journalctl -e -u ollama

3.4.8 卸载

  1. 移除Ollama服务
sudo systemctl stop ollama
sudo systemctl disable ollama
sudo rm /etc/systemd/system/ollama.service
  1. 从bin目录中移除ollama二进制文件,例如:/usr/local/bin, /usr/bin, or /bin
sudo rm $(which ollama)
  1. 删除下载的模型以及 Ollama 服务用户和组
sudo rm -r /usr/share/ollama
sudo userdel ollama
sudo groupdel ollama
  1. 删除已安装的库
sudo rm -rf /usr/local/lib/ollama

4 Ollama 运行模型

4.1 运行模型命令

Ollama 运行模型使用 ollama run 命令。
命令参数如下:

ollama run model:tag

模型名称采用model:tag格式,其中model可以有一个可选的命名空间,如example/model。一些示例包括deepseek-r1:1.5bqwen2:0.5b。标签是可选的,如果没有提供,默认为latest。标签用于标识特定版本。

如果首次运行,本地没有大模型则会从远程下载大模型。

4.2 查询支持的模型

官网地址:https://ollama.com/search
在这里插入图片描述

4.3 旋转模型及模型参数

以deepseek-r1:1.5b为例:
在这里插入图片描述

4.4 执行命令

test@...:~$ ollama run deepseek-r1:1.5b

4.5 修改模型路径

  1. 要修改其默认存储路径,需要通过设置系统环境变量来实现,即在/etc/profile文件中最后增加一下环境变量:
export OLLAMA_MODELS=/home/test/ollama
  1. 然后执行一下命令,生效环境变量:
source /etc/profile
echo $OLLAMA_MODELS
  1. 修改/etc/systemd/system/ollama.service文件,便于开机加载。
[Unit]
Description=Ollama Service
After=network-online.target

[Service]
ExecStart=/usr/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="PATH=$PATH"
Environment="OLLAMA_MODELS=/home/test/ollama"

[Install]
WantedBy=default.target
  1. 生效修改配置
# 重新加载系统服务的配置文件
sudo systemctl daemon-reload
# 服务在系统启动时自动启动
sudo systemctl enable ollama
  1. 然后重新ollama服务
sudo systemctl restart ollama

5 对话指令详解

在Ollama终端中提供了一系列指令,可以用来调整和控制对话模型:

test@...:~$ ollama run deepseek-r1:1.5
>>> /?
Available Commands:
  /set            Set session variables
  /show           Show model information
  /load <model>   Load a session or model
  /save <model>   Save your current session
  /clear          Clear session context
  /bye            Exit
  /?, /help       Help for a command
  /? shortcuts    Help for keyboard shortcuts

Use """ to begin a multi-line message.

>>> Send a message (/? for help)

根据对话指令的作用分为基本指令、对话调整指令以及模型调整指令。
在这里插入图片描述

5.1 基本指令

5.1.1 /show 显示模型信息

test@...:~$ ollama run deepseek-r1:1.5
>>> /show
Available Commands:
/show info         查看模型的基本信息
/show license      查看模型的许可信息
/show modelfile    查看模型的制作源文件Modelfile
/show parameters   查看模型的内置参数信息
/show system       查看模型的内置Sytem信息
/show template     查看模型的提示词模版

>>> Send a message (/? for help)

输入/show info 命令,查看模型的详细信息:

test@Ken:~$ ollama run deepseek-r1:1.5b
>>> /show info
  Model
    architecture        qwen2
    parameters          1.8B
    context length      131072
    embedding length    1536
    quantization        Q4_K_M

  Parameters
    stop    "<|begin▁of▁sentence|>"
    stop    "<|end▁of▁sentence|>"
    stop    "<|User|>"
    stop    "<|Assistant|>"

  License
    MIT License
    Copyright (c) 2023 DeepSeek

>>> Send a message (/? for help)

其他的命令同样操作。

5.1.2 /bye 退出对话模型

退出当前控制台对话, 快捷键: ctrl + d

test@Ken:~$ ollama run deepseek-r1:1.5b
>>> 您是谁?
<think>
我是DeepSeek-R1,一个由深度求索公司开发的智能助手,我擅长通过思考来帮您解答复杂的数学,代码和逻辑推理等理工类问题。

</think>

我是DeepSeek-R1,一个由深度求索公司开发的智能助手,我擅长通过思考来帮您解答复杂的数学,代码和逻辑推理等理工类问题。

>>> /bye
test@Ken:~$

5.1.3 /? shortcuts 查看快捷键

查看在控制台中可用的快捷键。

test@...:~$ ollama run deepseek-r1:1.5b
>>> /? shortcuts
Available keyboard shortcuts:
  Ctrl + a            移动到行头
  Ctrl + e            移动到行尾
  Ctrl + b            移动到单词左边
  Ctrl + f            移动到单词右边
  Ctrl + k            删除游标后面的内容
  Ctrl + u            删除游标前面的内容
  Ctrl + w            删除游标前面的单词

  Ctrl + l            清屏
  Ctrl + c            停止推理输出
  Ctrl + d            退出对话(只有在没有输入时才生效)

5.1.4 /?,/help 查看支持的指令

test@...:~$ ollama run deepseek-r1:1.5
>>> /?
Available Commands:
  /set            Set session variables
  /show           Show model information
  /load <model>   Load a session or model
  /save <model>   Save your current session
  /clear          Clear session context
  /bye            Exit
  /?, /help       Help for a command
  /? shortcuts    Help for keyboard shortcuts

Use """ to begin a multi-line message.

>>> Send a message (/? for help)

5.1.5 “”" 多行输入指令

“”" 用于输入内容有换行时使用,如何多行输入结束也使用 “”"

>>> """
... 您好
... 你是什么模型?
... """
<think>
我是DeepSeek-R1,一个由深度求索公司开发的智能助手,我擅长通过思考来帮您解答复杂的数学,代码和逻辑推理等理工类问题。     
</think>

我是DeepSeek-R1,一个由深度求索公司开发的智能助手,我擅长通过思考来帮您解答复杂的数学,代码和逻辑推理等理工类问题。

5.2 对话调整指令

5.2.1 /set 设置会话参数

set指令主要用来设置当前对话模型的系列参数。

test@...:~$ ollama run deepseek-r1:1.5b
>>> /set
Available Commands:
  /set parameter ...     设置对话参数
  /set system <string>   设置系统角色
  /set history           开启对话历史
  /set nohistory         关闭对话历史
  /set wordwrap          开启自动换行
  /set nowordwrap        关闭自动换行
  /set format json       输出JSON格式
  /set noformat          关闭格式输出
  /set verbose           开启对话统计日志
  /set quiet             关闭对话统计日志
5.2.1.1 /set parameter … 设置对话参数
test@...:~$ ollama run deepseek-r1:1.5b
>>> /set parameter
Available Parameters:
  /set parameter seed <int>             Random number seed
  /set parameter num_predict <int>      Max number of tokens to predict
  /set parameter top_k <int>            Pick from top k num of tokens
  /set parameter top_p <float>          Pick token based on sum of probabilities
  /set parameter min_p <float>          Pick token based on top token probability * min_p
  /set parameter num_ctx <int>          Set the context size
  /set parameter temperature <float>    Set creativity level
  /set parameter repeat_penalty <float> How strongly to penalize repetitions
  /set parameter repeat_last_n <int>    Set how far back to look for repetitions
  /set parameter num_gpu <int>          The number of layers to send to the GPU
  /set parameter stop <string> <string> ...   Set the stop parameters
Parameter Description Value Type Example Usage
num_ctx 设置用于生成下一个 token 的上下文窗口大小。(默认值:2048) int num_ctx 4096
repeat_last_n 设置模型回溯的距离以防止重复。(默认值:64,0 = 禁用,-1 = num_ctx) int repeat_last_n 64
repeat_penalty 设置对重复内容的惩罚强度。较高的值(例如 1.5)会更强地惩罚重复内容,而较低的值(例如 0.9)则会更宽松。(默认值:1.1) float repeat_penalty 1.1
temperature 模型的温度值。提高温度会使模型的回答更具创造性。(默认值:0.8) float temperature 0.7
seed 设置用于生成的随机数种子。将此值设置为特定数字会使模型针对相同的提示生成相同的文本。(默认值:0) int seed 42
stop 设置使用的停止序列。当遇到此模式时,LLM 将停止生成文本并返回。可以通过在 modelfile 中指定多个单独的 stop 参数来设置多个停止模式。 string stop “AI assistant:”
num_predict 生成文本时预测的最大 token 数量。(默认值:-1,表示无限生成) int num_predict 42
top_k 降低生成无意义内容的概率。较高的值(例如 100)会提供更多样化的回答,而较低的值(例如 10)则会更保守。(默认值:40) int top_k 40
top_p 与 top-k 配合使用。较高的值(例如 0.95)会生成更多样化的文本,而较低的值(例如 0.5)会生成更集中和保守的文本。(默认值:0.9) float top_p 0.9
min_p 作为 top_p 的替代方案,旨在确保质量和多样性的平衡。参数 p 表示 token 被考虑的最小概率,相对于最可能 token 的概率。例如,当 p=0.05 且最可能的 token 概率为 0.9 时,值小于 0.045 的 logits 将被过滤掉。(默认值:0.0) float min_p 0.05
num_gpu 设置缓存到GPU显存中的模型层数
设置用于处理模型的 GPU 数量,特别适用于多 GPU 系统。可以将模型的某些层发送到 GPU 上,以利用 GPU 的加速能力。
如果有多个 GPU 卡:
1)可以设置 num_gpu 的值为你想要使用的 GPU 数量。如果你有 4 张 GPU,可以设置 num_gpu 4 来让模型使用所有 4 张 GPU 进行推理。
2)这将分配模型的计算任务到多个 GPU,利用每张 GPU 的显存和计算能力。
int 自动计算
5.2.1.2 /set system 设置系统角色

/set system 命令可以设置系统消息‌。具体来说,/set system命令用于设置系统消息,可以自定义系统消息的内容和格式。例如,你可以使用/set system "Hello, this is a system message."来设置系统消息为“Hello, this is a system message.”。

5.2.1.3 /set history 开启对话历史

使用/set history命令可以启用会话历史记录功能,这样用户在与模型交互时,之前的对话内容会被保存下来,方便用户查看历史记录或继续之前的对话。这对于需要连续对话或需要参考之前对话内容的场景非常有用。

5.2.1.4 /set nohistory 关闭对话历史

在某些情况下,用户可能不希望保存会话历史记录,例如保护隐私或减少存储空间的使用。此时可以使用/set nohistory命令来禁用会话历史记录功能。

5.2.1.5 /set wordwrap 开启自动换行

‌Ollama的/set wordwrap命令用于控制文本的换行方式‌。当启用/set wordwrap时,文本会在达到屏幕宽度时自动换行,避免长文本占据整行显示,使得输出更加易读。

5.2.1.6 /set nowordwrap 关闭自动换行

/set nowordwrap命令用于长文本会继续在一行显示,直到遇到空格或标点符号。

5.2.1.7 /set format json 输出JSON格式
>>> /set format json
Set format to 'json' mode.
>>> 您好
{"response":"你好,欢迎光临,请问有什么我可以帮助您的吗?"}
5.2.1.8 /set noformat 关闭格式输出
>>> /set noformat
Disabled format.
>>> 您好
<think>

</think>

您好!我是由中国的深度求索(DeepSeek)公司开发的智能助手DeepSeek-R1。我擅长通过思考来帮助您解答复杂的数学、代码和逻
辑推理等理工类问题。请问有什么我可以帮您的吗?
5.2.1.9 /set verbose 开启对话统计日志
>> /set verbose
Set 'verbose' mode.
>>> 您好
<think>

---

您好!

我是由中国的深度求索(DeepSeek)公司开发的智能助手DeepSeek-R1。

我擅长通过思考来帮助您解答复杂的数学、代码和逻辑推理等理工类问题。

如果您有任何疑问或需要 assistance,请随时告诉我!我会尽力为您提供清晰、准确的答案。

total duration:       2.577653196s
load duration:        19.493978ms
prompt eval count:    171 token(s)
prompt eval duration: 131ms
prompt eval rate:     1305.34 tokens/s
eval count:           64 token(s)
eval duration:        2.384s
eval rate:            26.85 tokens/s

数据项说明
total duration:生成响应所花费的时间
load duration:以纳秒为单位加载模型的时间
prompt eval count:提示符中的令牌数量
prompt eval duration:以纳秒为单位评估提示所花费的时间
eval count:响应中的令牌数量
eval duration:以纳秒为单位生成响应的时间
eval rate:每秒生成响应的速度(token/s)= eval count / eval duration

5.2.1.10 /set quiet 关闭对话统计日志
>>> /set quiet
Set 'quiet' mode.
>>> 您好
<think>

您好!

我是由中国的深度求索(DeepSeek)公司开发的智能助手DeepSeek-R1。

我擅长通过思考来帮助您解答复杂的数学、代码和逻辑推理等理工类问题。

如果您有任何疑问或需要 assistance,请随时告诉我!我会尽力为您提供清晰、准确的答案。我会继续努力提供高质量的服务!

>>> Send a message (/? for help)

5.2.2 /clear 清理下上文

在命令行终端中对话是自带上下文记忆功能,如果要清除上下文功能,则使用/clear指令清除上下文内容,例如:前2个问题都关联的,在输入/clear则把前2个问题的内容给清理掉了,第3次提问时则找不到开始的上下文了。

>>> 请帮我选择中午要吃什么?
以下是常吃饭的种类:
1、兰州拉面
2、牛肉拌面
3、热干面

>>> 换以下
以下是常吃饭的种类:

4、刀削面
5、油泼面
6、皮带面

>>> /clear
Cleared session context
>>> 在出1道
很抱歉,我无法理解您的问题。您能否提供更多的背景信息或者问题描述,以便我能更好地帮助您?

5.3 模型调整指令

5.3.1 /load 加载会话或模型

load可以在对话过程中随时切换大模型。

test@...:~$ ollama list
NAME                ID              SIZE      MODIFIED
qwen2:0.5b          6f48b936a09f    352 MB    2 days ago
llava:latest        8dd30f6b0cb1    4.7 GB    2 days ago
deepseek-r1:1.5b    a42b25d8c10a    1.1 GB    2 days ago
test@...:~$ ollama run qwen2:0.5b
>>> 你是谁
我是一台计算机程序,是阿里云开发的一个超大规模语言模型。我是通义千问的主人,您可以通过云平台向我提问相关问题。

>>> /load deepseek-r1:1.5b
Loading model 'deepseek-r1:1.5b'
>>> 你是谁
<think>

</think>

您好!我是由中国的深度求索(DeepSeek)公司开发的智能助手DeepSeek-R1。如您有任何任何问题,我会尽我所能为您提供帮助。

>>> Send a message (/? for help)

5.3.2 /save 保存当前会话

/save命令可以将当前的对话模型保存为一个新的模型。用户可以通过指定一个模型名称来保存当前的会话状态或模型,将其保存为一个文件,以便以后使用。
保存的模型存储在ollama的model文件中,进入下面路径即可看见模型文件test

test@...:~$ ollama run qwen2:0.5b
>>> 你是什么大模型
我是来自OpenAI的GPT-3,我的目标是帮助人类更好地理解、创造和生成内容。我会不断学习和自我完善,以提供更加智能、高效的
服务。

>>>
test@...:~$ ollama run qwen2:0.5b
>>> 你是什么大模型
我是Open Assistant,是由阿里云开发的一个通用模型。

>>> /save test
Created new model 'test'
>>>
test@...:~$ ollama list
NAME                ID              SIZE      MODIFIED
test:latest         3f928c6eb52f    352 MB    10 seconds ago
qwen2:0.5b          6f48b936a09f    352 MB    10 minutes ago
llava:latest        8dd30f6b0cb1    4.7 GB    11 hours ago
deepseek-r1:1.5b    a42b25d8c10a    1.1 GB    14 hours ago
test@...:~$ ollama run test:latest
>>> 你是什么大模型
我是Open Assistant,是由阿里云开发的一个通用模型。

>>> Send a message (/? for help)

6 客户端命令

Ollama客户端还提供了系列命令,来管理本地大模型,接下来就先了解一下相关命令:

test@...:~$ ollama
Usage:
  ollama [flags]
  ollama [command]

Available Commands:
  serve       Start ollama  # 启动服务
  create      Create a model from a Modelfile # 根据Modefile文件创建模型
  show        Show information for a model # 查看模型详情
  run         Run a model # 运行模型
  stop        Stop a running model # 停止一个正在运行的模型
  pull        Pull a model from a registry # 从模型仓库(registry)中拉取模型
  push        Push a model to a registry # 将模型推送到模型仓库(registry)中
  list        List models # 列出所有模型
  ps          List running 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.

在这里插入图片描述

6.1 serve 启动服务

启动 Ollama 服务以在后台运行。

ollama serve

6.2 create 创建模型

使用 Modelfile 来创建一个新模型。你需要提供一个包含模型信息的 Modelfile。

ollama create 模型名称 -f 模型文件

6.3 show 显示模型详情

查看特定模型的详细信息,例如模型参数、模型模板等。

test@...:~$ ollama show --help
Show information for a model

Usage:
  ollama show MODEL [flags]

Flags:
  -h, --help         help for show
      --license      Show license of a model  # 显示模型的许可证
      --modelfile    Show Modelfile of a model # 显示模型的Modelfile
      --parameters   Show parameters of a model # 显示模型的参数
      --system       Show system message of a model # 显示模型的系统消息
      --template     Show template of a model # 显示模型模板
显示模型参数
ollama show deepseek-r1:1.5b --template

6.4 run 运行模型

运行一个已安装的模型,执行某些任务。

test@...:~$ ollama run --help
Run a model

Usage:
  ollama run MODEL [PROMPT] [flags]

Flags:
      --format string      Response format (e.g. json)
  -h, --help               help for run
      --insecure           Use an insecure registry
      --keepalive string   Duration to keep a model loaded (e.g. 5m)
      --nowordwrap         Don't wrap words to the next line automatically
      --verbose            Show timings for response

Environment Variables:
      OLLAMA_HOST                IP Address for the ollama server (default 127.0.0.1:11434)
      OLLAMA_NOHISTORY           Do not preserve readline history

6.4.1 运行模型

ollama run deepseek-r1:1.5b

6.4.2 输出格式

ollama run deepseek-r1:1.5b --format json

Ollama支持多种输出格式,包括不限于JSON

6.4.3 持续加载模型

ollama run llava --keepalive 1h

默认情况下,模型在生成响应后会在内存中保留 5 分钟。这允许在您多次请求 LLM 时获得更快的响应时间。然而,您可能希望在 5 分钟内释放内存,或者希望模型无限期地保留在内存中。使用 keep_alive 参数与 /api/generate 或 /api/chat API 端点,可以控制模型在内存中保留的时间。
keep_alive 参数可以设置为:
1、一个持续时间字符串(例如 10m24h
2、一个以秒为单位的数字(例如 3600
3、任何负数,这将使模型无限期地保留在内存中(例如 -1-1m
4、0这将使模型在生成响应后立即卸载

例如:要预加载模型并使其保留在内存中

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

或者,可以通过在启动 Ollama 服务器时设置环境变量==OLLAMA_KEEP_ALIVE ==来更改所有模型在内存中保留的时间。OLLAMA_KEEP_ALIVE 变量使用与上述 keep_alive 参数相同的参数类型。
如果希望覆盖 OLLAMA_KEEP_ALIVE 设置,请使用 keep_alive API 参数与 /api/generate 或 /api/chat API 端点。

6.5 stop 停止服务

停止正在运行的 Ollama 服务

ollama stop deepseek-r1:1.5b

6.6 pull 拉取模型

从模型库中下载模型

test@...:~$ ollama pull --help
Pull a model from a registry

Usage:
  ollama pull MODEL [flags]

Flags:
  -h, --help       help for pull
      --insecure   Use an insecure registry

Environment Variables:
      OLLAMA_HOST                IP Address for the ollama server (default 127.0.0.1:11434)

案例:

ollama pull deepseek-r1:1.5b --insecure

ollama pull --insecure命令用于在拉取模型时忽略SSL证书验证。在使用Ollama框架拉取模型时,如果遇到SSL证书验证问题,可以使用该命令来忽略证书验证,确保模型能够成功拉取。
使用场景和示例
在拉取模型时,如果遇到SSL证书验证错误,可以使用–insecure参数来忽略证书验证。

6.7 push 推送模型

将自定义模型推送到模型库。

test@...:~$ ollama push --help
Push a model to a registry

Usage:
  ollama push MODEL [flags]

Flags:
  -h, --help       help for push
      --insecure   Use an insecure registry

Environment Variables:
      OLLAMA_HOST                IP Address for the ollama server (default 127.0.0.1:11434)
ollama push test --insecure

关于—insecure参数参考pull。

6.8 list 列出模型

查看本地下载的大模型列表,也可以使用简写ls。

test@...:~$ ollama list
NAME                ID              SIZE      MODIFIED
test:latest         3f928c6eb52f    352 MB    4 hours ago
qwen2:0.5b          6f48b936a09f    352 MB    4 hours ago
llava:latest        8dd30f6b0cb1    4.7 GB    14 hours ago
deepseek-r1:1.5b    a42b25d8c10a    1.1 GB    18 hours ago

列表字段说明
NAME:名称
ID:大模型唯一ID
SIZE:大模型大小
MODIFIED:本地存活时间

6.9 ps 列出所有在运模型

查看当前运行的大模型列表。

test@...:~$ ollama ps
NAME                ID              SIZE      PROCESSOR    UNTIL
deepseek-r1:1.5b    a42b25d8c10a    1.6 GB    100% CPU     4 minutes from now

列表字段说明
NAME:大模型名称
ID:唯一ID
SIZE:模型大小
PROCESSOR:资源占用
UNTIL:运行存活时长

6.10 cp 复制模型

ollama cp命令只是对模型重命名,指向的还是原来的模型文件,并不能直接加载多个相同的模型使用。

test@...:~$ ollama list
NAME                ID              SIZE      MODIFIED
qwen2:0.5b          6f48b936a09f    352 MB    4 hours ago
llava:latest        8dd30f6b0cb1    4.7 GB    15 hours ago
deepseek-r1:1.5b    a42b25d8c10a    1.1 GB    18 hours ago
test@...:~$ ollama cp qwen2:0.5b qwencp
copied 'qwen2:0.5b' to 'qwencp'
test@...:~$ ollama list
NAME                ID              SIZE      MODIFIED
qwencp:latest       6f48b936a09f    352 MB    4 seconds ago
qwen2:0.5b          6f48b936a09f    352 MB    4 hours ago
llava:latest        8dd30f6b0cb1    4.7 GB    15 hours ago
deepseek-r1:1.5b    a42b25d8c10a    1.1 GB    18 hours ago

6.11 rm 删除模型

删除本地大模型。

ollama rm qwencp:latest

6.12 help 帮助信息

使用ollama [command] –help查看指令的更多信息。

7 开通远程访问

如果访问虚拟机中的Ollama API,需要开通Ollama的远程访问权限。

注意:
如果通过WSL部署Ollama,则 http://127.0.0.1:11434/ 就能访问。如果开启了远程访问权限,则需要访问 http://虚拟机IP:11434。

7.1 增加环境变量

  1. 在/etc/profile中增加环境变量。
export OLLAMA_HOST=0.0.0.0:11434
export OLLAMA_ORIGINS=*
  1. 然后通过一下命令,生效环境变量:
sudo source /etc/profile

7.2 修改服务配置

修改服务文件/etc/systemd/system/ollama.service内容如下:

[Unit]
Description=Ollama Service
After=network-online.target

[Service]
ExecStart=/usr/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="PATH=$PATH"
Environment="OLLAMA_MODELS=/home/test/ollama"
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_ORIGINS=*"

[Install]
WantedBy=default.target

7.3 生效修改的配置

# 重新加载系统服务的配置文件
sudo systemctl daemon-reload
# 重启服务
sudo systemctl restart ollama

7.4 开放防火墙端口

sudo firewall-cmd --zone=public --add-port=11434/tcp --permanent
sudo firewall-cmd --reload

8 API

Ollama对客户端相关的命令也提供API操作的接口,方便在企业应用中通过程序类操作私有大模型。
具体可查阅:https://github.com/ollama/ollama/blob/main/docs/api.md

注意:
/api/generate 内容生成接口
它是一个相对基础的文本生成端点,主要用于根据给定的提示信息生成一段连续的文本。这个端点会基于输入的提示,按照模型的语言生成能力输出一段完整的内容,更侧重于单纯的文本生成任务。
生成过程不依赖于上下文的历史对话信息,每次请求都是独立的,模型仅依据当前输入的提示进行文本生成。
/api/chat 聊天对话接口
该端点专为模拟聊天场景设计,具备处理对话上下文的能力。它可以跟踪对话的历史记录,理解对话的上下文信息,从而生成更符合对话逻辑和连贯性的回复。
更注重模拟真实的人机对话交互,能够根据历史对话和当前输入生成合适的回应,适用于构建聊天机器人等交互式应用。

Logo

一站式 AI 云服务平台

更多推荐