18 điểm bởi GN⁺ 2025-09-09 | 3 bình luận | Chia sẻ qua WhatsApp
  • Giới thiệu một thiết lập và benchmark chạy mô hình lượng tử hóa A3B Q40 của Qwen3 30B MoE bằng cách ghép 4 bo mạch Raspberry Pi cỡ nhỏ thành các nút suy luận phân tán
  • Cấu hình mạng gồm 1 ROOT + 3 WORKER (đều là Raspberry Pi 5 8GB) thông qua switch mạng
  • Tốc độ sinh token được đo là 14.33 tok/s ở giai đoạn đánh giá và 13.04 tok/s ở giai đoạn dự đoán
  • Mô hình dựa trên kiến trúc Qwen3 MoE, gồm 48 lớp và 128 expert
  • Cho thấy có thể chạy mô hình ngôn ngữ hiệu năng cao trên phần cứng chi phí thấp, mở ra khả năng cho cụm Raspberry Pinghiên cứu AI tiết kiệm chi phí

Tổng quan dự án

  • Sử dụng Distributed Llama v0.16.0 để chạy mô hình Qwen3 30B A3B Q40 trên 4 Raspberry Pi 5 8GB
    • Được thiết kế để có thể chạy mô hình ngôn ngữ lớn trên thiết bị chi phí thấp
    • Kết nối mạng bằng switch TP-Link LS1008G
  • Mục tiêu chính là vận hành hiệu quả mô hình AI ngay cả khi không có tài nguyên tính toán hiệu năng cao
    • Phân tán công việc trên 4 thiết bị (1 root, 3 worker)
    • Địa chỉ IP: root (10.0.0.2), worker (10.0.0.1, 10.0.0.3, 10.0.0.4)

Thiết lập phần cứng và mạng

  • Cấu hình: cụm gồm 4 Raspberry Pi 5 8GB
    • Mỗi thiết bị được kết nối qua switch TP-Link LS1008G
    • Nút root và 3 nút worker giao tiếp với nhau qua mạng
  • Khởi tạo mạng: kết nối thành công tới tất cả nút worker (10.0.0.1:9999, 10.0.0.3:9999, 10.0.0.4:9999)
    • Mạng hoạt động ở chế độ non-blocking
    • Truyền dữ liệu: khi đánh giá gửi 12084kB, nhận 20085kB
  • Mức sử dụng CPU: xử lý tính toán được tối ưu nhờ hỗ trợ Neon Dotprod FP16

Chi tiết mô hình

  • Mô hình: Qwen3 30B A3B Q40
    • Kiến trúc: Qwen3 MoE (Mixture of Experts)
    • Số lớp: 48
    • Số expert: 128, expert kích hoạt: 8
    • Kích thước: Dim 2048, QDim 4096, KvDim 512, HiddenDim 6144
  • Tokenizer: kích thước từ vựng 151669, có sai lệch nhẹ so với kích thước từ vựng mô hình là 151936
    • Kích thước từ vựng thông thường: 151643
    • Kích thước từ vựng đặc biệt: 26
  • Yêu cầu bộ nhớ: 5513MB
    • Độ dài chuỗi tối đa: 4096
    • NormEpsilon: 0.000001, RopeTheta: 10000000

Hiệu năng benchmark

  • Giai đoạn đánh giá
    • Số batch: 32
    • Số token: 19
    • Tốc độ sinh token: 14.33 tok/s (69.80ms/tok)
  • Giai đoạn dự đoán
    • Số token: 109
    • Tốc độ sinh token: 13.04 tok/s (76.69ms/tok)
  • Log chi tiết dự đoán:
    • Mỗi bước dự đoán mất khoảng 49~70ms, thời gian đồng bộ 14~94ms
    • Dữ liệu gửi 636kB, dữ liệu nhận 1057kB ổn định
    • Ví dụ các token được sinh ra: "Of", "course", "Poland"
    • Số luồng: 4
    • Kiểu float của buffer: Q80
    • Độ dài chuỗi tối đa: 4096

Lưu ý và giới hạn (Notes & Caveats)

  • Có cảnh báo không khớp giữa Tokenizer vocab sizeModel vocab size, vì vậy cần xác minh tính nhất quán của tokenizer
  • A3B Q40 là một dạng lượng tử hóa mạnh tay, nên cần lưu ý đánh đổi giữa độ chính xác và chất lượng phản hồi
  • Cấu hình Pi 5 8GB × 4 có giới hạn về bộ nhớ và năng lực tính toán, nên kết quả có thể biến động lớn tùy theo độ dài prompt, mức độ đồng thời và chất lượng mạng

Ý nghĩa thực tiễn

  • Đây là dự án cho thấy khả năng chạy AI với chi phí thấp
  • Là một trường hợp tái hiện việc chạy phân tán mô hình MoE cỡ 30B trên cụm SBC giá rẻ, có thể trở thành tài liệu tham khảo giúp hạ thấp rào cản cho các thử nghiệm suy luận nhẹ on-premise và phát triển
  • Bao gồm log mạng và đồng bộ theo từng token, cung cấp dữ liệu có giá trị để đo đạc và tinh chỉnh distributed overhead
  • Tổ hợp framework phân tán + mô hình lượng tử hóa có thể cải thiện hiệu năng so với TCO trong môi trường edge/nghiên cứu cá nhân

3 bình luận

 
seohc 2025-09-10

Mini PC dòng N cũng rẻ, nhưng nếu gom 4 máy 16GB lại thì... nghĩ kỹ lại chắc ra mức giá của con 8845 nâng lên 32GB nhỉ haha

 
ndrgrd 2025-09-10

Thật ấn tượng. Dạo này có vẻ ngày càng xuất hiện nhiều thông tin về việc vận hành LLM tải thấp nên thật đáng mừng.

 
developerjhp 2025-09-09

Quá đỉnh..