Menjalankan Model 2.78 Trilion Parameter pada Laptop 8GB: Bedah kimi-k3-in-c
Menjalankan Model 2.78 Trilion Parameter pada Laptop 8GB: Bedah kimi-k3-in-c
Satu projek baharu dalam komuniti open-source yang membuat anda berhenti dan melihat: kimi-k3-in-c — enjin inferens Kimi K3 dalam C99 mudah alih, 176KB kod, tanpa BLAS, tanpa rangka kerja, tanpa GPU, menjalankan model 2.78 trilion parameter pada laptop 8GB biasa. Ini bukan kata-kata pemasaran: repositori membawa tangga pengesahan lengkap dan data ukuran — peak RSS terukur 8.24GB, dan output byte-identical dari mesin 8GB hingga 224GB — hanya jam yang berubah.
Versi 30 saat
kimi-k3-in-c: Apache-2.0, C99 tulen (tujuh fail C), tanpa GPU, tanpa rangka kerja. Checkpoint 1.56TB distrim dari cakera; 8GB RAM memadai untuk inferens. Kependaman membeli memori: 26.5 saat/token pada 8GB, 5.6 saat/token pada 128GB+. Seluruh suit ujian berjalan kira-kira satu minit tanpa checkpoint. Setiap angka di sini datang daripada ukuran yang diterbitkan repositori.
Apakah sebenarnya projek ini
kimi-k3-in-c dimulakan pembangun FareedKhan-dev di bawah Apache-2.0, kini versi 1.1.0. Satu ayat ringkasnya: menulis semula inferens Kimi K3 dengan C mudah alih paling ringkas, dan menghasilkan hasil sepadan pada sebarang bajet memori.
| Metrik | Nilai |
|---|---|
| Parameter | 2.78T (Kimi K3) |
| Checkpoint pada cakera | 1.56TB + trunk terpakej 109GB |
| Memori residen puncak (terukur) | 8.24GB |
| Saiz enjin | 176KB (tujuh fail C) |
| GPU | 0 |
| Platform | Linux x86-64 (rujukan), macOS/arm64, Windows x86-64 |
| ISA | AVX2 + FMA atau NEON; AVX-512 tidak diperlukan |
| Lesen | Apache-2.0 (enjin) |
Intinya: cakera ialah pintu gerbangnya, bukan komputer. Checkpoint memerlukan kira-kira 1.7TB ruang kosong; RAM bermula 8GB; GCC 9+ atau Clang 10+ memadai untuk bina. Ertinya, satu mesin pembangunan biasa tambah satu cakera besar boleh menjalankannya — tanpa kluster GPU.
Empat keputusan kejuruteraan
Model 2.8T menuntut memori kelas TB. Projek ini memampatkannya ke 8GB melalui empat keputusan:
Satu, pakar kekal dalam bentuk pakej 4-bit. Pemberat routed experts 1.45TB tidak pernah keseluruhan residen; ia didarab terus daripada bentuk pakej setengah bait. Ini berbeza dengan nyahmampat-dahulu-kira, yang menggandakan keperluan memori.
Dua, KDA attention dengan memori yang tidak berkembang. Attention konvensional berkembang linear dengan konteks dan meletup pada konteks panjang. KDA (attention berkeadaan) mengekalkan attention state pada saiz tetap, jadi overhed memori konteks panjang hampir sifar.
Tiga, MLA: satu latent menggantikan 96 head. KV cache ialah pemakan memori terbesar; MLA memampatkan KV berbilang head menjadi satu perwakilan latent, memangkas cache dengan ketara.
Empat, trunk strim plus cache LRU pakar. Trunk padat 93 lapis dibaca dari cakera mengikut keperluan (satu bacaan setiap lapis), dan pemberat pakar berada di sebalik cache LRU. Lebih banyak memori bermakna lebih banyak trunk residen; kurang memori bermakna lebih banyak bacaan cakera.
Mengapa output boleh byte-identical
Pemampatan bersifat lossy, tetapi laluan pengiraan adalah deterministik: nilai pakej 4-bit dijalankan melalui kontrak floating-point yang sama pada setiap bajet memori, dan penstriman setara secara matematik dengan residensi. Projek membuktikannya dengan tangga gate — oracle kecil dahulu, kemudian checkpoint 93 lapis penuh, kemudian penjanaan berterusan — dengan fixture yang dikomit supaya sesiapa pun boleh mengulang.
Tangga kependaman terukur
Ukuran yang diterbitkan (mesin sama: 124 teras, NVMe pantas; prompt pendek sama):
| RAM mesin | Masa setiap token | Apa yang berlaku |
|---|---|---|
| Laptop 8GB | 26.5 saat | Seluruh model distrim dari cakera setiap langkah |
| Laptop 32GB | 24.2 saat | Sebahagian model sudah residen |
| Desktop 64GB | 19.8 saat | Lebih banyak bahagian residen |
| Stesen kerja 128GB+ | 5.6 saat | Semuanya residen; tiada lagi tunggu cakera |
Dua larian kelompok sebenar daripada README:
# Laptop 8GB
$ ./bin/k3 ~/k3model --trunk ~/k3trunk --preset laptop \
--tok ~/k3model --prompt "The capital of France is" --gen 8 --incremental
8 tokens in 261.5 s, 32.69 s/token average
PEAK RSS for the whole run: 8.24 GB
# Stesen kerja 128GB+
$ ./bin/k3 ~/k3model --trunk ~/k3trunk --preset server \
--tok ~/k3model --prompt "def fibonacci(n):" --gen 28 --incremental
28 tokens in 299.3 s, 10.69 s/token average
PEAK RSS for the whole run: 127.92 GB
Yang penting bukan kelajuan mutlak tetapi bentuk lengkungnya: lebih banyak memori lebih laju, jawapan tidak berubah. Versi 1.1.0 menjadikan pengiraan setiap token kira-kira lapan kali lebih ringan berbanding 1.0.0, soalan susulan dalam sembang 3.9× lebih laju, prompt panjang separuh lebih murah — projek ini masih dioptimumkan dengan pantas.
Pengesahan satu minit — tanpa checkpoint
Pilihan reka bentuk paling berguna di sini: pengesahan mengambil kira-kira satu minit dan tidak memerlukan pemberat model.
git clone https://github.com/FareedKhan-dev/kimi-k3-in-c.git
cd kimi-k3-in-c
make -j # kompilasi: beberapa saat
make test # seluruh suit: bawah satu minit
Output mencetak tiga gate — teacher forcing 32/32, greedy decode 20/20, incremental decode (KV cache + keadaan KDA yang dibawa) 20/20 — ditutup dengan VERDICT: ENGINE MATCHES THE REFERENCE EXACTLY. Tanpa checkpoint anda tetap mengesahkan setiap kernel, cache penstriman, pembaca safetensors, pembaca konfigurasi, dan tokenizer berbanding rujukan PyTorch yang dikomit dalam repositori.
Dengan kata lain: anda boleh memastikan enjin boleh dipercayai sebelum membelanjakan ribuan dolar untuk storan. Itulah kejuruteraan open-source yang matang, dan tepatnya amalan yang patut diserlahkan oleh lini kandungan ekosistem.
Laluan ke teks sebenar
Untuk menjana teks anda memerlukan checkpoint Kimi K3 rasmi. Laluannya: klon repo → jalankan ./scripts/k3-doctor.sh (semak toolchain, padankan RAM dengan preset, ukur storan, cetak arahan seterusnya tepat) → muat turun checkpoint (1.56TB) → pakej trunk → jalankan.
--presetmemilih bajet:laptop(dari 8GB) hinggaserver(stesen kerja memori besar), tambah presetultrayang lebih baharu- Mod interaktif: projek menyediakan chat REPL (XTML) untuk perbualan berbilang giliran
- Pengesanan cache pakar:
python3 tools/sim_cache.py tests/fixtures/expert_trace.binmemain semula surih 100,096 permintaan pakar untuk menghasilkan semula jadual kapasiti cache — tanpa checkpoint
Apa erti projek ini untuk pembangun
Jika anda membina enjin inferens atau pengoptimuman sistem: ini rujukan implementasi hampir setaraf buku teks — dari membaca pengepala safetensors, menghurai konfigurasi, tokenizer bait-demi-bait, hingga varian attention dan penghalaan MoE. README Part II membina setiap komponen dari kosong, jauh lebih konkret daripada membaca kertas penyelidikan.
Jika mahu faham mengapa MoE "menjimatkan pengiraan tetapi bukan memori": projek menjawabnya melalui tindakan. Pemberat pakar mesti wujud di suatu tempat (di sini: cakera), tetapi setiap token mengaktifkan sebahagian sahaja, jadi pengiraan terhad. Kadar hit cache menentukan I/O cakera — itulah sebab mesin 128GB turun dari 26 saat ke 5.6 saat setiap token.
Jika mahu merasai K3 dengan kos rendah: secara jujur, 26 saat/token bukan pengalaman sembang. Nilai projek ada pada pembelajaran, uji kaji luar talian, dan soalan kejuruteraan memasukkan model gergasi ke dalam mesin kecil. Untuk perbualan sebenar, API awan lebih tepat — kimi-k3 milik EXAIV melayani model sama dengan kependaman beberapa saat.
| Senario | Pilih | Sebab |
|---|---|---|
| Production / sembang masa nyata | API awan (kimi-k3) | Respons beberapa saat, bil per token |
| Mempelajari dalaman MoE | kimi-k3-in-c | Kod boleh dibaca, ujian boleh diulang |
| Uji kaji luar talian / privasi | kimi-k3-in-c + checkpoint | Tempatan penuh, tiada kebergantungan rangkaian |
| Kelompok throughput tinggi | Rangka kerja inferens GPU | Kependaman strim-CPU tidak sesuai untuk throughput |
Membaca angka projek secara adil
Setiap angka prestasi dalam artikel ini datang daripada dokumentasi repositori sendiri di bawah docs/data/ — iaitu ukuran yang diterbitkan projek, bukan penanda aras bebas. Perbezaan ini penting semasa menilai sebarang enjin:
- Pendedahan perkakasan: ukuran diambil pada satu mesin (124 teras, NVMe pantas); cakera lebih perlambat menjadikan baris terikat-cakera lebih perlahan, yang turut dicatat projek
- Mana yang boleh disahkan, mana yang sekadar diukur: dakwaan ketepatan boleh disahkan sesiapa — klon, bina, jalankan suit tanpa pemberat berbanding oracle PyTorch yang dikomit. Dakwaan kependaman bergantung perkakasan
- Apa yang dipercayai dahulu: sifat byte-identical bersifat seni bina (laluan pengiraan deterministik) justeru kekal merentas mesin; masa mutlak tidak
Ini pendirian yang betul terhadap sebarang dakwaan prestasi open-source: ulang apa yang boleh diulang, baca selebihnya dengan konteks perkakasan di tangan. Repositori memudahkannya dengan menyertakan output ukuran mentah dan bukannya ringkasan pemasaran.
Dua perkara lagi yang patut dicatat sebelum anda memutuskan untuk terlibat. Pertama, projek ini membuktikan bahawa batas memori selalunya bukan batas keupayaan tetapi batas pilihan seni bina: dengan memindahkan pemberat ke cakera dan menyimpan hanya set kerja yang kecil, model kelas TB boleh dijalankan pada peranti yang secara nominal jauh di bawah spesifikasinya. Kedua, ia mengingatkan bahawa keterbukaan bukan sekadar soal pemberat — enjin yang boleh dibaca, diuji, dan diaudit memberi nilai yang tidak boleh digantikan oleh perkhidmatan tertutup, betapa pun selesanya perkhidmatan itu. Bagi pasukan yang bergantung pada satu pembekal, mempunyai laluan alternatif yang disahkan ialah satu bentuk daya tahan tersendiri.
FAQ
Adakah kimi-k3-in-c projek rasmi
Benarkah boleh berjalan pada RAM 8GB
Perlukah memuat turun checkpoint 1.56TB dahulu
Apa maksud output byte-identical
Apa kaitannya dengan API awan kimi-k3
Projek ekosistem Kimi lain yang patut diperhatikan
Apa yang dijawab artikel ini
- K3 berjalan pada laptop 8GB
- cara CPU inference berfungsi di sini
- cara disk streaming dilaksanakan
Peta senario ringkas
| Jika anda perlu | Pergi ke |
|---|---|
| faham projek | Empat keputusan kejuruteraan |
| lihat pengukuran | Prestasi terukur |
| jalankannya | Pengesahan satu minit |
Pandangan ke hadapan
Katalog dan weights terus berubah; konvensi integrasi dan panggilan di sini mengikut dokumen rasmi pada masa penerbitan.
Sumber dan pengesahan
Fakta utama dalam artikel ini datang daripada README projek kimi-k3-in-c dan checkpoint Kimi K3 dan disahkan pada 2026-11-09. ID model, harga dan ketersediaan mengikut katalog langsung platform — sengaja tidak menulis angka tetap yang cepat lapuk. Contoh kod mengikut kontrak API pada masa penerbitan; semak dokumen rasmi sebelum menyambung ke produksi.
Skop dan khalayak
Khalayak: pembangun yang mengkaji inference engine dan pemasangan tempatan. Skop: keputusan kejuruteraan dan data terukur projek. Tidak merangkumi: nasihat penalaan prestasi atau pemasangan komersial.
Nota editorial dan pembetulan
Ditulis oleh pasukan kandungan EXAIV daripada fakta yang boleh disahkan, dengan sumber dan kod disemak sebelum penerbitan. Jika ada yang lapuk atau salah, halaman keluaran rasmi dan katalog langsung yang muktamad — maklumkan melalui saluran maklum balas halaman supaya kami membetulkannya.
Bacaan berkaitan
- Panduan Kimi K3
- Pasang Kimi K3 open-weight
- Perbandingan quantizer GGUF
- Buku panduan pemasangan tempatan
- Model kos pengkomputeran tempatan