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

Sản phẩm

Show HN: Cách chạy mô hình GLM-5.2 trên máy tính cấu hình thấp

(giờ Việt Nam)

Tóm tắt AI

Engine colibrì v1.0 cho phép chạy mô hình GLM-5.2 (744B tham số) trên máy tính phổ thông với chỉ 9.9 GB RAM nhờ kỹ thuật nén int4 và cơ chế tải dữ liệu từ ổ cứng theo thời gian thực.

Bản dịch AI

GitHub - JustVugg/colibri: Run GLM-5.2 (744B MoE) on a 25GB-RAM consumer machine — pure C, zero deps, experts streamed from disk. Tiny engine, immense model. 🐦

Động cơ nhỏ, mô hình khổng lồ. Chạy GLM-5.2 (MoE 744 tỷ tham số) trên máy tính cá nhân với khoảng 25 GB RAM — bằng ngôn ngữ C thuần, không phụ thuộc vào thư viện ngoài, thông qua việc truyền phát các chuyên gia (experts) từ ổ cứng.

Ý tưởng

Một mô hình Mixture-of-Experts 744 tỷ tham số chỉ kích hoạt khoảng 40 tỷ tham số cho mỗi token — và chỉ khoảng 11 GB trong số đó thay đổi giữa các token (các chuyên gia được định tuyến). Vì vậy:

Động cơ này là một tệp C duy nhất (c/glm.c, khoảng 1.300 dòng) cộng với các tệp header nhỏ. Không BLAS, không Python khi chạy, không GPU.

Những gì đã được triển khai

Số liệu trung thực (WSL2, 12 nhân, 25 GB RAM, NVMe qua VHDX)

Nó không nhanh. Đây là một mô hình đẳng cấp tiên phong 744 tỷ tham số trả lời chính xác trên một cỗ máy có chi phí thấp hơn cả một chiếc quạt tản nhiệt H100. Bộ nhớ đệm ấm, các chuyên gia "nóng" được ghim cố định và MTP giúp giảm đáng kể độ trễ phản hồi hữu ích; phần còn lại phụ thuộc vào tốc độ vật lý của ổ cứng.

Cảnh báo hao mòn SSD

Các lần khởi động nguội (cold start) đòi hỏi đọc ngẫu nhiên rất nhiều (~11 GB/token). Bản thân việc đọc là an toàn, nhưng bộ nhớ đệm trang (page cache) của hệ điều hành có thể tạo ra các thao tác ghi. Việc sử dụng cường độ cao có thể đẩy nhanh quá trình hao mòn trên các ổ SSD giá rẻ. Hãy sử dụng thận trọng và theo dõi tình trạng ổ đĩa của bạn.

Tải xuống mô hình

Một mô hình GLM-5.2 int4 đã được chuyển đổi trước cho colibrì hiện có sẵn trên Hugging Face:

https://huggingface.co/jlnsrk/GLM-5.2-colibri-int4

Tải xuống kho lưu trữ và trỏ COLI_MODEL đến thư mục của nó:

Điều này bỏ qua hoàn toàn bước chuyển đổi FP8 sang int4.

Cảm ơn DatPat vì sự giúp đỡ của bạn!

Bắt đầu nhanh

Động cơ khi chạy là C thuần — python chỉ được sử dụng một lần duy nhất cho việc chuyển đổi.

Các tùy chỉnh hữu ích (biến môi trường hoặc cờ): --temp T nhiệt độ lấy mẫu token (mặc định 0.7 + nucleus 0.90 — được tinh chỉnh cho int4; 0 = greedy), --topp 0.7 top-p chuyên gia thích ứng (giảm 30–40% dữ liệu đọc từ đĩa), --ngen N số token tối đa mỗi câu trả lời (:piu trong chat để tiếp tục câu trả lời bị cắt), AUTOPIN=0 tắt tính năng tự động ghim của bộ nhớ đệm học tập, THINK=1 bật khối suy luận của GLM-5.2, DRAFT=n độ sâu dự đoán MTP, TF=1 kiểm chứng teacher-forcing.

Bộ nhớ đệm học tập: động cơ ghi lại những chuyên gia nào mà quá trình sử dụng của bạn thực sự định tuyến tới (.coli_usage bên cạnh mô hình, được cập nhật sau mỗi lượt) và khi khởi động sẽ tự động ghim các chuyên gia được dùng nhiều nhất vào RAM trống. colibrì thực sự trở nên nhanh hơn khi bạn sử dụng nó nhiều hơn.

Bạn có máy tốt hơn? Hãy thử xem — đây là những gì có thể mong đợi

colibrì được xây dựng trên phần cứng khiêm tốn (12 nhân, 25 GB RAM, NVMe chạy sau WSL2 VHDX giới hạn tốc độ đọc ngẫu nhiên ở mức ~1 GB/s). Mỗi hạn chế đó đều là một thông số mà máy của bạn có thể nâng cấp. Động cơ cần: Linux (hoặc WSL2), gcc với OpenMP, AVX2, ≥16 GB RAM và mô hình int4 ~370 GB trên NVMe cục bộ (định dạng ext4 — không bao giờ dùng ổ đĩa mạng/9p mount).

Cách kiểm tra theo thứ tự:

Dự đoán sơ bộ (quá trình giải mã bị giới hạn bởi ổ cứng: một token nguội tốn ~11.4 GB dữ liệu chuyên gia; dự đoán MTP giảm một nửa chi phí hiệu dụng khi bộ nhớ đệm đã ấm; RAM biến các lần đọc nguội thành các lần truy cập bộ nhớ đệm miễn phí):

Đây là các ước tính, không phải phép đo — nếu bạn chạy colibrì trên phần cứng mạnh mẽ, vui lòng mở một issue với các số liệu của bạn: dữ liệu thực tế từ các máy tốt hơn chính là thứ mà dự án này cần tiếp theo.

Điểm chuẩn cộng đồng (đã đo lường)

Số liệu thực từ máy thực, bản dựng gốc (setup.sh, gcc 13), giải mã greedy, --ngen 32, MTP đang hoạt động:

Kết luận: với 24 GB RAM, động cơ tự động giới hạn bộ nhớ đệm chuyên gia ở mức 2 slot/lớp, vì vậy việc giải mã vẫn ở trạng thái nguội ngay cả trên ổ cứng nhanh hơn 2–2.7 lần so với máy phát triển — trên các máy có RAM nhỏ, giới hạn RAM chứ không phải ổ cứng mới là nút thắt cổ chai, đúng như bảng trên dự đoán; chỉ riêng --topp 0.7 đã mang lại tốc độ nhanh hơn 1.6 lần. Dữ liệu từ M5 Max nằm ngay hàng thứ hai của bảng: ~1 tok/s cho mô hình 744B trên SSD laptop — và tốc độ đĩa 14 GB/s của nó chuyển nút thắt cổ chai trở lại ngân sách RAM và nhân xử lý.

Điểm chuẩn chất lượng — cần sự giúp đỡ

Chúng tôi chưa bao giờ đo lường mức độ ảnh hưởng của lượng tử hóa int4 đến độ chính xác — khung kiểm tra đã được xây dựng và kết nối, nhưng việc chấm điểm yêu cầu một lần chạy forward cho mỗi lựa chọn trả lời, và trên ổ cứng ~1 GB/s của máy phát triển, một lần chạy đầy đủ mất gần cả ngày. Đây là điều giá trị nhất mà một cỗ máy nhanh hơn có thể đóng góp. Mã nguồn ở đây và đã sẵn sàng; một lệnh duy nhất sẽ chạy nó từ đầu đến cuối (nó tự động tải xuống các tập dữ liệu trong lần sử dụng đầu tiên):

Nó in ra độ chính xác theo từng tác vụ (chấm điểm log-likelihood, theo phong cách EleutherAI-harness). Điểm số GLM-5.2 độ chính xác đầy đủ đã công bố trên các tác vụ này nằm trong khoảng 85–95%; nếu container int4 của chúng tôi đạt được kết quả trong phạm vi vài điểm, lượng tử hóa đã được xác nhận — nếu không, chúng ta biết cần đầu tư vào lượng tử hóa hỗn hợp / theo thang đo nhóm. Nếu bạn có phần cứng để chạy thử, vui lòng mở một issue với các con số — đó là phép đo mà dự án đang thiếu.

Hỗ trợ dự án

colibrì là dự án của một người, được viết và kiểm thử hoàn toàn trên một chiếc laptop 12 nhân với 25 GB RAM — các con số trên là giới hạn cao nhất mà tôi có thể đo lường tại nhà. Nếu dự án này hữu ích hoặc thú vị với bạn và bạn muốn hỗ trợ phát triển (phần cứng kiểm thử tốt hơn đồng nghĩa với động cơ nhanh hơn cho tất cả mọi người: dữ liệu mở rộng NVMe thực tế, bộ nhớ đệm ghim lớn hơn, quét chất lượng int2/int3 trên các điểm chuẩn thực tế), bạn có thể:

Mọi đóng góp, từ một điểm dữ liệu đến một ổ đĩa, đều nâng cao giới hạn này.

Cấu trúc kho lưu trữ

Tại sao lại là "colibrì"

Chim ruồi nặng vài gram, bay lơ lửng tại chỗ và ghé thăm hàng ngàn bông hoa mỗi ngày. Động cơ này duy trì sự sống cho một gã khổng lồ 744 tỷ tham số với khẩu phần của chim ruồi: 25 GB RAM, mười hai nhân CPU và rất nhiều sự kiên nhẫn với ổ cứng.

Giấy phép

Apache 2.0. Trọng số GLM-5.2 được Z.ai phát hành theo giấy phép MIT.

GLM-5.2Tối ưu hóaLLMCấu hình thấpcolibrì
Đọ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. 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.