1 điểm bởi GN⁺ 2025-03-01 | 1 bình luận | Chia sẻ qua WhatsApp

Hệ thống tệp Fire-Flyer

Hệ thống tệp Fire-Flyer (3FS) là một hệ thống tệp phân tán hiệu năng cao được thiết kế để giải quyết các bài toán trong tác vụ huấn luyện và suy luận AI. Hệ thống tận dụng SSD hiện đại và mạng RDMA để cung cấp một lớp lưu trữ dùng chung, giúp đơn giản hóa việc phát triển ứng dụng phân tán.

Hiệu năng và khả năng sử dụng

  • Kiến trúc tách rời: Kết hợp băng thông mạng của hàng nghìn SSD và hàng trăm nút lưu trữ, cho phép ứng dụng truy cập tài nguyên lưu trữ mà không bị ràng buộc bởi tính cục bộ.
  • Tính nhất quán mạnh: Triển khai Chain Replication with Apportioned Queries (CRAQ) để cung cấp tính nhất quán mạnh, giúp mã ứng dụng đơn giản và dễ hiểu hơn.
  • Giao diện tệp: Phát triển một dịch vụ metadata không trạng thái dựa trên kho khóa-giá trị giao dịch, chẳng hạn như FoundationDB. Giao diện tệp là thứ đã được biết đến rộng rãi và dùng ở mọi nơi. Không cần học một API lưu trữ mới.

Nhiều loại khối lượng công việc

  • Chuẩn bị dữ liệu: Tổ chức đầu ra của pipeline phân tích dữ liệu theo cấu trúc thư mục phân cấp và quản lý hiệu quả lượng lớn đầu ra trung gian.
  • DataLoader: Cho phép truy cập ngẫu nhiên vào các mẫu huấn luyện trên toàn bộ các nút tính toán, nên không cần nạp trước hay xáo trộn tập dữ liệu.
  • Checkpointing: Hỗ trợ checkpoint song song tốc độ cao cho huấn luyện quy mô lớn.
  • KVCache for Inference: Cung cấp một giải pháp thay thế hiệu quả về chi phí cho bộ nhớ đệm dựa trên DRAM, đồng thời đem lại thông lượng cao và dung lượng khá lớn.

Hiệu năng

1. Thông lượng đỉnh

  • Trong bài kiểm tra áp lực đọc quy mô lớn trên cụm 3FS, hệ thống đạt thông lượng đọc tổng hợp cuối cùng khoảng 6.6 TiB/s.

2. GraySort

  • Hệ thống được đánh giá bằng benchmark GraySort, dùng để đo hiệu năng sắp xếp trên các tập dữ liệu lớn. Việc sắp xếp 110.5 TiB dữ liệu thành 8,192 phân vùng mất 30 phút 14 giây, đạt thông lượng trung bình 3.66 TiB/phút.

3. KVCache

  • Hệ thống sử dụng kỹ thuật KVCache để tối ưu hóa quy trình suy luận LLM. Bằng cách cache các vector key và value của các token trước đó trong các lớp decoder, hệ thống tránh được tính toán lặp lại. Thông lượng đỉnh đạt tối đa 40 GiB/s.

Tài liệu

  • Ghi chú thiết kế
  • Hướng dẫn cấu hình
  • Tham chiếu API USRBIO
  • Đặc tả P

Xem mã nguồn

  • Có thể sao chép kho 3FS từ GitHub để xem mã nguồn.

Báo cáo vấn đề

1 bình luận

 
GN⁺ 2025-03-01
Ý kiến trên Hacker News
  • Thiết kế này ban đầu được công bố tại đây: liên kết

    • Hệ thống tệp này đã được phát triển và sử dụng trong vài năm
    • Nó tập trung nhiều hơn vào huấn luyện mô hình so với các hệ thống tệp truyền thống
    • Khi có nhiều lượt đọc ngẫu nhiên, bộ nhớ đệm đọc và cơ chế tìm nạp trước không còn hữu ích
    • Để cải thiện hiệu năng, họ đã thiết kế hệ thống tệp mà không có các tính năng này
  • 3FS được dùng trong kịch bản các nút tính toán đọc hàng loạt dữ liệu mẫu trong quá trình huấn luyện AI

    • Tăng tốc huấn luyện mô hình thông qua tương tác tốc độ cao giữa tính toán và lưu trữ
    • Đây là khối lượng công việc đọc ngẫu nhiên quy mô lớn, và dữ liệu đã đọc sẽ không được dùng lại trong thời gian ngắn
    • Vì vậy không thể dùng "bộ nhớ đệm đọc", và đọc trước cũng vô ích
    • 3FS có cách triển khai khác biệt đáng kể so với các hệ thống tệp khác
  • 3FS sử dụng giao diện AIO dựa trên Linux và io_uring để hoàn tất việc đọc mẫu

    • Bộ nhớ đệm tệp hoàn toàn không hiệu quả và còn tiêu tốn bộ nhớ hệ thống, ảnh hưởng đến các tác vụ tiếp theo
    • Họ tắt bộ nhớ đệm tệp và chỉ đọc dữ liệu bằng chế độ Direct I/O
    • Con trỏ bộ đệm, offset và độ dài phải được căn chỉnh
    • Nếu người dùng tự căn chỉnh thì sẽ phát sinh thêm sao chép bộ nhớ, nên việc căn chỉnh được thực hiện bên trong hệ thống tệp
    • Điều này tối ưu hiệu năng và mang lại sự thuận tiện cho người dùng
  • Một trong những khác biệt giữa DeepSeek và OpenAI/Anthropic là sự khác nhau giữa người làm thực tế và giới học thuật

    • OpenAI có nhân tài đẳng cấp thế giới, nhưng cũng có những người thiếu va chạm kỹ thuật thực tế
  • Hệ thống tệp phân tán được xem là một trong những loại phần mềm khó nhằn nhất

    • Người ta thường khuyên đừng tự viết hệ thống tệp từ đầu, kể cả trên FUSE
    • Trong khi các công ty ở Thung lũng Silicon còn đang họp lần thứ 100, một đội dưới 60 người đã phát triển hệ thống tệp song song hiệu năng cao
  • Bài báo nghiên cứu liên quan: liên kết

    • "Fire-Flyer AI-HPC: Đồng thiết kế phần mềm-phần cứng hiệu quả về chi phí cho deep learning"
    • Sự phát triển nhanh chóng của deep learning và mô hình ngôn ngữ lớn đã khiến nhu cầu về năng lực tính toán và băng thông tăng vọt
    • Giới thiệu kiến trúc Fire-Flyer AI-HPC để giảm chi phí và mức tiêu thụ năng lượng
    • Thiết kế HFReduce để tăng tốc giao tiếp allreduce
    • Triển khai nhiều biện pháp nhằm ngăn tắc nghẽn trong Computation-Storage Integrated Network
  • Tôi từng thắc mắc làm sao họ đạt được hiệu năng như vậy với thiết kế dựa trên FUSE

    • FUSE được dùng để quản lý metadata, còn để đạt hiệu năng cao thì phải liên kết thư viện client C++
    • Đây không phải mục đích sử dụng phổ thông, và ứng dụng phải được chỉnh sửa
    • Dù vậy đây vẫn là một cách tiếp cận thông minh, và tôi tự hỏi liệu chiến lược LD_PRELOAD có thể được khái quát hóa hay không
  • OpenAI và các công ty khác cũng tham gia rất sâu vào hệ thống, nhưng hiếm nơi nào cho thấy mức độ tỉ mỉ như thế này

    • Công việc rất ấn tượng, hy vọng DeepSeek sẽ còn làm được nhiều điều hay hơn nữa trong tương lai
  • Họ rõ ràng làm việc rất hiệu quả

    • Ngày mai chúng ta sẽ được thấy gì đây? Một thứ như DeepSeek OS chăng?
  • Hiện vẫn chưa rõ các hệ thống phổ biến hiện nay còn thiếu ở đâu và như thế nào

    • Tôi tò mò mô hình truy cập dữ liệu khác với các trường hợp sử dụng truyền thống ra sao
  • Tôi tự hỏi liệu việc port sang một orchestrator như K8s có mang lại lợi ích hay không

    • Có thể là quá mức cho huấn luyện, nhưng KVCache có thể hữu ích cho suy luận với nhiều bản sao
  • Tôi tự hỏi có ai có thể thuyết phục tôi rằng đây không phải hội chứng NIH

    • Tôi muốn biết vì sao nên dùng thứ này thay vì SeaweedFS, Ceph hay MinIO