【大语言模型】本地快速部署Ollama运行大语言模型详细流程

news2024/10/6 1:37:06

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
img

  • 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老
  • 导航
    • 檀越剑指大厂系列:全面总结 java 核心技术,jvm,并发编程 redis,kafka,Spring,微服务等
    • 常用开发工具系列:常用的开发工具,IDEA,Mac,Alfred,Git,typora 等
    • 数据库系列:详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
    • 新空间代码工作室:提供各种软件服务,承接各种毕业设计,毕业论文等
    • 懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
    • 数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂

非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

博客目录

    • 前言
    • 1. 运行 Ollama
    • 2. 安装 Open WebUI
      • 2.1 在 Windows 系统安装 Docker
      • 2.2 使用 Docker 部署 Open WebUI
    • 3. 安装内网穿透工具
    • 4. 创建固定公网地址

前言

本文主要介绍如何在 Windows 系统快速部署 Ollama 开源大语言模型运行工具,并安装 Open WebUI 结合 cpolar 内网穿透软件,实现在公网环境也能访问你在本地内网搭建的 llama2、千文 qwen 等大语言模型运行环境。

近些年来随着 ChatGPT 的兴起,大语言模型 LLM(Large Language Model)也成为了人工智能 AI 领域的热门话题,很多大厂也都推出了自己的大语言模型,并或多或少的开源了自己的大语言模型,今天就来分享一个最近很火,且对于小白来说比较好上手本地部署的运行本地 LLM 的工具 Ollama。

在本地运行大语言模型有诸多优点:

比如可以保护隐私不会产生费用可以无视网络问题可以尝鲜各种开源模型等等。

Ollama 支持当前主要的开源大模型, 比如 llama2、千文 qwen、mistral 等,可以在 Windows、Linux、MacOS 系统上进行部署。稳定性和便利性都非常不错,下面就来分享一下它在 Windows 系统上的安装与应用。

1712892863233

1. 运行 Ollama

本文安装环境为:Windows10 专业版

下载: Ollama 下载地址:https://ollama.com/download

在下载页面点击 Windows,然后点击下载按钮。

image-20240412112815418

安装: 下载完成后,双击下载的安装程序。

image-20240412113651226

点击 Install 进行安装。

image-20240412113757729

安装完成没有提示,我们打开一个终端,本文以 Windows PowerShell 为例,大家也可以使用其他的:

现在 Ollama 已经安装完了,我们需要在终端中输入下方命令运行一个大语言模型进行测试,这里以对在中文方面表现相对好些的千问为例,大家也可以使用其他的模型。

ollama run qwen

image-20240412114551493

可以看到,系统正在下载 qwen 的模型(并保存在 C 盘,C:\Users<username>.ollama\models 如果想更改默认路径,可以通过设置OLLAMA_MODELS进行修改,然后重启终端,重启 ollama 服务。)

setx OLLAMA_MODELS "D:\ollama_model"

image-20240412115240118

模型下载完成后,我们就可以在终端中输入问题进行使用了:

image-20240412115431766

至此,在 Windows 本地部署 ollama 并运行 qwen 大语言模型就已经完成了。一键搞定,对新手体验大语言模型真的非常友好。

2. 安装 Open WebUI

不过,我们现在只能在终端中使用,操作界面可能不像 ChatGPT 那样美观,如果能使用 web 页面进行交互,使用体验更好,也能保留之前的聊天记录,翻遍我们翻阅查询。

针对这个情况,我们可以在 Windows 上部署 Open WebUI 这个项目来实现类似 chatgpt 一样的交互界面。

本教程以 Open WebUI 这个项目为例,它以前的名字就叫 Formerly Ollama WebUI。可以理解为一开始就是专门适配 Ollama 的 WebUI,它的界面也对用惯了 chatgpt 的小伙伴来说更相似一些。当然,大家也可以选择其他的 WebUI,之后有机会也可以分享给大家。

如何在 Windows 系统安装 Open WebUI:

2.1 在 Windows 系统安装 Docker

首先,如果大家之前未安装过 Docker,需要执行下面三个步骤进行安装:

第一步:启动 Hyper-v

打开控制面板,在程序与功能页面选择启用或 Windows 功能

55b168adb3b2487ebef5a56f9b5bfe16.png

勾选 Hyper-V、虚拟机平台、Linux 子系统并点击确认

fcc551d53f2a4d8a9261519deaae49ea.png

然后,重启计算机。

第二步:安装 WSL

打开 powershell,以管理员的身份启动命令窗口,输入

wsl --update

安装

wsl --install
7803831a6fef8563132920692cf5bb5

然后再次重启电脑。

第三步:访问 Docker 官网进行下载

点击下载链接:https://docs.docker.com/desktop/install/windows-install/

image-20240412134453950

选择 Windows 最新版本:

29e8d9fd062d765b10f64c27dd14097

下载完成后,双击安装程序进行安装,如果是第一次安装,安装后会提示重启电脑,重启后点击桌面的 Docker Desktop 图标:选择先不注册直接登录即可。

image-20240412135009554

打开 Docker Desktop 后,左下角显示是绿色的 running 就代表我们成功了:

image-20240412135830591

2.2 使用 Docker 部署 Open WebUI

在 Open WebUI 的 github 页面 https://github.com/open-webui/open-webui 可以看到,如果你的 Ollama 和 Open WebUI 在同一台主机,那使用下面显示的这一行命令就可以在本地快速进行部署:

image-20240412140749937

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

现在我们打开终端,比如 powershell,然后输入 docker,回车

image-20240412143329625

可以看到这个命令成功运行,说明 docker 安装成功。

然后将上边在 docker 中部署 Open WebUI 的命令复制后粘贴到终端中,回车。

image-20240412143603992

然后等待安装完毕即可:如下图所示

image-20240412144132799

安装完成后,在 Docker Desktop 中可以看到 Open WebUI 的 web 界面地址为:https://localhost:3000

image-20240412144401182

点击后,会在浏览器打开登录界面:

image-20240412144744192

点击 sign up 注册,账号,邮箱,密码记好,下次登录时需要用到邮箱和密码登录:

image-20240412144927140

然后点击 create account 创建账号即可:然后就能在浏览器中使用类似 chatgpt 界面的 Open WebUI 了!

image-20240412145046113

点击右上角的设置,可以修改当前界面的语言为简体中文:然后点击保存即可。

image-20240412145306289

image-20240412145337352

点击上方选择一个模型旁边的加号+可以增加大模型,点击下拉按钮可以选择当前使用哪一个已安装的模型,接下来就可以愉快的跟 ai 聊天了!

image-20240412145604350

3. 安装内网穿透工具

至此,我们已经成功完成在本地 Windows 系统使用 Docker 部署 Open WebUI 与 Ollama 大模型工具进行交互了!但如果想实现出门在外,也能随时随地使用 Ollama Open WebUI,那就需要借助 cpolar 内网穿透工具来实现公网访问了!接下来介绍一下如何安装 cpolar 内网穿透并实现公网访问!

下面是安装 cpolar 步骤:

cpolar 官网地址: https://www.cpolar.com

点击进入 cpolar 官网,点击免费使用注册一个账号,并下载最新版本的 cpolar

img

登录成功后,点击下载 cpolar 到本地并安装(一路默认安装即可)本教程选择下载 Windows 版本。

image-20240319175308664

cpolar 安装成功后,在浏览器上访问 http://localhost:9200,使用 cpolar 账号登录,登录后即可看到 cpolar web 配置界面,结下来在 web 管理界面配置即可。

img

接下来配置一下 Open WebUI 的公网地址,

登录后,点击左侧仪表盘的隧道管理——创建隧道,

创建一个 ollama1 的公网 http 地址隧道:

  • 隧道名称:ollama1(可自定义命名,注意不要与已有的隧道名称重复)
  • 协议:选择 http
  • 本地地址:3000 (本地访问的地址)
  • 域名类型:免费选择随机域名
  • 地区:选择 China Top

db922938915f169100c3099795edd0a

隧道创建成功后,点击左侧的状态——在线隧道列表,查看所生成的公网访问地址,有两种访问方式,一种是 http 和 https:

image-20240412152551655

使用上面的任意一个公网地址,在手机或任意设备的浏览器进行登录访问,即可成功看到 Open WebUI 界面,这样一个公网地址且可以远程访问就创建好了,使用了 cpolar 的公网域名,无需自己购买云服务器,即可到公网访问 Open WebUI 了!

image-20240412152651947

小结

如果我们需要长期异地远程访问 Open WebUI,由于刚才创建的是随机的地址,24 小时会发生变化。另外它的网址是由随机字符生成,不容易记忆。如果想把域名变成固定的二级子域名,并且不想每次都重新创建隧道来访问 Open WebUI,我们可以选择创建一个固定的公网地址来解决这个问题。

4. 创建固定公网地址

我们接下来为其配置固定的 HTTP 端口地址,该地址不会变化,方便分享给别人长期查看你部署的项目,而无需每天重复修改服务器地址。

配置固定 http 端口地址需要将 cpolar 升级到专业版套餐或以上。

登录 cpolar 官网,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称

image-20240412152906479

保留成功后复制保留成功的二级子域名的名称:myollama,大家也可以设置自己喜欢的名称。

image-20240412152954731

返回登录 Cpolar web UI 管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道:ollama1,点击右侧的编辑:

image-20240412153114908

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名:myollama

点击更新(注意,点击一次更新即可,不需要重复提交)

image-20240412153213518

更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,地址名称也变成了固定的二级子域名名称的域名:

image-20240412153253106

最后,我们使用固定的公网 https 地址访问,可以看到访问成功,这样一个固定且永久不变的公网地址就设置好了,可以随时随地在公网环境异地访问本地部署的 Open WebUI 了!

image-20240412153508464
以上就是如何在 Windows 系统本地安装 Ollama 大模型工具并使用 docker 部署 Open WebUI,结合 cpolar 内网穿透工具实现公网访问本地 LLM,并配置固定不变的二级子域名公网地址实现远程访问的全部流程,感谢您的观看,有任何问题欢迎留言交流。

觉得有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

img

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

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

相关文章

在mybatis 中如何防止 IN里面的参数过多?

代码示例&#xff1a; select xsid from zhxg_gy_ssfp_cwfp where xsid in <foreach collection"list" item"item" open"(" close")" separator" " index"index"> <if test"(index % 999) 998&quo…

C#调用外部API(托管和非托管DLL)

DLL程序的两种类型 托管对象(有垃圾回收机制&#xff0c;内存安全)非托管对象(无垃圾回收机制&#xff0c;需手动回收) 托管对象与非托管对象具体区别参考&#xff1a;【C#】中托管与非托管对象区别、托管与非托管DLL区别_c# dllimport 托管dll-CSDN博客 生成和调用托管对象…

华为中小企业组网

一、组网图 说明&#xff1a;接入交换机ACC1&#xff08;S2750&#xff09;&#xff0c;核心/汇聚交换机CORE&#xff08; S5700 &#xff09;和出口路由器Router&#xff08;AR系列路由器&#xff09;为例。 核心交换机配置VRRP保证网络可靠性&#xff0c;配置负载分担有效利…

Fastjson漏洞之CVE-2022-25845

前言&#xff1a; 针对Fastjson之前已经介绍了&#xff0c;这里就不再重复了&#xff0c;漏洞CVE-2017-18349只能用来攻击>1.2.24版本的&#xff0c;CVE-2022-25845属于CVE-2017-18349的升级版&#xff0c;但是目前仅影响到1.2.83以下版本。CVE-2022-25845本质上是绕过了名…

数据仓库与数据挖掘(期末复习)

数据仓库与数据挖掘&#xff08;期末复习&#xff09; ETL的含义Extract 、 Transformation、Load。 ODS的全称Operational Data Store。 DW全称 Data Warehourse DM全称是Data Mart 数据仓库数据抽取时所用到技术是增量、全量、定时、调度 STAGE层作用是提供业务系统数据…

[Python学习篇] Python列表

列表&#xff08;List&#xff09;&#xff1a;列表是可变的&#xff0c;这意味着你可以修改列表的内容&#xff0c;例如增加、删除或更改元素。列表使用方括号 [] 表示。列表可以一次性存储多个数据&#xff0c;且可以存不同数据类型。 语法&#xff1a; [数据1, 数据2, 数据3…

浅浅记录一下实现锚点定位

如图&#xff0c;左边是一个快捷导航&#xff0c;右边是主体内容&#xff08;每个卡片对应一个小导航&#xff09; 直接上代码分析 左边的导航侧由静态数据循环生成&#xff08;当前选中有蓝色背景样式&#xff0c;还有不可点击样式&#xff09; <div class"word-tip…

springboot与flowable(5):任务分配(表达式)

在做流程定义时我们需要给相关的用户节点指派对应的处理人。在flowable中提供了三种分配的方式。 一、固定分配 在分配用户时选择固定值选项确认即可。 二、表达式 1、值表达式 2、方法表达式 三、表达式流程图测试 1、导出并部署 导出流程图&#xff0c;复制到项目中 部署流…

集合进阶(泛型、泛型通配符、数据结构(二叉树、平衡二叉树、红黑树

一、泛型类、泛型方法、泛型接口 1、泛型概述 泛型&#xff1a;是JDK5中引入的特性&#xff0c;可以在编译阶段约束操作的数据类型&#xff0c;并进行检查。泛型的格式&#xff1a;<数据类型>注意&#xff1a;泛型只能支持引用数据类型。 泛型的好处 1、统一数据类型。 …

【深度学习】GELU激活函数是什么?

torch.nn.GELU 模块在 PyTorch 中实现了高斯误差线性单元&#xff08;GELU&#xff09;激活函数。GELU 被用于许多深度学习模型中&#xff0c;包括Transformer&#xff0c;因为它相比传统的 ReLU&#xff08;整流线性单元&#xff09;函数能够更好地近似神经元的真实激活行为。…

HardFault Err,无法调试,错误定位

一、简介 在平时开发的时候&#xff0c;经常会遇到程序报错的情况。对于裸机来说&#xff0c;可以通过在线调试的方式进行定位问题。但是对于RTOS系统来时&#xff0c;很多MCU/SOC是不支持在线调试的&#xff0c;此时&#xff0c;如果系统报错&#xff0c;我们就需要根据系统的…

节假日零售数据分析:节假日销售的得力助手

在奥威BI零售数据分析方案预设了一张BI节假日分析报表&#xff08;BI数据可视化报表&#xff09;&#xff0c;它能够帮助零售企业深入理解节假日期间的销售动态&#xff0c;从而做出更精准的市场策略调整。以下是利用该报表进行数据分析的具体步骤和要点&#xff1a; 一、数据…

burp靶场xss漏洞(中级篇)上

靶场地址 http://portswigger.net/web-security/all-labs#cross-site-scripting 第一关&#xff1a;DOM型&#xff08;使用document.write函数&#xff09; 1.点击随机商品后找到搜索框&#xff0c;后在URL中添加storeId查询参数&#xff0c;并输入一个随机字母数字字符串作为…

从入门到精通:一步步打造稳定可靠的API服务

引言 在当今的软件开发周期中&#xff0c;API服务已经成为重要的组成部分&#xff0c;它们允许不同的应用程序和服务之间进行通信和数据交换。打造一个稳定可靠的API服务对于任何商业应用来说都是至关重要的。本文将作为指南&#xff0c;从基础知识到高级技术&#xff0c;一步…

知乎号开始运营了,宣传一波

知乎号开始发布一些小说、散文还有诗歌了&#xff0c;欢迎大家多来关注 知乎链接&#xff1a;姜亚轲 每篇小说都改编成网易云音乐&#xff0c;文章中也有链接&#xff0c;我做的词&#xff0c;Suno编曲和演唱&#xff0c;欢迎大家来听听

访问jlesage/firefox镜像创建的容器中文乱码问题

目录 介绍总结 介绍 最近在使用jlesage/firefox镜像创建容器的时候&#xff0c;发现远程管理家里网络的时候中文会出现乱码&#xff0c;导致整个体验非常的不好&#xff0c;网上查找资料说只要设置环境变量ENABLE_CJK_FONT1 就可以解决问题&#xff0c;抱着试一试的态度还真的成…

如何完美解决 Xshell 使用 SSH 连接 Linux 服务器报错:找不到匹配的 host key 算法

&#x1f6e0;️ 如何完美解决 Xshell 使用 SSH 连接 Linux 服务器报错&#xff1a;找不到匹配的 host key 算法 摘要&#xff1a; 本文将带领大家深入学习如何解决 Xshell 使用 SSH 连接 Linux 服务器时报错“找不到匹配的 host key 算法”的问题。通过详细的操作步骤和代码案…

deepin学习-设置自己窗口为最高层级

deepin-设置自己窗口为最高层级 一、概述1. kwin 中的窗口层级定义2. dde-session-ui 中的消息弹窗3. k-win的调试器 一、概述 窗口协议&#xff1a;wayland 在wayland的窗口下&#xff0c;有时候使用qt开发接口并不能满足我们的要求&#xff0c;就需要看窗管的写法。 setWi…

详解|访问学者申请被拒原因有哪些?

访问学者项目为全球科研人员提供了一个难得的机会&#xff0c;让他们能够跨越国界&#xff0c;深入不同的学术环境&#xff0c;进行学术交流和合作。然而&#xff0c;并非所有申请者都能如愿以偿地获得这一机会。本文将对访问学者申请中常见的被拒原因进行详细解析&#xff0c;…

计算机游戏因为d3dcompiler_47.dll丢失无法启动怎么办?解决只要d3dcompiler_47.dll丢失无法启动游戏软件的方法

d3dcompiler_47.dll 是一个动态链接库文件&#xff0c;属于 Microsoft DirectX 的一部分&#xff0c;主要负责编译和运行 3D 图形程序。它是支持 Direct3D 功能的核心组件&#xff0c;Direct3D 是一种用于编程 3D 图形的 API&#xff0c;广泛应用于游戏和图形密集型应用程序中。…