Комментарии 10
В SIEM "сырые" события перед обработкой тоже проходят санитайзинг, агрегацию и корреляцию. Только после этого вступают в работу обработчики правил срабатывания.
А у вас есть какие-то бенчмарки эффективности работы с логами, какая методика исследования? Например, можно 100 раз прогнать один и тот же лог в одном формате, посмотреть процент корректно распознанных проблем, и сравнить с таким же процентом, если просто давать сырые логи. Это было бы интересно глянуть, учитывая, что у современных LLM достаточно большой контекст (сотни тысяч-миллионы токенов), и они и так должны были бы неплохо справляться с такими задачами.
Бэнчмарки самые примитивные и простые. Скопировал логи – вставил логи. В системном уведомлении отобразилось сколько символов было и сколько стало, а также процент компрессии. На моем типе логов она плавает в среднем в районе 76-78%. Чем больше логов, тем больше степень сжатия.
LLM достаточно большой контекст (сотни тысяч-миллионы токенов), и они и так должны были бы неплохо справляться с такими задачами.
Справляются-то они хорошо с большим количеством логов, но в случае когда их просто нужно вставить в чат обычным копипастом, то нерйонка все равно расходует на это токены и как следствие лимиты и ваши деньги. Данное приложение призвано сократить расход в таких ситуациях.
Индустрия понемногу переизобретает компрессию данных для более дешевой их обработки...)
Да, почти дошли до 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, наверное, чтобы не тащить дополнительные зависимости.

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