Skip to content

Commit

Permalink
fix: Always return a list of quantization bits values from `get_quant…
Browse files Browse the repository at this point in the history
…ization` (#3926)

merging– failing tests are unrelated
  • Loading branch information
jeffkinnison committed Feb 9, 2024
1 parent 51f38c5 commit 9f3dbdc
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 6 deletions.
6 changes: 3 additions & 3 deletions ludwig/utils/config_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ def config_uses_llm(config: Union[Dict[str, Any], ModelConfig]) -> bool:
return uses_llm


def get_quantization(config: Union[Dict[str, Any], ModelConfig]) -> Union[int, List[int], None]:
def get_quantization(config: Union[Dict[str, Any], ModelConfig]) -> List[Union[int, None]]:
"""Get the quantization specified in a config at any level.
Args:
Expand All @@ -157,7 +157,7 @@ def get_quantization(config: Union[Dict[str, Any], ModelConfig]) -> Union[int, L
"""
if isinstance(config, ModelConfig):
if config.model_type == MODEL_LLM:
return config.quantization.bits if config.quantization else None
return [config.quantization.bits] if config.quantization else [None]
else:
quantization_bits = []
for feature in config.input_features:
Expand All @@ -169,7 +169,7 @@ def get_quantization(config: Union[Dict[str, Any], ModelConfig]) -> Union[int, L
return quantization_bits
elif isinstance(config, dict) and config:
if config.get(MODEL_TYPE, MODEL_ECD) == MODEL_LLM:
return config.get("quantization", {}).get("bits")
return [config.get("quantization", {}).get("bits")]
elif INPUT_FEATURES in config:
quantization_bits = []
for feature in config.get(INPUT_FEATURES, []):
Expand Down
6 changes: 3 additions & 3 deletions tests/ludwig/utils/test_config_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -246,9 +246,9 @@ def ecd_config_dict_llm_encoder_8bit(
"config,expectation",
[
# LLM configurations
("llm_config_dict", None),
("llm_config_dict_4bit", 4),
("llm_config_dict_8bit", 8),
("llm_config_dict", [None]),
("llm_config_dict_4bit", [4]),
("llm_config_dict_8bit", [8]),
# LLM encoder configurations with one feature
("ecd_config_dict_llm_encoder", [None]),
("ecd_config_dict_llm_encoder_4bit", [4]),
Expand Down

0 comments on commit 9f3dbdc

Please sign in to comment.