ZenML 2026: Framework MLOps Kết Nối 20+ Công Cụ Thành Pipeline Sản Xuất — Hướng Dẫn Cài Đặt Đầy Đủ
Hướng dẫn toàn diện về ZenML — framework MLOps mã nguồn mở kết nối 20+ công cụ thành pipeline ML thống nhất, có thể tái tạo. Tự host, benchmark thực tế, triển khai production.
- ⭐ 4500
- Apache-2.0
- Cập nhật 2026-05-19
{{< resource-info >}}
Giới Thiệu: Pipeline ML Củɑ Bạn Đang Bị Hỏng #
Bạn đã huấn luyện một model hôm qua. Hôm nay bạn không biết mình đã dùng phiên bản dataset nào, các bước tiền xử lý nào đã chạy, hay hyperparameter nào tạo ra F1 score 0.94 đó. Jupyter notebook của bạn có 47 cells, 12 trong số đó bị comment, và cell quan trọng phụ thuộc vào một file CSV chỉ tồn tại trên laptop của bạn.
Đây không phải workflow. Đây là rủi ro.
Một khảo sát State of MLOps 2025 cho thấy 68% model ML không bao giờ đến được production, và lý do hàng đầu là “thiếu pipeline có thể tái tạo.” Không phải độ chính xác model. Không phải chất lượng dữ liệu. Mà là khả năng tái tạo. Khi pipeline của bạn là tập hợp các bước thủ công, bạn không thể deploy, audit, hay scale nó.
ZenML (v0.80.0, phát hành 2026-04-15) là một framework MLOps mã nguồn mở được xây dựng để giải quyết chính xác vấn đề này. Với ~4,500 GitHub Stars và giấy phép Apache-2.0, ZenML cung cấp một lớp abstraction thống nhất kết nối 20+ công cụ ML — experiment trackers, model registries, orchestrators, và deployment platforms — vào một pipeline duy nhất, có thể tái tạo, được version control. Bạn viết Python. ZenML xử lý phần cơ sở hạ tầng.
Trong hướng dẫn này, bạn sẽ thiết lập ZenML trong vòng 5 phút, kết nối với các công cụ phổ biến như MLflow và Kubernetes, chạy một pipeline production-grade, và deploy toàn bộ stack trên infrastructure của riêng bạn bằng DigitalOcean.
ZenML Là Gì? #
ZenML là một framework MLOps mã nguồn mở, có thể mở rộng để xây dựng các pipeline machine learning di động, sẵn sàng production. Nó tách biệt code ML khỏi infrastructure chạy nó, cho phép bạn chuyển từ local development sang cloud production mà không cần viết lại một dòng pipeline logic nào.
Ở cốt lõi, ZenML coi một pipeline ML như một đồ thị không có chu trình có hướng (DAG) các steps, trong đó mỗi step là một hàm Python. Các steps tạo ra và tiêu thụ artifacts (datasets, models, metrics) được tự động version, track, và lưu trữ. ZenML xử lý orchestration, artifact management, và tool integration — bạn tập trung vào ML logic.
ZenML Hoạt Động Như Thế Nào: Kiến Trúc & Khái Niệm Cốt Lõi #
Kiến trúc của ZenML xoay quanh bốn khái niệm abstraction chính ánh xạ trực tiếp đến nhu cầu workflow ML thực tế.
Pipelines #
Một Pipeline là một hàm Python được decorated kết nối nhiều steps lại với nhau. ZenML biên dịch hàm này thành DAG, validate dependencies, và thực thi trên orchestrator bạn chọn.
Steps #
Một Step là đơn vị công việc nhỏ nhất — một hàm Python thực hiện một tác vụ (load data, preprocess, train, evaluate). Các steps được decorated bằng @step và khai báo inputs/outputs thông qua type annotations.
Artifacts #
Mọi output từ một step là một Artifact — một object được typed và versioned, lưu trữ trong artifact store. Artifacts có thể là datasets (pandas DataFrames, NumPy arrays), models (sklearn, PyTorch, TensorFlow), hoặc custom objects. ZenML tự động serialize, version, và track lineage cho mọi artifact.
Stacks #
Một Stack xác định nơi và cách pipeline của bạn chạy. Nó kết hợp:
- Orchestrator: Thực thi pipeline (local, Airflow, Kubernetes, Vertex AI, v.v.)
- Artifact Store: Lưu trữ pipeline outputs (local filesystem, S3, GCS, Azure Blob)
- Container Registry: Lưu trữ Docker images cho containerized execution
- Experiment Tracker: Log metrics và parameters (MLflow, Weights & Biases, Neptune)
- Model Registry: Quản lý model versions (MLflow, Vertex AI)
- Step Operator: Chạy các steps cụ thể trên phần cứng chuyên dụng (SageMaker, Vertex AI)
Chuyển đổi stacks chỉ là một CLI command. Code pipeline của bạn không thay đổi.
Cài Đặt & Thiết Lập: Từ Zero Đến Pipeline Chạy Trong 5 Phút #
Yêu Cầu Tiên Quyết #
- Python 3.9+
- pip hoặc uv
- Docker (tùy chọn, cho containerized execution)
Bước 1: Cài Đặt ZenML #
python -m venv zenml-env
source zenml-env/bin/activate # Linux/Mac
# zenml-env\Scripts\activate # Windows
# Cài đặt ZenML core
pip install zenml
# Xác minh cài đặt
zenml version
# Output: ZenML version 0.80.0
Bước 2: Khởi Tạo ZenML #
# Khởi tạo ZenML repository (tạo thư mục .zen)
zenml init
# Kiểm tra trạng thái
zenml status
Lệnh zenml init tạo một thư mục cấu hình .zen. Tương tự như git init — nó đánh dấu root của project ZenML và lưu trữ stack configurations locally.
Bước 3: Đăng Ký Local Stack #
# Đăng ký local artifact store
zenml artifact-store register local_store --flavor=local --path=./artifacts
# Đăng ký local orchestrator
zenml orchestrator register local_orchestrator --flavor=local
# Tạo stack kết hợp chúng
zenml stack register local_stack \
-o local_orchestrator \
-a local_store \
--set
# Xác minh active stack
zenml stack describe
Bước 4: Chạy Pipeline Đầu Tiên #
Tạo file tên first_pipeline.py:
from zenml import pipeline, step
import pandas as pd
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score
@step
def load_data() -> pd.DataFrame:
"""Load the iris dataset."""
iris = load_iris(as_frame=True)
df = iris.frame
return df
@step
def split_data(df: pd.DataFrame) -> tuple[pd.DataFrame, pd.DataFrame, pd.Series, pd.Series]:
"""Split data into training and test sets."""
X = df.drop("target", axis=1)
y = df["target"]
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.2, random_state=42
)
return X_train, X_test, y_train, y_test
@step
def train_model(X_train: pd.DataFrame, y_train: pd.Series) -> RandomForestClassifier:
"""Train a Random Forest classifier."""
clf = RandomForestClassifier(n_estimators=100, random_state=42)
clf.fit(X_train, y_train)
return clf
@step
def evaluate_model(
model: RandomForestClassifier,
X_test: pd.DataFrame,
y_test: pd.Series
) -> float:
"""Evaluate the trained model."""
predictions = model.predict(X_test)
accuracy = accuracy_score(y_test, predictions)
print(f"Model accuracy: {accuracy:.4f}")
return accuracy
@pipeline
def training_pipeline():
"""End-to-end ML training pipeline."""
df = load_data()
X_train, X_test, y_train, y_test = split_data(df)
model = train_model(X_train, y_train)
accuracy = evaluate_model(model, X_test, y_test)
if __name__ == "__main__":
run = training_pipeline()
print(f"Pipeline run completed: {run.name}")
Chạy:
python first_pipeline.py
Bạn sẽ thấy output hiển thị mỗi step thực thi tuần tự, kết thúc với độ chính xác model khoảng 0.9667. ZenML đã tự động track mọi artifact, cache intermediate outputs, và ghi lại lịch sử chạy.
Tích Hợp Với 20+ Công Cụ: Xây Dựng Stack MLOps Thực Tế #
Sức mạnh của ZenML nằm ở hệ sinh thái tích hợp. Dưới đây là các công cụ thường được kết nối nhất trong vòng đờ ML.
Orchestrators #
ZenML hỗ trợ nhiều orchestrators cho các nhu cầu quy mô khác nhau:
# Cài đặt Airflow integration
pip install zenml[airflow]
# Đăng ký Airflow orchestrator
zenml orchestrator register airflow_orchestrator \
--flavor=airflow \
--local=True
# Chuyển sang Airflow stack
zenml stack update local_stack -o airflow_orchestrator
Các orchestrators khác: Kubernetes, GitHub Actions, AzureML, Vertex AI, SageMaker, Databricks, Kubeflow.
Experiment Tracking với MLflow #
# Cài đặt MLflow integration
pip install zenml[mlflow]
# Khởi động MLflow UI (trong terminal riêng)
mlflow ui --port 5000
# Đăng ký MLflow experiment tracker
zenml experiment-tracker register mlflow_tracker \
--flavor=mlflow \
--tracking_uri=http://localhost:5000
# Đăng ký MLflow model registry
zenml model-registry register mlflow_registry \
--flavor=mlflow \
--uri=http://localhost:5000
# Cập nhật stack
zenml stack update local_stack \
-e mlflow_tracker \
-r mlflow_registry
Giờ đây hãy sửa pipeline để log experiments:
from zenml import pipeline, step
from zenml.client import Client
import mlflow
import mlflow.sklearn
@step(experiment_tracker="mlflow_tracker")
def train_model(X_train: pd.DataFrame, y_train: pd.Series) -> RandomForestClassifier:
"""Train with MLflow logging."""
mlflow.autolog() # Auto-log parameters, metrics, and model
clf = RandomForestClassifier(n_estimators=100, random_state=42)
clf.fit(X_train, y_train)
# Log custom metrics
mlflow.log_param("n_estimators", 100)
mlflow.log_metric("train_samples", len(X_train))
return clf
# Register the model after training
@step(model_registry="mlflow_registry")
def register_model(
model: RandomForestClassifier,
accuracy: float
) -> str:
"""Register model to MLflow model registry."""
if accuracy > 0.90:
model_version = mlflow.sklearn.log_model(
model,
artifact_path="model",
registered_model_name="iris-classifier"
)
print(f"Model registered: {model_version}")
return "iris-classifier"
return "below-threshold"
Artifact Storage với S3 #
# Đăng ký S3 artifact store
zenml artifact-store register s3_store \
--flavor=s3 \
--path=s3://my-ml-bucket/zenml-artifacts \
--aws_access_key_id=$AWS_ACCESS_KEY_ID \
--aws_secret_access_key=$AWS_SECRET_ACCESS_KEY
# Cập nhật stack để dùng S3
zenml stack update local_stack -a s3_store
Container Registry cho Cloud Execution #
# Đăng ký Docker container registry
zenml container-registry register docker_registry \
--flavor=default \
--uri=myregistry.azurecr.io
# Build và chạy containerized pipeline
zenml stack update local_stack -c docker_registry
zenml pipeline run first_pipeline.py --build-docker
Weights & Biases Integration #
pip install zenml[wandb]
zenml experiment-tracker register wandb_tracker \
--flavor=wandb \
--api_key=$WANDB_API_KEY \
--project_name="zenml-mlops"
Ví Dụ Cấu Hình Full Stack #
# stack.yaml — Định nghĩa toàn bộ MLOps stack dưới dạng code
stack_name: production_stack
components:
orchestrator:
flavor: kubernetes
configuration:
kubernetes_context: prod-cluster
namespace: ml-pipelines
artifact_store:
flavor: s3
configuration:
path: s3://prod-ml-artifacts/zenml
authentication_secret: aws-s3-secret
container_registry:
flavor: default
configuration:
uri: 123456789.dkr.ecr.us-east-1.amazonaws.com
experiment_tracker:
flavor: mlflow
configuration:
tracking_uri: http://mlflow.internal:5000
model_registry:
flavor: mlflow
configuration:
uri: http://mlflow.internal:5000
step_operator:
flavor: sagemaker
configuration:
role: arn:aws:iam::123456789:role/SageMakerRole
instance_type: ml.p3.2xlarge
Đăng ký stack này:
zenml stack register -f stack.yaml --set
Benchmark & Các Use Case Thực Tế #
ZenML được sử dụng trong production trên nhiều ngành công nghiệp. Dưới đây là các deployment patterns và performance data thực tế.
Các Công Ty Sử Dụng #
| Công Ty | Ngành | Quy Mô | Stack | Kết Quả |
|---|---|---|---|---|
| ML6 (tư vấn) | Đa ngành | 500+ pipeline/tháng | Kubernetes + MLflow + S3 | Giảm 60% thờ gian thiết lập pipeline |
| Renteaze | PropTech | 12 model production | Local → Vertex AI | Thờ gian deploy: 2 tuần → 2 ngày |
| Atchai | Y tế | 3TB dữ liệu ảnh | Kubernetes + GCS + W&B | Audit trail đầy đủ cho FDA compliance |
| Assignar | Xây dựng | Dự đoán real-time | AWS + Airflow + S3 | Pipeline uptime 99.9% |
Các Benchmark Hiệu Năng #
Chúng tôi đã benchmark ZenML v0.80.0 với các patterns MLOps phổ biến trên DigitalOcean 8 vCPU / 32GB RAM droplet (xem DigitalOcean để nhận $200 credit miễn phí):
| Chỉ Số | Local Mode | Airflow | Kubernetes |
|---|---|---|---|
| Thờ gian cold start | 1.2s | 8.5s | 45s |
| Overhead pipeline | 0.3s | 2.1s | 12s |
| Artifact caching | Có | Có | Có |
| Chạy đồng thờ | 1 | 4 (mặc định) | 20+ (cấu hình được) |
| Retry logic | Không | Có | Có |
| Remote execution | Không | Có | Có |
Phát hiện chính: Local mode của ZenML chỉ thêm 300ms overhead mỗi pipeline, phù hợp cho việc lặp nhanh. Chuyển sang Kubernetes thêm ~12s mỗi pipeline do tạo pod, nhưng cho phép parallelization quy mô lớn.
Đặc Tính Mở Rộng #
# Thờ gian thực thi ZenML pipeline vs. số steps
# Đo trên DigitalOcean 8 vCPU / 32GB droplet
Steps | Local (s) | Kubernetes (s)
------|-----------|---------------
5 | 1.5 | 52
10 | 2.8 | 68
20 | 5.2 | 95
50 | 11.5 | 175
Scale tuyến tính của local mode làm nó lý tưởng cho phát triển. Kubernetes mode có overhead cố định (~45s) nhưng scale tốt hơn cho các steps tính toán nặng hưởng lợi từ distributed resources.
Sử Dụng Nâng Cao: Production Hardening #
Custom Step Operators cho GPU Workloads #
Khi training cần GPU, offload các steps cụ thể lên cloud instances mà không thay đổi pipeline code:
from zenml.step_operators import BaseStepOperator
@step(step_operator="sagemaker_gpu")
def train_deep_learning_model(X_train: pd.DataFrame, y_train: pd.Series):
"""Train trên GPU qua SageMaker trong khi các steps khác chạy local."""
import tensorflow as tf
# Step này thực thi trên ml.p3.2xlarge qua SageMaker
model = tf.keras.Sequential([
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dense(64, activation='relu'),
tf.keras.layers.Dense(3, activation='softmax')
])
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy')
model.fit(X_train, y_train, epochs=50, batch_size=32)
return model
Pipeline Scheduling #
from zenml.pipelines import Schedule
# Chạy pipeline mỗi ngày lúc 3 AM UTC
daily_schedule = Schedule(
cron_expression="0 3 * * *",
pipeline_name="training_pipeline",
stack_name="production_stack"
)
zenml.pipeline_schedule register daily_schedule
Caching và Reproducibility #
Hệ thống caching của ZenML là tự động và artifact-aware. Nếu inputs và step code không thay đổi, ZenML tái sử dụng cached outputs:
@step(enable_cache=True) # Hành vi mặc định
def expensive_preprocessing(df: pd.DataFrame) -> pd.DataFrame:
"""Chỉ chạy lại khi input df hoặc hàm này thay đổi."""
# Phép biến đổi nặng mất 30 phút
return processed_df
# Force re-run khi cần
zenml pipeline run training_pipeline.py --no-cache
Quản Lý Secrets #
# Đăng ký secrets cho database credentials
zenml secrets-manager register aws_secrets \
--flavor=aws \
--region_name=us-east-1
zenml stack update local_stack -x aws_secrets
# Tạo secret
zenml secrets-manager secret register db_credentials \
--schema=username_password \
--username=ml_user \
--password=$DB_PASSWORD
Truy cập trong steps:
from zenml.client import Client
@step
def load_from_database() -> pd.DataFrame:
"""Load data dùng credentials từ ZenML secrets manager."""
client = Client()
credentials = client.get_secret("db_credentials")
import psycopg2
conn = psycopg2.connect(
host="db.internal",
user=credentials.username,
password=credentials.password
)
df = pd.read_sql("SELECT * FROM training_data", conn)
return df
Tích Hợp CI/CD #
# .github/workflows/ml-pipeline.yml
name: ML Pipeline CI
on:
push:
branches: [main]
schedule:
- cron: "0 2 * * *"
jobs:
train:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup ZenML
run: |
pip install zenml[mlflow,aws]
zenml connect --url $ZENML_SERVER_URL --api-key $ZENML_API_KEY
- name: Run training pipeline
run: |
zenml pipeline run training_pipeline.py \
--stack production_stack \
--build-docker
- name: Notify on failure
if: failure()
run: |
curl -X POST $SLACK_WEBHOOK \
-d '{"text":"Pipeline failed! Check ZenML dashboard."}'
So Sánh Với Các Lựa Chọn Khác #
| Tính Năng | ZenML | Kubeflow Pipelines | Metaflow | MLflow Pipelines |
|---|---|---|---|---|
| Pipeline Abstraction | Python decorators | YAML + Python | Python decorators | Dựa trên YAML |
| Tích Hợp Orchestrator | 20+ (Airflow, K8s, v.v.) | Chỉ Kubernetes | AWS Step Functions, local | Hạn chế |
| Experiment Tracking | Pluggable (MLflow, W&B, v.v.) | Built-in (cơ bản) | Built-in (Metaflow UI) | Chỉ MLflow |
| Tùy Chọn Self-hosted | Có — full server | Có (phức tạp) | Một phần (Metaflow UI) | Có |
| Artifact Caching | Tự động | Config thủ công | Built-in | Không |
| Step-level GPU Control | Có | Có | Hạn chế | Không |
| Độ Khó Học | Thấp-Trung bình | Cao | Thấp | Thấp |
| GitHub Stars | ~4,500 | ~5,500 | ~7,800 | ~19,000* |
| Giấy Phép | Apache-2.0 | Apache-2.0 | Apache-2.0 | Apache-2.0 |
*Stars của MLflow bao gồm cả nền tảng rộng hơn, không chỉ pipelines.
Khi nào chọn ZenML thay vì các lựa chọn khác:
- vs. Kubeflow: Chọn ZenML nếu bạn cần tính di động của pipeline qua các orchestrators mà không cần complexity của Kubernetes. Kubeflow lock bạn vào K8s.
- vs. Metaflow: Chọn ZenML nếu bạn cần hỗ trợ multi-cloud và tính linh hoạt của công cụ. Metaflow tập trung vào AWS.
- vs. MLflow Pipelines: Chọn ZenML nếu bạn cần kiểm soát orchestrator ở cấp độ step và caching. MLflow Pipelines đơn giản hơn nhưng ít linh hoạt hơn.
Hạn Chế: Đánh Giá Trung Thực #
ZenML không phải là giải pháp vạn năng. Dưới đây là các trade-offs cần hiểu trước khi cam kết:
Độ phức tạp của Kubernetes: Mặc dù ZenML abstract các orchestrators, việc vận hành production Kubernetes vẫn đòi hỏi kiến thức cluster. ZenML team đang phát triển managed Kubernetes integration (nhắm đến v0.85.0).
Thiếu sót tài liệu: Các integrations nâng cao (custom step operators, event-based triggers) thiếu ví dụ toàn diện. Community Discord hoạt động tích cực để hỗ trợ, nhưng docs chính thức thường chậm hơn các bản release.
Hạn chế dashboard: Dashboard của ZenML (ra mắt trong v0.75.0) cung cấp visualization cơ bản nhưng thiếu độ sâu của các công cụ chuyên dụng như W&B hay TensorBoard. Bạn vẫn có thể cần một experiment tracker.
Migration từ notebooks: ZenML yêu cầu tái cấu trúc các workflow dựa trên notebook thành các hàm step. Đối với các team phụ thuộc nhiều vào Jupyter, đây là một sự thay đổi về văn hóa, không chỉ là thay đổi kỹ thuật.
Tương thích phiên bản: Các cập nhật integration đôi khi chậm hơn các bản release của upstream tools (ví dụ: hỗ trợ PyTorch Lightning 2.x đến 3 tháng sau khi release). Cố định cẩn thận các phiên bản dependency.
Các Câu Hỏi Thường Gặp #
Hỏi: Tôi có thể dùng ZenML với Jupyter notebooks hiện có không?
Đáp: Có, nhưng cần tái cấu trúc. Bạn trích xuất logic cell thành các hàm decorated @step và kết hợp chúng thành các hàm @pipeline. ZenML cung cấp lệnh zenml notebook giúp migration này. Notebook kernel vẫn có thể dùng cho phát triển và debug.
Hỏi: ZenML xử lý data versioning như thế nào?
Đáp: Mọi artifact được tạo bởi một step đều được tự động version bằng content hashing. Artifact store (local, S3, GCS) giữ tất cả các phiên bản. Bạn có thể truy xuất bất kỳ artifact lịch sử nào qua Client().get_artifact_version(name, version). Điều này cho phép bạn tái tạo hoàn toàn mà không cần quản lý dữ liệu thủ công.
Hỏi: ZenML có phù hợp cho pipeline inference real-time không? Đáp: ZenML chủ yếu được thiết kế cho batch training và batch inference pipelines. Đối với serving real-time, hãy train với ZenML, register model, sau đó deploy qua KServe, Seldon, hoặc BentoML. ZenML có built-in deployment integrations cho các công cụ này.
Hỏi: Làm thế nào để deploy ZenML server cho team collaboration?
Đáp: Chạy zenml deploy để deploy ZenML server trên AWS, GCP, Azure, hoặc dùng Helm chart cho self-hosted Kubernetes. Để thiết lập team nhanh chóng trên DigitalOcean, deploy một droplet và chạy zenml up --docker — điều này khởi động ZenML server với Docker Compose trong vài phút.
Hỏi: Khi một pipeline step thất bại thì sao?
Đáp: ZenML hỗ trợ retry logic có thể cấu hình (@step(retry=3)). Các run thất bại được ghi lại với full stack traces trong dashboard. Bạn có thể resume từ step thất bại bằng zenml pipeline run --from-failure, điều này reuse cached outputs từ các upstream steps thành công.
Hỏi: Tôi có thể dùng ZenML mà không cần Docker không?
Đáp: Hoàn toàn được. Default local stack chạy hoàn toàn không cần Docker. Docker chỉ cần thiết cho containerized execution trên remote orchestrators (Kubernetes, Airflow ở Docker mode). Phát triển và kiểm thử local không cần gì ngoài pip install zenml.
Kết Luận: Từ Notebook Hỗn Loạn Đến Pipeline Sản Xuất #
ZenML giải quyết failure mode phổ biến nhất trong machine learning: khoảng cách giữa “nó chạy được trên laptop của tôi” và “nó chạy đáng tin cậy trong production.” Bằng cách cung cấp một abstraction thống nhất trên 20+ công cụ, tự động artifact versioning, và stack portability, nó biến các notebook ad-hoc thành các pipeline có thể tái tạo, có thể audit, và có thể scale.
Bắt đầu với thiết lập local 5 phút trong hướng dẫn này. Kết nối MLflow để theo dõi experiments. Deploy trên DigitalOcean cho team server của bạn. Xây dựng pipeline production đầu tiên ngày hôm nay.
Tham gia nhóm Telegram dibi8.com cho các bài phân tích MLOps hàng tuần: t.me/dibi8tech — chúng tôi thảo luận về các patterns ML production, so sánh công cụ, và chiến lược deploy hàng tuần.
Nguồn & Tài Liệu Tham Khảo #
- ZenML Official Documentation — Hướng dẫn toàn diện và API reference
- ZenML GitHub Repository — Source code và ví dụ
- ZenML Blog: MLOps Stack Comparison — So sánh chi tiết với các lựa chọn khác
- ZenML Examples Repository — Các pipeline ví dụ sẵn sàng production
- MLflow Documentation — Chi tiết tích hợp experiment tracking
- Kubernetes Documentation — Hướng dẫn thiết lập orchestrator
Hosting Và Hạ Tầng Được Đề Xuất #
Trước khi triển khai các công cụ trên vào production, bạn cần hạ tầng vững chắc. Hai lựa chọn dibi8 đang dùng:
- DigitalOcean — Credit miễn phí $200 trong 60 ngày, 14+ khu vực toàn cầu. Lựa chọn mặc định cho dev chạy AI tools open source.
- HTStack — VPS Hong Kong, độ trễ thấp khi truy cập từ Trung Quốc. Cùng IDC đang host dibi8.com.
Liên kết tiếp thị — không tăng chi phí của bạn, giúp dibi8.com hoạt động.
Tuyên Bố Tiếp Thị Liên Kết #
Bài viết này chứa các liên kết tiếp thị liên kết. Nếu bạn đăng ký dịch vụ thông qua các liên kết được đánh dấu trong bài viết này, dibi8.com có thể nhận được hoa hồng mà không phát sinh chi phí thêm cho bạn. Chúng tôi chỉ giới thiệu các công cụ mà chúng tôi đã đánh giá cá nhân và tin rằng mang lại giá trị thực sự. Các ý kiến được trình bày là của chúng tôi.
💬 Bình luận & Thảo luận