1 điểm bởi GN⁺ 2 giờ trước | 1 bình luận | Chia sẻ qua WhatsApp
  • Kimi K3 của Moonshot AI là mô hình open-weight với tổng cộng 2.8T tham số, 104B tham số hoạt động, hỗ trợ vision gốc và ngữ cảnh 1 triệu token; Unsloth cung cấp bản lượng tử hóa GGUF để chạy cục bộ
  • Suy luận full precision cần 1.56TB, nhưng Dynamic 1-bit UD-IQ1_S đạt khoảng 78.9% độ chính xác Top-1 ở 594GB, còn bản 2-bit UD-Q2_K_XL dung lượng 861.3GB đạt khoảng 90%
  • Kimi K3 là mô hình chỉ-thinking giữ lại dấu vết suy luận, không hỗ trợ chế độ Instant; có thể chọn "low", "high", "max" qua reasoning_effort và xử lý tối đa 1,048,576 token
  • Unsloth Studio tự động hóa offload RAM và phát hiện nhiều GPU; để chạy llama.cpp với tính năng vision cần dùng fork Unsloth dành cho Kimi K3
  • Để chạy UD-IQ1_S theo khuyến nghị cần tối thiểu 610GB RAM, và nhìn chung cần chuẩn bị RAM+VRAM tương đương kích thước file lượng tử hóa; nếu thiếu sẽ chậm đi đáng kể do disk offloading

Đặc tính mô hình và yêu cầu chạy cục bộ

  • Kimi K3 của Moonshot AI là mô hình open-weight 2.8T tham số nhắm tới coding, agent, ngữ cảnh dài và chat; khi suy luận sẽ kích hoạt 104B tham số
  • Hỗ trợ vision gốc và cửa sổ ngữ cảnh 1 triệu token, sử dụng MXFP4 cho trọng số MoE
  • Suy luận full precision cần 1.56TB dung lượng lưu trữ
  • Kimi-K3-GGUF có thể chạy trong Unsloth Studio hoặc llama.cpp
  • Có thể chạy trên NVIDIA DGX Station hoặc Mac Studio kết nối với thiết bị RAM 128GB
  • Nhu cầu phần cứng được tính theo tổng RAM và VRAM hoặc unified memory, với dải cấu hình 610GB~1.6TB

Cách triển khai GGUF

  • Được triển khai dựa trên llama.cpp PR, còn fork của Unsloth bổ sung hỗ trợ vision và sửa lỗi
  • Vision tower tương tự Kimi K2.5 nhưng có các khác biệt sau
    • Dùng RMSNorm và không có bias
    • QKV hợp nhất là non-square, tức qkv width != n_embd
    • Áp dụng normalization sau projector
  • Với batch lớn, ngân sách n_tokens * 40 bị lỗi nên đã tăng lên n_tokens * 160
  • Chuyển template chat của Kimi sang định dạng Jinja
  • Cấu hình huấn luyện mặc định bật preserved thinking, nên không xóa mà giữ nguyên quá trình suy luận

Phương pháp lượng tử hóa và chất lượng

  • UD-Q8_K_XL giữ nguyên cấu hình MXFP4 cho trọng số MoE và BF16 cho phần trọng số còn lại, nên được xem là lượng tử hóa không mất mát
  • UD-Q4_K_XL lưu một số tensor dư như tensor normalization dưới dạng Q8_0, trừ các tensor khác, nên gần với full precision và có quy mô 1.51TB
  • Bản không mất mát UD-Q8_K_XL là 1.56TB, lớn hơn 50GB so với UD-Q4_K_XL
  • Các kết quả lượng tử hóa chính như sau
    • UD-IQ1_S: 594.0GB, perplexity 2.5789, độ chính xác Top-1 78.875±0.107%
    • UD-IQ1_M: 648.9GB, perplexity 2.3639, độ chính xác Top-1 81.219±0.103%
    • UD-IQ2_XXS: 711.1GB, perplexity 2.1266, độ chính xác Top-1 84.127±0.096%
    • UD-Q2_K_XL: 861.3GB, perplexity 1.7359, độ chính xác Top-1 90.390±0.077%
    • UD-Q4_K_XL: 1,510GB, perplexity 1.4579
    • UD-Q8_K_XL: 1,560GB, perplexity 1.4581
  • Việc tạo imatrix và hiệu chỉnh lượng tử hóa dùng bản UD-Q8_K_XL không mất mát 1.56TB
  • Dynamic 1-bit nhỏ hơn 62% so với bản không mất mát nhưng vẫn đạt khoảng 79% độ chính xác Top-1
  • Bản 2-bit UD-Q2_K_XL nhỏ hơn 45% nhưng đạt khoảng 90% độ chính xác
  • Kích thước bản 1-bit là 553.2GiB; hiện vẫn đang xem có thể giảm xuống dưới 512GiB mà không làm hỏng mô hình hay không
  • So sánh với lượng tử hóa từ cộng đồng

    • Bản IQ1_M từ cộng đồng 618.9GB lớn hơn UD-IQ1_S 594GB nhưng perplexity tăng lên 54.56, tức tệ hơn 21 lần
    • Bản IQ2_XXS từ cộng đồng đạt perplexity 96 ở 725GB, trong khi bản Unsloth đạt 2.12 ở 711GB, tạo ra chênh lệch khoảng 45 lần
    • Lượng tử hóa động và hiệu chỉnh phù hợp quyết định đồng thời kích thước file lẫn chất lượng

Cấu hình suy luận và hiệu năng

  • Kimi K3 là mô hình chỉ-thinking, preserve_thinking luôn được bật và mức suy luận mặc định là max
  • Không hỗ trợ chế độ Instant; có thể chỉ định "low", "high", "max" trong trường yêu cầu reasoning_effort
  • Độ dài ngữ cảnh tối đa là 1,048,576 token và trên Unsloth có thể chuyển giữa ba mức suy luận
  • Cấu hình suy luận gồm temperature=1.0, top_p=0.95 hoặc top_p=1.0
  • Khi mô hình đã được nạp vào bộ nhớ, có thể đạt khoảng 20 token/giây khi sinh trên B200 và throughput trên 120 token/giây
  • Xét cân bằng giữa kích thước và chất lượng, khuyến nghị bản 594GB UD-IQ1_S
  • Tổng RAM và VRAM nên xấp xỉ kích thước file lượng tử hóa; vẫn có thể chạy nếu thiếu nhưng sẽ chậm đi nhiều do disk offloading

Chạy trong Unsloth Studio

  • Unsloth Studio là web UI mã nguồn mở cho AI cục bộ, hỗ trợ macOS, Windows, Linux
  • Có thể tìm kiếm, tải xuống, chạy mô hình GGUF và safetensors, đồng thời cung cấp suy luận CPU+GPU dựa trên llama.cpp
  • Tự động phát hiện offload RAM và cấu hình nhiều GPU
  • Lệnh cài đặt và chạy như sau
# macOS, Linux, WSL
curl -fsSL https://unsloth.ai/install.sh | sh


# Windows PowerShell
irm https://unsloth.ai/install.ps1 | iex

unsloth studio
  • Sau khi chạy, mở http://127.0.0.1:8888 hoặc địa chỉ được hiển thị trong trình duyệt; lần chạy đầu tiên sẽ tạo mật khẩu để bảo vệ tài khoản
  • Cũng hỗ trợ chạy HTTPS thông qua Cloudflare tunnel miễn phí
unsloth studio --secure
  • Trong Model hub, tìm Kimi K3 rồi tải bản lượng tử hóa mong muốn để chạy
  • Các tham số suy luận được thiết lập tự động, nhưng có thể đổi thủ công mức suy luận, độ dài ngữ cảnh, template chat, v.v.
  • Xem chi tiết trong hướng dẫn suy luận Unsloth Studio

Chạy trong llama.cpp

  • Để suy luận cục bộ nhanh, bao gồm cả CPU, dùng llama.cpp
  • Để bật vision cho Kimi K3, cần build fork riêng của Unsloth thay vì bản phổ thông
git clone https://github.com/unslothai/llama.cpp
cd llama.cpp
git fetch origin pull/48/head:kimi-k3-fullsize-vision
git checkout kimi-k3-fullsize-vision
cd ..
cmake llama.cpp -B llama.cpp/build \
    -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON
cmake --build llama.cpp/build --config Release -j --clean-first \
    --target llama-cli llama-mtmd-cli llama-server llama-gguf-split
cp llama.cpp/build/bin/llama-* llama.cpp
  • Nếu không có GPU hoặc chỉ dùng suy luận CPU thì đổi sang -DGGML_CUDA=OFF
  • Apple Mac và thiết bị Metal cũng dùng -DGGML_CUDA=OFF, và hỗ trợ Metal được bật mặc định
  • Có thể để llama.cpp tự tải mô hình rồi chạy trực tiếp, nhưng quá trình tải xuống có thể rất chậm
export LLAMA_CACHE="unsloth/Kimi-K3-GGUF"
./llama.cpp/llama-cli \
    -hf unsloth/Kimi-K3-GGUF:UD-IQ1_S \
    --temp 1.0 \
    --top-p 0.95
hf download unsloth/Kimi-K3-GGUF \
    --local-dir unsloth/Kimi-K3-GGUF \
    --include "*mmproj-BF16*" \
    --include "*UD-IQ1_S*"
  • Nếu cần bản không mất mát, đổi mẫu tải xuống thành *UD-Q8_K_XL*
  • Có thể chỉ định file cục bộ và vision projector để chạy ở chế độ hội thoại
./llama.cpp/llama-cli \
    --model unsloth/Kimi-K3-GGUF/UD-IQ1_S/Kimi-K3-UD-IQ1_S-00001-of-00014.gguf \
    --mmproj unsloth/Kimi-K3-GGUF/mmproj-BF16.gguf \
    --temp 1.0 \
    --top-p 0.95
  • Hỗ trợ không chỉ truy vấn văn bản mà còn đầu vào hình ảnh thông qua mmproj-BF16.gguf

Phạm vi benchmark

  • Đánh giá bao gồm các lĩnh vực suy luận/tri thức, coding, agent và vision
  • Các benchmark được dùng gồm GPQA Diamond, HLE-Full, DeepSWE, Terminal-Bench 2.1, BrowseComp, GDPval-AA v2, OSWorld 2.0, MMMU-Pro, MathVision
  • Trong kết quả DeepSWE, Kimi K3 cho thấy hiệu năng hiệu quả

1 bình luận

 
plumpmath 22 phút trước

Chạy thử thì thấy ngon cực kỳ luôn~ giờ chỉ cần có Tangjjamyeon & Dakkang nữa là được