Two Unsloth UD quant names, one GGUF file, and not a single IQ1 or IQ2 tensor inside

An Unsloth UD quant name describes the recipe, not the GGUF tensors. Two Nemotron builds are byte-identical under different names, with no IQ1 or IQ2 inside.

0:00
"Two Unsloth UD quant names, one"

Picking an Unsloth UD quant GGUF from a Hugging Face file list is a bit like ordering from a menu written in a language you half know. Nineteen files, names like UD-IQ1_M and UD-Q4_K_XL, and a size column that is supposed to tell you what the tradeoff costs. On Unsloth’s Nemotron 3.5 Lightning repository, three of those files show the same size to two decimal places, and when we read their tensor tables two of them turned out to be the same build with two different names.

UD-IQ1_M and UD-IQ2_XXS are both 19,429,059,648 bytes. Not approximately. The same integer, from the Hugging Face blob index. We then read both tensor tables over HTTP range requests and compared all 417 tensors by name, shape and quantisation type. The number of tensors that differ between the two files is zero.

Are UD-IQ1_M and UD-IQ2_XXS actually different files?

Only in one field. The general.file_type key reads 31 in UD-IQ1_M and 19 in UD-IQ2_XXS. Checked against include/llama.h in llama.cpp, 31 is LLAMA_FTYPE_MOSTLY_IQ1_M and 19 is LLAMA_FTYPE_MOSTLY_IQ2_XXS, so the label is the only thing that changed. Every weight tensor in one file has the same type as its namesake in the other.

That matters because a reader choosing between them believes they are trading quality against size, and picking the cheaper name to save a download. The file does not change. The honest description of the pair is that Unsloth’s build recipe converged on the same output twice and the naming inherited two different llama.cpp labels on the way out.

The third file in that size cluster, UD-IQ2_M, is 19,432,070,208 bytes, about 3 MB heavier, and it is not identical. It differs from UD-IQ1_M in exactly 14 tensors out of 417. All fourteen are the attn_k and attn_v weights of the model’s seven attention layers, promoted from Q5_1 to Q8_0. Everything else, all 403 remaining tensors, is the same. The entire distance between a file called IQ1_M and a file called IQ2_M is fourteen attention tensors.

What quantisation types are inside an Unsloth UD quant GGUF?

This is where the names stop describing the contents. Here is the full type histogram of UD-IQ1_M, which is also the histogram of UD-IQ2_XXS:

Tensor typeCount
F32243
Q8_049
Q5_146
IQ4_NL46
Q6_K23
Q5_K7
Q5_02
BF161

There is no IQ1 tensor in the file named IQ1_M. There is no IQ2 tensor in the file named IQ2_XXS, or in the file named IQ2_M. The expert weights, which by our arithmetic are about 92 percent of this build’s bulk, are IQ4_NL in all three. The lowest-precision weight anywhere in a file named IQ1_M is a 4-bit non-linear quant.

None of this is dishonest, and it is worth being clear about why. Unsloth’s Dynamic method is explicitly mixed-precision: the point is to spend bits where the model is sensitive and save them where it is not, rather than apply one type uniformly. That is a defensible design, and on a model like this one it is arguably the right one, since the Nemotron 3.5 Lightning architecture puts only seven attention layers among 53 blocks and hangs almost all its weight on 128-expert MoE blocks. Protecting 14 attention tensors while leaving the experts at IQ4_NL is a sensible allocation.

The problem is the label. A name inherited from the llama.cpp file-type enum describes a uniform quantisation that the file does not use, and once the recipe stops matching the name, the name stops carrying information. It becomes an ordering, a rung on a ladder, rather than a description. Readers still price it as a description, which is how you end up with three names, two builds, and a 3 MB spread that a size column rounds away.

The collapse is not universal, which is worth saying plainly. We read UD-IQ3_XXS from the same repository as a control. It is 19,758,307,392 bytes, its general.file_type is 23 for LLAMA_FTYPE_MOSTLY_IQ3_XXS, and its tensor table genuinely differs from the other three. So the rungs do separate further up the ladder. What has happened at the bottom of this particular list is that three names have compressed into two builds, and the two cheapest names have compressed into one. If you are shopping by name at the low end, that is precisely where the name has stopped meaning anything, and precisely where a reader on a tight memory budget is most likely to be looking.

How do you tell two GGUF builds apart before downloading?

Read the tensor table. The header, the metadata and the full tensor-info block all sit at the front of a GGUF file, so a range request for the first few megabytes enumerates every tensor with its shape and quantisation type, whatever the file weighs. Eight megabytes answered every question in this article against files of roughly 19.4 GB each.

Three checks do most of the work. Compare exact byte sizes from the blob index rather than the rounded figures in the web view, since two files that round to the same number are worth a closer look and two files with the identical integer are almost certainly the same build. Then compare the histogram of tensor types, not the filename. Then look specifically at the expert tensors, because in an MoE model they carry the overwhelming majority of the bits, and a quant level that leaves them untouched has barely changed the file.

This is the same instrument we used to work out which layers llama.cpp promotes during quantisation and why a file named Q4_K_M often contains very little Q4_K. The pattern keeps repeating because the naming convention was designed for uniform quantisation and the field moved to mixed precision without renaming anything.

For Nemotron 3.5 Lightning specifically, the practical reading of Unsloth’s list is that UD-IQ1_M and UD-IQ2_XXS are one option, not two, and UD-IQ2_M buys you 8-bit K and V projections on seven layers for about 3 MB. If you were choosing between them on the assumption that you were trading quality for gigabytes, you were choosing between files that differ by 0.015 percent of their size.

We have not yet measured what those 14 attention tensors do to output quality, and we are not going to guess. That test needs both files resident on the studio work stack and a fixed prompt set, which is a separate afternoon. What the tensor table settles is narrower and still useful: two of these downloads are the same 19.4 GB, and the names on the other side of the size column were never going to tell you.

Share this