从往年开局,人们对大型言语模型 (LLM) 及其在 GPU 基础设备上的部署的兴味显着参与。这种不时增长的激情是由人工智能和机器学习的提高推进的,这须要 GPU 能够有效提供少量的计算才干。GPU 上游制造商 Nvidia 的股价也因这一趋向而飙升。雷同降生了少量的大模型,关于这些模型的部署和治理也变得越来越关键,在这方面Ollama和OpenUI是一个不错的选用。
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 versionClient Version: v1.28.11Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3Server Version: v1.28.7
要部署 Ollama 和 Open-WebUI 到 Kubernetes 很便捷,由于 Open-WebUI 名目提供了一个 Helm Chart,可以让咱们更轻松地部署 Ollama 和 Open-WebUI。这个 charts 包被托管在,咱们可以经常使用 Helm 参与这个 repo:
helm repo add open-webuirepo update
open-webui这个 charts 包自动状况下会部署Ollama,咱们可以依据自己的需求启动性能,例如咱们可以性能Ollama能否经常使用 GPU,能否开启数据耐久化等等,咱们可以笼罩自动的性能来启动性能,如下:
# myvalues.yamlollama:enabled: true # 智能装置 Ollama Helm Chartollama: # 性能 Ollamagpu:enabled: false # 能否经常使用 GPU#type: 'nvidia'#number: 1# models:# 容器启动的时刻加载的模型#- llama3#- mistralpersistentVolume: # 性能耐久化存储enabled: truestorageClass: nfs-client # 指定 storageClass# existingClaim: ""# 也可以经常使用曾经存在的 PVC# ========== Pipelines 性能 ==========pipelines: # OpenAI API 插件框架enabled: truepersistence:enabled: truestorageClass: "nfs-client"service:type: NodePort# ========== open-webui 性能 ==========# ingress: # 性能 Ingress#enabled: false#host: "open-webui.example.com"# 性能耐久化存储persistence:enabled: true#existingClaim: ""# 也可以经常使用曾经存在的 PVCstorageClass: "nfs-client" # 指定 storageClassservice:type: NodePort # 设置 Service 类型# 指定 OpenAI API URL,假设不指定,自动经常使用 Pipelines 服务的端点openaiBaseApiUrl: ""# 性能额外的环境变量extraEnvVars:- name: HF_ENDPOINTvalue:- name: OPENAI_API_KEY # 指定 OpenAI API Key#value: "0p3n-w3bu!"
在下面的性能中,咱们可以性能Ollama能否经常使用 GPU,能否开启数据耐久化等等,关于open-webui局部,咱们性能的是一个NodePort类型的 Service,这样咱们就可以经过 Node 的 IP 和 NodePort 来访问 Open-WebUI 名目,当然你也可以性能 Ingress 来访问。
而后咱们可以经常使用 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-aiNAMEREADYSTATUSRESTARTSAGEopen-webui-01/1Running02m11sopen-webui-ollama-944dd68fc-wxsjf1/1Running024hopen-webui-pipelines-557f6f95cd-dfgh81/1Running025h
由于下面咱们性能的是NodePort类型的 Service,所以咱们可以经过 Node 的 IP 和 NodePort 来访问 Open-WebUI 名目:
$ kubectl get svc -n kube-aiNAMETYPECLUSTER-IPEXTERNAL-IPPORT(S)AGEopen-webuiNodePort10.96.1.212<none>80:31009/TCP25hopen-webui-ollamaClusterIP10.96.2.112<none>11434/TCP25hopen-webui-pipelinesNodePort10.96.2.170<none>9099:32322/TCP25h
如今咱们就可以经过来访问 Open-WebUI 名目了。
第一次性经常使用的时刻须要注册一个账号,而后咱们就可以登录到 Open-WebUI 名目主页了。
假设你有Ollama在其余中央运转,咱们可以将其参与为另一个衔接。
首先须要性能衔接Ollama的地址,而后咱们就可以衔接到Ollama了,衔接成功后,咱们就可以看到Ollama的模型列表了。
点击左下角的用户头像,而后选用治理员面板,在治理员面板页面选用设置标签页,而后切换到外部衔接性能项,咱们可以设置Ollama API地址,咱们这里经常使用的是 Helm 部署的Ollama,自动曾经为咱们性能好了Ollama API地址。
接上去切换到模型标签页,咱们就可以从Ollama的模型仓库中拉取模型了,可以下载的模型可以从检查。比如咱们这里选用llama3模型,输入llama3而后点击右侧的拉取下载按钮,就会开局下载这个模型了,在页面中也可以看到下载的进展。
模型拉取成功后,切回到,咱们就可以选用切换到Llama3模型了。
接上去咱们就可以经常使用Llama3模型为咱们服务了。
在本文中,咱们讨论了经常使用 Open WebUI 在 Kubernetes 集群上部署Llama3的环节。经过容器化和编排技术,咱们成功地将 AI powered 的聊天机器人部署到了可裁减和保养的环境中。Open WebUI 的繁复界面和 Kubernetes 的弱小智能化才干,让咱们简化了部署环节,缩小了手动干预。随着环球对 AI 驱动处置打算的不时依赖,这种技术组合将表演关键角色,极速地率领翻新运行程序 Llama3 通知市场。AI Powered 的聊天机器人的未来看起来十分黑暗,Open WebUI 和 Kubernetes 将继续上游,等候着下一个令人兴奋的开展!(这一段就来自Llama3模型生成)