MCPcopy Create free account
hub / github.com/OpenBMB/ToolBench / decompress

Function decompress

toolbench/model/compression.py:166–199  ·  view source on GitHub ↗

Simulate group-wise dequantization.

(packed_data, config)

Source from the content-addressed store, hash-verified

164
165
166def decompress(packed_data, config):
167 """Simulate group-wise dequantization."""
168 if not config.enabled:
169 return packed_data
170
171 group_size, num_bits, group_dim, symmetric = (
172 config.group_size,
173 config.num_bits,
174 config.group_dim,
175 config.symmetric,
176 )
177
178 # Dequantize
179 if symmetric:
180 data, scale, original_shape = packed_data
181 data = data / scale
182 else:
183 data, mn, scale, original_shape = packed_data
184 data = data / scale
185 data += mn
186
187 # Unpad
188 pad_len = group_size - original_shape[group_dim] % group_size
189 if pad_len:
190 padded_original_shape = (
191 original_shape[:group_dim]
192 + (original_shape[group_dim] + pad_len,)
193 + original_shape[group_dim + 1 :]
194 )
195 data = data.reshape(padded_original_shape)
196 indices = [slice(0, x) for x in original_shape]
197 return data[indices].contiguous()
198 else:
199 return data.view(original_shape)

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected