llama.cpp thử nghiệm mở rộng chuyên gia MoE lúc chạy mà không cần huấn luyện lại
Một nhánh cộng đồng của llama.cpp hiện cho phép các mô hình Mixture of Experts (MoE) thưa kích hoạt nhiều chuyên gia hơn trong quá trình suy luận, đánh đổi tốc độ để có thể cải thiện chất lượng.
Được dịch tự động từ bản gốc tiếng Anh.
Vào ngày 6 tháng 9 năm 2026, một tính năng thử nghiệm mới đã xuất hiện trong một fork cộng đồng của llama.cpp, cho phép các mô hình Mixture of Experts (MoE) thưa kích hoạt nhiều chuyên gia hơn trong quá trình suy luận mà không cần bất kỳ việc huấn luyện lại hay thay đổi trọng số nào. Được phát triển bởi đóng góp viên vagrillo và thử nghiệm trên Qwen 3.6 35B A4B+, bản sửa đổi này biến giới hạn định tuyến cố định thành một ngân sách thời gian chạy có thể điều chỉnh, mang đến một cách tiếp cận mới để cân bằng chi phí tính toán với chất lượng đầu ra cho các kỹ sư AI cục bộ.
Điều gì đã xảy ra
Đổi mới cốt lõi là sự chuyển dịch từ định tuyến Top-K tĩnh sang mở rộng chuyên gia động. Trong kiến trúc MoE tiêu chuẩn, một bộ định tuyến chọn một số lượng chuyên gia cố định, chẳng hạn như tám trong số ba mươi hai, để xử lý mỗi token. Thử nghiệm này cho phép hệ thống chọn thêm các ứng viên vượt quá giới hạn gốc đó, thực tế là mở rộng mạng lưới các đường dẫn thần kinh được tham vấn cho mỗi bước sinh văn bản. Việc triển khai không thay đổi các trọng số mô hình lưu trữ trong tệp GGUF nhưng thay đổi cách các trọng số đó được truy cập và tổng hợp trong quá trình truyền tiến (forward pass).
Cách tiếp cận này hiện chỉ giới hạn trong một nhánh cộng đồng và chưa được hợp nhất vào kho lưu trữ chính ggml-org/llama.cpp. Nó hỗ trợ nhiều backend tính toán khác nhau, nhằm mục đích tương thích rộng rãi thay vì chỉ tối ưu hóa cho GPU CUDA. Mặc dù đã được xác minh trên các mô hình Qwen cụ thể, tính năng này vẫn ở giai đoạn thử nghiệm sớm, nghĩa là các tham số và hành vi có thể thay đổi khi các nhà phát triển tinh chỉnh logic cho ngưỡng và kiểm soát theo từng lớp.
Cách thức hoạt động
Suy luận MoE tiêu chuẩn dựa vào một bộ định tuyến gán điểm số cho tất cả các chuyên gia có sẵn và chọn top K. Thử nghiệm này giữ nguyên lựa chọn chính nhưng thêm một giai đoạn thứ hai nơi các chuyên gia có điểm thấp hơn cũng được mời đóng góp. Để ngăn chặn những chuyên gia kém tự tin này chi phối đầu ra, các đóng góp của chúng được giảm nhẹ bằng chiến lược suy giảm (attenuation). Ảnh hưởng của các chuyên gia bổ sung có thể dao động từ gần như toàn bộ trọng số xuống còn năm mươi phần trăm, tùy thuộc vào điểm số ban đầu của chúng và đường cong suy giảm được cấu hình.
Quan trọng nhất, hệ thống hỗ trợ cấu hình theo từng lớp. Không phải tất cả các lớp transformer đều hưởng lợi như nhau từ việc mở rộng quyền truy cập chuyên gia; một số có phân bố định tuyến sắc nét nơi các lựa chọn hàng đầu rõ ràng, trong khi những lớp khác có hồ sơ điểm số phẳng hơn nơi ngữ cảnh bổ sung giúp ích. Bằng cách cho phép người dùng chỉ định những lớp nào nên mở rộng số lượng chuyên gia đang hoạt động, công cụ này cho phép phân bổ tài nguyên tính toán chi tiết hơn. Điều này có nghĩa là bạn có thể nhắm vào các lớp "nút cổ chai" nơi sự mơ hồ cao nhất mà không phải trả giá hiệu suất trên toàn bộ mạng.
Chi tiết chính
- Không cần huấn luyện lại: Phương pháp hoạt động hoàn toàn trong thời gian suy luận, giữ nguyên trọng số và kiến trúc mô hình.
- Đóng góp được suy giảm: Các chuyên gia bổ sung được đưa vào với trọng số giảm để duy trì sự ổn định và ưu tiên các đường dẫn có độ tin cậy cao.
- Kiểm soát theo lớp: Người dùng có thể xác định các chiến lược mở rộng khác nhau cho các lớp transformer khác nhau, tránh tăng chi phí đồng đều.
- Không phụ thuộc backend: Việc triển khai nhằm mục đích hỗ trợ tất cả các backend llama.cpp, không chỉ môi trường tăng tốc GPU.
- Đã thử nghiệm trên Qwen 3.6: Xác minh ban đầu được thực hiện trên mô hình Qwen 3.6 35B A4B+, mặc dù kết quả có thể khác nhau giữa các kiến trúc MoE khác.
- Trạng thái thử nghiệm: Tính năng này chưa nằm trong nhánh llama.cpp chính, vì vậy sự ổn định API và tên tham số có thể thay đổi.
Tại sao điều này quan trọng
Đối với các nhà phát triển xây dựng ứng dụng AI cục bộ, thử nghiệm này tách biệt dung lượng mô hình khỏi ngân sách suy luận. Theo truyền thống, bạn hoặc chấp nhận độ thưa cố định của một mô hình MoE đã được huấn luyện hoặc chuyển sang một giải pháp dày đặc hơn, chậm hơn. Cách tiếp cận này giới thiệu một phổ liên tục nơi bạn có thể đánh đổi độ trễ lấy phạm vi bao phủ. Nếu một tác vụ cụ thể, chẳng hạn như tạo mã phức tạp hoặc suy luận đa bước, yêu cầu truy xuất kiến thức rộng hơn, bạn có thể tạm thời tăng số lượng chuyên gia đang hoạt động để cải thiện độ bền vững mà không cần triển khai một mô hình hoàn toàn khác.
Tuy nhiên, sự linh hoạt này đi kèm với những đánh đổi kỹ thuật đáng kể. Kích hoạt nhiều chuyên gia hơn làm tăng áp lực băng thông bộ nhớ và các phép nhân ma trận, điều này có thể ảnh hưởng nghiêm trọng đến tốc độ token mỗi giây và độ trễ token đầu tiên. Đối với các ứng dụng tương tác thời gian thực, độ trễ có thể không chấp nhận được. Nhưng đối với xử lý lô ngoại tuyến, quy trình đánh giá, hoặc các kịch bản nơi độ chính xác là tối thượng so với tốc độ, núm điều chỉnh này cung cấp một đòn bẩy mạnh mẽ để chắt lọc những cải thiện nhỏ từ các mô hình hiện có.
Bạn có thể làm gì
- Nhân bản (clone) nhánh thử nghiệm từ kho lưu trữ của vagrillo và biên dịch nó với các cờ backend ưa thích của bạn được bật.
- Kiểm tra đầu ra trợ giúp dòng lệnh để xác định tên tham số hiện tại cho việc mở rộng chuyên gia, vì chúng chưa được chuẩn hóa.
- Bắt đầu với các cài đặt thận trọng, chẳng hạn như chỉ tăng số lượng chuyên gia đang hoạt động từ hai mươi lăm đến năm mươi phần trăm so với Top-K gốc.
- Áp dụng mở rộng có chọn lọc cho các lớp transformer giữa thay vì toàn bộ mạng để tránh tăng chi phí đồng đều.


