Обновить

Как я экономлю 80% контекста нейросетей при работе с логами

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели6.9K
Всего голосов 9: ↑7 и ↓2+5
Комментарии10

Комментарии 10

В SIEM "сырые" события перед обработкой тоже проходят санитайзинг, агрегацию и корреляцию. Только после этого вступают в работу обработчики правил срабатывания.

А у вас есть какие-то бенчмарки эффективности работы с логами, какая методика исследования? Например, можно 100 раз прогнать один и тот же лог в одном формате, посмотреть процент корректно распознанных проблем, и сравнить с таким же процентом, если просто давать сырые логи. Это было бы интересно глянуть, учитывая, что у современных LLM достаточно большой контекст (сотни тысяч-миллионы токенов), и они и так должны были бы неплохо справляться с такими задачами.

Бэнчмарки самые примитивные и простые. Скопировал логи – вставил логи. В системном уведомлении отобразилось сколько символов было и сколько стало, а также процент компрессии. На моем типе логов она плавает в среднем в районе 76-78%. Чем больше логов, тем больше степень сжатия.

LLM достаточно большой контекст (сотни тысяч-миллионы токенов), и они и так должны были бы неплохо справляться с такими задачами.

Справляются-то они хорошо с большим количеством логов, но в случае когда их просто нужно вставить в чат обычным копипастом, то нерйонка все равно расходует на это токены и как следствие лимиты и ваши деньги. Данное приложение призвано сократить расход в таких ситуациях.

Я имею в виду бенчмаркинг эффективности анализа логов (насколько с вашим подходом модель чаще/реже корректно определяет проблему по логам, чем если бы ей просто скормить логи). Компрессия input токенов понятна, да.

Индустрия понемногу переизобретает компрессию данных для более дешевой их обработки...)

Да, почти дошли до ASN 1, ждём когда protobuf переизобретут

есть идея для стартапа:

Сжимаем лог с помощью gzip и подаем нейросетке.

Кстати как у них с обработкой zip данных, должны же были что-то прикрутить, чтобы интернет в plain text не просить.

Вот кстати неиронично кажется мне что нейросетки можно обучить на выходе любого потокового архиватора с относительно небольшим окном (чтобы аттеншен сильно не страдал)

Спросил чатГПТ. Говорит бинарные данные плохо уживаются с моделью.

Далее

Dictionary compression helps storage, not intelligence. For LLM analysis of logs, semantic compression is better than syntactic compression.

ВАЖНО - я говорю именно про обучение модели с нуля, не про скармливание бинарных данных в обычную текстовую модель.

А так, надо понимать что текст - точно такие же бинарные данные для модели, просто набор абстрактных чисел (токенов) между которыми есть какие-то взаимосязи. И вот ллм в процессе обучения пытается найти взаимосвязи между этими числами и успешно находит, после чего может предсказывать какое число должно быть следующим.

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

Но учитывая насколько хорошо модели умеют соблюдать локальную структуру токенов (они по сути не совершают ошибок в структуре предложений/текстов, а это воообще будто бы более сложная задача чем соблюдать well defined структуру архивов) - скорее всего этому они прекрасно научились бы тоже.

Тут правда возникает вопрос - насколько этот дополнительный слой обфускации помешает моделям корректно понимать собственно смысл текста, ведь получается модели надо сначала перевести архив в текст на определенном языке, а потом текст - в его "смысл", общий между разными языками (то что все нейронки в итоге приходят к некоторому универсальному языку для внутреннего мышления - факт вроде бы даже доказанный).

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

Но если так не упарываться, то ничего не мешает модель и на выводе zlib с каким-то разумным размером блока и хорошим словарем - модели то все равно какие взаимосвязи предсказывать.

Было бы здорово превратить эту утилиту в навык для Codex/Claude code, в идеале на python, наверное, чтобы не тащить дополнительные зависимости.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации