【LLM】Ollama:本地大模型使用

本指南将详细介绍如何在Linux系统上使用Ollama进行本地大模型的快速部署与管理。通过Docker容器化技术,您可以轻松部署Ollama及其WebUI,实现通过浏览器访问和管理大型语言模型。

快速部署,Web访问

安装Docker

根据操作系统下载并安装 Docker Desktop(Windows/macOS)或使用包管理工具(如 apt)安装 Docker(Linux)。

使用Ollama和Open WebUI独立部署

部署Ollama容器

首先,启动Ollama服务容器。

docker run -d --name ollama \-p 11434:11434 \-v ollama_data:/ollama/data \--restart always \ollama/ollama:latest

命令解析:

  • -d:后台运行容器。
  • --name ollama:指定容器名称为ollama
  • -p 11434:11434:将主机的11434端口映射到容器的11434端口,用于API访问。
  • -v ollama_data:/ollama/data:挂载卷,确保数据持久化。
  • --restart always:设置容器自动重启策略。
  • ollama/ollama:latest:指定使用最新版本的Ollama镜像。
部署Open WebUI容器

接下来,启动Open WebUI服务容器,并连接到本地运行的Ollama服务。

docker run -d -p 3000:8080 \--add-host=host.docker.internal:host-gateway \-v open-webui:/app/backend/data \--name open-webui \--restart always \ghcr.io/open-webui/open-webui:main

命令解析:

  • -d:后台运行容器。
  • -p 3000:8080:将主机的3000端口映射到容器的8080端口,用于WebUI访问。
  • --add-host=host.docker.internal:host-gateway:在容器内添加主机的内部地址,使WebUI能够访问本地Ollama服务。
  • -v open-webui:/app/backend/data:挂载卷,确保WebUI数据持久化。
  • --name open-webui:指定容器名称为open-webui
  • --restart always:设置容器自动重启策略。
  • ghcr.io/open-webui/open-webui:main:指定使用Open WebUI的主分支镜像。
访问Open WebUI

部署完成后,通过浏览器访问http://localhost:3000即可打开Open WebUI界面。在此界面中,您可以:

  • 输入提示(prompt)与大模型进行交互。
  • 管理和切换不同的模型。
  • 调整生成参数,如温度(temperature)和最大生成长度(max_tokens)。

使用Bundled Ollama进行一体化部署

Bundled Ollama提供了一个包含Open WebUIOllama的单一Docker镜像,简化了部署过程,适合希望快速上手且不需要单独管理服务的用户。

使用CPU进行部署

如果您的系统不具备NVIDIA GPU,或者不需要GPU加速,可以使用以下命令启动Bundled Ollama:

docker run -d -p 3000:8080 \-v ollama:/root/.ollama \-v open-webui:/app/backend/data \--name open-webui \--restart always \ghcr.io/open-webui/open-webui:ollama

命令解析:

  • -d:后台运行容器。
  • -p 3000:8080:将主机的3000端口映射到容器的8080端口,用于WebUI访问。
  • -v ollama:/root/.ollama:挂载卷,确保Ollama数据持久化。
  • -v open-webui:/app/backend/data:挂载卷,确保WebUI数据持久化。
  • --name open-webui:指定容器名称为open-webui
  • --restart always:设置容器自动重启策略。
  • ghcr.io/open-webui/open-webui:ollama:指定使用Bundled Ollama的镜像。
使用Nvidia GPU支持进行部署

如果您的系统配备NVIDIA GPU,并希望利用GPU加速模型推理,请确保已安装NVIDIA Container Toolkit以支持GPU资源分配。然后,使用以下命令启动Bundled Ollama:

docker run -d -p 3000:8080 \--gpus all \-v ollama:/root/.ollama \-v open-webui:/app/backend/data \--name open-webui \--restart always \ghcr.io/open-webui/open-webui:ollama

命令解析:

  • --gpus all:将所有可用的GPU资源分配给容器,以加速模型推理。
  • 其他参数与CPU部署方法相同。
访问Open WebUI

同样,通过浏览器访问http://localhost:3000即可打开Open WebUI界面。由于Bundled Ollama已经包含了Ollama服务,您无需进行额外的配置即可开始使用。

停止和管理容器

无论您选择哪种部署方法,都可以使用以下Docker命令来管理Open WebUIOllama容器。

查看正在运行的容器
docker ps
停止容器
docker stop open-webui
docker stop ollama
启动已停止的容器
docker start open-webui
docker start ollama
重启容器
docker restart open-webui
docker restart ollama
查看容器日志
docker logs open-webui
docker logs ollama
删除容器
docker rm open-webui
docker rm ollama

注意: 删除容器不会删除挂载的卷中的数据。如果需要删除数据,请手动移除相应的Docker卷:

docker volume rm open-webui
docker volume rm ollama_data

管理数据卷

在 Docker 中,数据卷用于持久化容器中的数据。您在部署命令中使用了以下数据卷:

  • -v ollama_data:/ollama/data
  • -v open-webui:/app/backend/data
列出和查看数据卷

要查看系统中的所有 Docker 数据卷,使用以下命令:

docker volume ls

要获取特定数据卷的信息,如 ollama_data,使用:

docker volume inspect ollama_data
备份数据卷

可以使用 tar 命令将数据卷备份:

docker run --rm -v ollama_data:/volume -v $(pwd):/backup alpine tar czf /backup/ollama_data_backup.tar.gz -C /volume .
恢复数据卷

从备份恢复数据卷:

docker run --rm -v ollama_data:/volume -v $(pwd):/backup alpine sh -c "tar xzf /backup/ollama_data_backup.tar.gz -C /volume"
删除数据卷

删除数据卷(例如 ollama_data):

docker volume rm ollama_data
主机目录作为数据卷

可以将主机目录挂载为数据卷以直接访问和管理数据:

docker run -d --name ollama -v /home/user/ollama_data:/ollama/data --restart always ollama/ollama:latest

管理Ollama

除了部署和运行,您还需要了解如何管理Ollama,包括进入容器、执行常用指令等。

进出容器

有时您需要进入运行中的Docker容器,执行一些管理任务或查看配置。

进入容器
docker exec -it ollama /bin/bash

命令解析:

  • exec:在运行的容器中执行命令。
  • -it:交互式终端。
  • open-webui:容器名称。
  • /bin/bash:启动bash shell。
退出容器

在容器内执行exit命令即可退出交互式会话。

exit

Ollama常用指令

在管理Ollama时,以下是一些常用的命令和指令:

查看可用模型列表
ollama list
下载模型
ollama pull <model-name>

例如,下载qwen2.5:0.5b模型:

ollama pull qwen2.5:0.5b
运行模型
ollama run <model-name>

例如:

ollama run qwen2.5:0.5b
删除模型
ollama rm <model-name>

例如:

ollama rm qwen2.5:0.5b
查看已下载的模型
ollama models
获取Ollama版本信息
ollama version
查看Ollama帮助信息
ollama help

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

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

相关文章

运行 xxxxApplication 时出错。命令行过长。 通过 JAR 清单或通过类路径文件缩短命令行,然后重新运行。

一、问题描述 运行 xxxxApplication 时出错。命令行过长。 通过 JAR 清单或通过类路径文件缩短命令行&#xff0c;然后重新运行。 二、问题分析 在idea中&#xff0c;运行一个springboot项目&#xff0c;在使用大量的库和依赖的时候&#xff0c;会出现报错“命令行过长”&…

Java | Leetcode Java题解之第406题根据身高重建队列

题目&#xff1a; 题解&#xff1a; class Solution {public int[][] reconstructQueue(int[][] people) {Arrays.sort(people, new Comparator<int[]>() {public int compare(int[] person1, int[] person2) {if (person1[0] ! person2[0]) {return person2[0] - perso…

Java项目实战II基于Java+Spring Boot+MySQL的车辆管理系统(开发文档+源码+数据库)

目录 一、前言 二、技术介绍 三、系统实现 四、论文参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 "随着…

Arthas jvm(查看当前JVM的信息)

文章目录 二、命令列表2.1 jvm相关命令2.1.3 jvm&#xff08;查看当前JVM的信息&#xff09; 二、命令列表 2.1 jvm相关命令 2.1.3 jvm&#xff08;查看当前JVM的信息&#xff09; 基础语法&#xff1a; jvm [arthas18139]$ jvmRUNTIME …

【Delphi】通过 LiveBindings Designer 链接控件示例

本教程展示了如何使用 LiveBindings Designer 可视化地创建控件之间的 LiveBindings&#xff0c;以便创建只需很少或无需源代码的应用程序。 在本教程中&#xff0c;您将创建一个高清多设备应用程序&#xff0c;该应用程序使用 LiveBindings 绑定多个对象&#xff0c;以更改圆…

十七、RC振荡电路

振荡电路 1、振荡电路的组成、作用、起振的相位条件以及振荡电路起振和平衡幅度条件&#xff0c; 2、RC电路阻抗与频率、相位与频率的关系曲线; 3、RC振荡电路的相位条件分析和振荡频率

【yolo算法打架行为检测行人检测】

yolo打架行为检测 yolo算法打架行为检测yolo行人检测 yolo算法打架行为检测 数据集和模型YOLO算法打架行为检测数据集1万数据集 分两个类别&#xff1a;正常&#xff0c;打架行为&#xff1b; train: ../train/images val: ../valid/images test: ../test/images nc: 2 names…

一次RPC调用过程是怎么样的?

注册中心 RPC&#xff08;Remote Procedure Call&#xff09;翻译成中文就是 {远程过程调用}。RPC 框架起到的作用就是为了实现&#xff0c;调用远程方法时&#xff0c;能够做到和调用本地方法一样&#xff0c;让开发人员更专注于业务开发&#xff0c;不用去考虑网络编程等细节…

演示jvm锁存在的问题

文章目录 1、AlbumInfoApiController --》testLock()2、redis添加键值对3、AlbumInfoServiceImpl --》testLock() 没有加锁4、使用ab工具测试4.1、安装 ab 工具4.2、查看 redis 中的值 5、添加本地锁 synchronized6、集群情况下问题演示 jvm锁&#xff1a;synchronized lock 只…

尚品汇-H5移动端整合系统(五十五)

目录&#xff1a; &#xff08;1&#xff09;运行前端页面 &#xff08;2&#xff09;启动前端页面 &#xff08;3&#xff09;添加搜索分类接口 &#xff08;4&#xff09;购物车模块修改 &#xff08;5&#xff09;登录模块 &#xff08;6&#xff09;订单模块 &#…

Golang | Leetcode Golang题解之第423题从英文中重建数字

题目&#xff1a; 题解&#xff1a; func originalDigits(s string) string {c : map[rune]int{}for _, ch : range s {c[ch]}cnt : [10]int{}cnt[0] c[z]cnt[2] c[w]cnt[4] c[u]cnt[6] c[x]cnt[8] c[g]cnt[3] c[h] - cnt[8]cnt[5] c[f] - cnt[4]cnt[7] c[s] - cnt[6]…

【Verilog学习日常】—牛客网刷题—Verilog快速入门—VL16

使用8线-3线优先编码器Ⅰ实现16线-4线优先编码器 描述 ②请使用2片该优先编码器Ⅰ及必要的逻辑电路实现16线-4线优先编码器。优先编码器Ⅰ的真值表和代码已给出。 可将优先编码器Ⅰ的代码添加到本题答案中&#xff0c;并例化。 优先编码器Ⅰ的代码如下&#xff1a; module…

[python]从零开始的PySide安装配置教程

一、PySide是什么&#xff1f; PySide 是 Qt for Python 项目的一部分&#xff0c;它提供了与 PyQt 类似的功能&#xff0c;使开发者能够使用 Python 编程语言来构建基于 Qt 的图形用户界面 (GUI) 应用程序。PySide 是由 Qt 公司官方维护的&#xff0c;而 PyQt 则是由第三方开发…

【Pyside】pycharm2024配置conda虚拟环境

知识拓展 Pycharm 是一个由 JetBrains 开发的集成开发环境&#xff08;IDE&#xff09;&#xff0c;它主要用于 Python 编程语言的开发。Pycharm 提供了代码编辑、调试、版本控制、测试等多种功能&#xff0c;以提高 Python 开发者的效率。 Pycharm 与 Python 的关系 Pycharm 是…

【JavaEE】——多线程(join阻塞,计算,引用,状态)

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯&#xff0c;你们的点赞收藏是我前进最大的动力&#xff01;&#xff01;希望本文内容能够帮助到你&#xff01; 目录 一&#xff1a;join等待线程结束 1&#xff1a;知识回顾 2&#xff1a;join的功能就是“阻塞等待” …

java之斗地主部分功能的实现

今天我们要实现斗地主中发牌和洗牌这两个功能&#xff0c;该如何去实现呢&#xff1f; 1.创建牌类&#xff1a;52张牌每一张牌包含两个属性:牌的大小和牌的花色。 故我们优先创建一个牌的类(Card)&#xff1a;包含大小和花色。 public class Card { //单张牌的大小及类型/…

无人机+自组网:中继通信增强技术详解

无人机与自组网技术的结合&#xff0c;特别是通过中继通信增强技术&#xff0c;为无人机在复杂环境中的通信提供了稳定、高效、可靠的解决方案。以下是对该技术的详细解析&#xff1a; 一、无人机自组网技术概述 无人机自组网技术是一种利用无人机作为节点&#xff0c;通过无…

proteus仿真学习(1)

一&#xff0c;创建工程 一般选择默认模式&#xff0c;不配置pcb文件 可以选用芯片型号也可以不选 不选则从零开始布局&#xff0c;没有初始最小系统。选用则有初始最小系统以及基础的main函数 本次学习使用从零开始&#xff0c;不配置固件 二&#xff0c;上手软件 1.在元件…

6--SpringBootWeb案例(详解)

目录 环境搭建 部门管理 查询部门 接口文档 代码 删除部门 接口文档 代码 新增部门 接口文档 代码 已有前端&#xff0c;根据接口文档完成后端功能的开发 成品如下&#xff1a; 环境搭建 1. 准备数据库表 (dept 、 emp) -- 部门管理 create table dept( id int un…

如何有效检测住宅IP真伪?

在当今的互联网时代&#xff0c;住宅IP&#xff08;即家庭用户通过宽带服务提供商获得的IP地址&#xff09;在跨境电商、广告投放、网络安全等多个领域扮演着重要角色。然而&#xff0c;随着网络环境的复杂化和欺诈行为的增多&#xff0c;如何有效检测和辨别住宅IP的真伪成为了…