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

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

快速部署,Web访问

安装Docker

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

使用Ollama和Open WebUI独立部署

部署Ollama容器

首先,启动Ollama服务容器,可以使用 GPU 运行 Ollama,修改你的 Docker 命令,添加 --gpus all 参数来使用 GPU:

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>
运行模型
ollama run <model-name>
删除模型
ollama rm <model-name>
查看已下载的模型
ollama models
获取Ollama版本信息
ollama version
查看Ollama帮助信息
ollama help
导入模型
ollama import <path-to-modelfile>
导出模型
ollama export <model-name> <output-path>

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

7.C++程序中的基本数据类型-数据类型之间的转换

在C中&#xff0c;类型转换是将一个数据类型转为另外一个数据类型&#xff0c;其转换过程比较复杂&#xff0c;目前只讨论基本数据类型之间的转换。 类型转换分为两部分&#xff1a;隐式转换和显示转换 隐式转换又称为自动转换&#xff0c;显示转换又称为强制转换。 隐式转换…

文章解读与仿真程序复现思路——电力系统自动化EI\CSCD\北大核心《基于台区剩余电流关联性分析的接线错误漏电用户识别方法》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

基于软件项目开发流程的软件综合实训室解决方案

一、引言 1.1 软件实训室的重要性 软件实训室作为高等教育和职业教育中的不可或缺组成部分&#xff0c;对于培养学生的实践能力和创新思维发挥着重要作用。随着信息技术的快速发展&#xff0c;软件行业对于高素质技术人才的需求日益增长。实训室提供了一个模拟真实工作环境的…

视频监控平台AS-V1000的目录管理和区域管理:实现现有监控视频资源的行政区域划分和管理

目录 一&#xff0e;行政区划相关概念 1.1 视频监控系统中的行政区划 1.2 国标GB28181中行政区划目录定义 二&#xff0e;视频资源管理平台介绍 2.1 AS-V1000视频平台介绍 2.2 平台相关服务的说明 三&#xff0e;区域管理功能介绍 3.1区域管理功能结构树 3.1.1区域管理…

面试经典算法题53-搜索插入位置

面试经典算法题53-搜索插入位置 公众号&#xff1a;阿Q技术站 LeetCode.35 问题描述 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为…

探索MemGPT:AI界的新宠儿

文章目录 探索MemGPT&#xff1a;AI界的新宠儿1. 背景介绍2. MemGPT是什么&#xff1f;3. 如何安装MemGPT&#xff1f;4. 简单的库函数使用方法5. 场景应用场景一&#xff1a;创建持久聊天机器人场景二&#xff1a;文档分析场景三&#xff1a;多会话聊天互动 6. 常见Bug及解决方…

Nginx笔记-使用alias映射磁盘目录(nginx文件下载)

Nginx 配置中&#xff0c;alias 关键字用于指定一个路径作为请求的别名。当客户端请求该别名路径下的资源时&#xff0c;Nginx会将其映射到实际的文件系统路径进行访问。这种方式可以用来隐藏实际文件系统路径&#xff0c;或者将客户端请求重新定向到另一个路径。 如下例子&am…

【幸运数 / A】

题目 代码 #include <bits/stdc.h> using namespace std; bool check(int num) {int cnt 0;int x num;while (x){cnt;x / 10;}if (cnt % 2)return false;cnt / 2;int sum 0, half 0, i 0;x num;while (x){i;if (i < cnt)half x % 10;sum x % 10;x / 10;}if (…

LeetCode 热题 100 回顾17

干货分享&#xff0c;感谢您的阅读&#xff01;原文见&#xff1a;LeetCode 热题 100 回顾_力code热题100-CSDN博客 一、哈希部分 1.两数之和 &#xff08;简单&#xff09; 题目描述 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标…

vue3 + ts + pnpm:nprogress / 页面顶部进度条

一、简介 nprogress 是一个轻量级的进度条库&#xff0c;它适用于在网页上添加顶部进度条&#xff0c;用于指示页面加载进度或任何长时间的运行过程。这个库非常流行&#xff0c;因为它易于使用且视觉效果很好。 二、安装 pnpm add nprogress 三、在使用的页面引入 / src/v…

计算机毕业设计springboot+vue家居全屋家具定制系统

目录 功能和技术介绍系统实现截图开发核心技术介绍&#xff1a;使用说明开发步骤编译运行核心代码部分展示需求分析系统设计软件测试详细视频演示源码获取 功能和技术介绍 本项目包含程序源码和MySql脚本和文档,idea开发,支持Eclipse。使用vue的本质是SpringFramework【IoC&am…

深度学习——D2(数据操作)

N维数组 创建数组 访问元素 一列: [ : , 1 ] 反向累积、正向累积&#xff08;自动求导&#xff09; 梯度 梯度&#xff08;Gradient&#xff09;是微积分中的一个重要概念&#xff0c;主要用于描述一个函数在某个区域内的变化情况。以下是对梯度的详细解释&#xff1a; 一…

Vue(15)——组合式API②

生命周期函数 选项式组合式beforeCreate/createdsetupbeforeMountonBeforeMount mountedonMounedbeforeUpdateonBeforeUpdateupdatedonUpdatedbeforeUnmountonBeforeUnmountunmountedonUnmounted 父子通信 父传子基本思想&#xff1a; 父组件中给子组件绑定属性…

Stable Diffusion 使用详解(12)--- 设计师风格变换

目录 背景 seg模型&#xff08;语义分割&#xff09; 描述 原理 实战-装修风格变换 现代风格 欧式风格转换 提示词及相关参数设置 模型选择 seg cn 加持 效果 还能做点啥 问题 解决方法 出图效果 二次优化调整 二次出图效果 地中海风格转换 参数修改 效果 …

服务器离线安装python库包

conda安装参考服务器离线安装anaconda-CSDN博客 python离线安装参考服务器配置虚拟环境及离线安装python-CSDN博客 1.离线安装pip&#xff08;这里是因为后续使用pypi安装其他库更方便&#xff0c;如果不想用pip去conda下载其他安装包也可以&#xff0c;后面用conda安装和这里…

Python练习宝典:Day 2 - 选择题 -函数、文件与IO

目录 一、函数二、文件与IO 一、函数 1.在函数内部可以通过关键字()来定义全局变量: A.global B.all C.def D.lambda2.在Python中使用什么表达式创建匿名函数? A.global B.lambda C.def D.list3.使用形式参数的名字来确定输入的参数值,是指什么参数? A.位置参数 B.默认参…

CentOS Stream 9部署Redis

1、安装Redis sudo dnf install redis 2、启动Redis服务 sudo systemctl start redis 3、设置Redis开机自启 sudo systemctl enable redis 4、打开Redis配置文件&#xff1a; sudo vi /etc/redis/redis.conf 在配置文件中找到并修改以下两行&#xff0c;确保密码验证功能已启…

招联金融秋招-2025

【投递方式】 直接扫下方二维码&#xff0c;或点击内推官网https://wecruit.hotjob.cn/SU61025e262f9d247b98e0a2c2/mc/position/campus&#xff0c;使用内推码 igcefb 投递 【招聘岗位】 后台开发 前端开发 数据开发 数据运营 算法开发 技术运维 软件测试 产品策划 产品运营…

【AIGC】ChatGPT提示词助力广告文案、PPT制作与书籍推荐的高效新模式

博客主页&#xff1a; [小ᶻZ࿆] 本文专栏: AIGC | ChatGPT 文章目录 &#x1f4af;前言&#x1f4af;高效广告推销文案提示词使用方法 &#x1f4af;AI自动生成PPT全流程提示词使用方法 &#x1f4af;精选书籍推荐爆款文案提示词使用方法 &#x1f4af;小结 &#x1f4af;…

数据结构之线性表——LeetCode:82. 删除排序链表中的重复元素 II,21. 合并两个有序链表,23. 合并 K 个升序链表

82. 删除排序链表中的重复元素 II 题目描述 82. 删除排序链表中的重复元素 II 给定一个已排序的链表的头 head &#xff0c; 删除原始链表中所有重复数字的节点&#xff0c;只留下不同的数字 。返回 已排序的链表 。 运行代码 class Solution { public:ListNode* deleteDup…