大模型笔记01--基于ollama和open-webui快速部署chatgpt
大模型笔记01--基于ollama和open-webui快速部署chatgpt
- 介绍
- 部署&测试
- 安装ollama
- 运行open-webui
- 测试
- 注意事项
- 说明
介绍
近年来AI大模型得到快速发展,各种大模型如雨后春笋一样涌出,逐步融入各行各业。与之相关的各类开源大模型系统工具也得到了快速发展,包括 ollama 和 open-webui 这样的项目。
本文基于 ollama 和 open-webui,快速运行大模型并提供对应的web交互界面,让每个关注AI大模型的人员都能快速运行起自己的本地大模型。
部署&测试
安装ollama
直接通过curl命令安装
# curl -fsSL https://ollama.com/install.sh | sh安装完成后可以通过 systemctl status ollama 查看服务状态
# systemctl status ollama
● ollama.service - Ollama ServiceLoaded: loaded (/etc/systemd/system/ollama.service; enabled; preset: enabl>Active: active (running) since Wed 2024-08-28 20:29:03 CST; 3 days agoMain PID: 1743 (ollama)Tasks: 15 (limit: 38363)Memory: 1.7G (peak: 1.8G)CPU: 21.202sCGroup: /system.slice/ollama.service└─1743 /usr/local/bin/ollama serve如果需要调整 ollama的参数,我们可以通过更改ollama.service中的Environment来调整其定环境变量(每隔环境变量单独起一行),例如:
# vim /etc/systemd/system/ollama.service
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Environment="OLLAMA_NUM_PARALLEL=4"
Environment="CUDA_VISIBLE_DEVICES=0"
Environment="OLLAMA_MODELS=/data/xgDir/ollama_models"
Environment="OLLAMA_HOST=0.0.0.0"其中 OLLAMA_NUM_PARALLEL表示并发量为4,CUDA_VISIBLE_DEVICES表示要用GPU显卡。ollama 模型默认下载位置为: /usr/share/ollama/.ollama/models ,可以通过上述方式设置环境变量, 也可以按需新建一个软连接到数据盘,以避免过多占用系统盘空间。
如果原来的位置已有模型,然后通过环境变量迁移,那么需要将.ollama/models目录下的blobs 和manifests都同步移动到目标目录,同时确保目录目录用户属主为 ollama
安装后我们就可以下载、运行模型了,可以在 https://ollama.com/library 找到各类开源的模型, 如下图:

可以通过 ollama pull | list | run | ps | rm 等命令来拉取模型、查询本地模型、运行模型、查看正在运行的模型、删除模型。

运行open-webui
通过以上方法可以快速运行一个本地大模型,并且可以在终端上进行对话,为了进一步提高使用效率,我们通常会拉起一个客户端系统(web app或桌面app),ollama官方github推荐了很多种工具,此处以比较出名的Open WebUI为例。

最快捷的方式直接用docker安装,具体命令如下:
# docker run -d --network=host -v /home/xg/soft/ollama/open-webui:/app/backend/data -e OLLAMA_BASE_URL=http://127.0.0.1:11434 --name open-webui --restart always ghcr.io/open-webui/open-webui:main
然后访问 http://localhost:8080 此处将数据目录挂载在 /home/xg/soft/ollama/open-webui ,实际使用的时候按需修改即可
常见报错: We couldn’t connect to ‘https://huggingface.co’
报错:
OSError: We couldn't connect to 'https://huggingface.co' to load this file, couldn't find it in the cached files and it looks like sentence-transformers/all-MiniLM-L6-v2 is not the path to a directory containing a file named config.json.
Checkout your internet connection or see how to run the library in offline mode at 'https://huggingface.co/docs/transformers/installation#offline-mode'.
No WEBUI_SECRET_KEY provided
由于国内网络无法直接访问 huggingface , 我们需要更改为国内能访问的域名 hf-mirror.com
解决方法: 使用镜像站 -e HF_ENDPOINT=https://hf-mirror.com
参考: https://www.cnblogs.com/dajianshi/p/18118969
测试
当完成 ollama 和 open-webui的部署后,可以通过 127.0.0.1:8080 访问webui了,按需注册用户即可。
如下图,按需选择模型,然后就可以愉快的聊天了


笔者台式机 P2200显卡 5G显存,跑10B以下的模型基本没什么压力,输出比较流畅。15B及以上就有点压力。
笔记本 MX570显卡 2G显存,跑5B及以下的模型,基本没什么压力,输出比较流畅。8B及以上就明显感觉输出比较卡顿, 例如 qwen:14b每秒3-5个字。
使用腾讯云 Tesla T4 16G显卡,发现跑qwen:14B比较流畅,跑qwen:32B就有点卡(每秒3-5字)。
在测试qwen模型时候,可以明显感觉到8B及其以下流程性和语义完整性比较一般,14B及其以上的连贯性还不错,但对资源的消耗也比较高。
综上:为了兼顾速度和效果,推荐使用16G显存的机器跑10-20B的模型。
注意事项
- 除了基于 ollama 这种方式使用指定的大模型,还可以使用LM Studio等工具在本地快速运行大模型实现chatgpt。
- 如果想实现更多配置能力和自定义agent,也可以考虑基于 Fastgpt, autogen, dify 等来部署开发自己的大模型相关服务。
- 如果不想部署的话也可以直接体验IT厂商的大模型产品,例如文心一言、通义千问、Kimi智能助手、讯飞星火、豆包、智普清言、语聚AI , openai Chatgpt 等产品。
说明
系统:
ubuntu 24.04Desktop / ubuntu22.04 server
open-webui v0.1.124
ollama 0.1.34
参考文档:
ollama github
ollama 官网
hf-mirror.com
相关文章:
大模型笔记01--基于ollama和open-webui快速部署chatgpt
大模型笔记01--基于ollama和open-webui快速部署chatgpt 介绍部署&测试安装ollama运行open-webui测试 注意事项说明 介绍 近年来AI大模型得到快速发展,各种大模型如雨后春笋一样涌出,逐步融入各行各业。与之相关的各类开源大模型系统工具也得到了快速…...
html前段小知识点
1. 什么是HTML? 超文本标记语言是一种 用于创建网页的标准标记语言 HTML 文档包含了HTML 标签及文本内容 也叫文档1.什么是css? CSS (层叠样式表),是一种用来为结构化文档添加样式的计算机语言,CSS 文件扩展名为 .css。 可以设…...
AD7606工作原理以及FPGA控制验证(串行和并行模式)
文章目录 一、AD7606介绍二、AD7606采集原理2.1 AD7606功能框图2.2 AD7606管脚说明 三、AD7606并行模式时序分析以及实现3.1 并行模式时序图3.2 并行模式时序要求3.3 代码编写3.4 仿真观察 四、AD7606串行模式时序分析以及实现4.1 串行模式时序图4.2 串行模式时序要求4.3 代码编…...
如何查看Pod的Container资源占用情况
云原生学习路线导航页(持续更新中) 方法一:直接查看pod的资源占用 kubectl top pods ${pod-name} -n ${ns} 方法二:通过运行的进程,查看pod的某个容器资源占用 1.找到pod所在node容器号:kubectl descri…...
WordPress上可以内容替换的插件
插件下载地址:WordPress内容替换插件 – 果果开发 类型 替换的类型:文章、自定义文章类型、分类、标签、媒体库、页面、评论、数据库表,不同的类型可以替换不同的字段。 替换字段 替换的字段,哪些字段内容需要替换。除了数据库…...
C++ | Leetcode C++题解之第355题设计推特
题目: 题解: class Twitter {struct Node {// 哈希表存储关注人的 Idunordered_set<int> followee;// 用链表存储 tweetIdlist<int> tweet;};// getNewsFeed 检索的推文的上限以及 tweetId 的时间戳int recentMax, time;// tweetId 对应发送…...
构建并训练卷积神经网络(CNN)对CIFAR-10数据集进行分类
深度学习实践:构建并训练卷积神经网络(CNN)对CIFAR-10数据集进行分类 引言 在计算机视觉领域中,CIFAR-10数据集是一个经典的基准数据集,广泛用于图像分类任务。本文将介绍如何使用PyTorch框架构建一个简单的卷积神经…...
flowable 根据xml 字符串生成流程图
//获取xml InputStream stream repositoryService.getProcessModel(processDefinitionId); String result IOUtils.toString(stream, StandardCharsets.UTF_8); // 创建 XMLInputFactory XMLInputFactory factory XMLInputFactory.newInstance(); // 从字符…...
AI建模——AI生成3D内容算法产品介绍与模型免费下载
说明: 记录AI文生3D模型、图生3D模型的相关产品;记录其性能、功能、收费与免费方法 0.AI建模产品 Rodin MeshAnything Meshy 生成效果比较: Rodin效果最好、Meshy其次 1.Rodin 官网:gHyperHuman 支持:文生模型、…...
在Go中迅速使用RabbitMQ
文章目录 1 认识1.1 MQ分类1.2 安装1.3 基本流程 2 [Work模型](https://www.rabbitmq.com/tutorials/tutorial-two-go#preparation)3 交换机3.1 fanout3.2 direct3.3 [topic](https://www.rabbitmq.com/tutorials/tutorial-five-go) 4 Golang创建交换机/队列/Publish/Consume/B…...
Windows JDK安装详细教程
一、关于JDK 1.1 简介 Java是一种广泛使用的计算机编程语言,拥有跨平台、面向对象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。 JDK(Java Development Kit)是用于开发 Java 应用程序的工具包。它由以下几个主要…...
Ribbon负载均衡底层原理
springcloude服务实例与服务实例之间发送请求,首先根据服务名注册到nacos,然后发送请求,nacos可以根据服务名找到对应的服务实例。 SpringCloudRibbon的底层采用了一个拦截器,拦截了openfeign发出的请求,对地址做了修…...
【C语言可变参数函数的使用与原理分析】
文章目录 1 前言2 实例2.1实例程序2.2程序执行结果2.3 程序分析 3 补充4 总结 1 前言 在编程过程中,有时会遇到需要定义参数数量不固定的函数的情况。 C语言提供了一种灵活的解决方案:变参函数。这种函数能够根据实际调用时的需求,接受任意…...
【笔记】Java EE应用开发环境配置(JDK+Maven+Tomcat+MySQL+IDEA)
一、安装JDK17 1.下载JDK17 https://download.oracle.com/java/17/archive/jdk-17.0.7_windows-x64_bin.zip 2.配置环境变量 下载后,解压到本地(目录中最好不要有中文或特殊字符) 打开【控制面板】-【系统和安全】-【系统】-【高级系统…...
一文讲懂扩散模型
一文讲懂扩散模型 扩散模型(Diffusion Models, DM)是近年来在计算机视觉、自然语言处理等领域取得显著进展的一种生成模型。其思想根源可以追溯到非平衡热力学,通过模拟数据的扩散和去噪过程来生成新的样本。以下将详细阐述扩散模型的基本原理…...
学习笔记八:基于Jenkins+k8s+Git+DockerHub等技术链构建企业级DevOps容器云平台
基于Jenkinsk8sGitDockerHub等技术链构建企业级DevOps容器云平台 测试jenkins的CI/CD在Jenkins中安装kubernetes插件安装blueocean插件配置jenkins连接到我们存在的k8s集群配置pod-template添加自己的dockerhub凭据测试通过Jenkins部署应用发布到k8s开发环境、测试环境、生产环…...
科研绘图系列:R语言柱状图分布(histogram plot)
文章目录 介绍加载R包读取数据画图介绍 柱状图(Bar Chart)是一种常用的数据可视化图表,用于展示和比较不同类别或组的数据。它通过在二维平面上绘制一系列垂直或水平的柱子来表示数据的大小,每个柱子的长度或高度代表一个数据点的数值。柱状图非常适合于展示分类数据的分布…...
vue3+ts封装类似于微信消息的组件
组件代码如下: <template><div:class"[voice-message, { sent: isSent, received: !isSent }]":style"{ backgroundColor: backgroundColor }"click"togglePlayback"><!-- isSent为false在左侧,为true在右…...
ES6 reduce方法详解:示例、应用场景与实用技巧
在JavaScript中,reduce 方法是一个非常强大的数组方法,它允许你将数组中的元素归并(reduce)为单个值。reduce 方法执行一个由你提供的reducer函数(归并函数),将其结果汇总为单一的返回值。 一.…...
java后端保存的本地图片通过ip+端口直接访问
直接上代码吧 package com.ydx.emms.datapro.controller;import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.…...
注意!2026临沂可靠销售增长咨询公司排行
在竞争激烈的商业环境中,销售增长是企业生存与发展的关键。对于临沂的商贸和生产型企业来说,选择一家可靠的销售增长咨询公司至关重要。今天,我们就来深入了解一下2026年临沂可靠的销售增长咨询公司排行情况,其中山东润行管理咨询…...
M2LOrder模型解析Java八股文:核心知识点梳理与面试模拟
M2LOrder模型解析Java八股文:核心知识点梳理与面试模拟 最近和几个正在找工作的朋友聊天,发现他们最头疼的就是Java面试里的“八股文”。知识点又多又杂,背了忘忘了背,更别提那些需要深入理解的底层原理了。市面上题库倒是不少&a…...
边走边聊 Python 3.8:Chapter 3:控制流与循环
Chapter 3:控制流与循环 程序的逻辑由控制流决定,而循环则让程序拥有“重复的力量”。本章将带你理解 if、for、while 背后的思维方式,掌握 Python 独有的 for-else 结构,并通过实际案例让你真正体会“程序为什么这样走”。当你能控制程序的节奏,你就能让代码按你的意图行…...
从原理到实战:一文读懂主流交叉验证技术及其Python/R实现
1. 交叉验证的本质与价值 第一次听说"交叉验证"这个词时,我正被一个电商用户流失预测项目折磨得焦头烂额。当时在测试集上的准确率像过山车一样忽高忽低,直到 mentor 扔给我一句:"你该试试 K 折交叉验证"。这个简单的改变…...
从沙漏到矿机:聊聊离散元法DEM是怎么‘算’出颗粒世界的(附Rocky/EDEM软件对比与学习资源)
从沙漏到矿机:离散元法DEM如何重构颗粒世界的数字镜像 沙漏里的细沙流淌时,每一粒沙子都在重力和碰撞中演绎着独特的运动轨迹。这种看似简单的物理现象背后,隐藏着一个复杂的多体动力学问题——如何精确描述成千上万颗粒之间的相互作用&#…...
声音克隆新玩法:CosyVoice3教你融合多个音色生成独特声线
声音克隆新玩法:CosyVoice3教你融合多个音色生成独特声线 1. 引言:为什么需要声音融合技术 1.1 单一音色的局限性 在数字内容爆炸式增长的今天,声音克隆技术已经成为视频制作、有声读物、虚拟主播等领域的重要工具。然而,传统的…...
Debian根文件系统定制:从零构建到实战优化
1. Debian根文件系统入门指南 第一次听说"根文件系统"这个概念时,我也是一头雾水。简单来说,它就像是你电脑的操作系统"骨架"——包含了启动、运行和管理系统所需的所有核心文件和目录。想象一下盖房子,根文件系统就是地…...
macos简单配置openclaw贝
1 实用案例 1.1 表格样式生成 本示例用于生成包含富文本样式与单元格背景色的Word表格文档。 模板内容: 渲染代码: # python-docx-template/blob/master/tests/comments.py from docxtpl import DocxTemplate, RichText # data: python-docx-template/bl…...
机器学习中七种常见的数据泄露原因
原文:towardsdatascience.com/seven-common-causes-of-data-leakage-in-machine-learning-75f8a6243ea5 当我在评估 ChatGPT、Claude 和 Gemini 等 AI 工具用于机器学习用例时,如我在上一篇文章中所述,我遇到了一个关键陷阱:机器学…...
SolidWorks新手必看:7个实用技巧让你快速上手3D建模
SolidWorks新手必看:7个实用技巧让你快速上手3D建模 刚接触SolidWorks时,面对复杂的界面和众多功能按钮,很多初学者会感到无从下手。作为一款广泛应用于机械设计、工业制造等领域的3D建模软件,SolidWorks的学习曲线并不平缓。但掌…...
