Automated File-Level Logging Generation for Machine Learning Applications using LLMs: A Case Study using GPT-4o Mini

2508.04820v1 cs.SE, cs.AI, cs.LG 2025-08-09
Авторы:

Mayra Sofia Ruiz Rodriguez, SayedHassan Khatoonabadi, Emad Shihab

Резюме на русском

## КОНТЕКСТ И ПРОБЛЕМАТИКА Logging является важной составляющей современного программного обеспечения, позволяющей разработчикам отслеживать поведение системы и упрощающей отладку приложений. Однако создание эффективных лог-сообщений требует времени и опыта, что затрудняет обеспечение согласованности и полноты логирования, особенно в больших проектах. В последнее время исследования в области применения технологий языковых моделей (Large Language Models, LLMs) для автоматического генерирования кода получили широкое распространение. Благодаря способности LLMs к генерации естественного языка и кода, исследователи рассматривают их потенциал в создании лог-сообщений. Тем не менее, существующие исследования в этой области в основном концентрируются на лог-сообщениях, встроенных в функции кода, оставляя недостаточно изученным вопрос генерации логов на уровне файлов. Это особенно актуально для машинного обучения (ML), где комплексное логирование критически важно для обеспечения надежности и отслеживания поведения моделей. Файловое логирование в ML-проектах требует учета специфики данных, алгоритмов и структуры проекта, что делает задачу еще более сложной. Данная работа предлагает исследовать возможности GPT-4o mini, одной из LLMs, в генерации лог-сообщений для ML-проектов на уровне файлов. Изучая эту проблему, исследование помогает выявить текущие трудности и оценить перспективы применения LLMs в реальных условиях разработки. ## ПРЕДЛОЖЕННЫЙ МЕТОД В рамках исследования была выбрана модель GPT-4o mini для генерации логов в ML-проектах. Модель была запрошена для создания лог-сообщений на уровне файлов Python, основываясь на содержимом файлов без предварительных логов. Для этого были собраны данные из 171 репозиториев ML-проектов, содержащих 4073 Python-файла с логами. Оригинальные логи были удалены, чтобы создать чистые файлы для генерации. Затем, для каждого файла, модель получала запрос на генерацию логов, основываясь на его содержимом. Генерируемые логи оценивались по нескольким критериям: точность позиционирования логов, выбор уровня логирования, качество переменных и текста лог-сообщений. Для сравнения были использованы логи, написанные человеком, что позволило выявить различия и оценить эффективность генерируемых логов. Дополнительно была проведена ручная аналитика над выборкой логов, чтобы выявить типичные шаблоны и ограничения в генерируемых лог-сообщениях. Этот подход позволил оценить не только точность, но и соответствие логов конвенциям конкретных проектов. ## ЭКСПЕРИМЕНТАЛЬНЫЕ РЕЗУЛЬТАТЫ Исследование показало, что GPT-4o mini способна вставлять логи в точках, совпадающих с рукописными логами, в 63,91% случаев. Однако при этом была зафиксирована высокая степень "overlogging" — 82,66% лог-сообщений были неправильно позиционированы или ненужны. Также было обнаружено, что модель часто генерирует логи в начале или конце функций, что может быть неэффективно в больших блоках кода. Ручной анализ выявил несколько ключевых проблем: - Чрезмерное логирование в некритичных участках кода. - Трудности в логировании внутри крупных и сложных функций. - Несоответствие логов специфичным конвенциям конкретных проектов. ## ПРАКТИЧЕСКАЯ ЗНАЧИМОСТЬ Несмотря на выявленные ограничения, данное исследование показывает потенциал LLMs в автоматизации логирования, особенно в ML-проектах. Автоматическое генерирование логов может значительно ускорить процесс разработки, уменьшить человеческий труд и повысить надежность систем. Однако для практического применения необходимо решить проблемы связанные с overlogging и несоответствием конвенциям. ## ВЫВОДЫ И ПЕРСПЕКТИВЫ Исследование показало, что GPT-4o mini может быть полезна для генерации логов на файловом уровне, но существуют значительные проблемы, которые необходимо решить для её практического применения. Будущие исследования могут фокусироваться на улучшении точности позиционирования логов, сокращении overlogging и адаптации моделей к конкретным проектам.

Abstract

Logging is essential in software development, helping developers monitor system behavior and aiding in debugging applications. Given the ability of large language models (LLMs) to generate natural language and code, researchers are exploring their potential to generate log statements. However, prior work focuses on evaluating logs introduced in code functions, leaving file-level log generation underexplored -- especially in machine learning (ML) applications, where comprehensive logging can enhance reliability. In this study, we evaluate the capacity of GPT-4o mini as a case study to generate log statements for ML projects at file level. We gathered a set of 171 ML repositories containing 4,073 Python files with at least one log statement. We identified and removed the original logs from the files, prompted the LLM to generate logs for them, and evaluated both the position of the logs and log level, variables, and text quality of the generated logs compared to human-written logs. In addition, we manually analyzed a representative sample of generated logs to identify common patterns and challenges. We find that the LLM introduces logs in the same place as humans in 63.91% of cases, but at the cost of a high overlogging rate of 82.66%. Furthermore, our manual analysis reveals challenges for file-level logging, which shows overlogging at the beginning or end of a function, difficulty logging within large code blocks, and misalignment with project-specific logging conventions. While the LLM shows promise for generating logs for complete files, these limitations remain to be addressed for practical implementation.

Ссылки и действия