Skip to content

Latest commit

 

History

History
961 lines (807 loc) · 56.4 KB

README.id.md

File metadata and controls

961 lines (807 loc) · 56.4 KB

colibrì: engine mungil, model raksasa

Situs web Rilis terbaru

Situs Web · Discord · English · 简体中文 · 繁體中文 · Italiano · 日本語 · Bahasa Indonesia · Português (Brasil)

Engine mungil, model raksasa. colibri menjalankan model terbuka yang sangat besar pada mesin yang sudah Anda miliki. Model mixture-of-experts dengan ratusan miliar parameter hanya menggunakan sebagian kecil parameternya untuk setiap token, sehingga colibri menyimpan bagian itu di RAM dan membaca sisanya, yaitu para pakar, dari disk ketika model membutuhkannya. C murni, satu file per keluarga model, tanpa memerlukan GPU.

Saat ini ada tiga belas engine yang berjalan. Sepuluh untuk model bahasa: GLM-5.2/5.3 (yang juga menjalankan Mistral-Large-4), GLM-5.3-Flash, Inkling, Kimi K3, DeepSeek V4 Flash, DeepSeek V4.1 Flash, MiMo-V2.6 Flash (dan Pro), Qwen3.8-Flash-Next, Qwen3.6 (yang juga menjalankan Qwen3-Coder, Qwen3.8-27B dense, Flint, Muse Spark Open, dan LFM3-VL), dan OLMoE. Satu menggambar: Qwen-Image-2.1. Dua menjawab keputusan: Laya dan GLiNER2.5-Decide, dengan model keputusan ketiga, Clef, pada engine Qwen3.6. Model bahasa juga berjalan dari file GGUF yang sudah dipublikasikan, dibaca apa adanya (GGUF), di CPU, di GPU apa pun lewat Vulkan, dan di kartu NVIDIA lewat CUDA. Mana yang cocok untuk mesin saya

$ ./coli chat
  colibri v2.1.0 · GLM-5.2 · 744B MoE · int4 · streaming CPU
  ✓ ready in 32s · resident 9.9 GB
  › ciao!
  ◆ Ciao! Come posso aiutarti oggi?

Buy me a coffee
colibri gratis dan open source. Jika colibri sudah mendapat tempat di mesin Anda, secangkir kopi membantu membiayai engine berikutnya dan peningkatan kecepatan berikutnya.

Mulai dalam satu langkah

Anda setidaknya memerlukan komputer dengan RAM 8 GB (16 GB atau lebih disarankan), ruang kosong 22 GB di disk untuk model terkecil, dan koneksi internet. Kartu grafis bersifat opsional.

Windows

  1. Di halaman ini, klik Code, lalu Download ZIP, kemudian ekstrak file tersebut.
  2. Klik dua kali START-HERE.bat di folder hasil ekstraksi. Jika Python belum tersedia, skrip akan menawarkan untuk menginstalnya.

Linux (Ubuntu dan Debian; distribusi lain memiliki paket yang sama dengan nama masing-masing)

sudo apt install git python3 build-essential
git clone https://github.com/JustVugg/colibri
cd colibri
./start-here.sh

macOS (dengan Homebrew)

xcode-select --install
brew install libomp git python
git clone https://github.com/JustVugg/colibri
cd colibri
./start-here.sh

Anda menjawab satu pertanyaan, yaitu model mana yang ingin digunakan, dan menekan Enter akan menerima rekomendasi. Kemudian proses penyiapan:

  1. memeriksa mesin Anda: RAM, ruang kosong di disk, CPU, dan GPU;
  2. merekomendasikan model yang muat: bagian model yang selalu berada di RAM, ditambah cache minimum pakar, harus muat di RAM Anda, dan unduhannya harus muat di disk;
  3. menyiapkan engine: engine akan di-build untuk mesin Anda jika compiler tersedia; jika tidak, versi prebuilt akan diunduh, yang berjalan di CPU dan, di Linux dan Windows, juga di GPU Vulkan. Build untuk GPU dibuat ketika memberikan keuntungan: CUDA untuk kartu NVIDIA di Linux jika CUDA toolkit sudah terinstal, jika tidak maka Vulkan. Pada GPU diskret, build GPU selalu digunakan; pada GPU terintegrasi yang berbagi RAM dengan CPU, build GPU hanya digunakan untuk model yang terbukti lebih cepat di sana (Qwen3.6, Qwen3-Coder, dan Qwen3.8-Flash-Next). Jika ada paket yang belum tersedia, proses penyiapan menampilkan perintah yang tepat untuk menginstalnya lalu melanjutkan menggunakan CPU; jalankan kembali proses penyiapan setelahnya dan engine akan di-build ulang untuk GPU;
  4. mengunduh model dengan indikator progres dan dukungan resume: hentikan kapan saja, jalankan kembali, dan unduhan akan dilanjutkan dari tempat sebelumnya berhenti;
  5. menjalankan colibri dan membuka dashboard di browser Anda, serta menampilkan alamat yang dapat digunakan aplikasi lain:
Starting colibri
  Browser:             http://127.0.0.1:8000/
  OpenAI base URL:     http://127.0.0.1:8000/v1
  Anthropic base URL:  http://127.0.0.1:8000
  stop: press Ctrl+C here (or close this window)

Pada penggunaan berikutnya, jalankan kembali START-HERE.bat atau ./start-here.sh: colibri akan langsung berjalan tanpa mengunduh atau melakukan build lagi. c/coli status menunjukkan apa yang sudah terinstal dan apakah sedang berjalan, sedangkan c/coli stop menghentikannya (c\coli.cmd status dan c\coli.cmd stop di Windows).

Opsi ditempatkan setelah ./start-here.sh atau START-HERE.bat:

Opsi Fungsinya
--list menampilkan setiap model untuk mesin ini, serta alasan jika suatu model tidak muat
--model ID menginstal model tersebut (id tersedia di tabel di bawah)
--yes tanpa pertanyaan: gunakan rekomendasi
--dir DIR menyimpan model di disk lain (default ~/colibri-models)
--backend vulkan, cuda atau cpu memilih sendiri build engine; --no-gpu sama dengan --backend cpu
--model-dir DIR menggunakan model yang sudah Anda unduh
--reconfigure memilih model lain

Penjelasan mendetail mengenai setiap langkah: docs/quickstart.md.

Jika terjadi masalah

Yang Anda lihat Yang harus dilakukan
proses berhenti saat mengunduh jalankan kembali perintah yang sama: unduhan dilanjutkan dari byte yang sudah tersimpan di disk
to use the GPU through ..., first run: <command> jalankan perintah tersebut, lalu jalankan kembali proses penyiapan: engine akan di-build ulang untuk GPU tanpa mengunduh ulang
the ... build failed, misalnya Unsupported gpu architecture ketika CUDA toolkit yang terinstal tidak lagi mendukung kartu tersebut proses penyiapan terlebih dahulu memeriksa toolkit terhadap kartu dan memilih Vulkan secara otomatis sambil menjelaskan alasannya; jika build masih gagal, proses tersebut menawarkan pilihan berikutnya (Vulkan, lalu CPU). ./start-here.sh --backend vulkan memaksa penggunaan Vulkan; --no-gpu tetap menggunakan CPU
needs N GB free for the download gunakan --dir dengan folder pada disk yang lebih besar
di WSL, folder model berada di bawah /mnt/c simpan di disk Linux (default, ~/colibri-models): /mnt/c berkali-kali lebih lambat
hal lainnya c/coli logs -n 50 menampilkan log server dan c/coli logs --install menampilkan log proses penyiapan; buka issue dengan menyertakan baris terakhir yang ditampilkan proses penyiapan

Biarkan asisten AI Anda menyiapkannya

Jika Anda menggunakan asisten coding AI, asisten tersebut dapat melakukan semua ini untuk Anda. Minta asisten tersebut:

Siapkan colibri di mesin ini dengan mengikuti docs/AI_SETUP.md dari https://github.com/JustVugg/colibri

docs/AI_SETUP.md memberikan setiap langkah kepada asisten sebagai perintah dengan hasil yang dapat dibaca mesin, dan memerintahkannya untuk meminta persetujuan Anda sebelum mengunduh model atau menginstal paket sistem. Asisten yang mendukung Model Context Protocol dapat menggunakan server MCP colibri sebagai gantinya: coli mcp menyediakan tools untuk mendeteksi hardware, merekomendasikan model, menginstal, menjalankan, menghentikan, dan memeriksanya (docs/MCP_SERVER.md).

Atau secara manual

Untuk memilih sendiri setiap langkah (rilis prebuilt atau build dari source, model apa pun dari tabel di bawah, lalu coli chat, coli web, atau coli serve), lihat Instal secara manual, atau panduan Quick Start untuk langkah demi langkah pada setiap platform.

Apa itu colibri, dan mengapa

Model mixture-of-experts berukuran sangat besar di disk tetapi kecil untuk setiap token. GLM-5.2 memiliki 744B parameter, menggunakan sekitar 40B untuk setiap token, dan hanya sekitar 11 GB dari bagian tersebut yang berubah dari satu token ke token berikutnya: pakar yang dirutekan.

hanya sekitar 5.4% parameter yang aktif per token

Jadi, model tidak harus muat di memori cepat; model harus ditempatkan. Bagian dense (attention, shared experts, embeddings) tetap berada di RAM. Pakar yang dirutekan tetap berada di disk dan dibaca ketika router memintanya, melalui cache yang mempelajari pakar mana yang digunakan oleh pekerjaan Anda. GPU, jika tersedia, menyimpan pakar yang paling sering digunakan dan layer dense. Lokasi sebuah bobot memengaruhi seberapa cepat jawaban diberikan, bukan bobot atau keputusan router mana yang menghasilkannya.

Mengapa: agar model sebesar ini dapat dijalankan pada hardware yang sudah dimiliki orang, agar cara kerjanya dapat diamati (dashboard menampilkan setiap pakar saat aktif), dan agar engine tetap cukup kecil sehingga siapa pun dapat mengukurnya dan membuatnya lebih cepat. colibri juga merupakan platform riset terbuka: sebuah optimisasi hanya layak digunakan jika didukung pengukuran end-to-end yang dapat direproduksi, dan kebijakan default tidak pernah diam-diam mengubah presisi model atau semantik router. Memori cepat yang lebih sedikit dapat mengurangi kecepatan; hal itu tidak boleh diam-diam mendefinisikan ulang model. Cara kerjanya menjelaskan detailnya.

Model mana yang cocok untuk mesin saya

Proses penyiapan merekomendasikan model paling kapabel yang dapat berjalan dari RAM pada mesin Anda, lalu mencantumkan tepat di bawahnya model yang lebih besar yang melakukan streaming dari disk. ./start-here.sh --list menampilkan semuanya untuk mesin Anda. Tabel berikut mengikuti katalog milik proses penyiapan (c/setup_catalog.py); ukuran unduhan adalah ukuran yang dicantumkan Hugging Face untuk setiap repository.

  • RAM terdiri dari dua angka: di bawah angka pertama model tidak dapat dijalankan, sedangkan mulai dari angka kedua model berjalan seperti yang telah diukur.
  • GPU menunjukkan apa yang dapat di-build oleh proses penyiapan untuk engine tersebut (GPU). termasuk terintegrasi berarti engine juga menggunakan GPU terintegrasi, karena engine tersebut terukur lebih cepat di sana; engine lain hanya menggunakan GPU diskret.
  • Hasil pengukuran adalah hasil yang diukur pada mesin yang disebutkan, berupa kecepatan decode untuk model chat. Huruf-hurufnya merujuk pada mesin yang dicantumkan di bawah tabel. Kolom kosong berarti belum ada yang mengukurnya.

Model kecil, yang berjalan dari RAM

Model --model Unduhan RAM GPU Hasil pengukuran
Qwen3.6-35B-A3B: chat dengan thinking dan tools qwen36-35b 23 GB 10 / 20 GB CUDA, Vulkan (termasuk terintegrasi) 6.0 tok/s pada CPU, 9.9 dengan Vulkan pada GPU terintegrasi (A); 30.0 dengan CUDA (C)
Qwen3-Coder-30B-A3B: kode dan tool calls, tanpa thinking qwen3-coder-30b 19 GB 8 / 18 GB CUDA, Vulkan (termasuk terintegrasi) 8.5-9.6 tok/s dengan semua pakar di RAM, 5.1 dengan 32 per layer (A, CPU)
Qwen-Image-2.1: teks ke gambar, lisensi nonkomersial qwen-image-2.1 33 GB 12 / 18 GB Vulkan satu gambar 768x512 dalam 2 min 40 s (8 core Zen 4, CPU)

Model besar, yang pakarnya melakukan streaming dari disk (disk menentukan kecepatan: drive NVMe yang cepat paling membantu)

Model --model Unduhan RAM GPU Hasil pengukuran
DeepSeek V4 Flash REAP 150B: 132 dari 256 pakar deepseek-v4-flash-reap 85 GB 16 / 32 GB CUDA, Vulkan
DeepSeek V4 Flash (284B): tools deepseek-v4-flash 167 GB 16 / 32 GB CUDA, Vulkan 0.93 tok/s dengan 32 GB (Ryzen 7 5800X), 1.24 dengan 63 GB (Ryzen 9 5950X), hanya CPU; 1.5-1.6 dengan CUDA (RTX 5080, 32 GB, dua NVMe)
MiMo-V2.6 Flash (309B): vision dan tools mimo-v2.6-flash 172 GB 32 / 52 GB Vulkan 2.34-3.37 tok/s (A, CPU)
Qwen3.8-Flash-Next (125B + 51B n-gram): vision dan tools qwen38-flash-next 186 GB 24 / 32 GB CUDA, Vulkan (termasuk terintegrasi) 1.91-2.56 tok/s dengan 32-96 pakar per layer; 3.99 dengan pakar int4 opsional (A, CPU)
GLM-5.2 (744B): model referensi, dengan MTP head glm-5.2 429 GB 16 / 24 GB CUDA, Vulkan 0.05-0.1 tok/s cold pada laptop 25 GB; 1.83 pada Ryzen AI Max+ 395 dengan 128 GB; 9.0-9.2 pada 6x RTX 5090
GLM-5.3 (744B): engine yang sama, tanpa MTP head glm-5.3 419 GB 16 / 24 GB CUDA, Vulkan
Inkling (975B): pakar int4, bobot dense bf16 inkling 514 GB 120 / 128 GB sebagaimana diunduh; 25 GB setelah konversi dense CUDA, Vulkan 0.25 tok/s (Ryzen 9 7900, 187 GB, RTX A6000)
MiMo-V2.6 Pro (1.02T): vision dan tools mimo-v2.6-pro 564 GB 54 / 64 GB Vulkan 0.66-0.79 tok/s (A, CPU)
Kimi K3 (2.8T): yang terbesar kimi-k3 1.56 TB 32 / 64 GB CUDA, Vulkan sekitar 9.4 s per token, pakar dibaca pada 6.3 GB/s

Secara manual: langkah konversi atau persiapan setelah unduhan

Model Unduhan, lalu di disk RAM GPU Hasil pengukuran
OLMoE (7B): kecil, untuk mempelajari tools 14 GB, 7 GB setelah konversi ke int8 8 GB Vulkan 22-23 tok/s (A, CPU)
Qwen3.8-27B (dense): teks dan gambar 56 GB, 51 GB setelah konversi 20 GB dalam int4, 30 GB dalam int8 Vulkan 3.45 tok/s dalam int4, 2.1 dalam int8 (server CPU 16-thread)
GLM-5.3-Flash (321B): vision dan tools 328 GB, dikonversi shard demi shard menjadi 195 GB 25 GB CUDA, Vulkan sekitar 20 s per token saat warm, 44 s saat cold (6 core, 25 GB, disk biasa)
DeepSeek V4.1 Flash (552B): vision dan tools, tanpa konversi tetapi memerlukan persiapan satu kali 510 GB sekitar 18 GB ditambah cache pakar (peak 24.8 GB dengan 8 per layer) Vulkan 0.21-0.24 tok/s (server CPU 16-thread yang menyimpan 68% pakar)

Dari GGUF: file yang sudah dipublikasikan, dibaca apa adanya

./coli import menerima file pertama dari sebuah GGUF (bagian lainnya di sebelahnya) dan menulis direktori model di sampingnya; lalu direktori itu dipakai untuk --model, seperti model lain (gguf.md). Tidak ada yang dikonversi atau dikuantisasi ulang: blok berjalan seperti yang disimpan file, dari IQ1_S sampai Q8_0, F16, BF16, dan MXFP4. Engine semua model chat di atas juga membaca GGUF (arsitekturnya); empat model ini datang sebagai GGUF:

Model GGUF GPU Terukur
Mistral-Large-4 (1T, 52B aktif): teks, gambar, penalaran, dan tool unsloth, UD-IQ1_S 233 GB CUDA, Vulkan 1.34-1.36 tok/s dengan CUDA, 1.16-1.17 dengan Vulkan (D)
Muse Spark Open (816B, 42B aktif): teks dan tool, di bawah perjanjian lisensi Meta unsloth, dari UD-IQ1_S 176 GB sampai UD-Q4_K_XL 505 GB CUDA, Vulkan 1.55-1.58 tok/s dengan Vulkan, 1.34-1.40 dengan CUDA, 0.83-0.89 di CPU (D)
Flint (40B, 2.5B aktif): teks dan tool, Apache 2.0 unsloth, dari UD-IQ1_M 11.4 GB sampai BF16 79.6 GB CUDA, Vulkan UD-Q4_K_XL: 77.4 tok/s dengan CUDA, 77.7 dengan Vulkan, 15.8 di CPU (D)
LFM3-VL-2B: teks, gambar, dan tool, LFM Open License LiquidAI, dari QAD-Q4_0 sampai BF16 (atau checkpoint yang dikonversi) CUDA, Vulkan Q4_K_M: 235.1 tok/s dengan CUDA, 214.1 dengan Vulkan, 34.5 di CPU (D)

Model yang lebih besar dari tabel di atas, dari GGUF-nya, di mesin yang sama: Benchmark.

Model keputusan (menjawab pertanyaan System One, bukan untuk chat)

Model Unduhan, lalu di disk RAM GPU Hasil pengukuran
Laya (Convai Innovations), bahasa Inggris 0.85 GB 1.7 GB CPU, CUDA 219 ms untuk satu pertanyaan, 882 ms untuk tiga (B); dua belas dalam 0.69 s dengan CUDA, 11.4-13.0 s di CPU (D)
GLiNER2.5-Decide (fastino), bahasa Inggris 1.95 GB 1.9 GB CPU, CUDA 294 ms untuk satu pertanyaan, 897 ms untuk tiga (B, under load); dua belas dalam 0.16-0.21 s dengan CUDA, 2.0-2.6 s di CPU (D)
Clef (Cloudflare): Qwen3.8-27B dengan decision head, juga dapat chat 55 GB, 52 GB setelah konversi 19 GB dalam int4 hingga 55 GB dalam f16 CPU 20.4 s per request dalam int8 (A)

Mesin yang digunakan: A desktop Ryzen 7 PRO 8700GE (8 core, 61-64 GB DDR5, NVMe, Radeon 780M terintegrasi); B laptop i7-1355U; C RTX 3070 8 GB dalam mesin Threadripper 3945WX, dengan layer dense dan layer DeltaNet pada kartu (container int4 per-row); D i5-13500 dengan RAM 62 GB, RTX PRO 4000 Blackwell SFF (24 GB), dan dua NVMe dalam array md: mesin untuk tabel benchmark. Setiap angka berasal dari halaman model masing-masing di docs/ atau dari tabel benchmark, beserta pengaturan yang tepat.

Setiap keluarga memiliki halamannya sendiri: qwen36.md (Qwen3.6, Qwen3-Coder, Qwen3.8-27B, Flint, Muse Spark Open, LFM3-VL), mistral-large4.md, gguf.md, qwen38.md, deepseek-v4.md, deepseek-v41.md, mimo.md, glm53-flash.md, inkling.md, kimi_k3.md, qwen-image.md, laya.md, gliner_decide.md, clef.md, dan GLM-5.2 di Quick Start. Checkpoint dengan arsitektur yang sama seperti yang didukung, misalnya KAT-Coder v2.5 pada engine Qwen3.6, dapat dijalankan tanpa perubahan.

GPU

Tidak memerlukan GPU

Setiap engine berjalan di CPU tanpa perlu menginstal apa pun lagi. GPU adalah tempat yang lebih cepat untuk menyimpan bobot, bukan suatu keharusan: untuk model besar, disk menentukan kecepatannya; untuk model kecil, RAM.

Vulkan: GPU apa pun

Setiap engine MoE dapat menggunakan GPU apa pun dengan driver Vulkan 1.2 (AMD, Intel, NVIDIA, terintegrasi maupun diskret) dalam dua cara:

  • expert tier: cache pakar yang dirutekan di memori GPU, diisi saat startup dari pakar yang digunakan percakapan Anda sebelumnya dan terus beradaptasi ketika Anda chat. GPU menghitung pakar yang disimpannya sementara CPU menghitung sisanya;
  • dense chain: satu layer utuh direkam sebagai satu submission GPU, dengan running state model tetap berada di GPU dari satu layer ke layer berikutnya.

Diukur pada Radeon 780M terintegrasi milik mesin A, dengan file model dikeluarkan dari page cache sebelum setiap run, dan 100 token di-decode (vulkan.md):

CPU Vulkan, expert tier Vulkan, tier dan dense chain
Qwen3.6-35B-A3B, decode 6.0 tok/s 8.0 tok/s 9.9 tok/s
Qwen3.6-35B-A3B, prompt 512 token 35.7 s 12.2 s 9.5 s
Qwen3.8-Flash-Next (pakar int4), decode 3.5 tok/s 3.8 tok/s 3.2 tok/s
Qwen3.8-Flash-Next, prompt 512 token 43.6 s 38.7 s 30.1 s
OLMoE, decode (warm) 23.1 tok/s 12.8 tok/s 17.3 tok/s

GPU terintegrasi berbagi RAM dengan CPU. Keuntungan yang diberikannya adalah mengurangi pekerjaan dan pembacaan disk untuk pakar yang disimpannya, sehingga bermanfaat pada model seperti Qwen3.6; sebaliknya, model kecil yang pakarnya sudah berada di RAM, seperti OLMoE, dapat menjadi lebih lambat. Karena itu, proses penyiapan hanya mengaktifkan Vulkan pada GPU terintegrasi untuk Qwen3.6, Qwen3-Coder, dan Qwen3.8-Flash-Next, dan setiap engine memutuskan sendiri apakah dense chain dijalankan di sana (Qwen3.6 ya, Qwen3.8 tidak). --backend vulkan tetap meminta Vulkan secara eksplisit.

Menyalakan atau mematikan GPU. coli setup --backend vulkan memakai GPU untuk model apa pun, dan coli setup --backend cpu (atau --no-gpu) menjalankan semuanya di CPU. Engine yang di-build dengan Vulkan memakai GPU hanya jika ada COLI_VULKAN=1 di environment coli chat, serve atau web (proses penyiapan mengaturnya ketika memilih Vulkan); tanpanya, engine berjalan di CPU. Dengan GPU menyala, COLI_VK_CHAIN=0 mempertahankan expert tier dan menjalankan layer dense di CPU. Pada GPU terintegrasi, coba keduanya: pada laptop dengan Intel Iris Xe (Core i7-1355U), Qwen3.6 mendekode 2,1 tok/s di CPU, 1,7 sampai 1,9 dengan Vulkan, dan 2,1 dengan dense chain dimatikan.

Pada GPU diskret, setup membangun Vulkan untuk setiap engine (CUDA lebih dulu, jika engine memilikinya dan toolkit terpasang), dengan layer dense di kartu. Itulah kasus yang menjadi tujuan desainnya. Pada RTX PRO 4000 (24 GB, mesin D), Qwen3.6-35B-A3B melakukan decode 92.9 tok/s dan membaca prompt pada 2076, OLMoE pada 299.4 dan 6867 (tabelnya). Model yang lebih besar dari kartu menyimpan pakar yang tidak muat di kartu dalam pool di RAM, dan pada setiap langkah CPU menghitung pakar itu sementara kartu menghitung miliknya, dalam frame yang sama: Qwen3.8-Flash-Next IQ2_XS (68 GB) melakukan decode 50.6 tok/s (vulkan.md). Seorang pengguna mengukur Qwen3.6 pada 17 sampai 19 tok/s di Tesla V100 16 GB (#1852). Angka dari kartu Anda sangat diharapkan.

Kartu tanpa Resizable BAR kini dapat digunakan. Kartu seperti itu (semua kartu Turing, kartu Ampere dengan firmware peluncurannya, kartu AMD lama dengan opsi tersebut dimatikan) hanya memungkinkan CPU menulis langsung ke sekitar 256 MB memori kartu tersebut; colibri kini menyalin bobot melalui staging buffer secara mandiri. Jalur ini diuji dengan memaksanya dan dengan mengemulasikan window kecil pada tiga perangkat, dan tidak menimbulkan biaya yang terukur pada 780M; jalur ini belum diukur pada kartu tanpa Resizable BAR (vulkan.md).

CI memeriksa jalur Vulkan setiap engine terhadap token CPU pada software driver. GPU menjumlahkan angka dalam urutan yang berbeda, dan mempertahankan beberapa aktivasi dalam f32 ketika CPU membulatkannya, sehingga jawaban panjang dapat menyimpang satu kata dari hasil CPU (vulkan.md).

CUDA: kartu NVIDIA

Setup membangun CUDA di Linux saat CUDA toolkit terpasang, untuk engine yang memiliki jalur CUDA: GLM-5.2/5.3 dan Mistral-Large-4, GLM-5.3-Flash, Inkling, Kimi K3, DeepSeek V4 Flash, DeepSeek V4.1 Flash, MiMo-V2.6, Qwen3.8-Flash-Next, dan Qwen3.6 dengan model yang dijalankannya; OLMoE dan engine keputusan dibangun dengan make <engine> CUDA=1. Di Windows, engine CUDA adalah DLL terpisah (windows.md), dan setiap rilis menyertakannya dalam bentuk siap pakai: colibri-<versi>-windows-x86_64-cuda.zip berisi coli_cuda.dll (kartu dengan compute capability 8.0 ke atas) dan engine colibri, qwen36, dan kimi_k3 yang memuatnya, beserta DLL CUDA milik DeepSeek V4. Ekstrak di atas arsip utama, dan setup akan memilih CUDA.

  • Setiap layer di kartu untuk Qwen3.6, Qwen3.8, dan OLMoE: layer dense, attention, dan pakar yang dipegang kartu berjalan sebagai satu chain, dan pakar yang tidak dipegangnya berjalan di CPU. Pada RTX PRO 4000, Qwen3.6-35B-A3B UD-Q4_K_M melakukan decode 104.8 tok/s dan membaca prompt pada 3491, OLMoE pada 354.6 dan 10418 (tabelnya).
  • Tier pakar di kartu untuk setiap engine (cu_tier.h), dan matriks dense di kartu untuk DeepSeek V4, V4.1, Kimi K3, GLM-5.3, dan MiMo (cu_dense.h).
  • Blok GGUF di kartu (cuda_bd.cuh): setiap tipe blok ggml dengan 32 bobot atau lebih, setiap baris seperti yang disimpan file; prompt melewati tensor core (gguf.md).
  • VRAM expert tier menyimpan pakar yang paling sering digunakan di kartu, dipilih berdasarkan routing yang terukur; cache miss dihitung di CPU pada saat yang sama. Qwen3.6 pada dua kartu 8 GB (RTX 3070 dan Quadro RTX 4000) menghasilkan 11.3 tok/s dengan riwayat yang warm (qwen36-cuda-tier.md); GLM-5.2 pada enam RTX 5090 dengan semua pakar resident menghasilkan 9.0-9.2 tok/s (benchmarks.md); DeepSeek V4 Flash pada RTX 5080 menghasilkan 1.5-1.6 tok/s dan prompt 3,324 token dalam 90 s (deepseek-v4.md).
  • Baru untuk Qwen3.6: layer DeltaNet di kartu (Q36_DN_GPU=1, opt-in). Masing-masing dari 30 layer DeltaNet Qwen3.6 sebelumnya menyalin datanya antara kartu dan CPU empat kali per token; sekarang satu token decode menjalankan seluruh layer di kartu, dengan recurrent state tetap berada di VRAM. Pada RTX 3070 dengan layer dense di VRAM: 25.4 hingga 30.0 tok/s (qwen36-cuda-tier.md).
  • Kartu lama. Jika CUDA toolkit tidak lagi dapat mengompilasi untuk kartu Anda (CUDA 13 dan V100, dalam #1852), proses penyiapan mendeteksinya sebelum build dan menggunakan kartu melalui Vulkan sambil menjelaskan alasannya; CUDA 12.x toolkit mengaktifkan kembali jalur CUDA. CUDA tier DeepSeek V4 juga dapat di-build untuk Pascal dan Turing (CUDA_ARCH=portable-pre-ampere NO_TC=1).

Selengkapnya: docs/cuda.md.

Apple Silicon

Backend Metal menjalankan perhitungan pakar pada GPU unified-memory untuk beberapa engine (docs/metal.md). Archive macOS dari rilis berisi colibri, inkling dan kimi_k3 yang di-build dengan Metal: COLI_METAL=1 (K3_METAL=1 untuk Kimi K3) menyalakannya, dan tanpanya engine berjalan di CPU. Dari source, build dengan METAL=1; proses penyiapan satu langkah membuat build untuk CPU.

System One: keputusan dengan probabilitas

Sebagian besar hal yang diminta orang dari sebuah model adalah pilihan, bukan paragraf: antrean mana, keputusan mana, ya atau tidak. POST /v1/systemone menerima sebuah state (teks atau JSON) dan pertanyaan bertipe, lalu menjawab setiap pertanyaan dengan probabilitas untuk setiap opsi yang diizinkan beserta confidence. Tidak ada teks yang dihasilkan, sehingga jawaban tidak mungkin berada di luar daftar Anda, dan "model tidak yakin" menjadi angka yang dapat Anda beri threshold.

curl -s http://127.0.0.1:8000/v1/systemone -H 'Content-Type: application/json' -d '{
  "state": "340 lines, 8 files, no tests. CI is green but nothing covers that path.",
  "questions": {
    "review": {"type": "choice", "instructions": "What should the reviewer do?",
               "criteria": {"merge": null, "request changes": null, "close": null}},
    "risky":  {"type": "noul", "instructions": "Is this change risky?"}}}'

Sebuah choice mengembalikan label yang dipilih, probabilitas untuk setiap label, dan confidence dari 0 (merata) hingga 1 (pasti); sebuah noul mengembalikan probabilitas untuk yes; sebuah score mengembalikan level yang diharapkan.

Yang menjawab:

  • Model chat apa pun yang dapat dijalankan colibri, melalui scoring: model membaca probabilitas setiap opsi alih-alih menulis jawaban. Banyak pertanyaan mengenai satu dokumen membaca dokumen tersebut satu kali: pada Qwen3.6, empat pertanyaan mengenai satu dokumen selesai 5.7x lebih cepat daripada menghasilkan jawaban yang sama pada mesin CPU yang sama.
  • Tiga model keputusan, secara native, dalam satu forward pass dengan kalibrasi yang disesuaikan oleh pembuatnya: Laya (Convai Innovations), GLiNER2.5-Decide (fastino), dan Clef (Cloudflare; model ini juga dapat chat). Ukuran dan kecepatannya tersedia di tabel model keputusan.

Beralih dari Jev. Request dan reply menggunakan format API Jev dari TypeSafe, sehingga client Jev dapat beralih ke colibri hanya dengan mengganti base URL, tanpa perubahan lain: TYPESAFE_BASE_URL=http://127.0.0.1:8000 (key yang sudah dikirim client tetap diterima oleh server yang dijalankan tanpa COLI_API_KEY). Kedua SDK resmi, tanpa modifikasi, diuji terhadap coli serve.

Mode yang sama juga tersedia di terminal (/decide merge | request changes | close dalam coli chat) dan pada halaman System One di dashboard. Request dan reply lengkap, aturan scoring, serta kapan mode ini tidak membantu dijelaskan di docs/systemone.md.

Dashboard

coli web membukanya, begitu juga proses penyiapan satu langkah: chat, halaman System One, Brain, dan halaman Profiling, dalam tema terang atau gelap.

UI chat baru

coli ui membuka chat baru di samping coli serve yang sedang berjalan: penalaran di bloknya sendiri, gambar untuk model dengan menara visi, pencarian web, peta pakar, monitor langsung, dan agen pemrograman yang sudah diarahkan ke colibri. Tujuh bahasa. Lihat ui/README.md.

UI chat baru: sebuah pertanyaan, penalaran yang dilipat, jawaban, dan kecepatannya

LFM3-VL-2B pada CPU i5-13500, 32 tok/s.

monitor: status model, kecepatannya, token yang ditulis, prompt, CPU dan RAM engine

Monitor saat LFM3-VL-2B menulis: 31.6 tok/s, prompt dibaca dalam 0.1 s, RAM 2.1 GB.

chat dengan peta pakar terbuka: satu sel per pakar di setiap 16 blok OLMoE

OLMoE dengan peta pakar terbuka di samping chat: satu sel per pakar di setiap blok, putih saat dipilih pada langkah ini, amber saat dipakai dalam jawaban ini.

halaman System One: sebuah pull request dibaca sekali, probabilitas untuk setiap jawaban yang diizinkan, dan seberapa yakin modelnya

System One: berikan model sebuah dokumen dan hanya jawaban yang boleh dipilihnya. Di sini Qwen3.6-35B pada RTX PRO 4000 membaca pull request yang merusak batas ukuran cache: request changes pada 81%, entropy 0.56 (ragu), 98 token dibaca, 0 dihasilkan.

Halaman Profiling menunjukkan di mana waktu setiap turn digunakan, fase demi fase, dengan 30 turn terakhir sebagai tren.

Gunakan dari aplikasi lain

coli serve (yang dijalankan proses penyiapan untuk Anda) adalah satu server dengan beberapa API:

  • kompatibel dengan OpenAI: /v1/chat/completions, /v1/completions, dan /v1/models, dengan streaming, reply JSON, stop sequences, dan logprobs;
  • kompatibel dengan Anthropic: /v1/messages, sehingga Claude Code dan SDK Anthropic dapat digunakan dengannya;
  • tool calling pada setiap engine chat kecuali Inkling dan OLMoE, masing-masing dalam format native modelnya (tabel per-engine);
  • input gambar pada GLM-5.3-Flash, DeepSeek V4.1 Flash, MiMo-V2.6, Qwen3.8-Flash-Next, Qwen3.8-27B, LFM3-VL, dan Mistral-Large-4 (dari GGUF, dengan file mmproj di sebelahnya): sebuah path dalam pesan coli chat, attachment di coli web atau coli ui, atau bagian image_url;
  • output gambar dengan Qwen-Image-2.1 pada POST /v1/images/generations, dan digambar langsung di terminal oleh coli chat (qwen-image.md);
  • keputusan pada POST /v1/systemone (di atas);
  • beberapa percakapan sekaligus di setiap engine teks: coli serve --kv-slots N menyimpan hingga 16, masing-masing dengan cache sendiri, dan mendekode token berikutnya bersama-sama (api.md).

CLI coding dan editor terhubung seperti ke provider lain yang kompatibel dengan OpenAI: base URL http://127.0.0.1:8000/v1, model id yang ditampilkan coli status, dan key apa pun yang tidak kosong (docs/api.md).

Cara kerjanya

route, union, place, overlap, learn

Setiap layer dari setiap token melewati lima langkah yang sama: route, union, place, overlap, learn. Tujuan desainnya adalah agar placement hanya menentukan kecepatan: keputusan router dan presisi bobot tetap sama, baik pakar menjawab dari VRAM, RAM, maupun disk.

VRAM, RAM and NVMe as three tiers of expert residency

  • JIT untuk bobot. Compiler JIT tidak pernah mengompilasi seluruh program: ia mengamati bagian yang berjalan dan mengompilasi hot path. colibri membuat taruhan yang sama pada bobot. Routing heat yang terukur menentukan pakar mana yang layak berada di VRAM, RAM, atau disk: cache LRU per-layer, ditambah hot set yang di-pin dan dipelajari dari percakapan Anda sendiri (.coli_usage, diperbarui setiap turn). colibri menjadi lebih cepat semakin sering digunakan. Hal ini bekerja karena routing memiliki struktur yang dapat diukur (expert atlas).
  • Jangan menunggu disk dua kali. Tiga matriks milik satu pakar dibaca dalam satu pread; sekumpulan loader membaca pakar yang belum tersedia sementara pakar resident melakukan komputasi; satu batch posisi membaca setiap pakar sekali; thread router-lookahead dapat melakukan prefetch untuk layer berikutnya (routing GLM-5.2 dapat diprediksi 71.6% satu layer ke depan). DIRECT=1 (O_DIRECT) sering memberikan peningkatan besar pada drive NVMe cepat dan netral atau lebih buruk pada drive lain: ukur pada perangkat Anda (tuning.md).
  • Lebih dari satu SSD. COLI_MODEL_MIRROR=/second/glm52_i4 ./coli chat --model /fast/glm52_i4 membaca dari salinan pada drive kedua. Dua drive NVMe pada controller terpisah menghasilkan peningkatan decode sebesar +37.5%; mirror parsial pada drive yang lebih kecil juga dapat digunakan (multidisk.md).
  • Dari laptop hingga rack. Pada laptop 25 GB, setiap pakar di-streaming dari disk, lambat tetapi tetap benar; pada host besar, setiap pakar resident (CUDA_EXPERT_GB=auto PIN_GB=all) dan disk tidak lagi terlibat dalam decoding. COLI_NUMA=1 menyebarkan bobot resident ke memory controller pada host multi-socket, dan mode cluster lokal menjalankan pakar yang dirutekan pada mesin lain (cluster.md).
  • Model yang setia pada referensi. Setiap engine diperiksa di CI terhadap implementasi referensi modelnya menggunakan fixture kecil. MLA attention GLM-5.2 menyimpan compressed KV state (576 float per token, bukan 32,768, 57x lebih kecil) yang bertahan setelah restart, sehingga percakapan dapat dibuka kembali tanpa membaca ulang prompt.
  • Spekulasi yang sepadan dengan biayanya. Int8 MTP head GLM-5.2 membuat draft 2.2-2.8 token per forward ketika menguntungkan; MTP head Qwen3.8-Flash-Next, aktif secara default, menambah 16-20% dengan output yang sama, dan prompt lookup 6-7% pada edit kode. Head Qwen3.6 (Q36_MTP=1) menaikkan decode dari 99.7-104.5 ke 115.8-120.1 tok/s dengan CUDA dan dari 83.2-83.8 ke 99.9-109.3 dengan Vulkan (sebuah RTX PRO 4000). Head DSpark DeepSeek V4.1 membuat draft sedalam yang dikatakan keyakinannya, dan sebuah gate melewati draft yang tidak bisa balik modal. Jika drafting membutuhkan biaya lebih besar daripada penghematannya (DeepSeek V4), fitur tersebut tetap dimatikan (speculative.md, tuning.md).

Engine menggunakan satu file C per keluarga model (c/colibri.c untuk GLM-5.2) di atas header bersama, tanpa BLAS dan tanpa Python saat runtime: Python hanya menjalankan proses penyiapan, launcher, converter, dan API gateway.

Benchmark

kecepatan decode GLM-5.2 yang terukur berdasarkan kelas hardware

Engine yang sama dan container int4 yang sama: hardware hanya mengubah tempat pakar berada. Decode GLM-5.2, dari tabel lengkap:

  • 6x RTX 5090, semua pakar resident: 5.8-6.8 tok/s, 9.0-9.2 dengan selective NUMA interleave (log eksperimen);
  • 128 GB, hanya CPU (Ryzen AI Max+ 395): 1.83 tok/s warm (#200);
  • satu mesin kelas laptop RTX 5070 Ti: 1.07 tok/s (#273);
  • laptop 25 GB tempat proyek ini bermula: 0.05-0.1 tok/s cold, batas bawah yang realistis.

Tiga backend di satu mesin

Sebuah i5-13500 dengan RAM 62 GB dan RTX PRO 4000 Blackwell SFF (24 GB, 70 W), setiap model dilayani oleh coli serve: prompt baru 450 token, lalu jawaban 128 token yang di-stream, termasuk HTTP permintaannya; yang terbaik dari dua run, tok/s.

GGUF CUDA prompt CUDA decode Vulkan prompt Vulkan decode CPU prompt CPU decode
Qwen3.6-35B-A3B UD-Q4_K_M 3491 104.8 2076 92.9 122.6 13.9
LFM3-VL-2B Q4_K_M 12317 235.1 8174 214.1 286.5 34.5
OLMoE-1B-7B-0125-Instruct Q4_K_M 10418 354.6 6867 299.4 279.9 47.4
LFM3-VL-2B F16 11524 103.4 7767 99.3 49.7 6.4
Qwen3.8-Flash-Next IQ2_XS (68 GB: pakar yang tidak muat di kartu tetap di RAM) 217.1 51.4 214.3 50.6 38.3 9.3

Model besar di mesin yang sama

Mesin D lagi, setiap model dari GGUF yang dipublikasikan lewat coli serve: apa yang tidak dipegang kartu maupun RAM datang dari dua NVMe. Token per detik, dari halaman setiap model:

GGUF ukuran backend prompt decode
Inkling-Small UD-IQ2_XXS 77 GB Vulkan 15.1-33.1 10.92-11.53 (vulkan.md)
MiMo-V2.6-Flash Q2_K_S 106 GB Vulkan 8.2 7.8 (gguf.md)
DeepSeek V4 Flash 0731 UD-IQ2_XXS 85 GB Vulkan 19.7-20.4 6.18-6.25 (vulkan.md)
DeepSeek V4.1 Flash UD-IQ1_S Vulkan 31.8 atas 3403 token 5.01-5.29 (deepseek-v41.md)
GLM-5.3-Flash UD-IQ2_XXS 95 GB Vulkan 9.3 2.92-3.40 (vulkan.md)
Muse Spark Open UD-IQ1_S 176 GB Vulkan 5.0-5.3 1.55-1.58 (qwen36.md)
Mistral-Large-4 UD-IQ1_S 233 GB CUDA 240 token dalam 66-82 s 1.34-1.36 (mistral-large4.md)
GLM-5.2 UD-IQ1_S 202 GB Vulkan 0.633-0.658 (gguf.md)
Kimi K3 UD-IQ1_S 594 GB Vulkan 31 token dalam 46.5 s 0.349 (gguf.md)

Konteks panjang dan agen

  • Konteks 256k dengan kecepatan 64k. Qwen3.8-Flash-Next IQ2_XS pada chain CUDA mesin D, dengan konteks 262144 token: prompt dari 15.6 ke 149 tok/s, decode dari 9.6 ke 45.7 (rencana RAM pada satu segmen prompt, K/V dalam float16 di kartu; pada 65536 membaca 188 dan decode 48.4) (qwen38.md).
  • Giliran agen hanya membaca yang baru. Permintaan singkat di antara dua giliran (agen yang meminta judul percakapan) memarkir percakapan alih-alih mengambil state-nya, di setiap engine (COLI_PARK). Giliran kedua Hermes Agent pada Qwen3.8-Flash-Next, 14810 token: dari 86 s ke 4.9 s (qwen38.md).
  • KV cache dalam float16: GLM-5.3 pada 131072 token memakai 11.9 GB, bukan 23.9 (CHANGELOG).

Kualitas diukur, bukan diasumsikan: biaya container int4 dan ablation quantization tersedia di benchmarks.md. Untuk menambahkan mesin Anda, ikuti protokol benchmark dan buka issue dengan hasil pengukurannya.

Instal secara manual

1. Programnya. Ambil archive untuk platform Anda dari Releases (Linux x86_64, macOS, Windows; tidak memerlukan compiler, hanya Python 3 untuk launcher dan API), ekstrak, lalu jalankan python3 coli info. Engine Linux dan Windows sudah berisi Vulkan, dengan shaders/ di sampingnya, dan engine macOS berisi Metal; untuk kartu NVIDIA di Windows tambahkan archive CUDA. Atau build dari source menggunakan gcc (atau clang) dan OpenMP:

git clone https://github.com/JustVugg/colibri && cd colibri/c
./setup.sh                                # checks gcc/OpenMP, builds, self-tests
make qwen36 VK=1                          # one engine, here with Vulkan (CUDA=1 for CUDA)

2. Model. Gunakan unduhan apa pun dari tabel di atas: id milik proses penyiapan dipetakan ke repository Hugging Face, dan halaman setiap model memiliki perintah unduhan dan konversinya. Untuk GLM-5.2 gunakan container group-scaled (gs64) dengan int8 MTP head, mastouri/GLM-5.2-colibri-int4-g64-with-int8-mtp (429 GB), atau Justvugg/GLM-5.3-colibri-int4-g64 untuk GLM-5.3 (419 GB, tanpa MTP head). Jangan gunakan mirror int4 per-row yang lebih lama: hasil pengukurannya sekitar 9 poin lebih buruk dalam kualitas dan menyebabkan jawaban berulang pada #455. ./coli convert --model /nvme/glm52_i4 membuat container yang sama dari rilis FP8, shard demi shard, tanpa pernah memerlukan seluruh 756 GB berada di disk sekaligus. Cara memeriksa MTP head dan bagian lainnya: quickstart.md. GGUF yang sudah Anda miliki tidak perlu dikonversi: ./coli import pada file pertamanya (di atas).

3. Jalankan. Dari c/ pada source checkout, atau dari rilis yang telah diekstrak. Launcher membaca config.json milik model dan memilih engine serta chat template-nya, sehingga perintahnya sama untuk setiap model:

./coli chat  --model /nvme/qwen36          # chat in the terminal
./coli web   --model /nvme/qwen36          # API + dashboard, opens a browser
./coli serve --model /nvme/qwen36          # API + dashboard, no browser
./coli plan  --model /nvme/qwen36          # where the model will live: VRAM, RAM, disk
./coli doctor --model /nvme/qwen36         # read-only check: is everything ready?
./coli tune  --model /nvme/qwen36          # measure and save this machine's fastest safe settings
./coli import /nvme/Flint-UD-Q4_K_XL.gguf  # a GGUF: writes Flint-UD-Q4_K_XL.colibri next to it
./coli ui                                  # the chat UI, next to a running coli serve

Di Windows, archive rilis menyertakan coli.cmd (coli.cmd chat --model D:\qwen36); dari source checkout gunakan py -3 c\coli. File .exe adalah engine, bukan launcher. Semua opsi dan variabel: SETTINGS.md, ENVIRONMENT.md.

Riset dan cara membantu

colibri ingin agar model frontier tidak terlalu bergantung pada hardware yang langka dan lebih murah untuk dijalankan. Itu berarti mengubah cara bobot disimpan dan dipindahkan, menentukan apa yang berada di VRAM, RAM, atau storage, menumpangtindihkan pekerjaan CPU dan GPU, serta menguji cara baru untuk decode. Tidak ada sesuatu yang dipertahankan hanya karena sudah menjadi kebiasaan, dan tidak ada sesuatu yang diadopsi hanya karena microbenchmark terlihat cepat: hasil yang menentukan adalah inference end-to-end pada mesin nyata, dengan kualitas diukur bersama kecepatan. Pertanyaan terbukanya:

hipotesis bukti sejauh ini eksperimen yang masih diperlukan
Riwayat routing dapat menempatkan pakar lebih baik daripada LRU biasa learned pins meningkatkan workload berulang, tetapi dapat overfit pada sebuah prompt A/B held-out lintas sesi pada workload coding, chat, multilingual, dan long-context
Beberapa SSD dapat mengubah bandwidth independen menjadi kecepatan decode dua drive NVMe independen menghasilkan peningkatan decode +37.5%; drive ketiga yang lebih lambat netral setelah weighted striping (pengukuran) reproduksi pada berbagai kecepatan drive, layout controller, dan state cache
Planner yang memahami hardware dapat mendekati konfigurasi terbaik setiap mesin secara otomatis budget RAM/VRAM dan beberapa backend sudah terdeteksi saat ini, dan proses penyiapan memilih build bandingkan plan yang dihasilkan dengan controlled parameter sweep pada laptop, workstation, host NUMA, dan sistem multi-GPU
Representasi lossless atau dengan batas kualitas dapat mengurangi perpindahan bobot sampai cukup berarti ablation format dan quantization sudah tersedia, dengan gate correctness/kualitas reproduksi kualitas, byte yang dipindahkan, latency, dan biaya per token berguna secara bersamaan, bukan hanya compression ratio
Spekulasi yang mempertimbangkan routing dapat menguntungkan sebelum residensi hampir penuh MTP dan grammar drafts bekerja, tetapi MTP juga pernah terukur mengalami penurunan 32% di sekitar expert hit 85% petakan permukaan break-even terhadap acceptance, expert hit rate, batch union, dan draft depth
Overlap CPU/GPU dapat menyembunyikan transfer dan sinkronisasi alih-alih sekadar memindahkan bottleneck peningkatan dari CUDA, Metal, dan Vulkan sudah ada, tetapi CPU cepat, GPU terintegrasi, dan residensi rendah dapat menghapusnya profil per-stage dan A/B satu variabel pada PCIe, unified-memory, dan mesin full-resident, serta lebih banyak kartu diskret untuk Vulkan tier dan chain daripada yang sudah diukur (sebuah RTX PRO 4000)

Ingin membantu? Pilih satu baris dan publikasikan juga hasil negatif. Catat hardware, commit, model, perintah persis, prompt, state cache, throughput, time to first token, expert hit rate, byte yang dibaca, dan pemeriksaan kualitas; ubah satu variabel, ulangi, lalu lampirkan raw log. Mulailah dengan CONTRIBUTING.md dan protokol benchmark, lalu buka issue. Kegagalan yang dikontrol dengan baik lebih bernilai di sini daripada angka cepat tanpa penjelasan.

Dokumentasi

topik dokumen
Penyiapan satu langkah dan instalasi manual, untuk setiap platform quickstart.md
Penyiapan melalui asisten AI, dan server MCP AI_SETUP.md, MCP_SERVER.md
API: OpenAI, Anthropic, tools, KV slots, dashboard api.md
System One dan model keputusan systemone.md, laya.md, gliner_decide.md, clef.md
File GGUF: arsitektur, dua mode, apa yang dilakukan setiap engine dengan bloknya gguf.md
Model pada engine Qwen3.6 (Flint, Muse Spark Open, LFM3-VL) dan Mistral-Large-4 qwen36.md, mistral-large4.md
UI chat (coli ui) ui/README.md
Vulkan: expert tier, dense chain, kartu tanpa Resizable BAR vulkan.md
CUDA, dan CUDA tier Qwen3.6 cuda.md, qwen36-cuda-tier.md
Apple Silicon, Windows metal.md, windows.md
Tuning, learning cache, prefetch, speculation tuning.md
Decoding spekulatif: MTP head, prompt lookup, gate speculative.md
Beberapa SSD, beberapa mesin multidisk.md, cluster.md
Benchmark dan cara melakukan pengukuran benchmarks.md, benchmarking.md
Setiap opsi dan environment variable SETTINGS.md, ENVIRONMENT.md
Draft yang dipaksa grammar, dan ABI embedding eksperimental grammar-draft.md, segment-runtime.md, edge-runtime.md

Struktur repository

start-here.sh, START-HERE.bat   the one-step setup (Linux and macOS, Windows)
Makefile                        root build/check entry point
c/
├── colibri.c             GLM-5.2/5.3, Mistral-Large-4  (make glm)
├── glm53.c               GLM-5.3-Flash  (make glm53)
├── inkling.c             Inkling  (make inkling)
├── kimi_k3.c             Kimi K3  (make kimi_k3)
├── deepseek_v4.c         DeepSeek V4 Flash  (make deepseek-v4)
├── deepseek_v41.c        DeepSeek V4.1 Flash  (make deepseek_v41)
├── mimo.c                MiMo-V2.6 Flash and Pro  (make mimo)
├── qwen38.c              Qwen3.8-Flash-Next  (make qwen38)
├── qwen36.c              Qwen3.6, Qwen3-Coder, Qwen3.8-27B, Flint, Muse Spark,
│                         LFM3-VL, Clef  (make qwen36)
├── olmoe.c               OLMoE  (make olmoe)
├── qwenimage.c           Qwen-Image-2.1  (make qwenimage)
├── laya.c                Laya  (make laya)
├── gliner_decide.c       GLiNER2.5-Decide  (make gliner_decide)
│
├── st.h, quant.h, idot.h        safetensors reads, container decoders, integer kernels
├── expert_ffn.h, expert_store.h routed-expert kernel and streaming expert cache
├── tok.h, json.h, compat.h      tokenizer, JSON, Windows/macOS shims
├── route_trace.h, kv_prefix.h   routing telemetry (.coli_usage), KV prefix reuse
├── gguf.h, park.h               GGUF reader, a conversation parked between an agent's turns
├── decide_serve.h               the decision engines' side of System One
│
├── backend_cuda.*, cu_tier.h, cuda_chain.cu   optional CUDA tier and chains (CUDA=1)
├── backend_metal.*       optional Metal tier  (METAL=1)
├── backend_vulkan.*, vk_tier.c, vk_chain.c   optional Vulkan tier and dense chain (VK=1)
│
├── coli                  user-facing CLI
├── setup_*.py            the one-step setup: hardware, catalog, downloads, flow
├── mcp_server.py         the MCP server (coli mcp)
├── openai_server.py      OpenAI- and Anthropic-compatible HTTP gateway
├── resource_plan.py      RAM/VRAM planner behind coli plan and coli doctor
├── tools/                conversion, fixtures and benchmarks
└── tests/                dependency-free C and Python tests
ui/                       the chat UI (coli ui)
web/                      the dashboard (a pure API client)
desktop/                  Tauri desktop shell around the dashboard
docker/                   container images
docs/                     reference docs, experiments, media
site/                     the website

Satu .c per keluarga model, menggunakan header tunggal bersama. Sebuah engine hanya memiliki arsitekturnya sendiri; apa pun yang dibutuhkan oleh dua engine ditempatkan dalam header yang sama-sama mereka include, sehingga satu perbaikan langsung menjangkau semuanya. Dari root repository, make, make check, dan make clean meneruskan pekerjaan ke Makefile engine.

Mendukung proyek

colibri bermula sebagai proyek satu orang pada laptop 12-core dengan RAM 25 GB; sekarang angka-angkanya berasal dari komunitas dengan mesin nyata. Jika proyek ini berguna bagi Anda:

  • beri star pada repository dan bagikan;
  • buka issue dengan angka benchmark dari hardware Anda: datapoint lebih mendorong proyek ini daripada hal lainnya;
  • bergabunglah dengan komunitas Discord untuk membahas eksperimen, hasil hardware, dan arah riset;
  • hubungi melalui GitHub issues untuk mensponsori pengembangan atau menyumbangkan hardware.

Mengapa "colibrì"

Burung kolibri hanya berbobot beberapa gram, dapat melayang di tempat, dan mengunjungi seribu bunga dalam sehari. Engine ini menjaga raksasa dengan 744 miliar parameter tetap hidup dengan jatah seekor kolibri: RAM 25 GB, dua belas core CPU, dan banyak kesabaran menghadapi disk.

Ucapan terima kasih

colibri adalah sebuah engine; kecerdasan yang dijalankannya merupakan hasil karya banyak pihak. Terima kasih kepada tim yang merilis bobot model mereka secara terbuka: Z.ai (GLM), Moonshot AI (Kimi), Alibaba Qwen, DeepSeek, Xiaomi (MiMo), Thinking Machines (Inkling), Allen AI (OLMoE), Convai Innovations (Laya), fastino (GLiNER2.5-Decide), dan Cloudflare (Clef); kepada mereka yang menerbitkan container hasil konversi; serta kepada setiap kontributor yang melakukan benchmark, bisect, mereplikasi proses atlas, atau mengirim patch. Kode pihak ketiga dalam repository ini beserta lisensinya: THIRD_PARTY_NOTICES.md.

Eksperimen penempatan pakar, kompresi, dan routing dalam proyek ini juga dibangun di atas gagasan dan bukti dari riset terbuka serta karya sistem berikut:

  • REAP dan EASY-EP untuk tingkat kepentingan pakar yang mempertimbangkan output dan domain.
  • SERE untuk rerouting pakar berbasis kemiripan, dan ReMoE untuk fine-tuning router yang mempertimbangkan cache locality.
  • MC-SMoE untuk penggabungan dan kompresi pakar yang dipandu routing.
  • MoBE dan D²-MoE untuk basis pakar bersama dan delta pakar low-rank.
  • HybriMoE untuk penjadwalan pakar hybrid CPU/GPU, ScMoE untuk menumpangtindihkan komunikasi pakar dengan komputasi, dan OD-MoE untuk pemuatan pakar on-demand terdistribusi.
  • vLLM, llama.cpp, dan kTransformers untuk sistem inference terbuka dan karya expert-offload yang membuat perbandingan dapat direproduksi.

Engine ini juga berdiri di atas karya engineering konkret, bukan hanya gagasan. Setiap hal berikut digunakan atau diimplementasikan ulang dalam tree saat ini:

  • safetensors: container yang dibaca setiap engine (c/st.h), termasuk dtype fp8 dan I64.
  • tiktoken: c/tok.h mengimplementasikan ulang byte_pair_encode secara persis, dengan menggabungkan pasangan bersebelahan yang hasil konkatenasinya memiliki vocab id terendah, sehingga vocabulary turunan tiktoken tidak memerlukan daftar merges.
  • llama.cpp: subset grammar GBNF dalam c/grammar.h mengikuti sintaks dan set-of-stacks PDA miliknya, dan jalur Metal meminjam teknik residensi newBufferWithBytesNoCopy.
  • vLLM: referensi untuk semantik output yang dicocokkan engine posisi demi posisi (misalnya posisi final norm relatif terhadap LM head).
  • transformers: oracle: CI mereproduksi model random-init token demi token terhadapnya.
  • DietGPU: codec ANS GPU di balik experimental compressed expert tier (COLI_ANS).
  • rocWMMA: backend HIP memetakan API fragment/ mma_sync nvcuda::wmma milik CUDA ke dalamnya (c/backend_gpu_compat.h), yang memungkinkan satu source .cu dikompilasi untuk kedua vendor.

Lisensi

Apache 2.0, Copyright 2026 Vincenzo Fornaro. Lihat LICENSE dan NOTICE. Setiap model tetap menggunakan lisensi yang diberikan oleh pembuatnya (bobot GLM-5.2 dirilis oleh Z.ai di bawah MIT; Qwen-Image-2.1 hanya untuk penggunaan nonkomersial).