## Контекст
Программный код обычно форматируется с использованием элементов, таких как отступы и переносы строк, чтобы улучшить его читабельность для разработчиков. Однако эти визуальные подсказки, как оказалось, не имеют такого же уровня пользы для больших языковых моделей (LLMs), так как эти модели обрабатывают код в виде последовательности токенов. Вместо этого, дополнительные токены, внесенные стилем форматирования, могут привести к увеличению вычислительных затрат и увеличению времени отклика LLMs. Если эти элементы не являются критичными для LLMs, то их можно удалить, чтобы уменьшить эти затраты. Несмотря на то, что многие исследования рассказывают о том, как устроены языковые модели и как они работают, существуют немногие исследования, которые исследовали влияние форматирования кода на эффективность LLMs. Наша цель — изучить этот аспект, а также разработать методы, которые позволят улучшать эффективность LLMs, не ухудшая читабельность для разработчиков.
## Метод
Для изучения влияния форматирования кода на LLMs мы проводили подробный анализ с использованием Fill-in-the-Middle Code Completion задач. Эти задачи участвуют в имитации реальных сценариев использования LLMs в реальном времени. Мы проводили эксперименты на четырёх языках программирования (Java, Python, C++ и C#) с десятком моделей, включая как коммерческие, так и открытые. Мы сравнивали токены входных данных и результатов при удалении форматирования и проводили систематический анализ влияния этих изменений на эффективность LLMs.
## Результаты
Наши эксперименты показали, что удаление форматирования кода приводит к существенному снижению числа токенов входных данных — до 24.5% — без значимого снижения точности результатов. Это означает, что удаление форматирования может быть эффективной стратегией для оптимизации LLMs. Также мы обнаружили, что LLMs могут выдавать короче выходные выражения без ущерба для точности, в результате того, чтобы последовательность токенов была уменьшена при помощи тренировки моделей (prompting или fine-tuning). Мы также разработали инструмент для бидректориального преобразования кода, который может быть интегрирован в рабочий процесс интерпретации LLMs для управления форматированием кода.
## Значимость
Наша работа показывает, что код можно форматировать не только для человеческого читаемости, но и для улучшения эффективности работы LLMs. Это открывает новые возможности для сокращения затрат на вычисления, что может иметь значительное значение в приложениях, где вычисления дорогостоящи, таких как мобильные устройства и облачные сервисы. Кроме того, оптимизированная декодирование выходных данных могла бы позволить LLMs быстрее и эффектив