Hacker News Nổi bật (buzzing.cc bản dịch tiếng Trung)
85

Sản phẩm

Dự án Deltafin: Chạy mô hình Kimi K3 2.8T tham số trên MacBook M1 Max

(giờ Việt Nam)

Tóm tắt AI

Dự án Deltafin đã hiện thực hóa việc chạy mô hình MoE 2.8 nghìn tỷ tham số Kimi K3 trên MacBook M1 Max với tốc độ 0.0687 token/giây. Dù tốc độ còn rất chậm, đây là bước tiến đáng chú ý trong việc tối ưu hóa suy luận mô hình khổng lồ trên phần cứng cá nhân.

Bản dịch AI

GitHub - gavamedia/deltafin: Run Kimi K3, a 2.8T-parameter Mixture-of-Experts LLM, on a single Apple Silicon Mac. Streams MXFP4 experts on demand over HTTP into a local disk cache — fused NEON kernels

Cài đặt

Chỉ cần ba lệnh là bạn có thể bắt đầu tạo. Quyết định thực sự duy nhất nằm ở bước 3.

Hai chế độ

Mỗi token đọc 16 chuyên gia × 92 lớp = 25,8 GB dữ liệu chuyên gia. Từ ổ đĩa cục bộ, quá trình này mất khoảng 4 giây; qua mạng thì mất hàng phút. Sự thật đơn giản đó chính là toàn bộ khác biệt giữa hai cột.

Chạy setup_k3.py mà không có cờ nào, nó sẽ chọn --full nếu ổ đĩa cho phép, nếu không sẽ chuyển sang chế độ streaming và cho bạn biết chính xác dung lượng cần giải phóng.

Bắt đầu với streaming và nâng cấp sau

Streaming là một cách hay để dùng thử Deltafin mà không cần tốn 1,7 TB dung lượng. Bất cứ khi nào bạn muốn tốc độ, chỉ cần một lệnh là xong — không cần cài đặt lại, không cần cấu hình lại và nó sẽ tự động lấy bất cứ thứ gì đã được lưu trong bộ nhớ đệm:

Đối với cài đặt streaming, một trình làm ấm (warmer) lúc nhàn rỗi có thể xếp hạng các chuyên gia vắng mặt từ các dấu vết bộ định tuyến (router traces) đã ghi lại. Mặc định của nó là kế hoạch chỉ đọc; việc tìm nạp qua mạng là rõ ràng và nó có thể chuyển đổi nguyên tử các mục.npz cũ sang định dạng thô nhanh:

Deltafin in ra lời nhắc khi khởi động — cho cả CLI và máy chủ API — bất cứ khi nào nó vẫn ở chế độ streaming, hiển thị bao nhiêu phần của nhóm (pool) là cục bộ và chi phí để hoàn tất là bao nhiêu.

Tùy chọn: int8 spine

Giảm một nửa I/O trên mỗi token cho các trọng số không phải chuyên gia, mà không làm thay đổi chất lượng đáng kể trong các bài kiểm tra của chúng tôi. Mất vài phút:

Cách sử dụng

Các token được in ra ngay khi chúng được tạo, vì vậy bạn luôn thấy văn bản xuất hiện theo thời gian thực. Ctrl-C sẽ dừng lại sạch sẽ tại bất kỳ thời điểm nào và in ra kết quả cho đến lúc đó; --max-new N giới hạn độ dài. Một cảnh báo chân thành: K3 suy nghĩ trước khi trả lời, và với tốc độ khoảng 4,1 token mỗi phút, một câu trả lời đầy đủ trong trò chuyện có thể mất một lúc — việc xem nó stream là một phần của trải nghiệm.

Đặt K3_TRACE=buffered để ghi lại các lựa chọn bộ định tuyến vào router_trace.jsonl phục vụ nghiên cứu ngoại tuyến. Các lần chạy hiệu năng sẽ để chế độ tracing ở trạng thái tắt.

Deltafin có thể phục vụ API OpenAI tiêu chuẩn, vì vậy các giao diện trò chuyện, SDK openai và các tác nhân lập trình có thể sử dụng nó bằng cách thay đổi URL cơ sở:

/v1/chat/completions, /v1/completions và /v1/models đã được triển khai, và streaming ("stream": true) hoạt động bình thường. Hầu hết các công cụ đọc OPENAI_BASE_URL và OPENAI_API_KEY sẽ hoạt động bằng cách trỏ chúng vào máy chủ này.

Vui lòng đọc các lưu ý này trước khi trỏ bất kỳ thứ gì tự động vào nó:

Cấu hình

Mọi thứ đều hoạt động mà không cần cấu hình: Deltafin tự chọn GPU nếu có và chọn int8 spine khi nó đã được xây dựng, đồng thời thông báo những gì nó đã chọn khi khởi động. Các biến này tồn tại để ghi đè lên các lựa chọn đó:

Yêu cầu

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

Tổng trọng số của K3 là khoảng 1,56 TB, lớn hơn dung lượng đĩa trống của máy này, chưa nói đến RAM. Quan sát giúp việc suy luận cục bộ trở nên khả thi là mô hình Mixture-of-Experts chỉ chạm vào một phần nhỏ của chính nó trên mỗi token.

Những gì cần mong đợi

Tất cả các con số hiện tại bên dưới được đo trên một máy M1 Max (CPU 10 nhân, GPU 32 nhân, 64 GB, NVMe nội bộ) với mô hình đầy đủ được cài đặt cục bộ, trọng số thường trú int8 và đầu ra (output head), Metal MoE, số học fp32 chính xác, giải mã tham lam (greedy decoding) và đã tắt tracing.

Cột hiện tại tổng hợp sáu lần chạy mô hình đầy đủ chính xác từ các chiến dịch ABBA/BAAB cân bằng. Mỗi lần chạy sử dụng câu lệnh gợi ý năm token "The capital of France is", xác minh kết quả ba token "Paris. The" và loại bỏ bước giải mã đầu tiên trước khi báo cáo thông lượng ổn định. Các giá trị là trung vị; phạm vi cho thấy khối lượng công việc nặng về I/O này biến động như thế nào ngay cả trên cùng một máy không có tác vụ nền.

Đây là kết quả của "M1 còi": một chiếc M1 Max thế hệ đầu tiên đã cũ, không phải dòng Max hay Ultra mới hơn. Đây là một điểm tham chiếu thận trọng, không phải là điểm chuẩn so sánh giữa các dòng Mac. Chúng tôi kỳ vọng các hệ thống mới hơn, có băng thông và RAM cao hơn sẽ làm tốt hơn, nhưng sẽ dán nhãn các con số đó riêng biệt khi có người đo lường chúng.

Những cải tiến về đường dẫn chính xác gần đây

Các phép đo mới nhất bên dưới là các bài kiểm tra A/B cân bằng trên cùng một máy M1 Max. Các oracle token đã được kiểm tra cho mỗi lần chạy mô hình đầy đủ.

Trung vị đạt khoảng 4,1 token mỗi phút. Hồ sơ M1 Max tiêu biểu bị chi phối bởi:

Quá trình giải mã hiện bị giới hạn bởi băng thông đĩa trên spine thường trú. 53 GB đó được đọc lại trên mỗi token, và ở mức ~7 GB/s mà kiểu truy cập này duy trì, đó là khoảng 7,5 giây trong tổng số 14,6 giây trung vị — không thể tránh khỏi nếu không có thêm RAM (đủ để giữ spine mà không thay thế bộ nhớ đệm trang mà các chuyên gia cần đọc) hoặc một spine nhỏ hơn.

Tại sao các máy Mac mới hơn sẽ nhanh hơn

Mỗi dòng trong số đó đều bị giới hạn bởi phần cứng thay đổi theo Apple Silicon. Không có đường dẫn nào bị vô hiệu hóa cứng bởi kết quả trên M1, nhưng một số giá trị dự phòng đã được đo ở đây; một máy mới hơn sẽ tự điều chỉnh chúng theo khả năng, thời gian chạy, bộ nhớ và dấu vân tay lưu trữ của riêng nó:

Việc lựa chọn thời gian chạy dựa trên các kiểm tra về khả năng của họ tính năng Metal và toán tử thay vì các chuỗi tên chip. Điều đó giúp các dòng mới hơn — bao gồm M5 — đủ điều kiện cho các đường dẫn mà M1 không thể thực thi, trong khi mọi đường dẫn gốc tùy chọn đều giữ lại một phương án dự phòng chính xác.

Chúng tôi chỉ mới đo điểm chuẩn này trên chiếc M1 Max đó. Nếu bạn thử nó trên M3, M4 hoặc M5, một chiếc Ultra, hoặc một máy có 128 GB RAM trở lên, chúng tôi thực sự muốn xem các con số của bạn — hãy mở một issue với đầu ra của K3_PROFILE=1 và loại chip của bạn.

Khi dự đoán n-gram (n-gram speculation) chấp nhận một bản nháp, một lượt chuyển tiếp (forward pass) sẽ phát ra hai token, vì vậy văn bản lặp lại chạy nhanh hơn theo tỷ lệ. Dự đoán không làm mất dữ liệu: các bản nháp được chấp nhận tái tạo chính xác chuỗi tham chiếu, và một bản nháp bị từ chối sẽ khôi phục trạng thái mô hình đến từng bit.

Khoảng cách giữa hai hàng giải mã là toàn bộ lập luận cho việc cài đặt đầy đủ (xem ở trên): với các chuyên gia ở cục bộ, mọi câu lệnh gợi ý đều chạy ở tốc độ hàng trên thay vì chỉ những câu lệnh mà các chuyên gia của chúng tình cờ được lưu trong bộ nhớ đệm.

Đầu ra là kiểu tham lam (greedy) và có thể tái lập: cùng một câu lệnh gợi ý mang lại cùng các token, chạy hết lần này đến lần khác.

The capital of France is → Paris. The Eiffel Tower is located in Paris. The Louvre Museum is also in Paris. The Louvre has…

Để làm rõ về các hạn chế: đây là một sản phẩm nghiên cứu, không phải là thiết lập trò chuyện thực tế. Trung vị 14,6 giây cho một token còn lâu mới đạt mức tương tác, và các câu lệnh gợi ý dài rất tốn kém vì quá trình điền trước (prefill) chạm vào nhiều chuyên gia. Chúng tôi nghĩ nó thú vị chủ yếu như một bằng chứng về sự tồn tại và là một nền tảng thử nghiệm cho các kỹ thuật suy luận streaming.

KimiApple SiliconLLMMoEDeltafin
Đọc bài gốc

Bài viết được AI dịch và tổng hợp tự động từ Hacker News Nổi bật (buzzing.cc bản dịch tiếng Trung). Liên kết bài gốc ở phía trên. Dữ liệu đồng bộ qua API công khai được ghi nguồn tại AI HOT (canonical) ↗. AIHOT.vn luôn dẫn nguồn đầy đủ — nếu bạn thấy điểm cần chỉnh sửa, hãy gửi ý kiến tại trang phản hồi.