NVIDIA Attribution: tìm nguyên nhân gốc lỗi job AI phân tán
NVIDIA đã mã nguồn mở Attribution, công cụ tương quan log, metrics, telemetry và trạng thái scheduler theo từng workload để phân biệt nguyên nhân gốc với các lỗi phát sinh sau đó như NCCL error.
Một job huấn luyện đa GPU dừng lại, log trên nhiều rank đầy lỗi NCCL, còn scheduler ghi nhận job thất bại. Nhưng nơi workload báo lỗi chưa chắc là nơi sự cố bắt đầu.
NVIDIA Attribution là công cụ mã nguồn mở nhằm giải quyết khoảng cách đó. Công cụ gom log, metrics, telemetry và trạng thái scheduler theo từng lần chạy workload, rồi dùng các quy tắc xác định để trả về một chẩn đoán có cấu trúc.
Với đội vận hành GPU cluster, mục tiêu là chuyển từ câu hỏi “job dừng ở đâu?” sang “sự cố bắt đầu từ đâu?”.
Chẩn đoán theo workload, không chỉ theo từng node
Trong workload AI phân tán, một lỗi GPU hoặc fabric có thể kéo theo chuỗi triệu chứng trên nhiều node:
Một GPU hoặc liên kết fabric phát sinh sự cố.
Một rank bị ảnh hưởng trước.
Các rank khác ghi nhận lỗi NCCL do collective bị gián đoạn.
Scheduler chuyển trạng thái job.
Log ứng dụng, syslog, GPU driver và Fabric Manager cùng xuất hiện dấu hiệu liên quan.
NVIDIA Attribution áp dụng cách tiếp cận workload-centric: phân tích lỗi trong ngữ cảnh của một lần chạy job, thay vì xem từng event trên node là độc lập.
Đầu ra có cấu trúc gồm:
Trạng thái kết thúc của workload (terminalstate);
Nguyên nhân được quy kết;
Các node bị ảnh hưởng;
Triệu chứng xuất hiện sau đó;
Bằng chứng hỗ trợ chẩn đoán;
Thông tin về độ phủ và lỗi của quá trình thu thập dữ liệu.
Điểm đáng chú ý là lỗi NCCL có thể được giữ lại như bằng chứng về tác động lan truyền, thay vì bị coi ngay là nguyên nhân gốc.
Hai thành phần: Service và Blueprint
NVIDIA Attribution gồm hai thành phần triển khai được, cùng sử dụng attribution engine cốt lõi.
| Thành phần | Vai trò |
|---|---|
| Attribution Service | Cung cấp attribution engine qua REST API |
| Attribution Blueprint | Orchestrator Python tham chiếu, kết nối scheduler và nguồn telemetry với Service, sau đó ghi kết quả |
Service phân tích một lần thử chạy workload tại một thời điểm. Blueprint thu thập ngữ cảnh và bằng chứng của workload, gửi dữ liệu tới Service, rồi nhận kết quả chẩn đoán có cấu trúc.
Blueprint hỗ trợ các execution-context connector cho:
Slurm;
Kueue;
Đầu vào tĩnh.
Các connector log và metrics được nêu gồm:
Loki;
File cục bộ;
Kubernetes pod logs;
PromQL metrics.
Kiến trúc này không thay thế scheduler hay nền tảng quan sát hiện có. Vai trò của Attribution là ghép các nguồn bằng chứng đó vào một kết luận tập trung theo từng job.
Bốn bước từ job lỗi đến kết luận
Theo NVIDIA, quy trình attribution có bốn giai đoạn.
1. Khoanh phạm vi workload
Blueprint xác định lần chạy cần phân tích từ định danh scheduler, hoặc từ một cửa sổ thực thi cùng danh sách node được cấp phát.
Bước này giúp giới hạn bằng chứng vào đúng workload, thay vì trộn lẫn log của các job khác cùng chạy trên cluster.
2. Thu thập quan sát
Các connector tạo bản ghi Observation theo phạm vi workload. Nguồn dữ liệu có thể gồm:
Log ứng dụng;
Syslog;
Thông điệp từ GPU driver và Fabric Manager;
Lịch sử scheduler;
Metrics node và network.
Chất lượng chẩn đoán phụ thuộc vào tính đầy đủ của telemetry đầu vào. NVIDIA cũng lưu ý rằng khi nhiều nguyên nhân cùng phù hợp với bằng chứng, trường subdomain có thể ở trạng thái mơ hồ thay vì đưa ra kết luận dứt khoát.
3. Trích xuất và tương quan event
Service nhận diện những event đáng chú ý như GPU XID, lỗi NCCL, scheduler transition và điều kiện metric.
Các quy tắc xác định sau đó đánh giá thời điểm cũng như tương tác giữa các event. Mục tiêu là tách các triệu chứng downstream khỏi event có khả năng khởi phát sự cố.
Việc dùng rule xác định cũng giúp kết quả có thể tái lập và tùy chỉnh, theo mô tả của NVIDIA.
4. Trả về diagnosis có cấu trúc
Blueprint kết hợp verdict với:
terminalstate;
Domain được quy kết (subdomain);
Các triệu chứng;
Node bị ảnh hưởng;
Thông tin về độ phủ và lỗi của collector.
Kết quả này có thể được tích hợp với các hệ thống health và recovery hiện có. Kiến trúc Blueprint của NVIDIA cũng mô tả một dashboard chỉ đọc để xem kết quả.
Ví dụ: khi lỗi NCCL chỉ là hậu quả của lỗi NVLink
Bài viết của NVIDIA đưa ra một workload training nhiều rank với ba lỗi NCCL khác nhau trong application log.
Ở node-02, system log lại ghi nhận XID 149. Các error word trong ví dụ được giải mã thành lỗi signal integrity của NVLink.
Luồng xử lý được mô tả như sau:
Giai đoạn extraction biến log thô thành event có kiểu và thông tin nguồn.
Rule HandleXidBurstEvents đọc bằng chứng XID burst và phát event quy kết lỗi signal integrity trên node-02.
Các event NCCL vẫn được giữ lại.
Trong giai đoạn refinement cuối, rule Xid149AndNvlinkFiltering giữ triệu chứng signal integrity và hạ mức ưu tiên các triệu chứng ở node khác.
Rule Gb200PriorityRootCause tiếp tục thu hẹp tập triệu chứng ở cấp job.
Outcome mapping đưa ra quy kết lỗi phần cứng, đồng thời nêu node-02.
Kết quả không phải là bỏ qua NCCL error. Các lỗi NCCL vẫn là bằng chứng hữu ích cho thấy sự cố đã tác động đến workload như thế nào. Tuy nhiên, chúng được đặt ở vai trò triệu chứng downstream, còn lỗi NVLink tại node-02 được xác định là nguyên nhân gốc trong ví dụ này.
NVIDIA nói gì về quy mô sử dụng?
NVIDIA cho biết Attribution đã được dùng trong hạ tầng AI của hãng trong nhiều năm, phân tích hàng triệu workload mỗi tuần trên hàng trăm nghìn GPU.
Hãng cũng mô tả một cluster lớn dùng RDMA, nơi công cụ tương quan port error, connection reset và scheduler event để tìm các mẫu lỗi quanh host port và switch port. Theo NVIDIA, điều này giúp đội ngũ hướng việc sửa chữa fabric và tinh chỉnh congestion chính xác hơn.
Các số liệu và ví dụ triển khai này là tuyên bố từ NVIDIA trong bài công bố.
Điểm cần đánh giá khi thử nghiệm
NVIDIA hướng dẫn người dùng truy cập mã nguồn, chạy sample workflow qua quickstart, xem diagnosis trong dashboard cục bộ và tham khảo cấu hình Blueprint để kết nối scheduler cùng telemetry backend.
Với đội vận hành cluster, các điểm cần đối chiếu khi đánh giá công cụ gồm:
Connector có phù hợp với scheduler và nguồn telemetry đang dùng hay không;
Log ứng dụng, syslog, GPU/Fabric Manager log và metrics có đủ cho cửa sổ thời gian của job hay không;
Diagnosis có phù hợp với các postmortem đã biết hay không;
Rule attribution có phản ánh đúng phần cứng và mô hình vận hành của cluster hay không;
Các kết luận mơ hồ hoặc thiếu bằng chứng được xử lý thế nào trong quy trình vận hành.
NVIDIA Attribution không thay thế monitoring, cũng không thay thế kỹ năng debug GPU, NCCL hay fabric. Giá trị của nó nằm ở việc biến các tín hiệu rời rạc thành một hồ sơ điều tra theo workload: job nào thất bại, node nào liên quan, bằng chứng nào dẫn tới kết luận và đâu là các triệu chứng phát sinh sau đó.