NVIDIA Merlin: Tổng quan về toolkit cho hệ thống gợi ý quy mô lớn

Hệ thống gợi ý (recommendation system) là thành phần quan trọng trong nhiều ứng dụng hiện đại như thương mại điện tử, mạng xã hội, dịch vụ phát nhạc và video. Khi quy mô dữ liệu và số lượng người dùng tăng lên hàng triệu hoặc hàng tỷ, việc huấn luyện và triển khai các mô hình gợi ý đòi hỏi hạ tầng xử lý mạnh mẽ, đặc biệt là khả năng tận dụng GPU để tăng tốc toàn bộ pipeline.

Để đáp ứng với nhu cầu đó, NVIDIA đã tạo ra một bộ công cụ mạnh mẽ, dành riêng cho việc xây dựng các hệ thống gợi ý hiệu suất cao trên quy mô lớn đó là NVIDIA Merlin.

Và trong bài viết này chúng ta sẽ tìm hiểu về framework này và mình sẽ hướng dẫn các bạn truy cập vào một notebook mẫu, từ đó các bạn có thể nắm được kiến thức và cách thức xây dựng được một hệ thống gợi ý.

Giải pháp hạ tầng Deep Learning, Trí tuệ Nhân tạo - AI

Vậy NVIDIA Merlin là gì?

NVIDIA Merlin là một framework mã nguồn mở do NVIDIA phát triển, được thiết kế chuyên biệt cho việc xây dựng các hệ thống gợi ý (recommendation systems) ở quy mô lớn. Merlin cung cấp một tập hợp các thư viện giúp tối ưu hóa cả quá trình từ tiền xử lý dữ liệu, huấn luyện mô hình cho đến triển khai trong môi trường thực tế.

  • Merlin NVTabular: Thư viện tiền xử lý và kỹ thuật tính năng (feature engineering) được tăng tốc bằng GPU, giúp xử lý hiệu quả các tập dữ liệu có kích thước terabyte.
  • Merlin Models: Cung cấp các mô hình tiêu chuẩn và triển khai chất lượng cao cho các tác vụ truy xuất (retrieval) và xếp hạng (ranking).
  • Merlin HugeCTR: Framework mạng nơ-ron sâu (Deep Neural Network) chuyên dụng cho các hệ thống gợi ý trên GPU, hỗ trợ huấn luyện và suy luận song song mô hình phân tán (distributed model-parallel).
  • Merlin Systems: Hỗ trợ triển khai toàn bộ pipeline gợi ý (từ truy xuất đến xếp hạng) vào môi trường sản xuất, thường kết hợp với NVIDIA Triton Inference Server.

Ưu điểm của NVIDIA Merlin?

  • Tối ưu hiệu năng trên GPU: toàn bộ pipeline – từ ETL đến inference – đều được tăng tốc bằng GPU
  • Khả năng mở rộng: hỗ trợ huấn luyện phân tán với dữ liệu và mô hình có quy mô vượt xa dung lượng một GPU.
  • Khả năng tích hợp: làm việc linh hoạt với TensorFlow, PyTorch, và các công cụ dữ liệu khác.
  • Tính thực tiễn: cung cấp notebook minh họa và pipeline mẫu, giúp rút ngắn khoảng cách giữa nghiên cứu và triển khai.

Với sô ưu điểm kể trên Merlin đã được ứng dụng trong nhiều lĩnh vực khác nhau như:

  • Thương mại điện tử: gợi ý sản phẩm và cá nhân hóa trải nghiệm mua sắm.
  • Quảng cáo trực tuyến: tối ưu hóa quá trình matching giữa quảng cáo và người dùng.
  • Mạng xã hội: xếp hạng nội dung trong newsfeed và gợi ý bạn bè.

Như các bạn thấy đấy, Merlin rất tiện lợi trong việc đưa ra các gợi ý đúng không nào, vậy nên sau đây tôi sẽ hướng dẫn các bạn truy cập vào notebook mẫu từ NVIDIA để các bạn có thể tự tìm hiểu về quá trình huấn luyện và xây dựng một mô hình gợi ý sản phẩm (recommender system) bằng NVIDIA Merlin nhá.

Hướng dẫn tải và truy cập vào notebook NVIDIA Merlin.

Trong hướng dẫn này, mình sẽ truy cập trực tiếp vào container của NVIDIA Merlin từ đó có thể sử dụng các thư viện và công cụ có trong container để các bạn không phải tải thêm các thư viện rườm rà ở trên máy của bạn.

Cũng như các bài hướng dẫn trước đây, các bạn hãy truy cập vào trang NGC của NVIDIA để lấy API Key của bạn. Nếu đây là lần đầu các bạn làm theo thì có thể xem qua bài viết NVIDIA NIM: Biến ý tưởng AI thành hiện thực trong tầm tay để biết cách lấy API Key nhá.

Sau khi các bạn có API Key rồi thì chúng ta tiếp tục đăng nhập vào máy ảo / server linux của bạn.

$ docker login nvcr.io
Username: $oauthtoken
Password: <API_KEY của bạn>

Sau khi đăng nhập vào, các bạn sử dụng câu lệnh:

token builtin class-name">export token assign-left variable">NGC_API_KEY=<API_KEY của bạn>

Câu lệnh trên sẽ gán biến NGC_API_KEY bằng API Key của bạn để kết nối và sử dụng dịch vụ của NVIDIA NGC trong các bước tiếp theo.

Sử dụng lệnh ” docker pull ” và tải container của NVIDIA Merlin.

docker pull nvcr.io/nvidia/merlin/merlin-tensorflow:nightly

Tải xong và gõ:

docker images

Các bạn sẽ thấy container của các bạn đã tải. Nếu kiểm tra thấy rồi thì chúng ta có thể di chuyển đến bước tiếp theo là chạy và truy cập vào trong container của NVIDIA Merlin.

docker run --gpus all -dit \
  --name merlin \
  -p 8888:8888 \
  nvcr.io/nvidia/merlin/merlin-tensorflow:nightly

Với câu lệnh này bạn sẽ chạy và truy cập vào trong container của Merlin đồng thời đặt tên cho container để tiện cho việc truy cập lại sau này. Nếu sau khi thoát container các bạn muốn truy cập lại có thể sử dụng lệnh:

docker exec -it merlin /bin/bash

Khi truy cập vào được container các bạn sẽ thấy  dòng command line tương tự như dưới đây:

root@b5623f0da6f5:

Tiếp theo chúng ta sẽ di chuyển tới thư mục chứa notebook:

cd /Merlin/examples

Sau khi di chuyển, các bạn gõ ” ls ” sẽ thấy các thư mục chứa các file notebook hướng dẫn.

Các bạn sẽ truy cập vào thư mục hướng dẫn xây dựng hệ thống gợi ý. Lần này các bạn gõ ” ls ” sẽ thấy các file notebook.

Các bạn tiếp tục gõ lệnh:

jupyter-lab --allow-root --ip=0.0.0.0 --port=8888 --no-browser

Lệnh ở trên sẽ khởi chạy jupyter notebook và trả về 2 đường dẫn.

(ấn vào ảnh để xem chi tiết)

Copy một trong hai đường dẫn đó và dán ra trang web là bạn đã có thể bắt đầu việc học là xây dựng mô hình gợi ý sản phẩm.

Chúc các bạn thành công.

Mọi thắc mắc có thể liên hệ mình thông qua email: anldb@nhattienchung.vn

____
Bài viết liên quan

Góp ý / Liên hệ tác giả