LM Studio + open-webui 快速本地部署大语言模型
一、前言
自 OpenAi 发布 ChatGPT 对话性大语言模型,AI 这两年发展迎来爆发,国内外也衍生了大量的语言模型开放给公众使用。为了可以让更多人接触到AI,让本地化部署更加轻便快捷,于是就有了Ollama、LM Studio等可以在本地部署模型的工具。
相比之下,ollama 需要通过命令进行安装,下载模型,以及对话, 如果需要 web 界面,可搭配 open-webui 进行配套使用,整套流程下来虽算不上复杂,但是对于没有编程经验的人来说,还是需要花费一些时间的。而 LM Studio 对小白用户更加友好方便,LM Studio 直截了当提供了图形化界面,并且直接下载 gguf 模型文件加载就可以直接使用了。当然也可以搭配 open-webui 进行网页版界面使用。
二、环境准备
系统:Windows\支持Apple M系列芯片\Linux系统
CPU:支持AUX2指令即可
内存:16G及以上
显存:NvidiaRtx2060 8G及以上,Rtx3060,3070,4060,4070,4080 16G以上
CUDA:CMD->nvidia-smi CUDA Version: 12.2+
硬盘:100G+的固态放模型和LM Studio
三、安装设置
先去官网地址下载对应平台的 LM Studio
LM Studio Discover, download, and run local LLMs

下载完成后,不需要安装,双击就直接打开了。
首次打开,并没有大语言模型,需要自己下载模型之后才能使用,需要注意的是,默认模型下载地址是在 C 盘的,如果你的 C 盘空间吃紧,建议修改到其他路径。修改方式如下:

换源(optional)
这个可选的,如果你不会魔法上网,则需要这一步换源。
在图标处,右键 -> 打开文件所在位置。
app-x.x.xx/resources/app/.webpack/
resources/app/.webpack/main/index.js
resources/app/.webpack/main/llmworker.js (0.2.23 及以后版本是llmworker了,之前 unity.js)
resources/app/.webpack/main/worker.js
resources/app/.webpack/renderer/main/main_window/index.js
复制备份这几个文件,把其中所有的 huggingface.co 都替换成 hf-mirror.com
然后保存就行。
四、下载模型并运行
下载模型,比如下载阿里的通义千问

一般会有很多版本,参数量不同,下载的时候根据自己的电脑配置进行选择。
使用进入 AI Chat 页面。选择一个即可。

五、配置 open-webui
如果你只是自己使用,上面的已经够了。
如果还想让别人一起使用,并且爱折腾,则可以搭配 open-webui ,用网页的形式使用。
关于 open-webui 安装也很简单,方式有很多,比如使用 docker 或者手动安装。这里我采用手动安装方式。
- 你需要有 python 3.11 的环境,然后通过 pip 安装。
pip install open-webui
- 打开 web 界面。
open-webui serve
当你看到如下界面,说明成功了。

然后打开网址: http://localhost:8080/
正常情况下是没有问题的,如果你看到如下类似的错误页面:

则再次手动输入地址 http://127.0.0.1:8080/

看到如上的页面,说明 open-webui 安装启动成功了。
接下来注册账号,登录。
配置 LM Studio 和 Open-Webui
在 LocalSever 中以 chat 方式启动 LM Studio 对话。

看到下面的额日志则表示启动成功。复制 ⑤ 中的 url,然后打开 open-webui 的网页。一次点击右上角设置 -> 管理员设置 -> 外部链接 。 将复制的 url 配置上去,最后记得保存。

接下来回到对话页面,就可以愉快的使用了。
写在结尾
学习 AIGC 已经很久了。这是我写的第一篇文章,写的非常详细,旨在小白用户也能搭配好大语言模型的本地环境。然后用起来,提升工作效率。后续会写更多 AIGC 应用相关的文章。
LM Studio + open-webui 快速本地部署大语言模型的更多相关文章
- pytorch在有限的资源下部署大语言模型(以ChatGLM-6B为例)
pytorch在有限的资源下部署大语言模型(以ChatGLM-6B为例) Part1知识准备 在PyTorch中加载预训练的模型时,通常的工作流程是这样的: my_model = ModelClass ...
- 本地推理,单机运行,MacM1芯片系统基于大语言模型C++版本LLaMA部署“本地版”的ChatGPT
OpenAI公司基于GPT模型的ChatGPT风光无两,眼看它起朱楼,眼看它宴宾客,FaceBook终于坐不住了,发布了同样基于LLM的人工智能大语言模型LLaMA,号称包含70亿.130亿.330亿 ...
- katalon Studio之WebUi自动化测试视频教程持续更新
通知...通知...通知... 为了更好的把katalon Studio自动化测试工具推广给大家,最近在B站中开通了视频专栏,地址如下: https://www.bilibili.com/video/ ...
- Kubernetes 学习笔记(二):本地部署一个 kubernetes 集群
前言 前面用到过的 minikube 只是一个单节点的 k8s 集群,这对于学习而言是不够的.我们需要有一个多节点集群,才能用到各种调度/监控功能.而且单节点只能是一个加引号的"集群&quo ...
- Hugging News #0324: 🤖️ 黑客松结果揭晓、一键部署谷歌最新大语言模型、Gradio 新版发布,更新超多!
每一周,我们的同事都会向社区的成员们发布一些关于 Hugging Face 相关的更新,包括我们的产品和平台更新.社区活动.学习资源和内容更新.开源库和模型更新等,我们将其称之为「Hugging Ne ...
- 使用ASP.NET MVC、Rabbit WeixinSDK和Azure快速开发部署微信后台
(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:公众号后台系统和数据都基本准备妥当了,可以来分享下我是如何开发本微信公众号的后台系统了 ...
- 在 Visual Studio 2010 中开发和部署 Windows Azure 应用程序
原文 在 Visual Studio 2010 中开发和部署 Windows Azure 应用程序 在 Visual Studio 2010 中开发和部署 Windows Azure 应用程序 Jim ...
- arcgis api for javascript本地部署加载地图
最近开始学习arcgis api for javascript,发现一头雾水,决定记录下自己的学习过程. 一.下载arcgis api for js 4.2的library和jdk,具体安装包可以去官 ...
- Ubuntu14.04下Ambari安装搭建部署大数据集群(图文分五大步详解)(博主强烈推荐)
不多说,直接上干货! 写在前面的话 (1) 最近一段时间,因担任我团队实验室的大数据环境集群真实物理机器工作,至此,本人秉持负责.认真和细心的态度,先分别在虚拟机上模拟搭建ambari(基于CentO ...
- virtual judge 本地部署方案
这是一种将自己的电脑当作服务器来部署一个vj的方法,我也是参考前辈们的做法稍作了改动,如果在服务器上部署的话需要在细节上稍作改动: 一.什么是Virtual Judge? vj的工作原理什么? vj ...
随机推荐
- 为什么下载程序的时候会提示win-amd64.exe
- PHP 中使用 ElasticSearch 的最佳实践(上)
PHP 中使用 ElasticSearch 的最佳实践 引言 PHP 开发者其实使用到 ES 的情况并不多,因为开发的大多数项目可能都没有快速模糊搜索的需求. 即使有这样的需求,用 MySQL 的 l ...
- cmd命令行设置 windows 设置环境变量
设置用户级别的环境变量 :: 设置新参数 JAVA_HOME1 setx JAVA_HOME1 "c:\test"; exit; echo "%JAVA_HOME1%&q ...
- leetcode阶段总结
1.目前已经刷了大概200道题目 主要使用的语言是python,刷完之后,发现盲写部分语法依然记不住: 以后刷算法保持一个原则,一定使用不提示代码的工具,纯文本编写,尽量不debug 2.后续尽量使用 ...
- 【论文笔记】SegNet
[深度学习]总目录 SegNet是Cambridge提出旨在解决自动驾驶或者智能机器人的图像语义分割深度网络,开放源码,基于caffe框架.SegNet运用编码-解码结构和最大池化索引进行上采样,最主 ...
- kettle从入门到精通 第十七课 kettle Transformation executor
Transformation executor步骤是一个流程控件,和映射控件类似却又不一样. 1.子转换需要配合使用从结果获取记录和复制记录到结果两个步骤,而子映射需要配合映射输入规范和映射输出规范使 ...
- element table根据条件隐藏复选框
在<el-table>标签加 :cell-class-name="cellClass" 在 <el-table-column type="selecti ...
- The bean ‘xxx‘ could not be injected as a ‘xxx‘because it is a JDK dynamic proxy that implements错误解决
1.解决方法:使用@Autowired 2.@autowired和@resource注解的区别区别:1.@Autowired注解由Spring提供,只按照byType注入:@resource注解由J2 ...
- org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available es端口号及集群名称
org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are availa ...
- AGE SORT
AGE SORT 你有所有城市的人的年齡資料,而且這城市的人們都大於1歲,且都不會活超過100歲.現在你有個簡單的任務以升冪去排序所有的年齡 Input 接下來會有很多筆的資料,每筆資料從輸入n 開始 ...