实现目标和考虑因素

部署一个支持多用户同时使用、多模型运行的离线局域网大模型服务器

需要考虑以下几个关键因素:

  1. 大模型的加载和管理。使用一个基础大模型,根据需要创建多个专用模型,模型管理方便可靠。
  2. 并发用户和请求管理。设置管理员、用户角色,用户管理方便可靠,支持多名用户同时在线操作。
  3. 多模型同时运行与切换。多个模型可同时多人使用与切换,且能迅速响应、流畅使用。
  4. 硬件资源的优化利用。大模型服务后端支持充分利用多显卡资源。
  5. 高可用性和负载均衡。大模型服务前后端均有高可用性,前端支持负载均衡。
  6. 数据隐私与安全。全部使用离线本地平台和模型,数据保留在本地局域网内。

环境和平台配置

硬件环境

需要支持AI计算的Nvidia显卡,显卡专用内存不少于8G,计算机内存不少于16G。

系统环境

64位的 Windows 10 或以上、Ubuntu 20.04、macOS 11 或以上,这里以 Windows 10 x64 为例

安装 python 3.11

所需平台

Ollama(https://ollama.com/),为大模型管理和调用提供后端服务支持

Open-WebUI(https://docs.openwebui.com/,推荐 python 3.11 环境下通过pip或其他包管理工具安装),为大模型可视化使用和切换、用户管理提供前端服务支持

平台配置

ollama

设置环境变量

执行以下PowerShell命令

[Environment]::SetEnvironmentVariable("OLLAMA_ORIGINS","*","User") # 允许的源列表,使用逗号分隔
[Environment]::SetEnvironmentVariable("OLLAMA_MODELS","D:\AI\ollama_models","User") # 模型存储位置
[Environment]::SetEnvironmentVariable("OLLAMA_KEEP_ALIVE","-1","User") # 模型在内存中保持加载的时长(默认值:5m,小时用h)
[Environment]::SetEnvironmentVariable("OLLAMA_HOST","localhost:11434","User") # 服务器IP地址(默认值:localhost:11434)
[Environment]::SetEnvironmentVariable("OLLAMA_FLASH_ATTENTION","1","User") # 启用 Flash Attention,默认为true

Ollama后端服务启动后,模型是未加载状态,当有用户调用时,会进行模型的加载过程,这个过程根据模型大小和性能不同持续时间也不同,之后模型会在内存中保持一段时间,方便用户快速调用模型,上面配置中模型在内存中保持加载的时长设置为了-1,即模型被调用后,在内存中不会释放。按需调整配置参数,完成后重启计算机。

下载模型

根据需要下载不同大模型,可下载的大模型列表可在ollama官方网站找到,也可在本地使用已有或自制GGUF格式大模型创建。这里下载qwen2.5:7b

ollama pull qwen2.5:7b

Open-WebUI

设置环境变量

执行以下PowerShell命令

[Environment]::SetEnvironmentVariable("HF_ENDPOINT","https://hf-mirror.com","User") # 设置huggingface的国内镜像源
[Environment]::SetEnvironmentVariable("WEBUI_AUTH","True","User") # Default: True,False则免登录
[Environment]::SetEnvironmentVariable("WEBUI_NAME","团队本地大模型服务平台","User") # Default: Open WebUI,平台名称
[Environment]::SetEnvironmentVariable("AIOHTTP_CLIENT_TIMEOUT","300","User") # Default: 300
[Environment]::SetEnvironmentVariable("DATA_DIR","D:\AI\webui_data","User") # Default: ./data,指定数据存储的基本目录,包括上传、缓存、矢量数据库等
[Environment]::SetEnvironmentVariable("DEFAULT_MODELS","qwen2.5:7b","User") # 设置默认语言模型
[Environment]::SetEnvironmentVariable("ENABLE_COMMUNITY_SHARING","False","User") # Default: True,控制是否显示“分享到社区”按钮
[Environment]::SetEnvironmentVariable("ENABLE_MESSAGE_RATING","False","User") # Default: True,启用消息评分功能
[Environment]::SetEnvironmentVariable("DEFAULT_LOCALE","cn","User") # Default: en,设置应用程序的默认区域设置
[Environment]::SetEnvironmentVariable("OLLAMA_BASE_URL","http://localhost:11434","User") # Default: http://localhost:11434,配置 Ollama 后端 URL,若启用 Ollama 后端负载均衡,设置 OLLAMA_BASE_URLS,由;分隔

以上默认语言模型、Ollama 后端 URL等配置也可在平台管理员后台设置

按指定端口启动服务

在终端执行以下命令

open-webui serve --port 8080

第一次启动会要求创建管理员账号,邮箱部分后缀用“@localhost”,后面创建新用户也用这个后缀。

若忘记了管理员账号和密码,可通过修改数据库找回

修改管理员密码

关闭 open-webui 服务

使用在线工具生成Bcrypt密码哈希(https://www.bejson.com/encrypt/bcrpyt_encode/,Rounds为10)

找到程序目录里的 D:\AI\webui_data\webui.db 文件,更新管理员密码,以下是linux命令示例:

sqlite3 ./webui.db "UPDATE auth SET password='管理员密码哈希' WHERE email='admin@example.com';"

进入管理员面板,关闭竞技场匿名评价模型,创建新用户,其他按需进行设置

基于大模型创建专用模型

在工作空间中进行设置,创建模型,选择好基础模型后,按需设置系统提示词、知识库、可用工具、过滤器、自动化部分

比如创建一个简单的“推理助手”模型,基础模型选择qwen2.5:7b,系统提示词设置为“针对以下问题,给出最简短的答案,并解释你的推理过程”,点击保存并更新即可。

基于基础模型所调用的所有新模型,其内存加载的都是基础模型,所以多个用户可同时使用该基础模型所创建的多个模型,而不用再次经过模型加载过程,表现在多名用户可同时流畅使用多个模型。

平台使用

详见Open-WebUI官方文档(https://docs.openwebui.com/)

团队小规模本地大模型服务平台搭建 - Windows的更多相关文章

  1. 基于OneMap的水利行业共享服务平台搭建步骤

    今天上午再次学习Esri技术培训中心的“GIS服务共享与运维管理——之OneMap解决方案”课程,从中学习了OneMap的产品架构以及基于OneMap共享服务平台的搭建步骤.下面把其中水利行业的共享服 ...

  2. dubbo系列二、dubbo+zookeeper+dubboadmin分布式服务框架搭建(windows平台)

    一.zookeeper配置中心安装 1.下载安装包,zookeeper-3.4.6.tar.gz 2.解压安装包,修改配置文件 参考zookeeper-3.4.6/conf/zoo_sample.cf ...

  3. 大数据平台搭建:Hadoop

    To construct big data distributed platform based on Hadoop is a common method. Hadoop comes fron Goo ...

  4. MaxCompute,基于Serverless的高可用大数据服务

    摘要:2019年1月18日,由阿里巴巴MaxCompute开发者社区和阿里云栖社区联合主办的“阿里云栖开发者沙龙大数据技术专场”走近北京联合大学,本次技术沙龙上,阿里巴巴高级技术专家吴永明为大家分享了 ...

  5. 联童科技基于incubator-dolphinscheduler从0到1构建大数据调度平台之路

    联童科技是一家智能化母婴童产业平台,从事母婴童行业以及互联网技术多年,拥有丰富的母婴门店运营和系统开发经验,在会员经营和商品经营方面,能够围绕会员需求,深入场景,更贴近合作伙伴和消费者,提供最优服务产 ...

  6. Windows平台搭建-----C语言

    上期我们已经进行Linux的平台搭建,今期我们就来搭建下我们最常用的.最适合初学者的一种方式,那就是搭建Windows平台开发环境,只需要两种工具即可,一个就是编辑器(编辑代码的工具),另一个就是编译 ...

  7. 【译文】用Spring Cloud和Docker搭建微服务平台

    by Kenny Bastani Sunday, July 12, 2015 转自:http://www.kennybastani.com/2015/07/spring-cloud-docker-mi ...

  8. Spring Cloud和Docker搭建微服务平台

    用Spring Cloud和Docker搭建微服务平台 This blog series will introduce you to some of the foundational concepts ...

  9. 大数据平台搭建(hadoop+spark)

    大数据平台搭建(hadoop+spark) 一.基本信息 1. 服务器基本信息 主机名 ip地址 安装服务 spark-master 172.16.200.81 jdk.hadoop.spark.sc ...

  10. 大数据平台搭建-zookeeper集群的搭建

    本系列文章主要阐述大数据计算平台相关框架的搭建,包括如下内容: 基础环境安装 zookeeper集群的搭建 kafka集群的搭建 hadoop/hbase集群的搭建 spark集群的搭建 flink集 ...

随机推荐

  1. MySql 建表出现的问题 : [ERR] 1064 - You have an error in your SQL syntax; check the manual.......

    使用 MySql 建表出现的问题 在使用 Navicat Premium 运行 sql 语句进行建表时,MySQL 报错如下: 1064 - You have an error in your SQL ...

  2. 长连接网关技术专题(四):爱奇艺WebSocket实时推送网关技术实践

    本文由爱奇艺技术团队原创分享,原题<构建通用WebSocket推送网关的设计与实践>,有优化和改动. 1.引言 丛所周之,HTTP协议是一种无状态.基于TCP的请求/响应模式的协议,即请求 ...

  3. 【BUG排查记】HttpUtil和SpringSecurity结合的坑

    一.背景 最近为了做微服务高可用和优化上线流程,我参与了一个微服务的改造开发. 主要包括redis切换哨兵模式.接入高可用xxljob集群.配置和升级脚本优化. 二.问题描述   项目改造提测后,测试 ...

  4. ThreadPoolExecutor详解及线程池优化

    前言ThreadPoolExecutor在concurrent包下,是我们最常用的类之一.无论是做大数据的,还是写业务开发,对其透彻的理解以及如何发挥更好的性能,成为了我们在更好的coding道路上必 ...

  5. weixueyuan-Nginx日志管理与监控8

    https://www.weixueyuan.net/nginx/log/ Nginx访问日志配置 Nginx 的访问日志主要记录用户客户端的请求信息(见下表).用户的每次请求都会记录在访问日志中,a ...

  6. HashMap的底层实现原理? HashMap 和 Hashtable的异同? 负载因子值的大小,对HashMap有什么影响?

     1. HashMap的底层实现原理 HashMap的底层:数组+链表 (jdk7及之前) 数组+链表+红黑树 (jdk 8)HashMap的底层实现原理?以jdk7为例说明: HashMap map ...

  7. 工具推荐 | Xshell全版本解密工具(包括Xshell7)——SharpXDecrypt

    声明 本程序仅供个人恢复密码使用! 用户滥用造成的一切后果与作者无关! 使用者请务必遵守当地法律! 本程序不得用于商业用途,仅限学习交流! 请在下载后24小时内删除!如果代码中存在侵权行为,请联系我们 ...

  8. uni-app封装网络请求

    在项目下创建一个文件夹https 然后在文件夹下面创建两个文件api.js request.js api.js 用于存放项目的请求接口 request.js 用于存放封装的请求接口get post 在 ...

  9. Linux/Centos文件授权用户文件夹权限介绍

    一.Linux文件权限介绍 在Linux中,一切皆为文件(目录也是文件),每个文件对用户具有可读(read).可写(write).可执行(excute)权限.目录的执行操作表示是否有权限进入该目录并操 ...

  10. 2025年值得推荐的 8 款 WPF UI 控件库

    前言 今天大姚给大家分享 8 款开源.美观.功能强大.简单易用的WPF UI控件库,希望可以帮助到有需要的同学. WPF介绍 WPF 是一个强大的桌面应用程序框架,用于构建具有丰富用户界面的 Wind ...