在Ubuntu 20.04上安装Ollama并部署大型语言模型:含Open WebUI图形界面教程

在Ubuntu 20.04上安装Ollama并部署大型语言模型:含Open WebUI图形界面教程

在Ubuntu 20.04上安装Ollama并部署大型语言模型:含Open WebUI图形界面教程


引言

在人工智能浪潮席卷全球的今天,大型语言模型(LLM)不再是遥不可及的云端技术。借助 Ollama,每一位开发者都能轻松地将强大的模型部署在自己的本地计算机上,实现无缝、私密且可定制的AI体验。本文将带领您一步步在 Ubuntu 20.04 系统上完成 Ollama 的安装与模型部署,并最终搭建美观易用的图形化界面(Open webui)。

Ollama 是什么?

Ollama 是一个开源项目,专为在本地运行、管理和部署大型语言模型(如 Llama 3、Mistral、Gemma 等)而设计。

它的核心概念与优势非常清晰:

  • 简单易用:通过简单的命令行工具,即可完成模型的下载(pull)、运行(run)和管理。一条命令就能启动与模型的对话。
  • 丰富的模型库:它提供了官方支持的模型库(Ollama Search),包含deep-seek、qwen等数十种经过优化的大型语言模型,满足从代码生成到创意写作的各种需求。
  • “开箱即用”:它自动处理了模型运行所需的大部分复杂配置和环境依赖,用户无需关心繁琐的底层细节。
展示 Ollama 使用效果

想象一下,在您的终端中,直接与一个几十亿参数的大模型进行流畅的对话和代码编写,是一种怎样的体验?以下是在 Ubuntu 终端中运行 ollama run deepseek-coder:6.7b 后的截图:

命令行交互


OpenWebui交互
本地部署语言模型的好处与局限性

选择在本地运行 Ollama,意味着选择了一种新的 AI 交互方式,但它也并非完美无缺。

优势 (Benefits)
  • 数据隐私与安全:您的所有对话提示(Prompts)和模型生成的内容完全在本地处理,不会离开您的计算机。这对于处理敏感代码、商业数据或个人信息的用户至关重要。
  • 完全离线可用:一旦模型下载完成,您就无需依赖互联网连接或担心API服务宕机,可以在任何没有网络的环境中使用。
  • 可定制性:您可以尝试各种不同规模和专长的模型,甚至可以根据需要加载自定义模型(Modelfiles),灵活性远超固定的云端API。
  • 无使用成本:除了电费和硬件成本外,没有按次收费或订阅费用,您可以无限次地与模型交互。
局限性 (Limitations)
  • 硬件要求高:本地部署对计算机硬件,尤其是内存(RAM)和显存(VRAM) 有较高要求。运行大型模型可能需要数十GB的资源。
  • 性能差异:虽然本地推理延迟低,但模型的能力和响应速度通常无法与 OpenAI GPT-4 这类顶级付费API相提并论,尤其是在复杂推理任务上。
  • 知识陈旧:本地部署的模型知识库是静态的,其知识截止日期取决于它被训练的时间点,无法像一些云端模型那样实时获取最新信息。

环境准备

设备信息
lsb_release -a 
在这里插入图片描述
检查储存空间及显存大小
  • 储存空间至少预留十几G,因为一个模型的大小都在几个G左右
  • 检查显存大小,显存大小决定了能运行模型的参数量
nvidia-smi 
在这里插入图片描述

Ollama 下载与安装

1. 下载链接:
  • 官网: https://ollama.com/
  • GitHub: https://github.com/ollama/ollama
2. 运行安装脚本:
curl -fsSL https://ollama.com/install.sh |sh
3. 管理Ollama服务:
# 启动 Ollama 服务sudo systemctl start ollama # 停止 Ollama 服务sudo systemctl stop ollama # 重启 Ollama 服务sudo systemctl restart ollama # 设置开机自启sudo systemctl enable ollama # 查看服务日志sudo journalctl -u ollama -f 
4. 常用Ollama命令:
# 查看所有命令帮助 ollama --help # 运行模型(如果不存在会自动下载) ollama run <model-name># 运行模型并直接提问 ollama run <model-name>"你的问题"# 拉取(下载)模型 ollama pull <model-name># 列出已下载的模型 ollama list # 删除模型 ollama rm<model-name># 查看已下载模型的详细信息 ollama show llama3 # 查看模型配置 ollama show llama3 --modelfile 

Ollama 部署并运行模型

现在 Ollama 已经安装完成,接下来是下载和运行各种大型语言模型

查看可用模型
  • 通过命令行查看
# 查看本地已下载的模型 ollama list 
在这里插入图片描述

通过模型库查看
访问Ollama官方的模型库:模型库,选择自己感兴趣的模型,注意参数量大小,一般先选择参数少一些的模型进行试验

在这里插入图片描述
下载模型

下载并运行deepseek-r1:7b模型

ollama run deepseek-r1:7b 
在这里插入图片描述
运行模型

如果已经下载了deepseek-r1:7b,就不会重复下载而是启动命令行交互对话

ollama run deepseek-r1:7b 
在这里插入图片描述
对话控制命令

在交互模式下,可以使用一些特殊命令:

# 退出对话 /bye 或者按 Ctrl + D # 清空对话上下文(开始新对话) /clear 
设置参数

可以调整模型生成参数以获得不同效果:

# 设置温度(控制随机性,0-1) ollama run deepseek-r1:7b --temperature 0.7# 限制输出token数量 ollama run deepseek-r1:7b --num-predict 100# 指定随机种子(确保可重复性) ollama run deepseek-r1:7b --seed 42

安装Open WebUI 图形化界面

虽然命令行交互已经很强大,但对于日常使用来说,一个美观的图形界面能极大提升体验。Open WebUI(原名 Ollama WebUI)提供了一个类似 ChatGPT 的现代化 Web 界面,让您可以通过浏览器与本地模型进行交互。

Open WebUI 是什么?

Open WebUI 是一个功能强大的开源 Web 界面,专为 Ollama 和其他本地语言模型设计。它具有以下特点:

  • 类ChatGPT体验:熟悉的聊天界面,支持多轮对话、对话历史管理
  • 多模型支持:轻松切换不同的语言模型
  • 可视化操作:图形化的模型管理和设置界面
  • 高级功能:支持 RAG(检索增强生成)、文档上传、角色预设等
  • 多用户支持:可注册多个账户,每个用户有自己的对话历史
  • 完全本地化:所有数据仍然保存在本地,保障隐私安全
先决条件:安装 Docker

Open WebUI 通过 Docker 容器部署,因此需要先安装 Docker。参考以下安装教程Ubuntu 20.04 安装Docker 全过程

启动Docker 服务
# 确保Docker服务已启动sudo systemctl start docker sudo systemctl enable docker # 检查Docker服务状态sudo systemctl status docker 
使用 Docker 一键部署 Open WebUI

安装好 Docker 后,只需一条命令即可部署 Open WebUI:

docker run -d --network="host" -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main 

部署完成后,检查容器状态:

docker ps
在这里插入图片描述
访问并使用Open WebUI

容器正常运行后,即可通过浏览器访问:

  1. 打开浏览器,访问:http://localhost:8080
  2. 首次注册:
  • 点击 “Sign Up” 注册新账户
  • 输入邮箱和密码(无需真实邮箱,仅用于本地识别)
  • 确认密码并完成注册
  1. 登录系统:
  • 使用刚才注册的邮箱和密码登录
  • 首次登录会自动检测本地的 Ollama 服务
  1. 开始使用:
  • 在左侧模型选择器中选择要使用的模型(如 llama3)
  • 在输入框中开始对话

右侧可以查看对话历史、切换模型、调整参数等

[图片]

Read more

【Linux系统编程】(四十)线程控制终极指南:从资源共享到实战操控,带你吃透线程全生命周期

【Linux系统编程】(四十)线程控制终极指南:从资源共享到实战操控,带你吃透线程全生命周期

前言         在 Linux 多线程开发中,“线程控制” 是贯穿始终的核心技能 —— 从线程的创建、终止,到等待、分离,每一步操作都直接影响程序的性能、稳定性和资源利用率。而要熟练掌握线程控制,首先必须理清一个关键问题:进程和线程究竟哪些资源共享、哪些资源独占?这是理解线程控制逻辑的底层基石。         很多开发者在编写多线程程序时,常会陷入这样的困境:明明调用了pthread_create却创建失败,线程退出后出现资源泄漏,用pthread_join等待线程却始终阻塞,甚至因误操作导致整个进程崩溃。这些问题的根源,往往是对线程与进程的资源关系理解不深,或是对 POSIX 线程库的控制接口使用不当。         本文将从 “进程与线程的资源划分” 入手,层层递进讲解 Linux 线程的完整控制流程 —— 包括 POSIX 线程库的使用、线程创建、终止、等待、分离等核心操作,全程结合实战代码和底层原理,用通俗的语言拆解复杂概念,让你不仅 “会用” 线程控制接口,更能 “懂原理”

By Ne0inhk
从 .NET 到 Java 的转型指南:详细学习路线与实践建议

从 .NET 到 Java 的转型指南:详细学习路线与实践建议

文章目录 * 第一部分:转型背景与核心差异分析 * 1.1 为什么需要从 .NET 转型到 Java * 1.2 .NET 与 Java 核心架构差异 * 1.2.1 运行时环境对比 * 1.2.2 内存管理机制 * 1.3 心态调整与学习策略 * 1.3.1 相似性利用 * 1.3.2 差异性重视 * 第二部分:Java 语言基础深入学习 * 2.1 Java 语法核心概念 * 2.1.1 基本数据类型与包装类 * 2.1.2 字符串处理 * 2.

By Ne0inhk
Java 部署:Jenkins Pipeline 构建 Java 项目(自动化)

Java 部署:Jenkins Pipeline 构建 Java 项目(自动化)

👋 大家好,欢迎来到我的技术博客! 📚 在这里,我会分享学习笔记、实战经验与技术思考,力求用简单的方式讲清楚复杂的问题。 🎯 本文将围绕Java部署这个话题展开,希望能为你带来一些启发或实用的参考。 🌱 无论你是刚入门的新手,还是正在进阶的开发者,希望你都能有所收获! 文章目录 * Java 部署:Jenkins Pipeline 构建 Java 项目(自动化) 🚀 * 为什么选择 Jenkins Pipeline?🔧 * 环境准备:搭建 Jenkins 服务器 ⚙️ * 使用 Docker 快速启动 Jenkins * 安装必要插件 * 示例 Java 项目:一个简单的 Spring Boot 应用 🌱 * 项目结构 * `pom.xml` * `DemoApplication.java` * `HelloController.java` * 单元测试(可选但推荐) * 编写 Jenkins

By Ne0inhk
Java 大视界 -- 5230 台物联网设备时序数据难题破解:Java+Redis+HBase+Kafka 实战全解析(查询延迟 18ms)(438)

Java 大视界 -- 5230 台物联网设备时序数据难题破解:Java+Redis+HBase+Kafka 实战全解析(查询延迟 18ms)(438)

Java 大视界 -- 5230 台物联网设备时序数据难题破解:Java+Redis+HBase+Kafka 实战全解析(查询延迟 18ms)(438) * 引言: * 正文: * 一、技术选型:务实为王,拒绝炫技 * 1.1 核心技术栈选型对比 * 1.2 选型核心原则(10 余年实战经验总结) * 二、架构设计:闭环为王,层层兜底 * 2.1 整体架构图 * 2.2.1 生产设备层(数据源头) * 2.2.2 边缘网关层(数据预处理) * 2.2.3 消息接入层(数据缓冲) * 2.

By Ne0inhk