一、关于Ollama
1.1 简介
Ollama是一个专为在本地环境中运行和定制大型语言模型而设计的工具。它提供了一个简单而高效的接口,用于创建、运行和管理这些模型,同时还提供了一个丰富的预构建模型库,可以轻松集成到各种应用程序中。Ollama的目标是使大型语言模型的部署和交互变得简单,无论是对于开发者还是对于终端用户。
Get up and running with large language models.
Ollama官网
1.2 功能特点
- 能直接运行大模型,与大模型进行对话。
- ollama 命令具有管理大模型的能力。
- 利用 cpu 运行大模型。
- 本地大模型安全可靠。
- 终端直接开始聊天。
- 社区提供了支持 web api 方式访问 WebUI。
本地运行能力:Ollama允许用户在本地机器上部署和运行语言模型,无需依赖外部服务器或云服务,这极大地提高了数据处理的隐私性和安全性。
多平台支持:Ollama支持多种操作系统,包括macOS、Windows和Linux,以及Docker环境,使得不同平台的用户都能轻松使用。
灵活的模型自定义:用户可以通过Ollama的Modelfile来定制模型参数和行为,实现模型的个性化设置,满足特定的应用需求。
丰富的API和库支持:Ollama提供了Python和JavaScript库,以及CLI和REST API,方便开发者集成到各种应用中。
模型库和导入支持:Ollama支持从多种格式导入模型,如GGUF、PyTorch和Safetensors,同时也提供了一个模型库,方便用户选择和使用。
Ollama支持多种操作系统,包括但不限于:
- macOS:适用于所有现代版本的macOS。
- Windows:支持Windows 10及更高版本。
- Linux:支持多种Linux发行版,如Ubuntu、Fedora等。
- Docker:通过Docker容器,Ollama可以在几乎任何支持Docker的环境中运行。
这种广泛的操作系统支持确保了Ollama的可用性和灵活性,使得不同环境下的用户都能轻松使用。
二、下载安装
2.1 下载
通过如下链接下载
Download Ollama on Windows
(由于网络原因,下载比较慢或失败,可私信获取安装包)
2.2 安装
双击安装包安装
2.3 验证
进入cmd或PowerShell界面,输入如下命令,显示版本则安装成功
Ollama -v
三、大模型下载
下面介绍三种通过 Ollama 下载大模型到本地方式:
- 方式一:直接通过 Ollama 远程仓库下载,这是最直接的方式,也是最推荐、最常用的方式
- 方式二:如果已经有 GGUF 模型权重文件了,不想重新下载,也可以通过 Ollama 把该文件直接导入到本地(不推荐、不常用)
- 方式三:如果已经有 safetensors 模型权重文件,也不想重新下载,也可以通过 Ollama 把该文件直接导入到本地(不推荐、不常用)
3.1 远程仓库大模型列表
通过如下链接,进入ollama大模型仓库
library
这里以通义大模型为例,可以看到不同参数,对应模型大小。
3.2 通过命令执行下载并运行大模型
这里选择通义0.5b参数的模型:
下载命令
ollama pull qwen2:0.5b
下载+运行命令
ollama run qwen2:0.5b
3.3 测试—大模型对话
可以看到大模型在本地运行起来,并可以进行对话。后续教程会分享大模型应用,集成到java springboot项目中。
四、Ollama命令
Ollama作为一个开源的大型语言模型服务工具,提供了一系列的命令来帮助用户安装、配置、运行和管理大型语言模型。以下是一些基本的Ollama命令介绍:
【展示本地大模型列表:ollama list
】
>ollama list
NAME ID SIZE MODIFIED
gemma2:9b c19987e1e6e2 5.4 GB 7 days ago
qwen2:7b e0d4e1163c58 4.4 GB 10 days ago
可以看到,上述有 2 个大模型,它们的名称(NAME)分别为gemma2:9b和qwen2:7b。
【删除单个本地大模型:ollama rm 本地模型名称
】
>ollama rm gemma2:9b
deleted 'gemma2:9b'>ollama list
NAME ID SIZE MODIFIED
qwen2:7b e0d4e1163c58 4.4 GB 10 days ago
老牛同学通过rm
命令删除了gemma2:9b大模型之后,再次通过list
命令查看,本地只有qwen2:7b一个大模型了。
【启动本地模型:ollama run 本地模型名
】
>ollama run qwen2:0.5b
>>>
启动成功之后,就可以通过终端对话界面进行对话了(本命令下面也会讲到,其他详细暂且忽略)
【查看本地运行中模型列表:ollama ps
】
>ollama ps
NAME ID SIZE PROCESSOR UNTIL
qwen2:0.5b 6f48b936a09f 693 MB 100% CPU 4 minutes from now
通过ps
命名可以看到,老牛同学本地qwen2:0.5b大模型正在运行中。
【复制本地大模型:ollama cp 本地存在的模型名 新复制模型名
】
>ollama cp qwen2:0.5b Qwen2-0.5B
copied 'qwen2:0.5b' to 'Qwen2-0.5B'>ollama list
NAME ID SIZE MODIFIED
Qwen2-0.5B:latest 6f48b936a09f 352 MB 4 seconds ago
qwen2:0.5b 6f48b936a09f 352 MB 29 minutes ago
qwen2:7b e0d4e1163c58 4.4 GB 10 days ago
上面cp
命令,把本地qwen2:0.5b复制了一份,新模型名为Qwen2-0.5B