大模型笔记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 Service
     Loaded: loaded (/etc/systemd/system/ollama.service; enabled; preset: enabl>
     Active: active (running) since Wed 2024-08-28 20:29:03 CST; 3 days ago
   Main PID: 1743 (ollama)
      Tasks: 15 (limit: 38363)
     Memory: 1.7G (peak: 1.8G)
        CPU: 21.202s
     CGroup: /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的模型。

注意事项

  1. 除了基于 ollama 这种方式使用指定的大模型,还可以使用LM Studio等工具在本地快速运行大模型实现chatgpt。
  2. 如果想实现更多配置能力和自定义agent,也可以考虑基于 Fastgpt, autogen, dify 等来部署开发自己的大模型相关服务。
  3. 如果不想部署的话也可以直接体验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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【神经网络系列(高级)】神经网络Grokking现象的电路效率公式——揭秘学习飞跃的秘密【通俗理解】

【通俗理解】神经网络Grokking现象的电路效率公式 论文地址: https://arxiv.org/abs/2309.02390 参考链接: [1]https://x.com/VikrantVarma_/status/1699823229307699305 [2]https://pair.withgoogle.com/explorables/grokking/ 关键词提炼 #Grokkin…

【办公效率】Axure会议室预订小程序原型图,含PRD需求文档和竞品分析

作品说明 作品页数:共50页 兼容版本:Axure RP 8/9/10 应用领域:中小型企业的会议室在线预订 作品申明:页面内容仅用于功能演示,无实际功能 作品特色 本作品为会议室预订小程序原型图,定位于拥有中大型…

Python 人脸识别实战教程

引言 在本教程中,我们将深入探讨如何使用Python和OpenCV库来实现人脸检测与识别。本文从基础知识入手,逐步构建一个简单的人脸识别系统。本教程假设读者已经熟悉Python编程,并具备一定的OpenCV使用经验。 环境配置 安装必要的库 确保您的…

GitLab 是什么?GitLab使用常见问题解答

GitLab 是什么 GitLab是由GitLab Inc.开发,使用MIT许可证的基于网络的Git仓库管理工具开源项目,且具有wiki和issue跟踪功能,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。 ​GitLab 是由 GitLab Inc.开发&#xff0c…

COD论文笔记 ECCV2024 Just a Hint: Point-Supervised Camouflaged Object Detection

这篇论文的主要动机、现有方法的不足、拟解决的问题、主要贡献和创新点: 1. 动机 伪装物体检测(Camouflaged Object Detection, COD)旨在检测隐藏在环境中的伪装物体,这是一个具有挑战性的任务。由于伪装物体与背景的细微差别和…

怎么才能快速提升网站在谷歌的收录?

​想让你的网站在谷歌快速收录,其实正常的方法都需要时间,无论是定期更新,提交网站地图,搞外链建设啥的,这些方法虽然有效,但见效慢。而且谷歌爬虫不会一下子抓取你所有页面,需要时间。如果真想…

@antv/g6 业务场景:流程图

1、流程图是流经一个系统的信息流、观点流或部件流的图形代表。在企业中,流程图主要用来说明某一过程。这种过程既可以是生产线上的工艺流程,也可以是完成一项任务必需的管理过程。业务场景流程图如下: 2、绘制流程图的 Tips 流程图一般是用…

Android图片缓存工具类LruCache原理和使用介绍

LruCache & DiskLruCache原理。 常用的三级缓存主要有LruCache、DiskLruCache、网络,其中LruCache对应内存缓存、 DiskLruCache对应持久化缓存。Lru表示最近最少使用,意思是当缓存到达限制时候,优先淘汰近 期内最少使用的缓存&#xff0c…

[数据集][目标检测]轮胎缺陷检测数据集VOC+YOLO格式2154张4类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):2154 标注数量(xml文件个数):2154 标注数量(txt文件个数):2154 标注…

安防监控视频打手机检测算法核心技术打手机检测算法源码、模型简介

在数字化的今天,智能手机几乎已成为人们生活中不可或缺的一部分。然而,手机的广泛使用也带来了一些挑战,比如在公共场所、教育机构和工作环境中的手机干扰。为了解决这些问题,打手机检测算法应运而生,成为管理人员和机…

【C++】—— string 类的了解与使用

【CPP】—— string类的了解与使用 1、 为什么学习string 类1.1、 C语言中的字符串1.2、 面试题中更多以 string 类出现 2、 标准库中的 string 类3、 string 的默认成员函数3.1、 string 的构造与拷贝构造3.2、 string 的赋值重载3.3、 string 的析构函数 4、 operator[ ]4.1、…

Golang | Leetcode Golang题解之第388题文件的最长绝对路径

题目&#xff1a; 题解&#xff1a; func lengthLongestPath(input string) (ans int) {n : len(input)level : make([]int, n1)for i : 0; i < n; {// 检测当前文件的深度depth : 1for ; i < n && input[i] \t; i {depth}// 统计当前文件名的长度length, isFi…

图文解析保姆级教程:Postman专业接口测试工具的安装和基本使用

文章目录 1. 引入2. 介绍3. 安装4. 使用 此教程摘选自我的笔记&#xff1a;黑马JavaWeb开发笔记16——请求&#xff08;postman、简单参数、实体参数、数组集合参数、日期参数、Json参数、路径参数&#xff09;想要详细了解更多有关请求各种参数介绍的知识可以移步此篇笔记。 1…

KNN算法

1 KNN算法简介 KNN算法思想&#xff1a;如果一个样本在特征空间中的K个最相似的样本中的大多数属于某一个类别&#xff0c;则该样本也属于这个类别。 K值过小&#xff1a;用较小领域中的训练实例进行预测。 容易受到异常点的影响K值的减小意味着整体模型变得复杂&#xff0c;容…

深度学习——强化学习算法介绍

强化学习算法介绍 强化学习讨论的问题是一个智能体(agent) 怎么在一个复杂不确定的环境(environment)里面去极大化它能获得的奖励。 强化学习和监督学习 强化学习有这个试错探索(trial-and-error exploration)&#xff0c;它需要通过探索环境来获取对环境的理解。强化学习 ag…

仕考网:公务员笔试和面试哪个难?

公务员笔试和面试哪个难?二者之间考察的方向不同&#xff0c;难度也是不同的。 笔试部分因其广泛的知识点和有限的考试时间显得难度更高一些&#xff0c;在笔试环节中&#xff0c;考生需在有限的时间内应对各种问题&#xff0c;而且同时还要面对激烈的竞争&#xff0c;在众多…

最基本的SELECT...FROM结构

第0种&#xff1a;最基本的查询语句 SELECT 字段名&#xff0c;字段名 FROM 表名 SELECT 1&#xff1b; SELECT 11,3*2&#xff1b; FROM SELECT 11,3*2 FROM DUAL&#xff1b;#dual&#xff1a;伪表 我们可以用它来保持一个平衡 这里我们的值不需要在任何一个表里&#xf…

【Java毕业设计】基于SpringBoot+Vue+uniapp的农产品商城系统

文章目录 一、系统架构1、后端&#xff1a;SpringBoot、Mybatis2、前端&#xff1a;Vue、ElementUI4、小程序&#xff1a;uniapp3、数据库&#xff1a;MySQL 二、系统功能三、系统展示1、小程序2、后台管理系统 一、系统架构 1、后端&#xff1a;SpringBoot、Mybatis 2、前端…

idea中git提交或push到远程后回退到之前的某次提交简单有效的解决方案

场景&#xff1a; 1、先模拟出团队多人开发多分支&#xff0c;在各个分支分别提交代码&#xff0c;然后都合并到master分支 2、模拟如下两个分支dev、dev-0902合并到master&#xff0c;并且合并master后push到远程了 3、假如更新版本计划有变&#xff0c;只上dev-0902分支&…

华为达芬奇人像引擎2.0,人像体验有哪些升级

对于年轻人而言&#xff0c;拍照已成为生活中不可或缺的一部分&#xff0c;不仅是为了记录世界、更重要的是成为生活的主角&#xff0c;大胆表达自己。然而很多喜欢使用手机记录生活的人&#xff0c;既希望能够实现媲美单反的影像实力&#xff0c;同时还想呈现出真实、更具自然…