Hub documentation

ZenML trên Spaces

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

ZenML trên Spaces

ZenML là một framework MLOps mã nguồn mở, có thể mở rộng, để tạo ra các pipeline MLOps có thể di chuyển và sẵn sàng cho môi trường production. Nó được xây dựng dành cho Data Scientists, ML Engineers và MLOps Developers để hợp tác trong quá trình phát triển từ giai đoạn phát triển đến production.

ZenML cung cấp cú pháp đơn giản và linh hoạt, không phụ thuộc vào nền tảng cloud hay công cụ, và có các giao diện/trừu tượng được thiết kế riêng cho các quy trình làm việc ML. Với ZenML, bạn sẽ có tất cả các công cụ yêu thích của mình ở một nơi, nhờ đó có thể tùy chỉnh quy trình làm việc phù hợp với nhu cầu cụ thể của bạn.

ZenML Hugging Face Space cho phép bạn triển khai một phiên bản ZenML chỉ với vài cú nhấp chuột. Chỉ trong vài phút, bạn sẽ có bảng điều khiển ZenML mặc định được triển khai và sẵn sàng để kết nối từ máy cục bộ của mình.

Trong các phần tiếp theo, bạn sẽ học cách triển khai một instance ZenML của riêng mình và sử dụng nó để xem cũng như quản lý các pipeline machine learning của bạn ngay từ Hub. ZenML trên Hugging Face Spaces là một ứng dụng tự chứa, được lưu trữ hoàn toàn trên Hub bằng Docker. Sơ đồ bên dưới minh họa toàn bộ quy trình.

ZenML on Hugging Face Spaces -- default deployment

Truy cập tài liệu ZenML để tìm hiểu thêm về các tính năng của nó và cách bắt đầu chạy các pipeline machine learning của bạn thông qua triển khai Hugging Face Spaces. Bạn có thể xem một số ví dụ mẫu nhỏ về pipeline ZenML để bắt đầu hoặc chọn một trong những dự án phức tạp hơn, đạt chuẩn production tại kho ZenML Projects. ZenML tích hợp sẵn với nhiều công cụ yêu thích của bạn, đương nhiên có cả Hugging Face! Nếu bạn muốn sử dụng thứ gì đó khác, chúng tôi được xây dựng để có thể mở rộng và bạn có thể dễ dàng khiến nó hoạt động với bất kỳ công cụ hoặc workflow tùy chỉnh nào của bạn.

⚡️ Triển khai ZenML trên Spaces

Bạn có thể triển khai ZenML trên Spaces chỉ với vài cú nhấp chuột:

Để thiết lập ứng dụng ZenML của bạn, bạn cần chỉ định ba thành phần chính: Owner (tài khoản cá nhân hoặc tổ chức của bạn), tên Space, và Visibility (nằm ở phần dưới trang một chút). Lưu ý rằng khả năng hiển thị của space cần được đặt thành ‘Public’ nếu bạn muốn kết nối với máy chủ ZenML từ máy cục bộ của mình.

Choose the ZenML Docker template

Bạn có thể chọn một máy ở cấp cao hơn để sử dụng cho máy chủ của mình. Lợi ích của việc chọn một instance CPU trả phí là nó không bị ảnh hưởng bởi các chính sách tự động tắt máy, do đó sẽ tiếp tục chạy trong suốt thời gian bạn để nó chạy. Để tận dụng một CPU bền vững, bạn có thể sẽ muốn tạo và thiết lập một cơ sở dữ liệu MySQL để kết nối (xem bên dưới).

Để cá nhân hóa ngoại hình Space của bạn, chẳng hạn như tiêu đề, emoji và màu sắc, hãy chuyển đến “Files and Versions” và sửa đổi metadata trong tệp README.md của bạn. Thông tin đầy đủ về các tham số cấu hình Spaces có thể tìm thấy trong hướng dẫn tham chiếu tài liệu của Hugging Face.

Sau khi tạo Space của bạn, bạn sẽ thấy trạng thái ‘Building’ cùng với các log hiển thị trên màn hình. Khi trạng thái chuyển sang ‘Running’, Space của bạn đã sẵn sàng để sử dụng. Nếu giao diện đăng nhập ZenML không hiển thị, hãy thử tải lại trang.

Ở góc trên bên phải của space, bạn sẽ thấy một nút có ba chấm. Khi nhấp vào nút này, một tùy chọn menu “Embed this Space” sẽ hiện ra. (Xem tài liệu của Hugging Face để biết thêm chi tiết về tính năng này.) Sao chép “Direct URL” hiển thị trong hộp mà bạn có thể thấy trên màn hình. URL này sẽ có dạng như sau: https://<YOUR_USERNAME>-<SPACE_NAME>.hf.space. Mở URL đó và sử dụng thông tin đăng nhập mặc định của chúng tôi để truy cập dashboard (tên người dùng: ‘default’, mật khẩu: (để trống)).

Kết nối với ZenML Server từ máy cục bộ

Khi bạn đã khởi động và chạy ZenML server, bạn có thể kết nối với nó từ máy cục bộ. Để làm điều này, bạn cần lấy ‘Direct URL’ của Space (xem ở trên).

URL của Space của bạn chỉ có thể truy cập và sử dụng để kết nối từ máy cục bộ của bạn nếu mức độ hiển thị của space được đặt là ‘Public’.

Bạn có thể sử dụng ‘Direct URL’ để kết nối với máy chủ ZenML của bạn từ máy cục bộ bằng lệnh CLI sau (sau khi cài đặt ZenML và sử dụng URL tùy chỉnh của bạn thay cho giá trị thay thế):

zenml connect --url '<YOUR_HF_SPACES_DIRECT_URL>' --username='default' --password=''

Bạn cũng có thể sử dụng Direct URL trong trình duyệt của mình để sử dụng bảng điều khiển ZenML như một ứng dụng toàn màn hình (tức là không có lớp bọc Hugging Face Spaces xung quanh).

Bảng điều khiển ZenML hiện sẽ không hoạt động khi được xem từ bên trong trang web Hugging Face (tức là được nhúng trong trang web chính https://huggingface.co/...). Điều này là do hạn chế trong cách xử lý cookie giữa ZenML và Hugging Face. Bạn phải xem bảng điều khiển từ ‘Direct URL’ (xem ở trên).

Các Tùy Chọn Cấu Hình Bổ Sung

Mặc định, ứng dụng ZenML sẽ được cấu hình để sử dụng cơ sở dữ liệu SQLite không lưu trữ. Nếu bạn muốn sử dụng cơ sở dữ liệu lưu trữ, bạn có thể cấu hình điều này bằng cách sửa đổi Dockerfile trong thư mục gốc của Space. Để biết chi tiết đầy đủ về các tham số khác nhau mà bạn có thể thay đổi, hãy xem tài liệu tham khảo của chúng tôi về việc cấu hình ZenML khi triển khai với Docker.

Nếu bạn chỉ sử dụng space để kiểm tra và thử nghiệm, bạn không cần phải thực hiện bất kỳ thay đổi nào đối với cấu hình. Mọi thứ sẽ hoạt động ngay lập tức.

Bạn cũng có thể sử dụng một backend secrets bên ngoài cùng với Hugging Face Spaces của mình như đã mô tả trong tài liệu của chúng tôi. Bạn nên chắc chắn sử dụng tính năng ‘Repository secrets’ có sẵn của Hugging Face để cấu hình bất kỳ secrets nào bạn cần sử dụng trong cấu hình Dockerfile của mình. Xem tài liệu để biết thêm chi tiết về cách thiết lập này.

Nếu bạn muốn sử dụng một backend secrets trên cloud cùng với ZenML để quản lý secrets, bạn phải thực hiện các biện pháp bảo mật tối thiểu sau trên ZenML Server của bạn trong Dashboard:

  • thay đổi mật khẩu của tài khoản default mà bạn nhận được khi bắt đầu. Bạn có thể thực hiện điều này từ Dashboard hoặc qua CLI.
  • tạo một tài khoản người dùng mới với mật khẩu và gán cho tài khoản đó vai trò admin. Thao tác này cũng có thể thực hiện từ Dashboard (bằng cách “mời” một người dùng mới) hoặc qua CLI.
  • kết nối lại với máy chủ bằng tài khoản người dùng và mật khẩu mới như đã mô tả ở trên, và sử dụng tài khoản người dùng mới này làm tài khoản làm việc của bạn.

Điều này là do người dùng mặc định được tạo bởi quy trình triển khai Hugging Face Spaces không được gán mật khẩu và vì Space có thể truy cập công khai (do Space là công khai) nên điều này có nghĩa là bất kỳ ai cũng có thể truy cập các bí mật của bạn nếu không có bước bổ sung này. Để đổi mật khẩu, hãy điều hướng đến trang Cài đặt bằng cách nhấp vào nút ở góc trên bên phải của Bảng điều khiển, sau đó nhấp vào ‘Cập nhật Mật khẩu’.

Nâng cấp ZenML Server trên HF Spaces

Không gian mặc định sẽ tự động sử dụng phiên bản mới nhất của ZenML. Nếu bạn muốn cập nhật phiên bản, bạn chỉ cần chọn tùy chọn ‘Factory reboot’ trong tab ‘Settings’ của không gian. Lưu ý rằng thao tác này sẽ xóa mọi dữ liệu chứa trong không gian, do đó nếu bạn không đang sử dụng cơ sở dữ liệu MySQL bền vững (như đã mô tả ở trên), bạn sẽ mất mọi dữ liệu chứa trong triển khai ZenML của mình trên không gian. Bạn cũng có thể cấu hình không gian để sử dụng một phiên bản trước đó bằng cách cập nhật câu lệnh import FROM trong Dockerfile ở phần đầu tiên.

Các bước tiếp theo

Bước tiếp theo, hãy xem Hướng dẫn khởi động MLOps với ZenML, một loạt các trang thực hành ngắn gọn về cách bắt đầu nhanh chóng. Hoặc, hãy xem ví dụ quickstart của chúng tôi, một ví dụ hoàn chỉnh từ đầu đến cuối về nhiều tính năng của ZenML.

🤗 Phản hồi và hỗ trợ

Nếu bạn gặp sự cố với máy chủ ZenML trên Hugging Face Spaces, bạn có thể xem nhật ký bằng cách nhấp vào nút “Open Logs” ở phía trên cùng của space. Thao tác này sẽ cung cấp thêm ngữ cảnh về những gì đang xảy ra với máy chủ của bạn.

Nếu bạn có đề xuất hoặc cần hỗ trợ cụ thể cho bất kỳ vấn đề nào khác không hoạt động, vui lòng tham gia cộng đồng Slack của ZenML và chúng tôi sẽ rất vui được giúp đỡ bạn!

Update on GitHub