Notebook

Kết nối Notebook với ML Flow.

Giới thiệu

Thực hiện kết nối Notebook với ML Flow sau khi user đã tạo thành công ML Flow để train model và log metrics/params.

Notebook trên hệ thống đã có sẵn file demo.ipynb với hướng dẫn:

"Insert the code block from MLflow deployment info below and run before other cells to use it"

Bạn chỉ cần dán đoạn code kết nối vào cell đầu tiên rồi chạy trước tất cả các cell khác.

Các bước thực hiện

Bước 1 — Tạo access key IAM

Access key gồm Access Token ID và Access Token Secret, dùng để Notebook xác thực khi kết nối tới MLflow.

  1. Vào menu Configuration > Access Keys
  2. Tạo access key mới
  3. Lưu lại Access Token ID và Access Token Secret

Bước 2 — Lấy đoạn code kết nối từ MLflow deployment

  1. Vào menu AI/ML > Model Registry > MLflow
  2. Chọn MLflow của bạn (trạng thái Running) để mở trang chi tiết
  3. Tìm mục Python Example trong phần Code in use — đây là đoạn code kết nối sẵn

Lưu ý: URI svc.cluster.local là địa chỉ nội bộ — chỉ hoạt động từ bên trong Notebook trên cùng hệ thống. Không dùng được từ máy tính cá nhân bên ngoài.

Bước 3 — Mở Notebook

Truy cập Notebook của bạn -> mở file demo.ipynb (hoặc tạo notebook mới).

Bước 4 — Cài thư viện

Ở cell đầu tiên, chạy lệnh sau để cài thư viện cần thiết:

!pip install mlflow mlflow-custom-headers-plugin

Lưu ý: Nếu đây là lần đầu tiên bạn chạy lệnh pip install để cài đặt các thư viện này, hãy nhấn nút Restart Kernel trên thanh công cụ của Notebook (hoặc chọn Kernel > Restart Kernel) trước khi chạy các lệnh import ở bên dưới để hệ thống nhận diện thư viện mới.

Bước 5 — Chọn kernel mới để nhận thư viện

Sau khi cài xong, chọn lại kernel để Notebook nhận thư viện vừa cài:

  1. Nhấn vào tên kernel Python 3 (ipykernel) ở góc phải thanh công cụ (nút Switch kernel)
  2. Trong hộp thoại Select Kernel, chọn Python 3 (ipykernel) ở mục Start python Kernel

Bước 6 — Dán code kết nối vào cell đầu tiên

Tìm cell có nội dung placeholder:

# Insert here and run
# import mlflow
# mlflow.set_tracking_uri(http://<URL>.com:80)

Xóa toàn bộ nội dung cell đó, rồi dán đoạn code lấy từ Bước 2, thay <ACCESS_TOKEN_ID> và <ACCESS_TOKEN_SECRET> bằng access key đã tạo ở Bước 1:

import os
import mlflow

AK_ID = "<ACCESS_TOKEN_ID>"
AK_SECRET = "<ACCESS_TOKEN_SECRET>"

os.environ["MLFLOW_CUSTOM_HEADERS"] = f"Authorization:{AK_SECRET},x-access-token-id:{AK_ID}"
mlflow.set_tracking_uri("<URI>")

Chọn cell vừa dán → nhấn Shift + Enter (hoặc nhấn nút ▶ trên toolbar).

Bước 7 — Xác nhận kết nối

Thêm một cell mới, chạy đoạn code sau để kiểm tra kết nối thực tế tới MLflow:

# Xác nhận kết nối thực tế
try:
    experiments = mlflow.search_experiments()
    print("Kết nối thành công! Tracking URI:", mlflow.get_tracking_uri())
    print(f"Truy cập thành công hệ thống, hiện có {len(experiments)} experiments.")
except Exception as e:
    print("Kết nối thất bại! Vui lòng kiểm tra lại URL hoặc thông tin Access Token.")
    print("Chi tiết lỗi:", e)

Output kỳ vọng:

Kết nối thành công! Tracking URI: <URI>
Truy cập thành công hệ thống, hiện có 0 experiments.

Số experiments phụ thuộc vào MLflow của bạn. MLflow mới tạo sẽ hiển thị 0 experiments.

Bước 8 — Chạy các cell còn lại bình thường

Sau khi kết nối thành công, tiếp tục chạy các cell bên dưới như bình thường. Tất cả các lệnh mlflow.log_* sẽ tự động ghi vào MLflow server vừa kết nối.

Lỗi thường gặp

LỗiNguyên nhânCách xử lý
Kết nối thất bại! / ConnectionError / Max retries exceededMLflow deployment chưa chạy hoặc URI saiKiểm tra deployment đang Running, copy lại URI
Thông báo lỗi xác thực (401/403)Access Token ID hoặc Secret saiKiểm tra lại key đã tạo ở Bước 1 và giá trị AK_ID, AK_SECRET
ModuleNotFoundError: mlflowThư viện chưa cài, hoặc đã cài nhưng chưa restart/chọn lại kernelChạy lại Bước 4, rồi Restart Kernel hoặc chọn kernel mới (Bước 5)
Metrics không xuất hiện trên MLflow UICell kết nối chưa được chạy trướcChạy lại cell kết nối rồi chạy lại toàn bộ notebook
Run is already activeNotebook bị restart giữa chừngChạy mlflow.end_run() rồi thử lại

logo
CMC Telecom
Aspire to Inspire the Digital World