OMLX: Sử dụng máy Mac thứ hai giúp tăng tốc độ prefill của LLM cục bộ lên 2,9 lần
Đường dẫn bài viết: https://github.com/jundot/omlx/releases/tag/v0.7.4.dev1 Đường dẫn bình luận: https://news.ycombinator.com/item?id=50403212 Điểm: 1 Số bình luận: 0
jundot
omlx
Điều hướng kho lưu trữ
Mã nguồn
Vấn đề (Issues) 332 (332)
Yêu cầu kéo (Pull requests) 200 (200)
Thảo luận
Hành động (Actions)
Dự án
Bảo mật và chất lượng
Thông tin chi tiết
Mục khác
Bản phát hành
v0.7.4.dev1
0.7.4.dev1
Mới nhất
Mới nhất
So sánh
Chọn một thẻ để so sánh
Rất tiếc, đã xảy ra lỗi.
Bộ lọc
Đang tải
Rất tiếc, đã xảy ra lỗi.
Thông báo lỗi!
Đã xảy ra lỗi trong quá trình tải. Vui lòng tải lại trang này.
Không tìm thấy kết quả
Xem tất cả các thẻ
jundot
đã phát hành bản này
Ngày 04/11 lúc 10:13
v0.7.4.dev1
4213c32
Lượt commit này đã được ký bằng chữ ký xác thực của người thực hiện commit.
jundot
Jun Kim
Dấu vân tay khóa SSH: +H1liWt+jzKMeH61Iq2vhBdv3tORPm0rBXwDcq+m+gA
Đã xác thực
Tìm hiểu về chế độ cảnh giác (vigilant mode).
oMLX 0.7.4.dev1
Đây là bản phát hành phục vụ phát triển. Đề nghị báo cáo mọi lỗi phát sinh qua mục GitHub Issues. Trường hợp cần bản phát hành ổn định, vui lòng sử dụng oMLX 0.7.3.
Bản phát hành oMLX 0.7.4.dev1 cho phép sử dụng thêm một máy Mac thứ hai có GPU tốc độ cao để đẩy nhanh tiến trình nạp trước dữ liệu đầu vào (prefill) cho mô hình vốn chỉ vừa với máy Mac cấu hình bộ nhớ lớn; đồng thời nâng cao tốc độ của DeepSeek V4.1 và Qwen3.8 Flash-Next.
Tải về: macOS 26 / 27 | macOS 15 Sequoia
Bộ tăng tốc prefill (Prefill Accelerator)
Các mô hình MoE quy mô lớn có thể hoạt động trên máy tính Mac sở hữu dung lượng bộ nhớ cao như M3 Ultra 512GB, song tốc độ prefill đối với các câu lệnh (prompt) dài tại đây còn chậm. Khi kết nối thiết bị này với một máy Mac có GPU nhanh hơn như M5 Max, máy Mac tốc độ cao sẽ xử lý các lớp đầu tiên của từng phân đoạn prompt, trong khi máy Mac cấu hình lớn sẽ xử lý phần còn lại, giải mã (decode) và lưu giữ bộ nhớ đệm KV (KV cache). Tốc độ giải mã được giữ nguyên; chuẩn kết nối Thunderbolt hoặc mạng 5GbE hoàn toàn đáp ứng yêu cầu mà không cần đến giao thức RDMA (#5065).
Tốc độ prefill (tok/s) đối với câu lệnh 64K khi chạy riêng M3 Ultra 512GB và khi kết hợp M5 Max làm bộ tăng tốc:
Mô hình
Chạy riêng M3 Ultra
+ M5 Max 128GB
+ M5 Max 64GB
DeepSeek V4.1 Flash
1.060
3.123 (+195%)
1.466 (+38%)
Qwen3.8 Flash-Next
1.309
3.666 (+180%)
2.859 (+118%)
GLM-5.3 Flash
540
1.388 (+157%)
740 (+37%)
MiniMax M3.1
297
569 (+92%)
386 (+30%)
Để thiết lập cấu hình, bật mục Global Settings > Advanced > Enable Distributed Inference trên cả hai máy Mac, thực hiện ghép nối tại thẻ Cluster và chọn Prefill Accelerator, sau đó chọn máy Mac tương ứng tại mục Acceleration trong phần cài đặt của mô hình (tài liệu hướng dẫn).
Tăng tốc DeepSeek V4.1
Tiến trình prefill hiện duy trì một vùng đệm giới hạn (bounded buffer pool) xuyên suốt vòng lặp giữa các lớp thay vì hoàn trả từng vùng đệm về cho Metal sau mỗi lớp, giúp tăng tốc độ từ 43% đến 48% trên chip M5 Ultra (@junmo-kim tại #5031). Trên nền tảng M5, các bản dựng oQ4e với các chuyên gia (experts) định dạng MXFP4 và trọng số dày đặc (dense weights) định dạng MXFP8 cũng đã hỗ trợ INT8 Activation Prefill (#5058); lượt giải mã đầu tiên trên bộ nhớ đệm đổ bóng mới (fresh shader cache) không còn phải chờ đợi hàng trăm lượt biên dịch nhân kernel (@junmo-kim tại #5025).
DeepSeek V4.1 Flash
Thay đổi
Phần cứng
oQ2e-mtp, câu lệnh 32K
Prefill: 2.631 -> 3.779 tok/s (+44%)
M5 Ultra
oQ2e-mtp, câu lệnh 256K
Prefill: 2.604 -> 3.718 tok/s (+43%)
M5 Ultra
oQ4e INT8 Activation Prefill, câu lệnh 16K (phân đoạn 8 lớp)
Thời gian prefill: 1.580 -> 1.208 ms (-24%)
M5 Max
Lượt giải mã 600 token đầu tiên, bộ nhớ đệm đổ bóng chưa nạp (cold shader cache)
12,4 -> 45,8 tok/s (+269%)
M5 Ultra
Tăng tốc Qwen3.8 Flash-Next
Các checkpoint FP16 của Qwen3.8 Flash-Next hiện đã vận hành các nhân (kernel) hyper-connection và GDN hợp nhất vốn trước đây chỉ áp dụng cho định dạng BF16; đồng thời kết quả giải mã greedy khi bật Lightning MTP hoàn toàn tương thích với khi tắt MTP (#5028 cùng @qoli). Trên các thiết bị Mac 128 GB, các mô hình như Qwen3.8 Flash-Next, GLM-5.3 và DeepSeek V4.1 vẫn duy trì các khối prefill mở rộng dưới áp lực bộ nhớ, qua đó khắc phục tình trạng suy giảm tốc độ khi xử lý các prompt dài liên tiếp (@yohann-bearzi trong #4902). Tốc độ giải mã (decode) sau các prompt dài trên chip M5 Max cũng được cải thiện thêm 3-5% (@yohann-bearzi trong #4901).
Qwen3.8 Flash-Next
Thay đổi
Phần cứng
oQ2.5e fp16, tắt MTP, 32K
Giải mã 38,9 -> 63,0 tok/giây (+62%)
M3 Ultra
oQ2.5e fp16, bật MTP, 4K
Giải mã 67,8 -> 89,9 tok/giây (+33%)
M3 Ultra
oQ2.5e fp16, tắt MTP, 16K
Giải mã 25,2 -> 31,1 tok/giây (+23%)
M2 Max
oQ4e, các prompt 34,5K liên tiếp
Prompt chậm nhất 90,7 -> 13,1 giây (-86%)
M5 Max 128 GB
Tính năng mới và Cải tiến
Tích hợp: Các lệnh omlx launch codex, omlx launch codex_app và omlx launch copilot cung cấp cho agent toàn bộ các mô hình hội thoại hiện có trên máy chủ, cho phép lệnh /model chuyển đổi linh hoạt giữa các mô hình oMLX mà không cần khởi động lại. Mỗi mô hình vẫn duy trì độc lập cửa sổ ngữ cảnh, khả năng xử lý hình ảnh và mức độ nỗ lực suy luận (#5026 cùng @scaryrawr, @scaryrawr trong #5066).
Mô hình: Ming-3.0-tts và Ming-3.0 Tiny được nạp dưới dạng các mô hình TTS với vòng lặp giải mã đã biên dịch và các nhân DiT hợp nhất. Hệ số thời gian thực (real-time factor) trên chip M5 Max giảm từ 0,210 xuống 0,101 (-52%), và từ 0,798 xuống 0,258 (-68%) đối với bản Tiny. Tính năng nhân bản giọng nói sử dụng vector nhúng giọng nói (speaker embedding) CAM++ của checkpoint; đồng thời danh sách giọng nói tích hợp sẵn được hiển thị tại endpoint /v1/audio/voices (#5029). Các mô hình LFM3 áp dụng kỹ thuật RoPE chỉ trong một lần khởi chạy (b73ee56 cùng @alan13367).
Giải mã theo lô (Batched decode): Các lớp 8-bit gồm 6 hàng chỉ đọc trọng số một lần duy nhất, giúp mô hình Qwen3.8-27B oQ8e khi xử lý đồng thời 6 yêu cầu tăng tốc độ từ 62,2 lên 72,4 tok/giây (+16%) trên chip M5 Max (b5c7793 cùng @yohann-bearzi).
Ứng dụng macOS: Tính năng Ask AI có khả năng phản hồi thông qua máy chủ oMLX đặt trên một máy Mac khác, đi kèm nút Kiểm tra kết nối (Test connection) (@ianderse trong #5050). Thư viện mô hình tự động kiểm tra các bản cập nhật trên Hugging Face và hiển thị danh mục tệp thay đổi trước khi tiến hành cập nhật (@ngutech21 trong #5046). Giao diện tiếng Đức hiện đã bao quát toàn bộ ứng dụng (@christianschmidt trong #5014, #5048); hệ thống số đếm tiếng Nhật và tiếng Hàn áp dụng các đơn vị 万 và 만 tương tự bảng điều khiển web (@LXD-8 trong #4980).
Giao diện Web: Bổ sung phiên bản tiếng Đức cho bảng điều khiển quản trị (@alexandergreil trong #4673); đồng thời tinh gọn các mục tại thanh điều hướng bên của khung trò chuyện, tích hợp tính năng đổi tên và xóa vào menu ... (ce43187).
API: Endpoint /v1/messages cho phép tiếp tục thông điệp trợ lý ở vị trí cuối dưới dạng cơ chế prefill của Anthropic, tương tự thiết lập partial trên chat completions (@yanzhaohui1999 trong #4995). Yêu cầu văn bản thuần túy đầu tiên sau khi nạp mô hình không còn phải khởi dựng trình biên dịch ngữ pháp, giúp tiết kiệm 0,31-0,37 giây (ae659d3 cùng @LXD-8).
Sửa lỗi
Kết quả trả về từ các công cụ song song được đồng bộ vào mẫu hội thoại theo đúng trình tự gọi trên các endpoint /v1/messages và /v1/chat/completions, chấm dứt hoàn toàn tình trạng mô hình Qwen ghép sai kết quả với lệnh gọi tương ứng (@yanzhaohui1999 trong #5012, 008987a, #4999).
Cụm máy chủ (Cluster): các phiên hội thoại của agent tái sử dụng



Nguồn tin: Hacker News LLM — Tác giả: joshcsimmons. Bản dịch tiếng Việt do AI thực hiện, có thể có sai sót.