OpenArchLabOpen Architecture — From Models to Systems

L4 · Distributed execution

Chia mô hình hoặc công việc trên nhiều thiết bị

Các chiến lược chia nhỏ mô hình hoặc lưu lượng request lên nhiều GPU/máy chủ khi một thiết bị đơn lẻ không đủ bộ nhớ hoặc tốc độ.

LESSON ID parallel GROUP Kiến trúc Inference
Mục lục bài học

1Định nghĩa

Parallelism là cách phân bổ mô hình và khối lượng tính toán lên nhiều GPU khi một thẻ đơn lẻ không chứa vừa ngân sách HBM hoặc không đáp ứng kịp độ trễ và thông lượng mục tiêu.

Trong suy luận có 4 cách chia chính: Data Parallelism (nhân bản nguyên mô hình ra nhiều replica để chia tải ở tầng router), Tensor Parallelism (cắt ngang ma trận trong từng lớp để nhiều GPU cùng tính một bước và gom kết quả tức thì qua mạng nội bộ), Pipeline Parallelism (chia các cụm lớp nối tiếp nhau theo tầng), và Expert Parallelism (đặt các nhánh chuyên gia của mô hình MoE trên các thiết bị khác nhau).

Ví dụ đời thường: Parallelism giống như cách tổ chức khi một công việc quá sức một người thợ: bạn có thể mở thêm nhiều quầy giống hệt nhau để chia bớt khách (Data Parallelism), cho 4 người thợ cùng khiêng và lắp chung một tấm kính khổng lồ (Tensor Parallelism), chia thành dây chuyền người lắp khung – người sơn – người đóng gói (Pipeline Parallelism), hoặc chia theo chuyên môn người làm điện – người làm mộc (Expert Parallelism).

2Luồng

Sơ đồ luồng (4 bước)
  1. Chọn cách partition

    Theo model, memory và topology.

  2. Mỗi worker tính phần mình

    Nhận tensor hoặc tokens tương ứng.

  3. Trao đổi kết quả

    Dùng collectives hoặc gửi giữa stages.

  4. Hoàn tất bước model

    Ghép kết quả cho logits hoặc gradient.

Mã Mermaid
flowchart TD
  step1["Chọn cách partition"]
  step2["Mỗi worker tính phần mình"]
  step3["Trao đổi kết quả"]
  step4["Hoàn tất bước model"]
  step1 --> step2
  step2 --> step3
  step3 --> step4

3Giải pháp

Dùng tensor parallel khi cần chia matrices và pipeline khi cần chia layers. Với nhiều request và model vừa một thiết bị, nhiều replicas độc lập có thể là cách đơn giản hơn.

Số thiết bị lớn hơn không bảo đảm latency thấp hơn: communication, stage bubbles và expert lệch tải có thể lấn lợi ích compute.

4Profiling

  • Scaling có giữ điều kiện

    So cùng model, context, precision và mục tiêu latency trên số thiết bị khác nhau.

  • Tỷ lệ thời gian trao đổi

    Đo collectives, chờ stages và lệch tải giữa workers.

Mẹo đo lường: ghim số liệu trên workload thật, ghi cả p50/p95/p99 thay vì chỉ trung bình, và luôn ghi lại điều kiện chạy (batch, cache, đồng thời, phần cứng) trước và sau khi tối ưu. Số đo thiếu điều kiện chạy thì không so sánh được.

5Ví dụ

Checkpoint quá lớn

Chia weights trên nhiều thiết bị giúp chạy được model, nhưng phải tính chi phí trao đổi mỗi step.

Chatbot có nhiều người dùng

Nếu model đã vừa một máy, tăng replicas có thể tăng tổng capacity mà không chia một request.

6Thuật ngữ

Tensor parallelism
Các thiết bị tính những phần khác nhau của cùng một phép toán/lớp.
Pipeline parallelism
Các nhóm lớp ở các thiết bị khác nhau; dữ liệu đi qua stages.
Expert parallelism
Các experts nằm ở các thiết bị khác nhau, tokens được gửi tới expert được chọn.
Glossary (8)
Model weights
Các tham số số học được học và lưu trong checkpoint.
Checkpoint
Bản lưu trạng thái model; phạm vi states phụ thuộc mục đích serving hay resume.
Logits
Điểm số chưa chuẩn hóa cho các token ứng viên trước khi chọn token.
Runtime
Phần mềm quản lý việc thực thi, buffers và phụ thuộc giữa phép toán.
Latency
Thời gian chờ để nhận một kết quả hoặc một bước kết quả.
Throughput
Lượng công việc được xử lý trong một đơn vị thời gian.
Worker
Tiến trình hoặc máy thực hiện một phần công việc của hệ thống.
Context
Chuỗi token trước vị trí hiện tại mà model được phép sử dụng.

7Bài liên quan

8Nguồn