內容概述
KubeAI 是一個專為 Kubernetes 設計的 AI 推理操作員,旨在簡化機器學習模型的部署和管理。它提供與 OpenAI 相容的 HTTP API,支援大型語言模型(LLMs)、嵌入模型以及語音轉文字功能,並具備自動調整和多平台支援等特性。
應用場景
KubeAI 適用於需要在生產環境中部署和管理機器學習模型的情境,例如:
- 提供與 OpenAI API 相容的服務,作為替代方案。
- 在 Kubernetes 環境中自動調整模型服務的資源,根據負載進行擴展或縮減。
- 在多種硬體平台(如 CPU、GPU、TPU)上運行模型,滿足不同的計算需求。
- 整合語音轉文字和文本嵌入等功能,提供完整的 AI 服務。
技術特點
- 與 OpenAI API 相容,可直接替代使用。
- 自動調整功能,根據負載自動擴展或縮減,支援從零開始的擴展。
- 支援 vLLM 和 Ollama 等模型服務器,提供文本生成服務。
- 動態加載 LoRA 適配器,提升模型靈活性。
- 優化的負載平衡,提升推理效能。
- 內建語音轉文字 API,使用 FasterWhisper 技術。
- 提供嵌入/向量 API,使用 Infinity 技術。
- 多平台支援,可在 CPU、GPU、TPU 上運行。
- 模型快取功能,透過共享檔案系統(如 EFS、Filestore 等)實現。
- 無需依賴 Istio、Knative 等外部工具,降低部署複雜度。
- 內建聊天介面(OpenWebUI),方便與模型互動。
- 支援透過消息系統(如 Kafka、PubSub 等)進行流式或批次推理。
其他整合
KubeAI 可與多種工具和平台整合,包括:
- Weaviate:用於語義搜索和生成任務的嵌入式搜索引擎。
- Langtrace:用於部署 LLMs 並提供 OpenAI 相容端點的工具。
- vLLM:高效的 LLM 服務器,支援與 KubeAI 的整合。
安裝步驟
在任何 Kubernetes 叢集中安裝 KubeAI 的步驟如下:
1. 添加 KubeAI 的 Helm 軟體庫:
helm repo add kubeai https://www.kubeai.org helm repo update
2. (可選)設定 Hugging Face 的 token(若需使用需要認證的 Hugging Face 模型):
export HF_TOKEN=<your-hugging-face-token>
3. 使用 Helm 安裝 KubeAI:
helm install kubeai kubeai/kubeai --wait --timeout 10m
4. 安裝預定義的模型(例如 Gemma2-2B): cat ollama-models.yaml
apiVersion: kubeai.org/v1
kind: Model
metadata:
name: gemma2-2b
namespace: default
spec:
engine: OLlama
features:
- TextGeneration
resourceProfile: cpu:1
minReplicas: 1
replicas: 1
scaleDownDelaySeconds: 30
targetRequests: 100
url: ollama://gemma2:2b
---
apiVersion: kubeai.org/v1
kind: Model
metadata:
name: llama-3.2
namespace: default
spec:
engine: OLlama
features:
- TextGeneration
minReplicas: 1
resourceProfile: cpu:1
replicas: 1
scaleDownDelaySeconds: 30
targetRequests: 100
url: ollama://llama3.2
kubectl apply -f ollama-models.yaml
5. 監控模型的部署狀態:
kubectl get pods --watch
6. 與模型互動,啟動本地端口轉發至內建的聊天介面:
kubectl port-forward svc/openwebui 8000:80
然後在瀏覽器中打開 http://localhost:8000
,選擇相應的模型進行互動。
存取和操作
安裝完成後,可透過與 OpenAI 相容的 API 存取 KubeAI 提供的模型服務。以下是使用 Python 的範例:
import openai
openai.api_base = 'http://<KubeAI-服務地址>'
openai.api_key = 'your-api-key'
response = openai.Completion.create(
model="gemma2-2b-cpu",
prompt="請介紹一下 KubeAI。",
max_tokens=100
)
print(response.choices[0].text)
小技巧
- 在部署前,確保 Kubernetes 叢集已正確配置,並具備所需的資源(如 CPU、GPU)。
- 使用共享檔案系統(如 EFS、Filestore)來實現模型快取,提升效能。
- 定期更新 KubeAI 和相關模型,確保獲得最新功能和修正。
- 參考官方文件以獲取更多配置和優化建議。