Menší modely.
Více možností.

thinletter je český AI startup. Komprimujeme jazykové modely a reprezentujeme je efektivně; ladíme je na konkrétní jazyk nebo doménu — a měříme je proti nezměněnému systému, do kterého se mají vejít.

Co děláme

Tři věci, záměrně úzce.

Komprese

Jazykové modely na 2–5 bitech na váhu, které drží kvalitu originálu tam, kde záleží: ve výsledcích vyhledávání, ne v benchmarku souboru.

Jak

Kvantujeme dotazový enkodér embedding modelu a index dokumentů necháváme beze změny: soubory 235–385 MiB místo 1,1 GiB, běžící v llama.cpp i v prohlížeči (WebAssembly nebo WebGPU). Pod nejmenším formátem llama.cpp provozujeme vektorově kvantovaný kontejner na 1,8–2,1 bitu na váhu s vlastním WebGPU runtimem.

Každý soubor ověřujeme na indexu, kterému má sloužit: nDCG@10, kosinus k dotazovému vektoru v plné přesnosti, překryv top-10, párový bootstrap přes dotazy.

Jazyk a doména

Kvantizace kalibrovaná na jazyk vašeho korpusu — nejdřív čeština — a tam, kde se to vyplatí, na vaši doménu.

Co jsme zjistili

Při nízkých bitových šířkách záleží víc na jazyku kalibračního textu než na jeho doméně: na českém právním indexu byla kalibrace na český místo anglického textu na 2,6 bitu hodna +0,09 nDCG@10, doména dalších +0,01–0,02. Vydáváme klienty kalibrované na českém textu pro tři rodiny modelů; česká kalibrace nestojí anglickou kvalitu.

Odolnost vůči kompresi je vlastnost checkpointu, ne receptu: jeden model 0,6B drží 99 % na 3,4 bitu, jiný se stejnou architekturou pod 4,5 bitu selhává.

Důkazy

Pre-registrované predikce, párová srovnání, zveřejněné negativní výsledky. Čísla, která si zopakujete na vlastním indexu.

Jak měříme

Každý běh má predikci a kill rule zapsané před startem. Srovnání mění jednu věc při stejném kalibračním rozpočtu. Rozdíly jsou párové bootstrapové intervaly přes dotazy (10 000 tahů), čtené proti rozptylu kalibračního tahu (~0,01) a mezi stroji (±0,006): pod 0,01 nDCG@10 je remíza.

Negativní výsledky v reportu zůstávají: 2,6bitové titulní číslo, které se neopakovalo mimo jeden korpus, rotace bez stabilního efektu, tvrzení platné pro jeden model a ne pro recept.

Výsledky

Měřeno na vlastním indexu modelu v plné přesnosti, testovací rozdělení. Kliknutím na číslo získáte kontext.

Kde stojí nejmenší soubory

klient (SciFact, harrier-0.6b)MiB% nDCG@10 fp32co to je
harrier-0.6b fp16, serverový model1 143100 %reference
llama.cpp Q3_K s imatrix23598,9 %základ zdarma; náš GPTQ export ho dorovná, říkáme to
llama.cpp IQ2_XS, jeho nejmenší formát17893,9 %pod touto velikostí llama.cpp nic nemá
BitNet-270m, ternární, trénovaný (Microsoft)14097,0 %nejsilnější malý konkurent; potřebuje trénink
thinletter VQ 2,1 bitu na váhu12098,2 %naše: po tréninku, bez dotrénování, WebGPU runtime
thinletter VQ 1,8 bitu na váhu10596,5 %naše
thinletter VQ 1,6 bitu na váhu9193,6 %naše, nejmenší fungující klient

nDCG@10 proti vlastnímu fp32 indexu modelu, SciFact testovací split (300 dotazů, fp32 0,7559). Naše řádky jsou torch simulace kontejneru s kalibrací syntetickými dotazy; vydané soubory téhož receptu pro SciDocs (127 / 113 MiB) drží 94,7 / 91,3 % a jsou ověřené v prohlížeči do ±0,001. BitNet-270m a soubory llama.cpp jsou měřené jako soubory.

98,2 %

SciFact testovací split, nDCG@10 proti vlastnímu fp32 indexu modelu (0,7559): 120 MiB na 2,1 bitu na váhu 98,2 %, 105 MiB na 1,8 bitu 96,5 %, 91 MiB na 1,6 bitu 93,6 % (torch simulace kontejneru, kalibrace syntetickými dotazy, 4rozměrné kódové knihy na 256sloupcový blok, vstupní strukturovaná rotace). Vydané SciDocs kontejnery téhož receptu (127 / 113 MiB) drží 94,7 / 91,3 % a jsou ověřené v prohlížeči do ±0,001. Pod ~180 MiB llama.cpp žádný formát nemá; BitNet-270m se na 140 MiB dostane jen ternárním tréninkem modelu.

nDCG@10 plné přesnosti drží náš vektorově kvantovaný klient harrier-0.6b o 120 MiB na 2,1 bitu, bez dotrénování: nad trénovaným BitNetem-270m (140 MiB, 97,0 %) a pod čímkoli, co umí vyrobit llama.cpp (178 MiB, 93,9 %).
99,2 %

bge-m3 Q4_K_M se 4bitovou tabulkou tokenů: kosinus k dotazovému vektoru fp32 0,990, překryv top-10 0,864; soubor Q3_K o 321 MiB drží 98,3 %. Qwen3-Embedding-0.6B: 98,7 % na 340 MiB, 99,5 % na 385 MiB. Tytéž česky kalibrované soubory drží 99,6–100 % na SciFact. Česká evaluace používá syntetické dotazy; její úroveň v plné přesnosti je pro všechny zkoušené báze stejná, měří tedy kompresi, ne bázi.

na českém indexu rozhodnutí Nejvyššího soudu (55 071 segmentů) s klientem bge-m3 o 355 MiB kalibrovaným na českém textu.
103 ms

harrier-0.6b na 2,10 bitu na váhu v našem WebGPU runtimu: p50 103 ms, p95 113 ms, načtení 2,4 s, 77 % špičkové paměti procesu proti cestě llama.cpp, při −0,011 nDCG@10 proti 3,4bitovému souboru (97,6 % fp32 na SciFact). Jeden notebook, jedna integrovaná GPU, 300 dotazů; čísla z diskrétní GPU a mobilu zatím nemáme. Runtime není veřejný; kontejnery ano.

na dotaz pro vektorově kvantovaný klient o 119 MiB na integrované GPU; WebGPU cesta llama.cpp potřebuje 444 ms se souborem 235 MiB.

Co jsme se cestou naučili

Měřeno stejně, na stránce to zůstává, protože se na to další čtenář zeptá: remízy, negativní výsledky a základ, který dostane každý zadarmo.

96–101 %

SciFact 98,9 %, NFCorpus 99,3 %, ArguAna 101 %, SciDocs 99,2 % (microsoft/harrier-oss-v1-0.6b, GPTQ na mřížce llama.cpp Q3_K, kalibrace generickým anglickým textem). Na této bitové šířce dosahuje vlastní kvantizér llama.cpp se stejným textem stejné kvality; hodnota je v ověření, a říkáme to. Soubor zůstává v tabulce níže, protože ověřený klient je užitečný, i když není nový.

nDCG@10 plné přesnosti drží 3,4bitový klient harrier-0.6b na čtyřech anglických korpusech, 235 MiB místo 1 143 MiB. Není to náš přínos: vlastní kvantizér llama.cpp se tam dostane také.
−0,008

Myšlenka: neuronům, které korpus používá nejvíc, dát větší knihu a ostatním menší při stejné průměrné sazbě. Tři seedy rotace, párová náhodná kontrola: důležitost minus náhoda −0,0085 kosinu k fp32, nDCG@10 v šumu; důležitost jen jako váha fitování knihy: −0,008. Vedlejší nález: dvě kvantizace lišící se jen tím, které řádky sdílí knihu, se liší o až 0,03 kosinu, takže efekt pod 0,01 na této mřížce potřebuje tři seedy nebo párovou konstrukci. Pre-registrováno a uzavřeno 2026-09-10.

kosinu ztratí 1,75bitový vektorově kvantovaný klient, když rozpočet kódových knih rozdělí podle důležitosti neuronů místo rovnoměrně; náhodné rozdělení dopadne stejně. Uzavřeno.
+0,010

Prompt před každým dotazem je týchž 19 tokenů, takže jeho klíče a hodnoty spočítá model v plné přesnosti jednou (2 MB) a komprimovaný model čte jen slova uživatele. Naivní verze, kdy se přesný prompt jen podstrčí hotovému klientovi, vypadala obrovsky (+0,037 na 1,6 bitu), ale opravovala jen soubory kalibrované dokumenty; klient kalibrovaný syntetickými dotazy si prompt reprodukuje sám a nezíská nic (−0,003 / +0,000 na vydaných souborech). Skutečná věc je kalibrovat každý blok s přesným promptem na místě a prompt dodat: +0,013 / +0,009 / +0,008 nDCG@10 nad nejlepším dotazově kalibrovaným klientem téhož seedu na 1,8 bitu na SciFact, každý párový interval nad nulou, kosinus k fp32 0,90 → 0,92. Na SciDocs (krátké titulkové dotazy) +0,002 / +0,004 / +0,000, na 2,1 bitu +0,002, na 1,6 bitu +0,001: nic. Takový klient prompt při dotazu potřebuje (bez něj 75–84 %). Pre-registrováno 2026-09-10/11; recept je v runtimu, vydané kontejnery beze změny.

nDCG@10 přinese klíče a hodnoty dotazového promptu v plné přesnosti, když se s nimi 1,8bitový klient rovnou kalibruje; na SciFact, tři seedy. Na SciDocs, na 2,1 ani na 1,6 bitu to nerozlišíme, vydané soubory tedy zůstávají.
Vydaní dotazoví klienti
klientzákladní model · licenceMiBkvalita proti vlastnímu fp32 indexu modelu
harrier-0.6b Q3_K, kalibrace generickou angličtinoumicrosoft/harrier-oss-v1-0.6b · MIT235SciFact 98,9 % · NFCorpus 99,3 % · ArguAna 101 % · SciDocs 99,2 %
harrier-0.6b Q2_K, syntetické dotazy SciDocsMIT192SciDocs 94,5 %
harrier-0.6b vektorově kvantovaný 2,10 / 1,83 bpwMIT127 / 113SciDocs 94,7 % / 91,3 % (vyžaduje runtime thinletter)
Qwen3-Embedding-0.6B Q4_K_M, anglická kalibraceQwen/Qwen3-Embedding-0.6B · Apache-2.0340SciFact 100,0 % · NFCorpus 99,4 % · ArguAna 100,1 % · SciDocs 99,3 %
Qwen3-Embedding-0.6B Q4_K_M / Q5_K_M, česká kalibraceApache-2.0340 / 385český právní index 98,7 % / 99,5 %
bge-m3 Q4_K_M / Q3_K, česká kalibraceBAAI/bge-m3 · MIT355 / 321český právní index 99,2 % / 98,3 % · SciFact 99,6 % / 100,0 %

Každý klient je dotazový enkodér pro právě jeden dokumentový enkodér a jeho nastavení. Každý řádek odkazuje na repozitář na Hugging Face; karta modelu uvádí kompatibilitu, recept a sha256.

Spolupráce

Pilot začíná měřením: vezmeme váš embedding index, kvantujeme dotazovou stranu a předáme vám párová čísla dřív, než se cokoli rozhodne. Vektorově kvantovaný runtime je pilotním partnerům k dispozici na pozvání.

Napište nám na GitHubu

Jan Rosecký, zakladatel · kontaktní adresa se připravuje