Công cụ lập trình

PyTorch 2.15 mang đến hỗ trợ FP8 và giải mã LLM nhanh hơn trên Apple Silicon

PyTorch 2.15 giới thiệu hỗ trợ FP8, các kernel Metal gốc cho mô hình MoE và tiết kiệm bộ nhớ đáng kể cho việc tạo video trên macOS 15.

Một chiếc laptop hiển thị đồ họa mạng nơ-ron và các khối nhị phân đại diện cho xử lý FP8.
Minh họa được tạo riêng cho bài viết này

Được dịch tự động từ bản gốc tiếng Anh.

Đội ngũ PyTorch tại Hugging Face đã phát hành phiên bản 2.15, đánh dấu một nâng cấp quan trọng dành cho các kỹ sư máy học làm việc trên nền tảng Apple Silicon. Bản cập nhật này giới thiệu hỗ trợ FP8 gốc, tăng tốc độ giải mã của các mô hình mixture-of-experts (hỗn hợp chuyên gia) lên tới 6,5 lần và giảm mạnh mức sử dụng bộ nhớ cho các tác vụ tạo video. Phiên bản nhắm mục tiêu đến macOS 15 và Python 3.11 trở lên, với tham vọng biến Mac thành một môi trường hạng nhất để huấn luyện và chạy các mô hình AI phức tạp.

Chuyện gì đã xảy ra

Trong phần lớn đầu năm 2026, các nhà phát triển sử dụng backend MPS trên máy Mac phải đối mặt với những điểm nghẽn hiệu suất, các phép toán không được hỗ trợ và sự tăng trưởng bộ nhớ khó lường. Đội ngũ PyTorch tại Hugging Face đã giải quyết những vấn đề này bằng cách thay thế đường dẫn thực thi MPSGraph cũ bằng các kernel Metal chuyên dụng cho các phép toán quan trọng. Sự chuyển đổi này cho phép kiểm soát trực tiếp hơn các tài nguyên GPU và loại bỏ nhiều nút thắt cổ chai từng cản trở quá trình phát triển mô hình cục bộ.

Tính năng nổi bật nhất là hỗ trợ tensor float8_e4m3fn, cho phép các nhà phát triển lưu trữ giá trị trong không gian chỉ bằng một nửa so với BF16, đồng thời thực hiện phép nhân ma trận có tỷ lệ (scaled matrix multiplication) trực tiếp trên GPU. Tính năng này đưa khả năng của máy Mac ngang hàng với những gì đã có sẵn trên các backend CUDA và CPU. Ngoài ra, bản cập nhật còn bao gồm các tối ưu hóa sâu rộng cho đại số tuyến tính, xử lý âm thanh và giải mã video, đảm bảo rằng phạm vi mô hình rộng hơn có thể chạy hiệu quả mà không cần quay lại các đường dẫn thực thi chậm hơn.

Các cải thiện về hiệu suất đặc biệt ấn tượng đối với các mô hình ngôn ngữ lớn. Kiến trúc mixture-of-experts giờ đây hưởng lợi từ cài đặt grouped matmul gốc giữ dữ liệu trên GPU, giúp giảm bớt chi phí đồng bộ hóa. Các mô hình dense (đặc) cũng thấy được sự cải thiện thông qua các lớp tuyến tính single-row được tối ưu hóa và các phép toán softmax nhanh hơn đáng kể. Những thay đổi này cùng nhau biến máy Mac từ một thiết bị chủ yếu dùng cho suy luận (inference) thành một công cụ khả thi cho các khối lượng công việc huấn luyện và tạo sinh đòi hỏi khắt khe hơn.

Cách thức hoạt động

Sự thay đổi kỹ thuật cốt lõi trong PyTorch 2.15 là việc di chuyển các phép toán từ MPSGraph sang các kernel Metal tùy chỉnh. MPSGraph, tuy linh hoạt, thường gây ra chi phí phát sinh do biên dịch đồ thị và đồng bộ hóa giữa CPU-GPU. Bằng cách viết các kernel chuyên dụng cho những tác vụ cụ thể như phép nhân ma trận theo nhóm (grouped matrix multiplication), đệm hằng số (constant padding) và softmax, đội ngũ đảm bảo rằng dữ liệu vẫn nằm trên GPU và được thực thi với độ trễ tối thiểu. Ví dụ, kernel grouped matmul mới đọc các offset nhóm trực tiếp trên GPU, tránh cách tiếp cận lặp qua từng nhóm tốn kém được sử dụng trong các phiên bản trước.

Hiệu quả bộ nhớ đã được cải thiện bằng cách tái cấu trúc cách các phép toán đệm xử lý bộ nhớ driver. Trong các phiên bản trước, việc giải mã VAE video dạng tiled kích hoạt hàng nghìn lệnh đệm khiến bộ nhớ driver phình to. Cài đặt đệm hằng số dựa trên Metal mới quản lý các phân bổ này hiệu quả hơn, ngăn chặn sự tăng trưởng theo hàm mũ của bộ nhớ được giữ lại. Cơ chế này cho phép các pipeline tạo video phức tạp chạy trong giới hạn bộ nhớ tiêu chuẩn thay vì yêu cầu tài nguyên hệ thống quá mức.

Chi tiết chính

  • Hỗ trợ FP8: Hỗ trợ gốc cho tensor torch.float8_e4m3fn cho phép lưu trữ bán chính xác (half-precision) và thực hiện phép nhân ma trận có tỷ lệ trên MPS.
  • Tăng tốc MoE: Các mô hình mixture-of-experts giải mã nhanh hơn 5–6,5 lần, với Qwen3.6-35B-A3B đạt 61,3 token/giây trên chip M3 Ultra.
  • Tiết kiệm bộ nhớ: Bộ nhớ driver đỉnh điểm khi giải mã VAE video Wan2.2 giảm từ 270 GiB xuống còn khoảng 8 GiB.
  • Đại số tuyến tính: Phép phân tích LU phức tạp, giải tam giác và phép nghịch đảo ma trận nhỏ nhanh hơn hiện đã được hỗ trợ trên MPS.
  • Tối ưu hóa Softmax: Phép toán softmax trên các từ vựng lớn nhanh hơn khoảng 8 lần, giảm từ 57 µs xuống 7 µs cho các kích thước điển hình.
  • Yêu cầu hệ thống: Bản cập nhật yêu cầu macOS 15 trở lên và Python 3.11 trở lên.

Tại sao điều này quan trọng

Đối với các kỹ sư phần mềm xây dựng sản phẩm AI trên phần cứng Mac, bản phát hành này loại bỏ nhiều điểm gây trở ngại chính. Khả năng sử dụng trọng số FP8 có nghĩa là bạn có thể nhét các mô hình lớn hơn vào VRAM hạn chế hoặc giảm áp lực băng thông bộ nhớ trong quá trình suy luận. Điều này rất quan trọng cho việc phát triển và thử nghiệm cục bộ các kiến trúc tiên tiến vốn trước đây quá nặng nề về tài nguyên đối với các máy Apple Silicon dòng tiêu dùng.

Việc giảm mạnh mức sử dụng bộ nhớ cho các quy trình tạo video cũng mở ra những khả năng mới cho các ứng dụng sáng tạo. Các nhà phát triển trước đây gặp lỗi hết bộ nhớ hoặc mất ổn định hệ thống khi sử dụng các công cụ như ComfyUI hoặc Diffusers giờ đây có thể chạy các pipeline này một cách đáng tin cậy. Bản sửa lỗi hỏng hóc khi chỉnh sửa ảnh trong Qwen-Image-2.1 càng đảm bảo rằng độ trung thực hình ảnh được duy trì, biến máy Mac thành một nền tảng đáng tin cậy hơn cho các tác vụ hình ảnh và video cấp độ sản xuất.

Bạn có thể làm gì

  • Nâng cấp môi trường phát triển của bạn lên macOS 15 và Python 3.11 để đảm bảo tương thích với các tính năng MPS mới.
  • Kiểm thử lượng tử hóa FP8 trong các mô hình của bạn bằng cách sử dụng torch.float8_e4m3fn và F.scaled_mm để giảm dấu chân bộ nhớ.
  • Đánh giá hiệu suất (benchmark) các mô hình mixture-of-experts của bạn để đo lường mức độ cải thiện tốc độ giải mã do grouped matmul gốc mang lại.
  • Cập nhật các pipeline tạo video để tận dụng các kernel đệm hằng số mới và giám sát mức sử dụng bộ nhớ driver.
  • Thử nghiệm với các luồng MPS công khai thông qua torch.mps.Stream để kiểm soát chi tiết hơn các thao tác GPU đồng thời.
  • Báo cáo bất kỳ vấn đề hiệu suất còn tồn tại hoặc phép toán thiếu sót nào cho kho lưu trữ GitHub của PyTorch để giúp định hướng các bản cập nhật trong tương lai.
  • #pytorch
  • #apple silicon
  • #machine learning
  • #mps
  • #fp8

Công cụ từ cửa hàng Bytechap

Đọc tiếp

Tất cả bài viết