1.什么是Ollama?

Ollama是一个开源的大语言模型管理工具,具有以下特点:

  • 简单易用:提供简单的命令行接口
  • 本地部署:模型运行在本地,保护数据隐私
  • 跨平台支持:支持Windows、macOS、Linux
  • 丰富的模型库:支持多种主流大语言模型
  • Docker支持:可以容器化部署

2. Linux 本地部署Ollama

(1)环境准备

在开始部署之前,先检查一下系统环境:

# 检查系统信息
cat /etc/os-release
uname -m# 检查硬件资源(很重要!)
free -h          # 查看内存
df -h            # 查看磁盘空间
lscpu            # 查看CPU信息# 如果有GPU,检查CUDA支持
nvidia-smi       # NVIDIA GPU
rocminfo         # AMD GPU(如果适用)

(2)快速安装

在 Linux 上安装 Ollama 非常便捷,官方提供了一键安装脚本。这个脚本会自动检测您的系统环境(如 Ubuntu, CentOS 等),并自动下载并安装 Ollama。

# 最简单的安装方式(适用于大多数Linux发行版)
curl -fsSL https://ollama.ai/install.sh | sh# 安装完成后验证
ollama --version

验证时,如果看到类似 ollama version is 0.x.x 的输出,说明安装成功。

离线下载

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

也可以直接浏览器访问https://ollama.com/install.sh,将脚本拷贝到文件install.sh中,再使用

sh install.sh命令安装。

3.docker镜像方式部署Ollama

ollama官方提供了镜像,可以直接启动容器使用,docker安装教程可参考docker安装和使用

(1)下载镜像:

docker pull ollama/ollama

(2)启动容器:

# 运行容器
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama# GPU加速运行容器
docker run -d --gpus=all -v ollama/.ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

(3)进入容器启动模型:

docker exec -it ollama bashollama run deepseek-r1:1.5b

(4)多卡运行

ollama默认使用单卡进行部署,使用多卡推理需要设置环境变OLLAMA_SCHED_SPREAD=1,对于docker容器部署的ollama,直接在启动命令里添加环境变量即可,对于Linux启动的ollama,可手动更改环境变量,更改方法可参考Linux设置环境教程

docker run -d --gpus=all -e OLLAMA_SCHED_SPREAD=1 -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

4.Ollama的基本使用

(1)启动服务

ollama serve

(2)模型管理

下载模型

查看已下载模型

# 列出所有模型
ollama list# 查看模型详情
ollama show deepseek-r1:1.5b

删除模型

# 删除指定模型
ollama rm deepseek-r1:1.5b

(3)模型下载

ollama pull <model_name># 例如
ollama pull deepseek-r1:1.5b

需要下载的模型,可去官网Ollama上去查看,点击左上角的Models,点击需要下载的模型

复制模型名称

(4)模型运行

命令行交互

# 启动模型交互
ollama run deepseek-r1:1.5b# 带参数运行
ollama run deepseek-r1:1.5b "你好,介绍一下你自己"

API调用

# 使用curl调用API
curl http://localhost:11434/api/generate -d '{"model": "deepseek-r1:1.5b","prompt": "你好世界","stream": false
}'

(5)Python集成

安装依赖

pip install ollama

基本使用示例

import ollama# 简单对话
response = ollama.chat(model='deepseek-r1:1.5b', messages=[{'role': 'user','content': '你好,介绍一下Python',},
])
print(response['message']['content'])# 流式输出
response = ollama.generate(model='deepseek-r1:1.5b',prompt='写一首关于春天的诗',stream=True,
)for chunk in response:print(chunk['response'], end='', flush=True)

高级应用

import ollama
import jsonclass OllamaClient:def __init__(self, model='deepseek-r1:1.5b'):self.model = modeldef chat(self, messages):"""聊天对话"""response = ollama.chat(model=self.model, messages=messages)return response['message']['content']def generate(self, prompt, **kwargs):"""文本生成"""response = ollama.generate(model=self.model, prompt=prompt, **kwargs)return response['response']def embed(self, text):"""文本嵌入"""response = ollama.embeddings(model=self.model, prompt=text)return response['embedding']# 使用示例
client = OllamaClient('deepseek-r1:1.5b')
result = client.chat([{'role': 'user', 'content': '什么是人工智能?'}
])
print(result)

5. Ollama 后台部署方式

Ollama 服务 (ollama serve) 通常在安装后会自动作为系统服务启动并后台运行,但了解手动管理方式也很重要。

(1)默认后台运行

安装完成后,Ollama 服务通常已经启动。您可以使用以下命令检查其状态:

# 对于使用 systemd 的系统 (如 Ubuntu, CentOS)
sudo systemctl status ollama

(2)使用 nohup 手动后台启动(不推荐长期使用)

如果您需要手动启动 ollama serve 并让它在终端关闭后继续运行,可以使用 nohup

nohup ollama serve > ollama.log 2>&1 &

这会将服务在后台启动,并将输出日志保存到 ollama.log 文件中。

6. Ollama 同时运行多个模型

Ollama 的现代版本(如 0.2 及以上)支持同时加载和运行多个不同的模型,以及处理单个模型的并发请求。

(1)配置环境变量

要启用多模型并行,需要在启动 ollama serve 时设置以下环境变量:

  • OLLAMA_MAX_LOADED_MODELS:设置可以同时加载到内存中的模型最大数量。
  • OLLAMA_NUM_PARALLEL:设置单个模型可以同时处理的请求数量。

 更改环境变量方法可参考Linux设置环境教程

(2)示例配置(Docker 方式)

以下命令启动一个 Docker 容器,并配置它可以同时加载最多 2 个模型,每个模型可以并行处理 3 个请求:

docker run -d \-v ollama:/root/.ollama \-p 11434:11434 \-e OLLAMA_MAX_LOADED_MODELS=2 \-e OLLAMA_NUM_PARALLEL=3 \--name ollama \ollama/ollama

注意: 同时运行多个模型会显著增加内存(RAM)消耗。请确保您的系统有足够的资源。

(3)运行多个模型

配置好环境变量并启动服务后,就可以像平常一样运行不同的模型,Ollama 会根据配置和系统资源自动管理模型的加载和卸载。

7. Ollama 的管理命令

Ollama 提供了丰富的命令行接口 (CLI) 来方便地管理模型和服务。

常用管理命令列表

  • ollama serve:启动 Ollama 服务(通常后台自动运行)。
  • ollama pull <model_name>:从 Ollama 库下载指定模型。
  • ollama run <model_name>:运行指定模型,可以进行交互式对话。
  • ollama ls:列出本地已安装的所有模型。
  • ollama ps:查看当前正在运行的模型。
  • ollama show <model_name>:显示模型的详细信息。
  • ollama cp <source_model> <destination_model>:复制模型。
  • ollama rm <model_name>:删除本地指定模型。
  • ollama create <model_name> -f <Modelfile>:使用 Modelfile 创建自定义模型。

下载模型:

    ollama pull deepseek-r1:1.5b

    列出模型:

    ollama ls

    注:ollama listollama ls 是完全相同的命令

    运行模型(交互式):

    ollama run deepseek-r1:1.5b
    # 进入交互模式后,可以输入问题,例如:
    # >>> 你好,deepseek!
    # <<< 你好!很高兴见到你!有什么我可以帮你的吗?
    # 使用 /bye 或 Ctrl+C 退出交互模式

    查看运行中的模型:

    ollama ps

    显示模型信息:

    ollama show deepseek-r1:1.5b

    删除模型:

    ollama rm deepseek-r1:1.5b

    本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
    如若转载,请注明出处:http://www.pswp.cn/pingmian/95245.shtml
    繁体地址,请注明出处:http://hk.pswp.cn/pingmian/95245.shtml
    英文地址,请注明出处:http://en.pswp.cn/pingmian/95245.shtml

    如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

    相关文章

    云计算学习100天-第41天 -普罗米修斯2

    目录 五、添加被监控端 1、在web1[192.168.88.100]上部署node exporter 2、在Prometheus服务器上添加监控节点 3、浏览器查看添加结果 六、Grafana的部署 概述 部署步骤 七、监控MySQL数据库 1、配置MySQL 2、配置mysql exporter 3、配置prometheus监控mysql 五、添…

    集成电路学习:什么是SVM支持向量机

    SVM:支持向量机 SVM,即支持向量机(Support Vector Machine),是一种常用的机器学习算法,特别适用于分类和回归问题。以下是对SVM的详细解析: 一、SVM的基本原理 SVM的基本思想是在特征空间中寻找一个最优的超平面,使得不同类别的样本能够被最大化地分开。这个最优…

    盲盒抽谷机小程序开发:如何用3D技术重构沉浸式体验?

    在盲盒经济中&#xff0c;“沉浸感”是提升用户停留时长与转化率的核心武器。某品牌通过3D扭蛋机旋转、卡牌翻转特效&#xff0c;使用户停留时长从15秒延长至45秒&#xff0c;转化率提升25%&#xff1b;另一品牌上线AR试戴功能后&#xff0c;单次抽谷时长延长至2分钟&#xff0…

    集采与反腐双重压力下,医药销售的破局之道:从资源依赖到价值重构

    在医药行业进入集采常态化与反腐纵深推进的新阶段&#xff0c;“资源匮乏”“拜访受阻” 成为萦绕在众多医药销售人员心头的难题。当传统的资金投入、学术活动等资源型打法逐渐失效&#xff0c;行业正面临一场从 “资源驱动” 到 “价值驱动” 的深刻变革。那些曾在市场中创造过…

    Elasticsearch常用命令(未完)

    网上针对es常用命令好多都是写的感觉非常复杂难以理解&#xff0c;所以我还是自己整理了一下相关的常用命令。 对es输入指令可以用很多种方法比如用es的谷歌浏览器插件&#xff0c;亦或者postman&#xff0c;我个人比较喜欢用postman比较简单直接 1.删除指定索引下的所有数据…

    【系统架构设计(七)】 需求工程之:面向对象需求分析方法:统一建模语言(UML)(下)

    文章目录一、用例图1. 用例模型建立的系统化流程第一步&#xff1a;识别参与者第二步&#xff1a;合并需求获得用例第三步&#xff1a;细化用例描述第四步&#xff1a;调整用例模型&#xff08;可选步骤&#xff09;2. 用例之间的关系类型二、类图与对象图概念类之间的关系三、…

    数据结构——树(04二叉树,二叉搜索树专项,代码练习)

    文章目录一、概念二、构造1.1先序序列 构造BST1.2中序序列 转换为BST1.3中序序列链表转换为BST1.4BST转换为中序序列链表1.7BST的序列化和反序列化1.6BST的种数二、BST的增删改查2.1验证是否为BST2.2查找值为val的节点2.3插入一个值为val的节点2.4删除一个值为val的节点2.5恢复…

    ArkUI核心功能组件使用

    1.Tabs&#xff08;选项卡&#xff09; 1.1 概述 Tabs组件的页面组成包含两个部分&#xff0c;分别是TabContent和TabBar。TabContent是内容页&#xff0c;TabBar是导航页签栏。 TabBar是导航页签栏&#xff0c;页面结构如下图所示&#xff0c;根据不同的导航类型&#xff0c;布…

    Qt5 多媒体大纲

    一、入门准备 基础知识 熟悉 Qt 的信号槽机制、事件循环 掌握 .pro 工程文件配置&#xff08;QT multimedia multimediawidgets&#xff09; 熟悉常见的音视频格式与编解码器基础 环境配置 Qt Creator Qt 5.x 确认安装了 multimedia 模块与 mediaservice 插件 熟悉调试…

    音频数据集采样率选择建议

    你好&#xff01;这是一个非常棒且非常重要的问题&#xff0c;在音频机器学习项目中&#xff0c;选择合适的采样率是平衡计算效率和模型性能的关键。 直接回答你的问题&#xff1a;将音频下采样到 800 Hz 对于绝大多数音频分类任务来说都太低了&#xff0c;几乎肯定会丢失大量关…

    深度学习系列 | Seq2Seq端到端翻译模型

    一、通俗总结Seq2Seq 就像一个 “序列转换器”&#xff1a;先把输入的一段话 “压缩成一个核心意思”&#xff0c;再根据这个意思 “一句句生成另一段话”&#xff0c;能搞定翻译、听写这类 “输入输出不一样长” 的任务&#xff0c;但太长的内容可能记不全&#xff0c;还容易越…

    Spring MVC BOOT 中体现的设计模式

    Spring:创建型:单例模式:Bean默认就是单例的&#xff0c;是饿汉模式的&#xff0c;但是可以通过Lazy设置为懒汉工厂模式&#xff1a;可自定义FactroyBean&#xff0c;实现Bean自己的生产工厂结构型:代理模式&#xff1a;AOP就是典型的动态代理&#xff0c;有jdk和cglib两种实现…

    Chrome浏览器调用ActiveX控件之allWebOffice在线编辑控件

    背景 allWebOffice控件能够实现在浏览器窗口中在线操作文档的应用&#xff08;阅读、编辑、保存等&#xff09;&#xff0c;支持编辑文档时保留修改痕迹&#xff0c;支持书签位置内容动态填充&#xff0c;支持公文套红&#xff0c;支持文档保护控制等诸多办公功能&#xff0c;本…

    嵌入式 - 硬件:51单片机

    本节重点1. MCU、CPU、GPU、NPU、SOC、MPU、FPU2. 内存、外存的区别3. RAM和ROM的区别&#xff0c;单片机RAM大小4. 三大总线及其特点5. 发光二极管分类及其特点6. 数码管显示原理一、嵌入式以应用为中心&#xff0c;以计算机技术为基础&#xff0c;软硬件可裁剪的专用计算机系…

    Java Spring Boot 中 Redis 缓存穿透问题排查与解决方案

    前言 作为一名普通的 Java 程序开发者&#xff0c;日常开发中难免会遇到一些看似简单但实际排查起来非常棘手的问题。在最近的一个项目中&#xff0c;我遇到了一个 Redis 缓存穿透的问题&#xff0c;导致系统在高并发下性能急剧下降&#xff0c;甚至出现服务响应超时的情况。这…

    Ubuntu下配置并远程连接MySQL

    1、安装mysql-serverapt update apt install mysql-server2、修改配置文件/etc/mysql/mysql.conf.d/mysqld.cnfbind-address 0.0.0.0 mysqlx-bind-address 0.0.0.03、启动并设置服务为开机自启动systemctl enable mysql.service --now4、查看服务状态systemct…

    开源 C++ QT Widget 开发(九)图表--仪表盘

    文章的目的为了记录使用C 进行QT Widget 开发学习的经历。临时学习&#xff0c;完成app的开发。开发流程和要点有些记忆模糊&#xff0c;赶紧记录&#xff0c;防止忘记。 相关链接&#xff1a; 开源 C QT Widget 开发&#xff08;一&#xff09;工程文件结构-CSDN博客 开源…

    怎么为服务器设置或重置服务器密码?

    创建服务器后&#xff0c;您可以设置服务器的登录密码&#xff0c;如果你忘记了密码&#xff0c;可以重新设置实例的密码。本文讲一下如何重置阿里云服务器密码。使用限制&#xff1a;离线重置密码仅支持在控制台设置或重置服务器管理员账号的密码。•Windows 实例的默认用户名…

    【线性代数入门 | 那忘算8】洛谷P3389 高斯消元(内附行列式教学)

    想了想还是单开了一篇&#xff0c;数学王子值得&#xff01; 专栏指路&#xff1a;《再来一遍一定记住的算法&#xff08;那些你可能忘记了的算法&#xff09;》 前置知识&#xff1a; 矩阵&#xff1a;数的集合&#xff0c;一般是方程的系数。 题面&#xff1a; 洛谷P3389 …

    GEM5学习(3):如何快速创建一个组件

    通过一个图并行计算的测试用例&#xff0c;来学习如何快速构建一个目标组件 其核心思想是通过继承现有组件再拓展自定义参数 创建脚本 如何创建脚本&#xff0c;具体还可以看官方说明&#xff1a;gem5: Adding cache to configuration script mkdir configs/tutorial/part1/…