diff --git a/src/llmcompressor/logger.py b/src/llmcompressor/logger.py index 08f905ed5..4a1d7ac0d 100644 --- a/src/llmcompressor/logger.py +++ b/src/llmcompressor/logger.py @@ -64,23 +64,19 @@ def configure_logger(config: Optional[LoggerConfig] = None): :param config: The configuration for the logger to use. :type config: LoggerConfig """ + logger_config = config or LoggerConfig() + + # env vars get priority if (disabled := os.getenv("LLM_COMPRESSOR_LOG_DISABLED")) is not None: - disabled = disabled.lower() + logger_config.disabled = disabled.lower() if (clear_loggers := os.getenv("LLM_COMPRESSOR_CLEAR_LOGGERS")) is not None: - clear_loggers = clear_loggers.lower() + logger_config.clear_loggers = clear_loggers.lower() if (console_log_level := os.getenv("LLM_COMPRESSOR_LOG_LEVEL")) is not None: - console_log_level = console_log_level.upper() - log_file = os.getenv("LLM_COMPRESSOR_LOG_FILE") - log_file_level = os.getenv("LLM_COMPRESSOR_LOG_FILE_LEVEL") - - # override from environment variables, if set - logger_config = LoggerConfig( - disabled=disabled or LoggerConfig.disabled, - clear_loggers=clear_loggers or LoggerConfig.clear_loggers, - console_log_level=console_log_level or LoggerConfig.console_log_level, - log_file=log_file or LoggerConfig.log_file, - log_file_level=log_file_level or LoggerConfig.log_file_level, - ) + logger_config.console_log_level = console_log_level.upper() + if (log_file := os.getenv("LLM_COMPRESSOR_LOG_FILE")) is not None: + logger_config.log_file = log_file + if (log_file_level := os.getenv("LLM_COMPRESSOR_LOG_FILE_LEVEL")) is not None: + logger_config.log_file_level = log_file_level if logger_config.disabled: logger.disable("llmcompressor") @@ -105,8 +101,9 @@ def configure_logger(config: Optional[LoggerConfig] = None): # log as json to the file for easier parsing logger.add(log_file, level=log_file_level.upper(), serialize=True) - if logger_config.metrics_disabled: + if logger_config.metrics_disabled or "METRIC" in logger._core.levels.keys(): return + # initialize metric logger on loguru _initialize_metric_logging() diff --git a/src/llmcompressor/modifiers/quantization/gptq/utils/gptq_wrapper.py b/src/llmcompressor/modifiers/quantization/gptq/utils/gptq_wrapper.py index 3dc1b38e1..82b6f6802 100644 --- a/src/llmcompressor/modifiers/quantization/gptq/utils/gptq_wrapper.py +++ b/src/llmcompressor/modifiers/quantization/gptq/utils/gptq_wrapper.py @@ -241,7 +241,7 @@ def compress( ( f"GPU {i} | usage: {perc:.2f}%" f" | total memory: {total_memory} GB" - ) + ), ) logger.log( diff --git a/src/llmcompressor/utils/metric_logging.py b/src/llmcompressor/utils/metric_logging.py index 842ec2fa4..d0b3bb11e 100644 --- a/src/llmcompressor/utils/metric_logging.py +++ b/src/llmcompressor/utils/metric_logging.py @@ -7,8 +7,13 @@ def get_GPU_memory_usage() -> List[Tuple]: try: import pynvml + from pynvml import NVMLError - pynvml.nvmlInit() + try: + pynvml.nvmlInit() + except NVMLError as _err: + logger.warning(f"Pynml library error:\n {_err}") + return [] device_count = pynvml.nvmlDeviceGetCount() usage = [] # [(percentage, total_memory_MB)]