Ssylka

Оценка размера токенов в кодовых базах крупных проектов

Анализ крупных программных проектов, таких как MySQL, VS Code, Blender, Linux и LLVM, показывает значительные различия в количестве токенов, необходимых для их представления в моделях LLM. Использовался подход, который включает в себя объединение всех исходных файлов в единый текстовый файл, с предварительной генерацией дерева директорий, где каждый файл выделяется в формате markdown. Подготовку кодовой базы проводили с помощью многопоточной программы на C++, а подсчёт токенов выполнялся с использованием токенизатора Tiktoken от OpenAI, применяемого в моделях GPT-4o.
Оценка размера токенов в кодовых базах крупных проектов
Изображение носит иллюстративный характер

Структура объединенного файла состоит из дерева директорий, далее содержимого всех файлов, при этом в начале и в конце каждого файла добавляется имя файла и три обратных кавычки (`). Этот подход добавляет «шум» в виде метаданных, но даёт общее представление о кодовой базе. Программа на C++ также выполняет примитивный подсчет «слов», который дает значительно меньшее количество, чем количество токенов, подсчитанное Tiktoken. Важно отметить, что удаление каталогов.git и других подобных каталогов перед обработкой, как правило, должно проводиться, но не является обязательным условием. Программа на C++ для подготовки кодовой базы может быть использована на Unix и Windows системах.

Реализация подготовки кодовой базы, включая скачивание и распаковку, занимает несколько минут. Итоговые числа токенов варьируются от десятков миллионов до более чем шестисот миллионов, в зависимости от размера проекта. Так, MySQL насчитывает 242 миллиона токенов, VS Code – 31 миллион, Blender – 82 миллиона, ядро Linux – 456 миллионов, а LLVM – 631 миллион токенов.

Полученные результаты показывают масштаб кодовых баз, представляющих интерес для анализа с использованием LLM. Подобная обработка кодовой базы позволяет получить представление об общей структуре проекта, но при этом метаданные, добавленные при подготовке, могут немного искажать итоговое количество токенов. Тем не менее, подобный подход дает общее понимание о размерах токенизированных проектов, пригодных для дальнейшей обработки нейросетями.


Новое на сайте

19021Хитроумная маскировка вредоноса GootLoader через тысячи склеенных архивов 19020Удастся ли знаменитому археологу Захи Хавассу найти гробницу Нефертити до ухода на покой? 19019Действительно ли «зомби-клетки» провоцируют самую распространенную форму эпилепсии и... 19018Генетический анализ мумий гепардов из саудовской Аравии открыл путь к возрождению... 19017Вредоносная кампания в Chrome перехватывает управление HR-системами и блокирует... 19016Глубоководные оползни раскрыли историю мегаземлетрясений зоны Каскадия за 7500 лет 19015Насколько глубоки ваши познания об эволюции и происхождении человека? 19014Как уязвимость CodeBreach в AWS CodeBuild могла привести к глобальной атаке через ошибку... 19013Затерянный фрагмент древней плиты пионер меняет карту сейсмических угроз Калифорнии 19012Генетические мутации вызывают слепоту менее чем в 30% случаев вопреки прежним прогнозам 19011Завершено строительство космического телескопа Nancy Grace Roman для поиска ста тысяч... 19010Вязкость пространства и фононы вакуума как разгадка аномалий расширения вселенной 19009Приведет ли массовое плодоношение дерева Риму к рекордному росту популяции какапо? 19008Как уязвимость CVE-2026-23550 в плагине Modular DS позволяет захватить управление сайтом? 19007Может ли уличная драка французского авантюриста раскрыть кризис американского гражданства...