Thẻ tiêu đề cho video giải thích về MiniCPM-V 4.7 35B-A3B, đối chiếu mức bộ nhớ thường trú khoảng 3 GB và tốc độ hơn 13 token mỗi giây trên iPhone 17 Pro Max của nhà cung cấp với con số 100 token mỗi giây chưa được xác minh.
Engineering & Research

MiniCPM-V 4.7 đưa mô hình thị giác 35B vào 3 GB: Gỡ rối tuyên bố 100 tok/s

Tác giả

Elias Hawthorne

Ngày đăng

Mô hình mới nhất · 20Xem tất cả mô hình →
Benchmark: Artificial Analysis · cập nhật hằng ngày
Quay lại tất cả bài viết

Một mô hình 35 tỷ tham số không thể vừa trong ba gigabyte. MiniCPM-V 4.7 35B-A3B vẫn chạy trong khoảng ba gigabyte, và cả hai phát biểu đều đúng — đó chính là toàn bộ mẹo, và là lý do những con số đang lan truyền về bản phát hành này đáng để dừng lại xem xét. Mô hình là mục mixture-of-experts thưa đầu tiên của OpenBMB trong dòng MiniCPM-V: lưu trữ 35,2 tỷ tham số, khoảng 3 tỷ tham số hoạt động mỗi token, Apache-2.0, trọng số trên Hugging Face. Nó đọc được hình ảnh, các bộ nhiều hình ảnh và video, và trả lời bằng văn bản. Từ ngày 10 tháng 10, nó cũng chạy trong llama.cpp upstream, nơi phần lớn mọi người gặp nó. Phần sau sẽ tách ba con số mà mọi người đang lặp lại — 3 GB, 35B và con số 100 tok/s — và chỉ ra con số nào trong đó OpenBMB thực sự công bố. Hơn 200 mô hình được lưu trữ, một khóa, giá niêm yết của nhà cung cấp được chuyển qua với 0% phụ phí. Xem OrcaRouter định tuyến gì Checkpoint trọng số mở nằm lại trên phần cứng của bạn; lối thoát được lưu trữ là một điểm cuối duy nhất. Những thất bại AI và sự cố tác nhân được ghi lại đằng sau các bản phát hành như thế này được tập hợp trong OrcaRouter AI Incident Archive trong đó mỗi mục mang nguồn, mức độ nghiêm trọng, cấp độ tin cậy và cờ tranh chấp riêng.

Ba gigabyte, ba mươi lăm tỷ tham số, và không có mâu thuẫn

Phép tính chỉ trông có vẻ bất khả thi nếu bạn giả định "trong bộ nhớ" nghĩa là "toàn bộ". MiniCPM-V 4.7 35B-A3B giữ khoảng 3 tỷ tham số thường trú và truyền nạp phần còn lại của các expert khi bộ định tuyến yêu cầu — cách diễn đạt của chính model card là Lookahead Expert Scheduling, một bộ dự đoán định tuyến xuyên tầng nạp trước các expert mà tầng tiếp theo có khả năng cần đến, chồng lấn việc nạp đó với tính toán đang chạy. Model card cẩn thận nói rằng dự đoán chỉ điều khiển việc nạp trước và lập lịch; token vẫn tuân theo định tuyến thực của mô hình, và một expert mà bộ dự đoán bỏ sót sẽ được nạp và đánh giá như bất kỳ expert nào khác.

Sự khác biệt đó có một hệ quả có thể đo lường được. Kho lưu trữ GGUF công bố toàn bộ mô hình ở mọi mức lượng tử hóa phổ biến, và không tệp nào trong số đó có kích thước ba gigabyte:

• Q4_K_M — 21,2 GB trên đĩa.

• Q8_0 — 36,9 GB.

• F16 — 69,4 GB.

• Vision projector — 0,9 GB ở mức nén 4x, 1,1 GB ở f16.

Vậy “3 GB” là con số bộ nhớ thường trú khi expert streaming trên điện thoại, không phải kích thước tải xuống và cũng không phải yêu cầu VRAM cho máy tính để bàn. Nếu bạn đang lên kế hoạch triển khai, con số quyết định dung lượng đĩa và lần tải đầu tiên là 21.2 GB ở Q4_K_M, còn con số quyết định mức chiếm dụng ổn định trên điện thoại là ~3 GB của nhà cung cấp. Cả hai đều có trong bản phát hành. Chúng trả lời những câu hỏi khác nhau, và phần lớn các bài đưa tin đã gộp chúng làm một.

100 tok/s đến từ đâu, và ở đâu thì không

Đây là phần đáng nói thẳng. OpenBMB không công bố con số 100 tok/s cho MiniCPM-V 4.7. Con số trên thẻ mô hình là 13+ tokens/s, trên iPhone 17 Pro Max, ở mức khoảng 3 GB bộ nhớ. Đó là tuyên bố thông lượng trên thiết bị duy nhất mà bản phát hành đưa ra, và nó được nhà cung cấp đo trên phần cứng mà không ai bên ngoài phòng thí nghiệm đã tái lập.

Những con số cao hơn thực sự tồn tại và chúng đến từ một tạo tác khác. Bản fork llama.cpp-omni của OpenBMB — kho lưu trữ chứa các tối ưu hóa trên thiết bị — công bố bảng riêng của mình cho mục tiêu 35B-A3B, được xếp lớp theo việc những tối ưu hóa nào được bật:

• iPhone 18 Pro Max, 12 GB — 3.38 tok/s ở mức cơ sở, 11.34 với Lookahead Expert Scheduling, 17.16 khi bổ sung độ chính xác hỗn hợp, và 20.51 khi có thêm cả draft head DSpark.

• iPad Pro 11 inch M4, 16 GB — mức cơ sở 2,97 tok/s, 9,81 với LES, 14,92 với độ chính xác hỗn hợp, 17,39 với DSpark.

Đó là những con số được công bố trên thiết bị cao nhất cho mô hình này, và đỉnh của thang đo là 20,51 tok/s — một phần năm của 100. Khoảng cách này quan trọng vì nó thay đổi mục đích của mô hình. Ở 13 tok/s, một ứng dụng điện thoại trả lời câu hỏi về một bức ảnh trong vài giây. Ở 100 tok/s, bạn sẽ cân nhắc nó như một bộ đọc sơ bộ dạng truyền trực tiếp cho video. Cái đầu là một sản phẩm thực sự. Cái thứ hai không phải là thứ đã được phát hành, và bất kỳ ai lập ngân sách dựa trên con số trong tweet sẽ thất vọng vì chênh lệch gấp năm lần.

Four stacked cards showing OpenBMB's published on-device throughput ladder for MiniCPM-V 4.7 35B-A3B on an iPhone 18 Pro Max with 12 GB: 3.38 tokens per second baseline, 11.34 with Lookahead Expert Scheduling, 17.16 with mixed precision, and 20.51 with the DSpark draft head.

Cách hiểu trung thực về tuyên bố 100 tok/s là tuyên bố đó đang nén ba sự kiện riêng biệt — 3 GB, chạy cục bộ, nhanh hơn thế hệ trước với khoảng cách lớn — thành một con số mà không nguồn nào chứa. Mức cải thiện qua từng thế hệ là có thật và lớn: từ 3,38 lên 20,51 tok/s là mức tăng 6 lần trên cùng một loại thiết bị, đạt được bằng cách xếp chồng ba kỹ thuật thay vì nhờ một chip lớn hơn.

Việc phát hành không diễn ra trong một ngày, và các mốc thời gian rất quan trọng

MiniCPM-V 4.7 xuất hiện theo cách mà nhiều bản phát hành mở trọng số hiện nay vẫn làm: file trước, giải thích sau, và hỗ trợ framework ở đâu đó xen giữa.

• 6 tháng 10, 17:40 UTC — mô hình 1B và các biến thể AWQ, GPTQ và int4 của nó xuất hiện trên Hugging Face, cùng với các bản dựng GGUF lúc 18:05.

• 7 tháng 10, 07:07 UTC — kho lưu trữ 35B-A3B xuất hiện. Vẫn chưa có thẻ mô hình.

• 8 tháng 10 — các head giải mã suy đoán DSpark cho cả hai kích thước, và bản dựng FP8 của 35B.

• 10 tháng 10, 18:42 UTC — llama.cpp tích hợp hỗ trợ mô hình.

• Ngày 12 tháng 10 — OpenBMB commit thẻ mô hình, công bố giấy phép Apache-2.0 và thông báo phát hành như một sản phẩm đã có tài liệu đầy đủ.

• 15 tháng 10 — các head {{1}}DSpark{{/1}} được liên kết từ thẻ chính, với các bản nháp GGUF cho cả hai mục tiêu.

Thứ tự đó giải thích phần lớn sự nhầm lẫn trong các bài đưa tin thứ cấp. Ai đó biết đến mô hình qua llama.cpp vào tuần thứ hai của tháng Mười đang chạy một bản phát hành mà chính thức vẫn chưa tồn tại, không có nhãn giấy phép và không có biểu đồ đánh giá chuẩn, và các con số thông lượng của họ phản ánh những lựa chọn lượng tử hóa của chính framework đó chứ không phải bất kỳ kết quả đo chuẩn nào của OpenBMB.

Screenshot of the Hugging Face model card for openbmb/MiniCPM-V 4.7 35B-A3B, showing the Image-Text-to-Text pipeline tag, Transformers and Safetensors formats, the Apache-2.0 licence, and model-card prose describing on-device inference.

Hỗ trợ llama.cpp: đã được hợp nhất, nhưng chưa hoàn thiện hẳn

Pull request upstream đã thêm MiniCPM-V 4.7 có thể đọc được một cách lạ thường về những gì đã thay đổi, và câu trả lời là: gần như không có gì về mặt kiến trúc. Mô hình gần như giống hệt MiniCPM-V 4.6; phần chênh lệch là 3D RoPE, một vị trí ba giá trị cho mỗi token — thời gian, hàng, cột — thay vì một đại lượng vô hướng duy nhất mà hầu hết các mô hình thị giác-ngôn ngữ sử dụng. Phần hỗ trợ mở rộng đường xử lý 4.6 hiện có để mang thêm chiều đó. PR cũng ghi chú mô hình là "sắp ra mắt" khi nó được mở vào ngày 25 tháng 9, đây là một gợi ý hợp lý về việc các trọng số còn sớm đến mức nào trong lưu hành.

Điều còn tồn đọng này đáng để biết trước khi bạn xây dựng một tính năng grounding dựa trên nó. Kể từ lần merge đó, llama.cpp thượng nguồn gán sai vị trí cho các token marker hình ảnh trong prompt MiniCPM-V 4.7: bản thân các token hình ảnh được đặt đúng, nhưng <slice>, </slice> và các marker cuối dòng lại được đánh số như văn bản thường thay vì được gán tọa độ góc tile như triển khai tham chiếu get_rope_index làm. Triệu chứng thấy được là tọa độ trả về nằm thấp một cách có hệ thống khi bạn hỏi một thứ nằm ở đâu trong ảnh. Một bản sửa kèm unit test đang tồn tại dưới dạng pull request mở, đề ngày 14 tháng 10, và tính đến ngày 20 tháng 10 vẫn còn mở. Nếu tác vụ của bạn là “mô tả cái này”, bạn sẽ không nhận ra. Nếu là “cho tôi bounding box”, bạn sẽ nhận ra, và bạn nên chờ merge hoặc dùng fork có chứa phần xử lý đã được sửa.

Còn một điều nữa vẫn tồn tại sau vòng chuyển đổi khứ hồi: với mô hình 1B, bộ chiếu thị giác là phần tải xuống lớn hơn. Trọng số Q4_K_M nặng 672 MB; bộ chiếu f16 nặng 1.11 GB. Vì vậy, một triển khai 1B hữu ích nhỏ nhất có khoảng 1.8 GB tệp, phần lớn trong đó là “mắt” chứ không phải ngôn ngữ — một chi tiết mà bất kỳ kỳ vọng “1B nghĩa là 1 GB” nào cũng hiểu sai.

Chạy gì và chạy trên cái gì

Nếu mục tiêu là thử nó trong tuần này, con đường ít trở ngại nhất là llama.cpp hoặc Ollama với các kho GGUF, trỏ client đa phương thức vào tệp mmproj tương ứng. Trên GPU 24 GB, Q4_K_M ở 21,2 GB để lại rất ít dư địa cho ngữ cảnh — cửa sổ 8K token cộng với các tile hình ảnh sẽ không vừa thoải mái, nên hãy tính đến Q4_K_S hoặc lượng tử hóa nhỏ hơn nếu bạn cũng muốn một prompt dài. Trên Mac từ 32 GB trở lên, Q8_0 khả thi và là thứ gần nhất với hành vi tham chiếu. Trên điện thoại, chỉ ứng dụng của chính nhà cung cấp và bản fork llama.cpp-omni mới mang phần xử lý lập lịch chuyên gia; llama.cpp gốc cho bạn tính đúng đắn, không phải 20 tok/s.

Điểm mà một lớp định tuyến chứng minh được giá trị của mình ở đây là ở phía bên kia của lệnh gọi cục bộ. Một mô hình 3B-active trên điện thoại rất giỏi ở khung thường ngày — đọc biên lai này, kệ hàng này trông có đủ hàng không, biển hiệu này ghi gì — và đôi khi nó sẽ gặp một trang mà nó không thể hoàn thành. OrcaRouter đưa hơn 200 mô hình được host vào sau một khóa duy nhất, chuyển nguyên giá niêm yết của từng nhà cung cấp với mức tăng giá 0% để thay đổi giá của nhà cung cấp có hiệu lực ngay trong ngày, và tự động chuyển đổi dự phòng khi một dịch vụ thượng nguồn suy giảm. Mô hình hiệu quả là ưu tiên cục bộ với một lối thoát được host, chứ không chỉ cục bộ. Checkpoint trọng số mở vẫn thuộc quyền host của bạn; router xử lý mọi thứ mà điện thoại chuyển đi.

Screenshot of the OrcaRouter models list showing 213 hosted models across 16 providers behind one API key and one bill.

MiniCPM-V 4.7 không được OrcaRouter cung cấp và chúng tôi sẽ không ngụ ý điều ngược lại. Đây là một checkpoint do bạn tự vận hành.

Điều gì sẽ quyết định ba con số

Một phép đo độc lập mô hình 35B trên một chiếc điện thoại được nêu tên, với ứng dụng và cách lượng tử hóa được nêu rõ, sẽ giải quyết câu hỏi về thông lượng — kể cả liệu 20,51 tok/s có đứng vững dưới đồng hồ bấm giây của người khác hay không. Một định nghĩa được công bố cho con số 3 GB — resident set, phân bổ đỉnh hay thứ gì khác — sẽ giải quyết câu hỏi về bộ nhớ. Và một bảng theo từng benchmark với điểm số thực, thay vì năm biểu đồ được liên kết mà thẻ hiện đang cung cấp, sẽ cho phép kiểm tra tuyên bố “tốt hơn Qwen3.6 35B-A3B trong ít thời gian hơn” dựa trên cách đánh trọng số mà OpenBMB đã chọn. Chưa có cái nào trong số đó tồn tại. Cho đến khi chúng có, câu chính xác là câu nhàm chán: một mô hình thưa 35B chạy trên điện thoại ở mức được báo cáo là hơn 13 token mỗi giây trong khoảng 3 GB, với bản tải xuống 21 GB và một đường xử lý framework đã hợp nhất vẫn còn một lỗi tọa độ chưa được xử lý.