目 录CONTENT

文章目录

提升工作效率必备!Ollama + Open webui 目前最优的大语言LLM模型的本地部署方案 | Llama3 | Gemma | Mistral | Phi3

科技美南
2024-04-29 / 0 评论 / 1 点赞 / 202 阅读 / 15235 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2024-04-30,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

提升工作效率必备!Ollama + Open webui 目前最优的大语言LLM模型的本地部署方案 | Llama3 | Gemma | Mistral | Phi3

Ollama

Ollama介绍

Ollama是一个开源大模型综合管理和使用平台,不仅单模态模型,还支持多模态模型,以及正在开发支持扩散模型!Ollama目前支持多平台,在macOS、Linux、Windows上都可以运行使用!

官方网站:https://ollama.com

20240424111012.jpg

安装Ollama

直接从下载页面下载相对应系统的安装程序,Windows安装程序选择Windows的安装包,点击“Download for Windows(Preview)”

20240424111044.jpg

下载下来的exe文件双击安装即可!

安装完成之后,打开一个cmd命令窗口,输入“ollama”命令,如果显示ollama相关的信息就证明安装已经成功了!

微信截图_20240429162725.jpg

使用ollama下载模型

我们安装ollama完成之后,需要下载大模型,可以直接通过cmd命令提示窗口来与大模型进行交互!不过这种方式体验感不好,我们后面会介绍我们熟悉的类似ChatGPT的网页交互的方式Open webui去使用。

Ollama的大模型默认保存的路径是:

macOS: ~/.ollama/models.

Linux: /usr/share/ollama/.ollama/models.

Windows: C:\Users\\.ollama\models

但是文件模型比较多,比较大我们最好是换下存放路径,在系统环境变量里面添加变量名和变量值。

变量名:OLLAMA_MODELS

变量值:填写自己设置的具体路径

微信截图_20240429185650.jpg

微信截图_20240429191003.jpg

Ollama的模型库提供了多种大型语言模型供用户选择。你可以通过访问Ollama模型库来找到并下载你需要的模型。

模型库的地址:https://ollama.com/library

Huggingface模型库的地址:https://huggingface.co/models?language=zh

1.从模型库选择一个模型

20240429190349.jpg

2.选择一个版本,然后点击后面的复制命令按钮

20240429190411.jpg

3.直接将复制的命令粘贴到cmd命令窗口,回车执行即可进入到模型的下载过程!

微信截图_20240429190805.jpg

常用模型介绍和下载命令:

Llama 3大模型:

Meta Llama 3是Meta公司最新推出的大型开源语言模型(LLM)。它提供了两个预训练和指令调优的版本,分别是8B和70B参数的模型,以支持广泛的应用场景。Llama 3在语言细微差别、上下文理解和复杂任务如翻译和对话生成方面表现出色。它还在可扩展性和性能方面进行了增强,能够轻松处理多步骤任务,同时通过改进的训练后处理程式,显著降低了错误拒绝率,提高了响应对齐度,并增加了模型答案的多样性。

Llama 3已经在我们最近宣布的两个定制24K GPU集群上接受了超过15T令牌的数据训练,这是Llama 2使用的训练数据集的7倍,包括4倍更多的代码。这使得Llama 3成为迄今为止最有能力的Llama模型,支持8K上下文长度,是Llama 2容量的两倍。

Meta Llama 3的发布,也更新了负责任使用指南(RUG),提供了关于LLMs负责任开发的最全面信息。他们的系统中心方法包括更新了信任和安全工具Llama Guard 2,优化以支持MLCommons发布的新分类法,扩大了对更全面的安全类别的覆盖,包括Code Shield和Cybersec Eval 2。

ollama run llama3:instruct

Phi-3大模型:

Phi-3是微软最近推出的一系列开放AI模型,旨在重新定义小型语言模型(SLMs)的可能性。Phi-3模型以其卓越的性能和高效的成本而著称,超越了同等大小和稍大一号的模型,在各种语言、推理、编码和数学基准测试中表现优异。

Phi-3系列包括Phi-3-miniPhi-3-smallPhi-3-medium三个不同规模的版本。Phi-3-mini是一个3.8B的语言模型,它不仅可以在传统计算设备上运行,还可以在移动设备和IoT设备上运行。Phi-3-mini支持高达128K令牌的上下文窗口,这是其类别中首个支持此功能的模型。

此外,Phi-3-mini已经针对ONNX Runtime进行了优化,支持Windows DirectML,并且具有跨平台支持,包括GPU、CPU甚至移动硬件。它还作为NVIDIA NIM微服务提供,具有标准API接口,可以在任何地方部署,并且已针对NVIDIA GPU进行了优化。

ollama run phi3:instruct

Qwen大模型:

通义千问(Qwen)是阿里云推出的大型语言模型,旨在理解和生成人类语言。它是阿里云通义官网的核心产品,能够帮助用户解决生活和工作中的问题,充当智能助手。Qwen系列包括不同规模的模型,如Qwen-1.8B、Qwen-7B、Qwen-14B和Qwen-72B,以及相应的聊天模型Qwen-Chat。

Qwen模型在多语言数据上进行了大规模的预训练,覆盖了广泛的领域和语言(重点是中文和英文),在基准数据集上展现出竞争性能。这些模型能够进行聊天、内容创作、信息提取、总结、翻译、编码、解决数学问题等,并且能够使用工具、扮演代理或甚至充当代码解释器等多种功能。

ollama run qwen:7b

LLaVA大模型:

LLaVA(Large Language and Vision Assistant)是一个大型多模态模型,它结合了视觉编码器和语言模型,以实现视觉和语言理解。LLaVA通过使用GPT-4生成的指令调整数据,展示了令人印象深刻的聊天和问答性能,能够在未见过的图像和指令上表现出色。

LLaVA的特点包括:

NeurIPS’23 Oral 论文中提出的视觉指令调整(Visual Instruction Tuning),旨在实现类似GPT-4V级别的能力。 LLaVA-NeXT(LLaVA-1.6)版本通过额外的扩展,能够处理更多像素,并执行比以前更多的任务和应用1。 在一些基准测试中,LLaVA-NeXT-34B的性能超过了Gemini Pro。 LLaVA-1.5版本通过简单的修改,就能在11个基准测试中达到最先进的水平,使用的是所有公开数据,并且在单个8-A100节点上大约1天内完成训练。

ollama run llava:7b

Mistral大模型:

Mistral AI是一个提供前沿人工智能技术的公司,它为开发者和企业提供开放且可移植的生成型AI。Mistral AI的产品包括Mistral 7B、Mixtral 8x7B和Mixtral 8x22B等开源模型,这些模型可以自由使用和定制,适用于多种用例。Mistral AI的模型在性能、效率和附加功能方面进行了优化,提供了高性能的商业模型,如Mistral Small和Mistral Large。

Mistral 7B是一个参数为7.3B的模型,它在所有基准测试中都超过了Llama 2 13B,在许多基准测试中超过了Llama 1 34B,并接近CodeLlama 7B在代码任务上的性能,同时在英语任务上也表现良好。Mistral 7B使用分组查询注意力(GQA)进行更快的推理,并使用滑动窗口注意力(SWA)以较小的成本处理更长的序列。Mistral 7B已经在Apache 2.0许可下发布,可以无限制地使用。您可以下载并在任何环境中使用它,包括本地部署,也可以在任何云平台(AWS/GCP/Azure)上部署,或者在HuggingFace上使用。Mistral 7B易于在任何任务上进行微调,作为示范,提供了一个针对聊天进行微调的模型,该模型在聊天方面的性能超过了Llama 2 13B。

ollama run mistral:7b

WizardLM-2大模型:

WizardLM-2是微软最近发布的一系列开源大型语言模型。这个新系列包括三个不同规模的模型:WizardLM-2 8x22B、WizardLM-2 70B和WizardLM-2 7B。这些模型在复杂聊天、多语言处理、推理和代理任务方面的性能有所提高。

WizardLM-2 8x22B 是目前开源模型中性能最佳的模型,它在高度复杂的任务上展示出与最先进的专有作品如GPT-4-Turbo和Glaude-3相媲美的性能。 WizardLM-2 70B 在推理能力方面达到顶级水平,是同等规模模型中的首选。 WizardLM-2 7B 是速度最快的模型,与现有的10倍大的开源领先模型具有可比的性能。

ollama run wizardlm2:7b

Gemma大模型:

Gemma是Google推出的一系列轻量级、先进的开放模型。这些模型包括Gemma 2B和Gemma 7B两种规模,即使与一些更大的开放模型相比,也能取得卓越的基准测试结果。Gemma模型与Keras 3.0兼容,支持JAX、TensorFlow和PyTorch,使开发者可以根据任务需求轻松选择和切换框架。

Gemma系列还包括CodeGemma和RecurrentGemma两个变体:

CodeGemma:利用原始预训练的Gemma模型基础,提供强大的代码完成和生成能力,适合在本地计算机上使用。 RecurrentGemma:技术上有所不同,采用循环神经网络和局部注意力机制,以提高内存效率。 Gemma模型最适合在Google Cloud上运行,通过端到端的TPU优化,提供市场领先的性能和总体拥有成本。您还可以通过Keras 3.0在JAX中进行低秩适应,将Gemma模型适配到您独特的领域和数据。

ollama run gemma:7b

如果想了解从cmd命令窗口和大模型交互的方式,你可以继续往下看,如果使用Open webui的可以直接跳过!

使用ollama与大模型交互

可以通过如下的命令来查看模型列表

ollama list

通过 ollama run命令,你可以运行特定的模型。例如 ollama run qwen:7b,将启动qwen模型。

20240429195656.jpg

Open WebUI

Open WebUI介绍

程序官网:https://openwebui.com

20240424125212.jpg

open webui GitHub主页:https://github.com/open-webui/open-webui

20240424125355.jpg

Open WebUI 是一个可扩展、功能丰富且用户友好的自托管 WebUI,旨在完全离线操作。它支持各种 LLM 运行程序,包括 Ollama和 OpenAI 兼容的 API。还可以通过AUTOMATIC1111和ComfyUI的API来整合稳定扩散模型,实现LLM指导SD来生成图片!

特点⭐

  • 🖥️直观的界面:我们的聊天界面从 ChatGPT 中汲取灵感,确保用户友好的体验。
  • 📱响应式设计:在桌面和移动设备上享受无缝体验。
  • 快速响应:享受快速响应的性能。
  • 🚀轻松设置:使用 Docker 或 Kubernetes(kubectl、kustomize 或 helm)无缝安装,以获得无忧体验。
  • 🌈主题定制:从各种主题中进行选择,个性化您的 Open WebUI 体验。
  • 💻代码语法突出显示:通过我们的语法突出显示功能增强代码的可读性。
  • ✒️🔢完整的 Markdown 和 LaTeX 支持:通过全面的 Markdown 和 LaTeX 功能来丰富交互,提升您的 LLM 体验。
  • 📚本地 RAG 集成:通过突破性的检索增强生成 (RAG) 支持深入了解聊天交互的未来。此功能将文档交互无缝集成到您的聊天体验中。您可以将文档直接加载到聊天中或将文件添加到文档库中,使用 #提示中的命令轻松访问它们。在 alpha 阶段,当我们积极完善和增强此功能以确保最佳性能和可靠性时,可能会偶尔出现问题。
  • 🔍 RAG 嵌入支持:直接在文档设置中更改 RAG 嵌入模型,增强文档处理。此功能支持 Ollama 和 OpenAI 模型。
  • 🌐网页浏览功能 #:使用URL 后的命令将网站无缝集成到您的聊天体验中。此功能允许您将网络内容直接合并到您的对话中,从而增强交互的丰富性和深度。
  • 📜提示预设支持 /:使用聊天输入中的命令立即访问预设提示。轻松加载预定义的对话开头并加快您的互动。通过Open WebUI Community集成轻松导入提示。
  • 👍👎 RLHF 注释:通过对消息进行“赞成”和“反对”评级来增强您的消息,然后选择提供文本反馈,从而促进根据人类反馈 (RLHF) 创建强化学习数据集。利用您的消息来训练或微调模型,同时确保本地保存数据的机密性。
  • 🏷️对话标记:轻松分类和定位特定聊天,以便快速参考和简化数据收集。
  • 📥🗑️下载/删除模型:直接从 Web UI 轻松下载或删除模型。
  • 🔄更新所有 Ollama 模型:使用方便的按钮一次轻松更新本地安装的模型,简化模型管理。
  • ⬆️ GGUF 文件模型创建:通过直接从 Web UI 上传 GGUF 文件,轻松创建 Ollama 模型。简化的流程,可选择从您的计算机上传或从 Hugging Face 下载 GGUF 文件。
  • 🤖多模型支持:不同聊天模型之间无缝切换,实现多样化交互。
  • 🔄多模式支持:与支持多模式交互的模型无缝交互,包括图像(例如 LLava)。
  • 🧩模型文件生成器:通过 Web UI 轻松创建 Ollama 模型文件。通过开放 WebUI 社区集成轻松创建和添加角色/代理、自定义聊天元素以及导入模型文件。
  • ⚙️多个模特对话:轻松地同时与多个模特互动,利用他们的独特优势来获得最佳响应。通过并行利用一组不同的模型来增强您的体验。
  • 💬协作聊天:通过无缝编排群组对话来利用多个模型的集体智慧。使用 @命令指定模型,在聊天界面中启用动态且多样化的对话。让自己沉浸在聊天环境中的集体智慧中。
  • 🗨️本地聊天共享:在用户之间无缝生成和共享聊天链接,增强协作和沟通。
  • 🔄再生历史访问:轻松重新访问和探索您的整个再生历史。
  • 📜聊天历史记录:轻松访问和管理您的对话历史记录。
  • 📬存档聊天:轻松存储与法学硕士的完整对话以供将来参考,保持聊天界面整洁有序,同时方便检索和参考。
  • 📤📥导入/导出聊天历史记录:将您的聊天数据无缝移入和移出平台。
  • 🗣️语音输入支持:通过语音交互与您的模型互动;享受直接与模特交谈的便利。此外,探索在 3 秒静音后自动发送语音输入的选项,以获得简化的体验。
  • 🔊可配置的文本转语音端点:使用可配置的 OpenAI 端点自定义您的文本转语音体验。
  • ⚙️使用高级参数进行微调控制:通过调整温度等参数和定义系统提示来获得更深层次的控制,以根据您的特定偏好和需求定制对话。
  • 🎨🤖图像生成集成:使用 AUTOMATIC1111 API(本地)、ComfyUI(本地)和 DALL-E 等选项无缝集成图像生成功能,通过动态视觉内容丰富您的聊天体验。
  • 🤝 OpenAI API 集成:轻松集成 OpenAI 兼容 API,与 Ollama 模型进行多功能对话。自定义 API 基本 URL 以链接到LMStudio、Mistral、OpenRouter 等
  • 多种 OpenAI 兼容 API 支持:无缝集成和定制各种 OpenAI 兼容 API,增强聊天交互的多功能性。
  • 🔑 API 密钥生成支持:生成密钥以利用 Open WebUI 和 OpenAI 库,简化集成和开发。
  • 🔗外部 Ollama 服务器连接:通过配置环境变量无缝链接到托管在不同地址上的外部 Ollama 服务器。
  • 🔀多个 Ollama 实例负载平衡:轻松地在多个 Ollama 实例之间分配聊天请求,以增强性能和可靠性。
  • 👥多用户管理:通过我们直观的管理面板轻松监督和管理用户,简化用户管理流程。
  • 🔗 Webhook 集成:通过 webhook 订阅新用户注册事件(兼容 Google Chat 和 Microsoft Teams),提供实时通知和自动化功能。
  • 🛡️模型白名单:管理员可以将具有“用户”角色的用户的模型列入白名单,从而增强安全性和访问控制。
  • 📧可信电子邮件身份验证:使用可信电子邮件标头进行身份验证,添加额外的安全和身份验证层。
  • 🔐基于角色的访问控制(RBAC):通过受限的权限确保安全访问;只有经过授权的个人才能访问您的 Ollama,并且为管理员保留专有的模型创建/拉取权限。
  • 🔒后端反向代理支持:通过 Open WebUI 后端和 Ollama 之间的直接通信增强安全性。这一关键功能消除了通过 LAN 公开 Ollama 的需要。从 Web UI 向“/ollama/api”路由发出的请求会从后端无缝重定向到 Ollama,从而增强整体系统安全性。
  • 🌐🌍多语言支持:借助我们的国际化 (i18n) 支持,以您喜欢的语言体验开放式 WebUI。加入我们,扩展我们支持的语言!我们正在积极寻找贡献者!
  • 🌟持续更新:我们致力于通过定期更新和新功能来改进 Open WebUI。

安装Open WebUI

安装Docker Desktop

可以直接下载安装文件进行安装,文件下载地址:https://www.docker.com/products/docker-desktop/

微信截图_20240430015931-rhtn.jpg

在下拉选框中选择windows的安装文件下载,下载完成之后双击安装即可!

检查是否安装成功可以打开一个cmd窗口,或者powershell窗口,输入“docker –-version”,如果可以正常显示docker的版本信息,则说明安装已经成功!

微信截图_20240430021903.jpg

docker默认是安装在C盘中,docker运行时下载的程序镜像文件也是保存在C盘! 在windows下docker下载的镜像文件默认保存在“C:\Users\MN\AppData\Local\Docker”文件夹中;

微信截图_20240430024830.jpg

如果你需要在docker中运行的程序较多的话,一定要保证C盘有充足的磁盘空间!也可以通过Docker Desktop经常将docker中没用的镜像文件及时删除,也可以通过cmd命令来删除指定的文件

删除停止的容器

docker container prune

删除未被任何容器引用的镜像

docker image prune -a

删除未使用的网络

docker network prune

删除未使用的卷

docker volume prune

一键清除所有未使用的对象(包括镜像、容器、卷和网络):

docker system prune -a

安装Open WebUI

在docker desktop处于运行状态的情况下,随便打开一个cmd命令窗口,然后输入如下的命令来安装open webui

使用CPU运行
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
使用GPU运行
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway --gpus=all -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main

安装完成之后,可以通过本地地址:http://127.0.0.1:3000 进行访问

微信截图_20240430025434.jpg

Open WebUI使用指南

初始化设置

首次登录open webui需要注册一个账号,点击“Sign up”

微信截图_20240430030521.jpg

填写“name”、“Email”、“Password”之后,点击“Create Account”,创建一个账户

微信截图_20240430030456.jpg

初次登入系统默认是英文界面,可以通过“设置”-“General”-“Language”来设置为“Chinese(Simplified)”简体中文!保存设置!

微信截图_20240430031047.jpg

使用作画功能

如何在open webui中调用Automatic1111的api来生成图片,请参考如下的操作

修改webui-user.bat

要在open webui中调用automatic1111的api接口,我们首先需要修改automatic1111的启动文件,打开并监听api;

在automatic1111的项目根目录中找到“webui-user.bat”批处理文件,右键点击,选择“编辑”,用记事本打开该文件,在“set COMMANDLINE_ARGS=”参数后面加上“-–api -–listen

20240430094456.jpg

修改之后保存文件!

设置Open WebUI

1.点击“设置”按钮;

2.选择“图像”设置;

3.点击图像生成开关,打开图像生成功能;

4.在“AUTOMATIC1111基础URL”一栏输入下面的链接:

http://host.docker.internal:7860

5.点击链接后面的“刷新”按钮;

6.点击了“刷新”按钮之后,就可以获取到本地AUTOMATIC1111的模型列表,可以从下拉列表中选择你喜欢的SD模型;

7.设置图片尺寸,默认为512×512,如果选择了一个SDXL模型,这里可以设置为1024×1024,或者其他SDXL支持的分辨率;

8.设置迭代步数,默认50步;

9.保存设置;

微信截图_20240430095002.jpg

生成图片

按照正常的聊天方式,向LLM发送一个生成图片的请求,LLM会根据你的请求对画面进行描述,然后点击后面的“生成图片”按钮

微信截图_20240430095716.jpg

程序就会通过API调用AUTOMATIC1111来生成一张相对应的图片,这是后台自动在运算

微信截图_20240430095412.jpg

最终反馈到Open WebUI并且显示在LLM答案的顶部

微信截图_20240430095814.jpg

ComfyUI同理操作

设置好对应的选项

微信截图_20240430100349.jpg

前台选好模型,输入图片生成的提示词,按图片按钮生成

微信截图_20240430095716.jpg

ComfyUI后台自动运算

微信截图_20240430100419.jpg

最终反馈到Open WebUI并且显示在LLM答案的顶部

20240430100455.jpg

总结

Ollama+Open WebUI的方案是一个非常卓越的整合方案,不仅可以本地统一管理和使用单模态和多模态的各种大模型,还可以本地整合LLM(大语言模型)和SD(稳定扩散模型)甚至是TTS(文本转语音)等各种AIGC程序和模型!是非常值得学习和熟练掌握的开源方案!

1
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin
  3. QQ打赏

    qrcode qq

评论区