一、Ollama是什么

Ollama:是一款旨在简化大型语言模型本地部署和运行过程的开源软件。
地址:Ollama

Ollama提供了一个轻量级、易于扩展的框架,让开发者能够在本地机器上轻松构建和管理LLMs(大型语言模型)。通过Ollama,开发者可以访问和运行一系列预构建的模型,或者导入和定制自己的模型,无需关注复杂的底层实现细节。
ollama

Ollama的主要功能包括快速部署和运行各种大语言模型,如Llama 2、Code Llama等。它还支持从GGUF、PyTorch或Safetensors格式导入自定义模型,并提供了丰富的API和CLI命令行工具,方便开发者进行高级定制和应用开发。

二、Ollama特点

  • 一站式管理
    • Ollama将模型权重、配置和数据捆绑到一个包中,定义成Modelfile,从而优化了设置和配置细节。
    • 包括GPU使用情况。这种封装方式使得用户无需关注底层实现细节,即可快速部署和运行复杂的大语言模型。
  • 热加载模型文件
    • 支持热加载模型文件,无需重新启动即可切换不同的模型,
    • 提高了灵活性,还显著增强了用户体验。
  • 丰富的模型库:提供多种预构建的模型,如Llama 2、Llama 3、通义千问,方便用户快速在本地运行大型语言模型。
  • 多平台支持:支持多种操作系统,包括Mac、Windows和Linux,确保了广泛的可用性和灵活性。
  • 无复杂依赖:优化推理代码减少不必要的依赖,可以在各种硬件上高效运行。包括纯CPU推理和Apple Silicon架构。
  • 资源占用少:Ollama的代码简洁明了,运行时占用资源少,使其能够在本地高效运行,不需要大量的计算资源。

三、Ollama下载与安装

Ollama下载

Ollama共支持三种平台:

Windows平台安装

  • Windows安装
  第一步:在OllamaSetup.exe 找到执行程序
  
  第二步:右键以管理员身份运行
  
  第三步:点击install
  • 验证安装成功
  第一步:win+R组合键  输入cmd
  
  第二步: 输入命令  ollama -v
  
  第三步:显示ollama版本号 ollama version is *.*.*
  
  即安装成功!

Linux下载与安装

  • 一键安装

    Ollama在Linux上提供了简便的安装命令,但是过程中需要下载大量的数据,比较慢:

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

四、Ollama命令

1、Ollama客户端命令

Ollama客户端还提供了系列命令,来管理本地大模型
客户端命令

1、run 命令

run命令主要用于运行一个大模型,命令格式是:

ollama run MODEL[:Version] [PROMPT] [flags]

# 运行通义千问命令:
ollama run qwen2:0.5b
# deepseek模型
ollama run deepseek-r1:1.5b

[:Version] 可以理解成版本,而版本信息常常以大模型规模来命名,可以不写,不写则默认为latest

ollama run qwen2
# 等同
ollama run qwen2:latest

[PROMPT] 参数是用户输入的提示词

>>>  ollama run qwen2:0.5b 您好

在这里插入图片描述

[flags] 指定运行时的参数

Flags:
      --format string      指定运行的模型输出格式 (比如. json)
      --insecure           使用非安全模,比如在下载模型时会忽略https的安全证书
      --keepalive string   指定模型在内存中的存活时间
      --nowordwrap         关闭单词自动换行功能
      --verbose            开启统计日志信息

例如,在启动时增加 --verbose参数,则在对话时,自动增加统计token信息:

>>> ollama run qwen2:0.5b --verbose
>>> 您好
欢迎光临,我可以为您提供帮助。有什么问题或需要帮助的地方?

total duration:       1.229917477s
load duration:        3.027073ms
prompt eval count:    10 token(s)
prompt eval duration: 167.181ms
prompt eval rate:     59.82 tokens/s
eval count:           16 token(s)
eval duration:        928.995ms
eval rate:            17.22 tokens/s

2、show 命令

不用运行大模型,查看模型的信息,与之前所学的/show功能类似。

>>>ollama show -h
Show information for a model

Usage:
  ollama show MODEL [flags]

Flags:
  -h, --help         查看使用帮助
      --license      查看模型的许可信息
      --modelfile    查看模型的制作源文件Modelfile
      --parameters   查看模型的内置参数信息
      --system       查看模型的内置Sytem信息
      --template     查看模型的提示词模版

例如,查看提示词模版:

[~]# ollama show qwen2 --template
{{ if .System }}<|im_start|>system
{{ .System }}<|im_end|>
{{ end }}{{ if .Prompt }}<|im_start|>user
{{ .Prompt }}<|im_end|>
{{ end }}<|im_start|>assistant
{{ .Response }}<|im_end|>

3、pull 命令

查询模型名称的网站:https://ollama.com/

从远程下载一个模型,命令格式是:

ollama pull MODEL[:Version] [flags]

[:Version] 可以理解成版本,但在这里理解成大模型规模,可以不写,不写则模式成latest

ollama pull qwen2
#等同
ollama pull qwen2:latest

[flags] 参数,目前只有一个–insecure参数,用于来指定非安全模式下载数据

ollama pull qwen2 --insecure

4、list/ls 命令

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

[~]# ollama list
NAME                    ID              SIZE    MODIFIED       
qwen2:0.5b            6f48b936a09f    352 MB  6 weeks ago   

列表字段说明:

  • NAME:名称
  • ID:大模型唯一ID
  • SIZE:大模型大小
  • MODIFIED:本地存活时间

注意:在ollama的其它命令中,不能像docker一下使用ID或ID缩写,这里只能使用大模型全名称。

5、ps 命令

查看当前运行的大模型列表,PS命令没其它参数

[root@bogon ~]# ollama ps
NAME                    ID              SIZE    PROCESSOR       UNTIL                   
qwen2:0.5b  6f48b936a09f   772 MB   100% CPU    2 minutes from now

列表字段说明:

  • NAME:大模型名称
  • ID:唯一ID
  • SIZE:模型大小
  • PROCESSOR:资源占用
  • UNTIL:运行存活时长

6、rm 命令

删除本地大模型,RM命令没其它参数

[~]# ollama rm qwen2:0.5b
deleted 'qwen2:0.5b'

2、Ollama对话指令

Ollama终端中提供了一系列指令,可以用来调整和控制对话模型
在这里插入图片描述

1、 /?

该指令主要是列出支持的指令列表

[~]#  ollama run qwen2:0.5b
>>> /?
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.

2、/bye 指令

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

[~]#  ollama run qwen2:0.5b
>>> 您好
你好!有什么可以帮助您的吗?

>>> /bye
[~]# 

3、/show指令

/show 指令:用于查看当前模型详细信息

[~]#  ollama run qwen2:0.5b
>>> /show
Available Commands:
   /show info         查看模型的基本信息
   /show license      查看模型的许可信息
   /show modelfile    查看模型的制作源文件Modelfile
   /show parameters   查看模型的内置参数信息
   /show system       查看模型的内置Sytem信息
   /show template     查看模型的提示词模版
/show info

查看模型的基本信息

>>> /show info
Model details:
Family              qwen2		模型名称
Parameter Size      294.03M		模型大小
Quantization Level  Q4_0		模型量化级别
/show license

查看模型的许可信息—开源软件的许可协议

>>> /show license

                                Apache License
                          Version 2.0, January 2004
                       http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
   ............................................................
/show modelfile

查看模型的制作源文件Modelfile

modelfile :文件是用来制作私有模型的脚步文件

>>> /show modelfile
# Modelfile generated by "ollama show"
# To build a new Modelfile based on this, replace FROM with:
# FROM qwen2:0.5b

FROM /root/ollama/blobs/sha256-8de95da68dc485c0889c205384c24642f83ca18d089559c977ffc6a3972a71a8
TEMPLATE "{{ if .System }}<|im_start|>system
{{ .System }}<|im_end|>
{{ end }}{{ if .Prompt }}<|im_start|>user
{{ .Prompt }}<|im_end|>
{{ end }}<|im_start|>assistant
{{ .Response }}<|im_end|>
"
PARAMETER stop <|im_start|>
PARAMETER stop <|im_end|>
LICENSE """
......................................................................
/show parameters

查看模型的内置参数信息

>>> /show parameters
Model defined parameters:
stop                           "<|im_start|>"
stop                           "<|im_end|>"
/show system

查看模型的内置system信息—system常常用来定一些对话角色扮演

>>> /show system
No system message was specified for this model.
/show template 查看模型的提示词模版

template:是最终传入大模型的字符串模版,模版中的内容由上层应用动态传入

>>> /show template
{{ if .System }}<|im_start|>system
{{ .System }}<|im_end|>
{{ end }}{{ if .Prompt }}<|im_start|>user
{{ .Prompt }}<|im_end|>
{{ end }}<|im_start|>assistant
{{ .Response }}<|im_end|>

4、/? shortcuts 指令

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

>>> /? 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、“”" 指令

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

>>> """
... 您好
... 你是什么模型?
... """ 
我是一个计算机程序,可以回答您的问题、提供信息和执行任务。请问您有什么问题或者指令想要我帮助您?

6、/set 指令

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

>>> /set
Available Commands:
  /set parameter ...     设置对话参数
  /set system <string>   设置系统角色
  /set template <string> 设置推理模版
  /set history           开启对话历史
  /set nohistory         关闭对话历史
  /set wordwrap          开启自动换行
  /set nowordwrap        关闭自动换行
  /set format json       输出JSON格式
  /set noformat          关闭格式输出
  /set verbose           开启对话统计日志
  /set quiet             关闭对话统计日志
/set parameter

设置对话参数

>>> /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 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将停止生成文本并返回 string stop “AI assistant:”
num_predict 生成文本时要预测的最大标记数。(默认值:128,-1 =无限生成,-2 =填充上下文) 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
num_gpu 设置缓存到GPU显存中的模型层数 int 自动计算

7、/clear 指令

在命令行终端中对话是自带上下文记忆功能,如果要清除上下文功能,则使用/clear指令清除上下文内容

>>> 请帮我出1道python list的单选题 
以下是一些关于python List的单选题:

1. 在python中,List是哪一种数据结构?
2. 一个列表对象可以包含哪些类型的元素?

>>> 再出1道
以下是一些关于Java List的单选题:

3. 一个列表对象可以包含哪些类型?

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

8、/load 指令

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

>>> 你是什么大模型
我是一个基于开放AI平台的模型,拥有一个强大的数学推理能力,并且在各种自然语言处理任务上都表现优秀。我可以回答您提出的问题,也可以提供与主题相关的信息和建议。如果您有任何问题或需要帮助,
请随时告诉我!

>>> /load deepseek-coder
Loading model 'deepseek-coder'
>>> 你是什么大模型
我是由中国的深度求索(DeepSeek)公司开发的编程智能助手,名为 Deepseek Coder。我主要用于解答和协助计算机科学相关的问题、问题解决方案等任务。我的设计目标是提供最全面准确的高质量服务来帮
助用户理解复杂的新技术或概念并迅速找到它们在实际应用中的实现方法或者原理所在的地方。

9、/save 指令

可以把当前对话模型存储成一个新的模型

>>> /save test
Created new model 'test'

保存的模型存储在ollama的model文件中,进入下面路径即可看见模型文件test:

[]# pwd
/root/ollama/manifests/registry.ollama.ai/library
[r]# ls
deepseek-coder  qwen2  test

9、JSON格式输出

>>> /set format json
Set format to 'json' mode.
>>> 您好
{"response":"你好,欢迎光临,请问有什么我可以帮助您的吗?"}

>>> /set noformat
Disabled format.
>>> 您好
Hello! How can I assist you?

10、输出对话统计日志

>>> /set verbose
Set 'verbose' mode.
>>> 您好
您好!我需要您的信息,以便回答您的问题。请问您能告诉我更多关于这个主题的信息吗?

total duration:       1.642906162s			总耗时
load duration:        3.401367ms			加载模型数据耗时
prompt eval count:    11 token(s)			提示词token消耗数量
prompt eval duration: 196.52ms				提示词处理耗时
prompt eval rate:     55.97 tokens/s		提示词处理速率
eval count:           24 token(s)			响应token消耗数量
eval duration:        1.304188s				响应处理耗时
eval rate:            18.40 tokens/s		响应处理速率

Logo

免费领 150 小时云算力,进群参与显卡、AI PC 幸运抽奖

更多推荐