写点什么

如何在本地运行大型语言模型?

作者:神州数码
  • 2024-08-06
    北京
  • 本文字数:1654 字

    阅读完需:约 5 分钟

Open WebUI 和 Ollama 介绍

在某 AI 产品发布会上,我们需要演示在个人 PC 上运行大模型的能力。为了实现这一目标,我们进行了深入的市场调研和技术评估,最终选择了 Open WebUI 和 Ollama 作为演示的核心工具。


介绍


什么是 Ollama


Ollama 是一个开源的大型语言模型服务工具,它帮助用户简化在本地机器上部署和运行大型语言模型(LLM)的过程。这个框架提供了一套工具和命令,使得用户能够轻松地启动和使用各种流行的 LLM,比如 qwen,mistral 等,更多大模型请参考 available models(https://ollama.com/library)。


什么是 Open WebUI


Open WebUI 是一个开源项目,为本地大语言模型提供一个图形化界面。Open WebUI 支持各种 LLM 运行器,包括 Ollama 和 OpenAI 兼容的 API。它是一个自托管的 WebUI,可以在完全离线状态下运行,所有数据都存储在本地设备上。


Ollama + Open WebUI 组合,支持在个人 PC 上运行 LLM,并且通过 Open WebUI 图形化界面使得用户能更方便的调用 Ollama 提供的 LLM 能力,完美的契合了演示需求。


部署


环境:windows 11


Ollama 部署


在我写这篇文章的时候,Ollama 已经发布了 Windows 版本,直接去官网下载对应版本的安装包就好了,  Ollama 下载(https://ollama.com/download)。


下载之后文件如下图,双击.exe 文件,傻瓜式安装就好了。



安装好之后运行你想要的大模型,比如我想运行 qwen0.5b,可以执行以下命令:


ollama run qwen:0.5b
复制代码


更多模型可以进到对应模型详情页下,如下图,左侧下拉框选择你想要的模型,执行右侧命令即可。



Open WebUI 部署


有编程经验的,感兴趣可以去 Github 下载源码本地部署调试,这里介绍 Docker 部署。


编程小白在部署 Open WebUI 之前可以下载 Docker Desktop(https://www.docker.com/products/docker-desktop/),下载之后傻瓜式安装。

 

Docker 安装好之后拉取 Open WebUI 镜像,执行以下命令,这个过程比较长,耐心等待就好。

 

docker pull ghcr.io/open-webui/open-webui:main
复制代码


启动 Open WebUI 容器,执行以下命令:


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
复制代码

 

启动成功,浏览器访问 http://localhost:3000/,首次注册的用户为系统管理员,登录之后页面如下图,开始聊天之前选择想要的模型,就可以开始和大模型对话了。



来一段简易的对话:



可以看到,对话不仅支持普通的文本信息,还支持文件,大模型根据指定的文件做出分析回答。除此之外,在 Workspace 页,可以添加提示词(Prompt),在聊天界面通过 @,#等命令引用对应的文档,提示词,让用户可以更高效的和大模型沟通。


至此,我们已经在本机上搭建起了一套大模型环境,即使在离线情况下也不影响使用。数据都存储在本地,也不用担心安全问题。


代码展示


关于离线和数据安全这部分,展示一下相关代码:




我们没有做额外的环境变量配置,所以这里的路径都是默认的路径,DATABASE_URL (数据库地址)指向的就是应用程序代码下的 data 目录。



系统会通过上面的 DATABASE_URL 路径创建数据库,并执行 apps/web/internal/migrations 下的脚本创建数据库结构等。



再看应用程序对应的文件,相应目录下确实存在 webiu.db 文件,存的是交互的数据,包含聊天记录,授权信息等,前面演示聊天上传的文件也在另外一个目录下。证明我们的数据信息都是保存在本机上,不会存在信息泄露的问题。




可以看到,系统会根据选择的模型得到 Ollama 服务的地址,再向其发送聊天请求,得到大模型的回答之后再返回给客户端。因为我们的 Ollama 服务是在本地运行的,所以这个请求最终还是由本机来处理,不涉及到联网请求。我将电脑网络断掉,仍然可以正常收到回答就更直观的验证了这一点。


有了客户端源码,也有了 Ollama 提供的本地大模型服务,我们可以根据自己需求对 Open WebUI 进行重新设计改造,保证了发布会顺利进行。


在本地集成 AI(AI PC)目前不仅是一个概念,已有公司发布了相关产品,为用户带来了许多新的体验和便利。未来,我们的个人电脑就是一个强大的人工智能,为我们的学习办公提供更高效智能的帮助。

用户头像

神州数码

关注

还未添加个人签名 2024-05-27 加入

还未添加个人简介

评论

发布
暂无评论
如何在本地运行大型语言模型?_神州数码_InfoQ写作社区