I卡部署ollama+openwebui,内附整合包
  
Ollama 是一个强大的草泥马(框架),通过简单的安装指令,可以让用户执行一条命令就在本地运行开源大型语言模型。但上述都不是我想要的,我想要的是友好互动的图形界面,Openwebui貌似是个不错的选择,这次就来分享下Ollama+Openwebui的部署。
  首先吐槽下intel的安装指南:不好好给步骤,本来一行代码一句话的事,搞一堆超链接,一会儿前一会儿后的,逻辑性不强的马上就被绕晕了。
 
 
所以我梳理下顺序,把安装思路列出来:
  一、部署思路
  和前面分享的Text-Generation-WebUI是一个主体不同,这次Ollama和Openwebui是两个主体,Ollama是模型加载推理的主程序,Openwebui通过api接入各种工具包括Ollama来实现交互。按理说我们要分别部署这两个,不过还好intel在ipex-llm[cpp]中已经集成了Ollama,所以接下来的操作就简单了许多。
  1、克隆Openwebui项目。
  2、安装ipex-llm[cpp]
  3、初始化Ollama。
  4、安装Openwebui所需依赖。
  5、设置参数启动。
  二、安装
  安装之前需要电脑已经安装了Visual Studio 2022 、git和python或者conda,因为openwebui有 js 代码,还需要安装Node.js,并已经添加了对应的环境变量。如果不想安装Node.js,也可以在虚拟环境中安装yarn(conda install yarn),也可以用,不过建议安装Node.js,反正也不大。
  在需要安装Openwebui的文件夹资源管理器地址栏中输入CMD或者powershell打开对应的命令行工具,然后依次输入以下命令(我以conda创建虚拟环境演示,括号内的不用复制):
  git clone https://github.com/open-webui/open-webui.git  (克隆仓库代码)
 
 
  cd open-webui  (进入open-webui文件夹)
 
 
  conda create -p ./venv python=3.11  (创建虚拟环境)
 
 
  conda activate ./venv (激活虚拟环境)
 
 
  pip install --pre --upgrade ipex-llm[cpp]   (安装ipexllm[cpp])
 
 
  关闭cmd,然后用管理员权限重新打开cmd,在open-webui文件夹根目录重新激活虚拟环境,接下来输入
 
 
  init-ollama.bat     (初始化ollama)
 
 
  set OLLAMA_NUM_GPU=999
  set no_proxy=localhost,127.0.0.1
  set ZES_ENABLE_SYSMAN=1     (设置环境变量)
 
 
  ollama serve         (打开ollama服务,如果运行没啥带颜色的报错ollama部署就没问题)
 
 
  接下来部署openwebui,可以不用关闭ollama,在open-webui文件夹根目录新打开一个cmd激活虚拟环境,接下来输入
 
 
  copy .env.example .env    (复制默认的配置文件)
 
 
  npm install            (安装Node.js软件包,如果安的是yarn,输入:yarn)
 
 
  npm run build          (创建Node.js项目,如果安的是yarn,输入:yarn build)
 
 
  cd .\backend       (进入backend文件夹)
 
 
  pip install -r requirements.txt -U    (安装依赖)
 
 
  set no_proxy=localhost,127.0.0.1  (设置本地网络)
 
 
  start_windows.bat           (启动openwebui,首次启动需要从huggingface下载sentence_transformers库,如果没有科学上网,可以启动前设置环境变量set HF_ENDPOINT=https://hf-mirror.com ,从镜像站下载)
  到这一步就算安装好了,如果以后想用命令行启动就创建如下bat脚本(python创建的参照上面帖子,区别在于激活虚拟环境的命令,powershelll的类似)
启动ollama脚本:
 
 
@echo off
call conda activate ./venv
if %errorlevel% neq 0 exit /b %errorlevel%
  set OLLAMA_NUM_GPU=999
  set no_proxy=localhost,127.0.0.1
set ZES_ENABLE_SYSMAN=1
ollama serve
call conda deactivate
@echo  
call pause
  
启动openwebui脚本:
 
 
@echo off
call conda activate ./venv
if %errorlevel% neq 0 exit /b %errorlevel%
cd ./backend
set HF_ENDPOINT=https://hf-mirror.com
  set no_proxy=localhost,127.0.0.1
call conda deactivate
@echo  
call pause
 
 
目前我还没了解到如何两个同时启动,所以就做了两个脚本。
  三、使用
  因为openwebui需要ollama服务,所以使用时一定要打开ollama。
  首次进入openwebui需要注册一个账号,这个应该是本地管理的账户。登录后界面是这样的
  1、切换界面语言
  点击左下角头像,选择setting-General-Language-Chinese (Simplified),就可以切换到简体中文了。
  2、连接ollama、下载、加载模型
  在设置中选择连接,ollama默认api链接是http://localhost:11434,这个不用单独设置,可以点击右侧的刷新按钮,如果提示“服务器连接已验证”,说明api连接没有问题。
  设置中选择模型,等待一会儿,会显示Ollama模型,如果没有模型可以从https://ollama.com/library找一个模型,把模型的名称输入“从 Ollama.com 拉取一个模型”输入栏,例如:llama3:8b,然后点击右侧的下载按钮,稍等一会儿就开始下载模型了,目前Ollama.com模型下载速度很快。
  模型下载完成后,就可以去聊天界面点击“选择一个模型”选择模型,在聊天框输入内容就会自动加载模型并开始推理。
  3、加载本地模型
  目前我了解到的ollama加载的需要是GGUF模型,huggingface上下载的后缀是.gguf,像常见的PyTorch(pt、pth) & Safetensors的模型需要转换后才能使用,不过我也没测试过,就不展开了。
  如果电脑上有现成的GGUF模型,可以在openwebui中创建Ollama加载模型的脚本。选择右上角的模型文件-创建模型文件
  这个页面可以定义模型的名称,标签名称(选择界面显示的),描述,模型文件内容是关键,在这个输入框中先输入FROM 本地模型路径,剩下的参数我不太懂,比如template、params这些大多数模型是必需的,缺少的话对话会逻辑紊乱。System 后面是自定义角色,没有需求就可以不填。
  模型文件内容示例:
 
 
 
 
TEMPLATE """{{ if .System }}<|im_start|>system
{{ .System }}<|im_end|>{{ end }}<|im_start|>user
{{ .Prompt }}<|im_end|>
<|im_start|>assistant
"""
 
 
PARAMETER stop "<|im_start|>"
PARAMETER stop "<|im_end|>"
 
 
最后选择一个分类就可以保存了,稍等一会儿就可以在聊天界面选择本地的模型。不清楚怎么填的可以去https://ollama.com/library模型页面看,上面都有。
  4、设置ollama模型路径
  ollama默认模型路径为:C:\Users\<username>\.ollama\models,即使是按上述本地加载的模型也会复制到这个文件夹中,所以自己下的模型加载完后就可以删除了。如果不想模型存放在C盘,可以启动ollama之前在虚拟环境中填加环境变量
 
 
Set OLLAMA_MODELS=本地路径
 
 
  5、gguf模型量化
  在模型下载界面可以看到同一个模型多种量化,大概有如下几种
从上到下模型精度增加,其中q4_0模型应该比较适合个人电脑,ollama上默认下载到的也是这个量化程度的模型。
  6、其他
  Openwebui还可以接入图片、音频等api来使对话内容更加丰富,图片支持A1111、comfyui、openai的api,大家可以自己尝试。
  四、补充
  1、对于ollama,还有好多功能值得探索,openwebui不是唯一的方案,还有其他方案值得尝试。ollama仓库页面提供了很多项目,比如Chatbox貌似也不错。
  2、制作了一个整合包,用最新的7-zip解压,分别打开启动ollama.bat和启动openwebui.bat,浏览器输入http://localhost:8080就可以用了。
提取码:hAZs
阿里盘:https://www.alipan.com/s/3VEW6b2QhT6 提取码: 3l7j
3、意识到新的模型可能需要更新ollama,ipexllm[cpp]更新得也很频繁,如果遇到模型使用不了可以尝试更新,补充下如何更新ipexllm[cpp]:
管理员权限打开命令行进入虚拟环境,依然输入 pip install --pre --upgrade ipex-llm[cpp] 
这样执行完成后就会到最新版,接着删除根目录下的dist文件夹和ollama.exe,命令行里输入init-ollama.bat 重新初始化ollama,重新创建好dist文件夹和ollama.exe链接后就完成了更新。上述步骤是每次更新ipexllm[cpp]都需要做的。
 
  
2024.6.5更新:intel更新了ipexllm[cpp],对应的安装依赖改变,本文已修改。
  参考:
 
 
 
 
 
 
 
 
2024-05-29
浏览1397
大语言模型
登录后评论
13
9