logoalt Hacker News

Breaking the 1.58-bit Barrier for Ternary LLMs

202 pointsby matt_dyesterday at 8:59 PM31 commentsview on HN

Comments

c7btoday at 5:45 AM

> We measure the actual symbol distribution of 29 ternary LLM models and find that zeros account for up to 51.5% of all weights. Motivated by this finding, we introduce BITCOS, a simple distribution-adaptive layout

I honestly assumed that's how they already work. I have to admit that I even explained it like that to a friend. Why on earth wouldn't you design it like that from the start (talking about the adaptive, not the measure part; just sacrifice a few bits to clarify your encoding and save a ton of bits)?

infogulchyesterday at 11:17 PM

So they get down from 1.58 to 1.48 bits per weight by exploiting the fact that actual weights in practice are 0 51% of the time. Neat.

If ternary llms work out and are baked into hardware as custom silicon I bet they'll be shockingly efficient.

show 1 reply
CodesInChaostoday at 7:57 AM

I'm surprised that a variable length encoding like this is usable directly as in memory format and not just as storage/transfer format.

om8yesterday at 10:40 PM

Ternary quantization does not make any sense. Vector quantization and trellis based methods are better in this region for PTQ.

show 2 replies
yaloktoday at 12:16 AM

sounds like a perfect fit for ASIC-optimized models (where matrix ops could be supported directly in BITCOS format, potentially) & achieving record power efficiency for on-device inference.

And it looks like per [0], a model needs only ~30% more weights to be at comparable quality, if quantization-aware training is done...

0. https://arxiv.org/pdf/2402.17764 - The Era of 1-bit LLMs: All Large Language Models are in 1.58 Bits

wgdyesterday at 11:44 PM

Only a presence bitmap? If we're contemplating packing schemes I'm tempted to write a paper that uses arithmetic coding to squeeze out a few more centi-bits.

show 1 reply
explainit2metoday at 2:09 AM

So this compression is only pertinent to the LLM file format? In memory it'd have to be expanded into the 1.58-bit form - 5 trits per byte.

show 1 reply
Marchant_hqtoday at 12:50 AM

Pushing past log2(3) for real. This could drastically shrink LLMs for embedded systems, making them truly portable.

plqbfbvyesterday at 10:39 PM

Very interesting, I was just exploring this to hopefully fit one of the latest quantized models in 16GB of VRAM.

NooneAtAll3yesterday at 10:38 PM

This is the only time "1.58 bit" phrase makes more sense than "1 trit"

Who knew that if you actually look at information entropy you can pack stuff better!

ant6ntoday at 5:53 AM

ternary is totally losslessly compressed anyway.

Why not just use an 8-bit LUT to encode the 256 most common ternary vectors with 6 components. That means of the possible 729 possible such vectors, you can only represent 256 different ones. You have to do more aggressive rounding, but at least the scheme is very simple to decompress and stream.

Kevcmkyesterday at 10:16 PM

Woah. Good science.

kittikittitoday at 1:20 AM

Thank you for sharing this. I like to test out running LLM's on edge computing with limited RAM and GPU/CPU so this research will have practical implications on my activities. I also appreciated how the authors formulated 1.58 (it's log_2(3)) because that was embarrassingly confusing for me when I was first introduced to ternary LLM's.

kadushkayesterday at 10:59 PM

[dead]

kadushkayesterday at 10:22 PM

[flagged]