Linux快速部署大语言模型LLaMa3,Web可视化j交互(Ollama+Open Web UI)

news2024/12/23 19:12:31

本文在个人博客同步发布,前往阅读

1 介绍

本文将介绍使用开源工具Ollama(60.6k⭐)部署LLaMa大模型,以及使用Open WebUI搭建前端Web交互界面的方法。

我们先来过一遍几个相关的概念,对这块比较熟悉的朋友可跳过。

1.1 大规模语言模型

大规模语言模型(Large Language Models, LLMs),顾名思义是指在大量语料数据的基础上训练成的模型,能够模拟人类的语言风格生成较为生动的文本。这类模型的主要特征有:

  • 规模大:训练所使用的数据量非常庞大,有时超过1000亿个参数。
  • 复杂性高:模型结构比较复杂
  • 具有较好的上下文理解能力:大规模语言模型可以理解文本的上下文和细微差别

1.2 LLaMa

LLaMA是一种大规模语言模型,由Meta AI基于Transformer深度学习框架开发。该模型旨在生成各种风格的高质量文本(例如创意写作、对话甚至诗歌),能够胜任以下工作:

  • 自然语言处理(NLP):理解和生成自然语言。
  • 机器学习:根据数据和算法学习新的信息和技能。
  • 对话生成:可以与用户进行对话,并根据情况生成合适的回应。

1.3 Ollama

官网:Ollama

API文档:ollama/docs/api.md at main · ollama/ollama (github.com)

支持的模型列表:library

一款可以快速部署大模型的工具。

1.4 Open WebUI

官网:Open WebUI

相关介绍及源码:open-webui/open-webui: User-friendly WebUI for LLMs (Formerly Ollama WebUI) (github.com)

Open WebUI 是一个可视化的Web交互环境,它拥有清新简约的UI风格,具有可扩展、功能丰富、用户友好、自托管的特点,可以完全离线运行。它支持各种 LLM 运行程序,包括 Ollama 和 OpenAI 兼容的 API。

2 部署LLM服务

本文介绍的方法使用于Linux系统,同样适用于Windows系统的WSL(安装方法可参见我的这篇文章)。

2.1 部署Ollama

1、下载Ollama

Linux系统的安装命令如下:

curl -fsSL https://ollama.com/install.sh | sh

※此外官方还提供了macOS和Windows的下载方式。

2、下载llama3模型

ollama run llama3

※在这里可以看到该命令的相关介绍。

上述命令将自动拉取模型,并进行sha256验签。处理完毕后自动进入llama3的运行环境,可以使用中文或英文进行提问,ctrl+D退出。

3、配置服务

为使外网环境能够访问到服务,需要对HOST进行配置。

打开配置文件:vim /etc/systemd/system/ollama.service,根据情况修改变量Environment

  • 服务器环境下:Environment="OLLAMA_HOST=0.0.0.0:11434"
  • 虚拟机环境下:Environment="OLLAMA_HOST=服务器内网IP地址:11434"

3、启动服务

启动服务的命令:ollama serve

首次启动可能会出现以下两个提示:

Couldn’t find ‘/home/用户名/.ollama/id_ed25519’. Generating new private key.

该提示表示文件系统中不存在ssh私钥文件,此时命令将自动帮我们生成该文件,并在命令行中打印相应的公钥。

Error: listen tcp 127.0.0.1:11434: bind: address already in use

看到该提示,大概率服务已在运行中,可以通过netstat -tulpn | grep 11434命令进行确认。

  • 若命令输出的最后一列包含“ollama”字样,则表示服务已启动,无需做额外处理。
  • 否则,可尝试执行下列命令重启ollama:
# ubuntu/debian
sudo apt update
sudo apt install lsof
stop ollama
lsof -i :11434
kill <PID>
ollama serve

# centos
sudo yum update
sudo yum install lsof
stop ollama
lsof -i :11434
kill <PID>
ollama serve

如果您使用的是MacOS,可在🔗这里找到解决方法。

4、在外网环境验证连接

方法一:执行curl http://ip:11434命令,若返回“Ollama is running”,则表示连接正常。

方法二:在浏览器访问http://ip:11434,若页面显示文本“Ollama is running”,则表示连接正常。

2.2 Ollama常用命令

1、进入llama3运行环境:ollama run llama3

2、启动服务:ollama serve

3、重启ollama

systemctl daemon-reload
systemctl restart ollama

4、重启ollama服务

# ubuntu/debian
sudo apt update
sudo apt install lsof
stop ollama
lsof -i :11434
kill <PID>
ollama serve

# centos
sudo yum update
sudo yum install lsof
stop ollama
lsof -i :11434
kill <PID>
ollama serve

5、确认服务端口状态:netstat -tulpn | grep 11434

3 部署Open WebUI

1、下载Open WebUI

Open WebUI基于docker部署,docker的安装方法可以参考这篇知乎文章。

Open WebUI既可以部署在服务端,也可以部署在客户端:

# 若部署在客户端,执行:
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

# 若部署在服务端,执行:
docker run -d -p 3000:8080 -e OLLAMA_BASE_URL=https://example.com -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main

如果您的机器在国内,建议将--restart的参数值替换为ghcr.nju.edu.cn/open-webui/open-webui:main,下载速度会快非常多(见up主小杨生存日记的这篇文章)。

2、检查相关配置

下载完之后,就可以在浏览器访问了,地址为http://loacalhost:3000(客户端部署)或http://服务器ip:3000

页面加载完成后(这个过程可能需要一些时间),新注册一个账号并登录。

登录之后,点击页面顶端的齿轮⚙图标进入设置:

  1. 侧边导航栏-General,将语言设置为中文
  2. 侧边导航栏-连接,若“Ollama 基础 URL”这一项为http://host.docker.internal:11434,则表示ollama服务正常且连接成功;如果是空的,则需要回头检查一下ollama服务了
  3. 侧边导航栏-模型,一般会自动拉取ollama服务上部署好的模型,可选模型参看官方的这篇文档
  4. 其它的项目根据需要设置即可

3、选择模型

在顶端下拉框选择好模型,就可以开始提问啦!
在这里插入图片描述

参考文章

  • macOS + Ollama + Enchanted,本地部署最新 Llama3 - 掘金 (juejin.cn)
  • 服务器部署开源大模型完整教程 Ollama+Gemma+open-webui - 哔哩哔哩 (bilibili.com)
  • Ollama管理本地开源大模型,用Open WebUI访问Ollama接口 - 知乎 (zhihu.com)

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

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

相关文章

从递归角度串联二叉树-图论-动态规划

一、深度理解二叉树的前中后序遍历 二叉树遍历框架如下&#xff1a; void traverse(TreeNode* root) {if (root nullptr) {return;}// 前序位置traverse(root->left);// 中序位置traverse(root->right);// 后序位置 }先不管所谓前中后序&#xff0c;单看 traverse 函数…

keytool,openssl的使用

写在前面 在生成公钥私钥&#xff0c;配置https时经常需要用到keytool&#xff0c;openssl工具&#xff0c;本文就一起看下其是如何使用的。 keytool是jdk自带的工具&#xff0c;不需要额外下载&#xff0c;但openssl需要额外下载 。 1&#xff1a;使用keytool生成jks私钥文件…

Office Word自动编号转文本

原理 使用office自带的宏功能&#xff0c;一键替换 过程 调出word的“开发工具”选项 文件->选项->自定义功能区->选中开发工具->确定 创建宏 开发工具->宏->创建宏 编写宏 在弹出来的框里&#xff0c;替换代码为 Sub num2txt() ActiveDocument.…

ArcGIS批量寻找图层要素中的空洞

空洞指的是图层中被要素包围所形成的没有被要素覆盖的地方&#xff0c;当图层要素数量非常庞大时&#xff0c;寻找这些空洞就不能一个一个的通过目测去寻找了&#xff0c;需要通过使用工具来实现这一目标。 一、【要素转线】工具 利用【要素转线】工具可以将空洞同图层要素处于…

电商技术揭秘三十五:智能风控功能架构浅析

相关系列文章 电商技术揭秘相关系列文章合集&#xff08;1&#xff09; 电商技术揭秘相关系列文章合集&#xff08;2&#xff09; 电商技术揭秘二十八&#xff1a;安全与合规性保障 电商技术揭秘二十九&#xff1a;电商法律合规浅析 电商技术揭秘三十&#xff1a;知识产权保…

WEB攻防-PHP特性-CMS审计实例

前置知识&#xff1a;PHP函数缺陷 测试环境&#xff1a;MetInfo CMS 函数缺陷导致的任意文件读取 漏洞URL&#xff1a;/include/thumb.php?dir 漏洞文件位置&#xff1a;MetInfo6.0.0\app\system\include\module\old_thumb.class.php <?phpdefined(IN_MET) or exit(No…

ElasticSearch语句中must,must_not,should 组合关系

前言&#xff1a; 在实际应用中&#xff0c;发现当bool中同时使用must和should 没有达到想要的想过&#xff0c;而是只展示了must中的命中数据&#xff0c;所以打算探究一下bool中 三种逻辑关系的组合。 上述查询语句只展示了must的结果&#xff0c;没有should中的结果&#…

Kafka 3.x.x 入门到精通(06)Kafka进阶

Kafka 3.x.x 入门到精通&#xff08;06&#xff09;——对标尚硅谷Kafka教程 3. Kafka进阶3.1 Controller选举3.2 Broker上线下线3.3 数据偏移量定位3.4 Topic删除3.5 日志清理和压缩3.7 页缓存3.8 零拷贝3.9 顺写日志3.10 Linux集群部署3.10.1 集群规划3.10.2 安装虚拟机(略)3…

MemFire解决方案-物联网数据平台解决方案

方案背景 随着各种通讯、传感技术发展&#xff0c;数据通讯成本的急剧下降&#xff0c;数以万亿计的智能设备&#xff08;智能手环、智能电表、智能手机、各种传感器设备等&#xff09;接入网络&#xff0c;并源源不断的产生海量的实时数据。这些海量数据的价值挖掘&#xff0…

15.Blender Eevee和Cycles渲染引擎对比

初步介绍 Eevee是实时渲染的引擎&#xff0c;会省略一些解算方式&#xff0c;尤其对光线和阴影 Cycles会考虑这些因素&#xff0c;所以会对光线和阴影的表达更加真实&#xff0c;有一个实时光线追踪的功能 Cycles渲染完之后&#xff0c;每移动一次画面&#xff0c;都会重新渲染…

机器学习之Scikit-learn基础教程

Scikit-learn&#xff08;简称sklearn&#xff09;是一个广泛使用的Python机器学习库&#xff0c;它提供了各种算法和工具&#xff0c;用于数据挖掘和数据分析。本教程将介绍sklearn的基本概念和使用方法。 1. 安装Scikit-learn 如果你还没有安装scikit-learn&#xff0c;可以…

设计模式学习笔记 - 开源实战五(下):总结Mybatis中用到的10种设计模式

概述 本章再对 Mybatis 用到的设计模式做一个总结。它用到的设计模式也不少。有些前面章节已经经过了&#xff0c;有些则比较简单。 SqlSessionFactoryBuilder&#xff1a;为什么要用建造者模式来创建 SqlSessionFactory&#xff1f; 在《Mybatis如何权衡易用性、性能和灵活性…

nvm的下载与安装

nvm&#xff08;Node Version Manager&#xff09;是一个用于管理 Node.js 版本的工具&#xff0c;它允许您在同一台计算机上安装和切换不同的 Node.js 版本。 一、下载地址 https://github.com/coreybutler/nvm-windows/releases 二、安装nvm 三、设置环境变量 在命令提示…

python之List列表

1. 高级数据类型 Python中的数据类型可以分为&#xff1a;数字型&#xff08;基本数据类型&#xff09;和非数字型&#xff08;高级数据类型&#xff09; 数字型包含&#xff1a;整型int、浮点型float、布尔型bool、复数型complex 非数字型包含&#xff1a;字符串str、列表l…

URL路由基础与Django处理请求的过程分析

1. URL路由基础 对于高质量的Web应用来讲&#xff0c;使用简洁、优雅的URL设计模式非常有必要。Django框架允许设计人员自由地设计URL模式&#xff0c;而不用受到框架本身的约束。对于URL路由来讲&#xff0c;其主要实现了Web服务的入口。用户通过浏览器发送过来的任何请求&am…

张小泉签约实在智能,用实在Agent打造自动化高

在不少老杭州人的童年记忆里&#xff0c;妈妈裁剪衣服、料理食材、修剪各种物品&#xff0c;用的都是张小泉刀剪。 近日&#xff0c;实在智能与“刀剪第一股”张小泉&#xff08;股票代码&#xff1a;301055.SZ&#xff09;正式达成合作&#xff0c;实在Agent数字员工助力张小…

PT Knockin - 仅需两分钟的在线电子邮件安全检查

我们很高兴向您介绍电子邮件安全评估工具 PT Knockin。 PT Knockin 是一个基于云的 SaaS 解决方案。这意味着企业无需下载或安装任何东西。他们只需访问 PT Knockin 网页&#xff0c;输入电子邮件地址并登录&#xff0c;然后在两分钟内收到电子邮件安全有效性分析报告以及解决…

Unreal Engine添加UGameInstanceSubsystem子类

点击C类文件夹&#xff0c;在右边的区域点击鼠标右键&#xff0c;在弹出的菜单中选择“新建C类”在弹出的菜单中选中“显示所有类”&#xff0c;选择GameInstanceSubsystem作为父类, 点击“下一步”按钮输入子类名称“UVRVIUOnlineGameSubsystem”&#xff0c;选择插件作为新类…

HTTP网络协议的请求方法,具体详解(2024-04-26)

1、HTTP 即超文本传输协议&#xff0c;是一种实现客户端和服务器之间通信的响应协议&#xff0c;它是用作客户端和服务器之间的请求 根据 HTTP 标准&#xff0c;HTTP 请求可以使用多种请求方法。 2、方法分类 HTTP1.0 定义了三种请求方法&#xff1a; GET, POST 和 HEAD 方…

[Linux][网络][网络基础][协议][网络传输基本流程][数据包封装和分用]详细讲解

目录 1.认识协议1."协议"本质就是一种约定2.计算机中的协议 2.网络协议初识1.协议分层2.OSI七层模型3.TCP/IP五层(四层)模型 3.网络传输基本流程0.预备知识1.跨网络的两台主机通信2.网络通信的基本轮廓 4.数据包封装和分用1.数据封装的过程2.数据分用的过程3.总结 5.…