文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

使用 Open WebUI 在 Kubernetes 集群上部署 Llama3​​

2024-11-29 20:50

关注

Ollama 是一个开源的机器学习模型部署工具,它可以帮助您将模型部署到生产环境中,简化大型语言模型 (LLM) 的管理和交互。Ollama 拥有各种一流的开源模型,例如 Llama 3、Phi 3、Mistral 等等,我们可以将 Ollama 看成是 Docker,但是专注于机器学习模型。

使用 Ollama 部署模型非常简单,就类似于使用 Docker 部署应用程序一样。但是,如果你对 CLI 不熟悉,那么使用 Ollama 会有点痛苦。为了解决这个问题,我们可以使用一个 open-webui 的项目,它提供了一个漂亮的界面,可以让您更轻松地部署模型。

为了更好地管理 Ollama,我们可以将 Ollama 部署到 Kubernetes 集群中。这样,我们就可以更好地管理 Ollama,而不需要担心 Ollama 的高可用性、扩展性等问题。

当然首先需要一个 Kubernetes 集群,最好带有 GPU,但即使没有 GPU,llama3 模型在仅使用 CPU 的情况下也能表现得相对较好。

$ kubectl version
Client Version: v1.28.11
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
Server Version: v1.28.7

部署 Ollama 到 Kubernetes

要部署 Ollama 和 Open-WebUI 到 Kubernetes 很简单,因为 Open-WebUI 项目提供了一个 Helm Chart,可以让我们更轻松地部署 Ollama 和 Open-WebUI。这个 charts 包被托管在 https://helm.openwebui.com,我们可以使用 Helm 添加这个 repo:

helm repo add open-webui https://helm.openwebui.com/
helm repo update

open-webui 这个 charts 包默认情况下会部署 Ollama,我们可以根据自己的需求进行配置,例如我们可以配置 Ollama 是否使用 GPU,是否开启数据持久化等等,我们可以覆盖默认的配置来进行配置,如下:

# myvalues.yaml
ollama:
  enabled: true # 自动安装 Ollama Helm Chart
  ollama: # 配置 Ollama
    gpu:
      enabled: false # 是否使用 GPU
    #   type: 'nvidia'
    #   number: 1
    # models:  # 容器启动的时候加载的模型
    #  - llama3
    #  - mistral
  persistentVolume: # 配置持久化存储
    enabled: true
    storageClass: nfs-client # 指定 storageClass
    # existingClaim: ""  # 也可以使用已经存在的 PVC

# ========== Pipelines 配置 ==========

pipelines: # OpenAI API 插件框架
  enabled: true

  persistence:
    enabled: true
    storageClass: "nfs-client"

  service:
    type: NodePort

# ========== open-webui 配置 ==========
# ingress: # 配置 Ingress
#   enabled: false
#   host: "open-webui.example.com"

# 配置持久化存储
persistence:
  enabled: true
  #   existingClaim: ""  # 也可以使用已经存在的 PVC
  storageClass: "nfs-client" # 指定 storageClass

service:
  type: NodePort # 设置 Service 类型

# 指定 OpenAI API URL,如果不指定,默认使用 Pipelines 服务的端点  https://api.openai.com/v1
# openaiBaseApiUrl: ""

# 配置额外的环境变量
extraEnvVars:
  - name: HF_ENDPOINT
    value: https://hf-mirror.com
# - name: OPENAI_API_KEY # 指定 OpenAI API Key
#   value: "0p3n-w3bu!"

在上面的配置中,我们可以配置 Ollama 是否使用 GPU,是否开启数据持久化等等,对于 open-webui 部分,我们配置的是一个 NodePort 类型的 Service,这样我们就可以通过 Node 的 IP 和 NodePort 来访问 Open-WebUI 项目,当然你也可以配置 Ingress 来访问。

注意:Open-WebUI 项目默认会去访问 huggingface 的模型仓库,因为某些原因,默认情况下国内是无法访问的,所以我们需要配置 HF_ENDPOINT 环境变量来指定一个镜像地址 https://hf-mirror.com,否则会出错。

然后我们可以使用 Helm 安装这个 charts 包:

helm upgrade --install ollama open-webui/open-webui -f myvalues.yaml --create-namespace --namespace kube-ai

部署完成后,会在 kube-ai 这个命名空间下运行几个 Pod,我们可以查看 Pod 的状态:

$ kubectl get pods -n kube-ai
NAME                                    READY   STATUS    RESTARTS        AGE
open-webui-0                            1/1     Running   0               2m11s
open-webui-ollama-944dd68fc-wxsjf       1/1     Running   0               24h
open-webui-pipelines-557f6f95cd-dfgh8   1/1     Running   0               25h

因为上面我们配置的是 NodePort 类型的 Service,所以我们可以通过 Node 的 IP 和 NodePort 来访问 Open-WebUI 项目:

$ kubectl get svc -n kube-ai
NAME                   TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)          AGE
open-webui             NodePort    10.96.1.212           80:31009/TCP     25h
open-webui-ollama      ClusterIP   10.96.2.112           11434/TCP        25h
open-webui-pipelines   NodePort    10.96.2.170           9099:32322/TCP   25h

使用

现在我们就可以通过 http://NodeIP:31009 来访问 Open-WebUI 项目了。

第一次使用的时候需要注册一个账号,然后我们就可以登录到 Open-WebUI 项目主页了。

如果你有 Ollama 在其他地方运行,我们可以将其添加为另一个连接。

首先需要配置连接 Ollama 的地址,然后我们就可以连接到 Ollama 了,连接成功后,我们就可以看到 Ollama 的模型列表了。

点击左下角的用户头像,然后选择 管理员面板,在管理员面板页面选择 设置 标签页,然后切换到 外部连接 配置项,我们可以设置 Ollama API 地址,我们这里使用的是 Helm 部署的 Ollama,默认已经为我们配置好了 Ollama API 地址。

接下来切换到 模型 标签页,我们就可以从 Ollama 的模型仓库中拉取模型了,可以下载的模型可以从 https://ollama.com/library 查看。比如我们这里选择 llama3 模型,输入 llama3 然后点击右侧的拉取下载按钮,就会开始下载这个模型了,在页面中也可以看到下载的进度。

模型拉取完成后,切回到首页,我们就可以选择切换到 Llama3 模型了。

接下来我们就可以使用 Llama3 模型为我们服务了。

总结

在本文中,我们探讨了使用 Open WebUI 在 Kubernetes 集群上部署 Llama3 的过程。通过容器化和编排技术,我们成功地将 AI powered 的聊天机器人部署到了可扩展和维护的环境中。Open WebUI 的简洁界面和 Kubernetes 的强大自动化能力,让我们简化了部署过程,减少了手动干预。随着世界对 AI 驱动解决方案的不断依赖,这种技术组合将扮演关键角色,快速地带领创新应用程序 Llama3 告诉市场。AI Powered 的聊天机器人的未来看起来非常光明,Open WebUI 和 Kubernetes 将继续领先,期待着下一个令人兴奋的发展!(这一段就来自 Llama3 模型生成)

来源:k8s技术圈内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯