
Трансформер в on-premise AppSec: как мы встроили ML-модель для классификации секретов в продукт без GPU
nouhadonosor только что Трансформер в on-premise AppSec: как мы встроили ML-модель для классификации секретов в продукт без GPU Средний 9 мин 13 Блог компании CodeScoring Информационная безопасность * Машинное обучение...
В сфере искусственного интеллекта произошло заметное событие. nouhadonosor только что Трансформер в on-premise AppSec: как мы встроили ML-модель для классификации секретов в продукт без GPU Средний 9 мин 13 Блог компании CodeScoring Информационная безопасность * Машинное обучение * Python * Open source * Туториал TLDR; Рассказываем, как мы интегрировали CodeBERT-based модель классификации секретов в production-продукт с жёсткими ограничениями по железу, сократив время инференса с 320 до 90 секунд и размер модели с ~600 до ~130 МБ — без дискретных ускорителей и тяжёлых зависимостей. В предыдущей статье мы рассказали о том, как готовили и собирали нашу модель на основе модели CodeBERT для классификации срабатываний движков поиска секретов в коде. Там речь шла о датасетах, токенизаторе, метриках и о том, как нам удалось поднять PR AUC* с 0.
*PR AUC — Area Under the Precision-Recall Curve, буквально “площадь под кривой “точность-полнота””, простыми словами: уверенность модели при вероятностной оценке истинно положительного редкого класса в общей выборке. Обо мнеЯ Натан, техлид модуля Secrets в CodeScoring. Работаю над Secrets уже почти 2 года, раньше работал в FinTech и EdTech, сейчас пишу на Python и Go.
Технические детали
О компанииВ CodeScoring мы занимаемся созданием решения для безопасной работы с open source, проверки совместимости лицензий, поиска секретов и оценки качества кода в разрезе команды. Как мы подходили к вопросу интеграции тяжело вычисляемой модели в AppSec-продукт в рамках ограниченной по мощности целевой машины. Статья будет полезна в первую очередь MLOps’ам, которые хотят совместить машинное обучение и информационную безопасность, а также тем, кто интегрирует ресурсоемкие решения в условиях ограниченных вычислительных мощностей без просадки производительности продукта.
Контекст: что такое on-premise и какие вводные в целом? Наш продукт запускается on-premise, то есть на мощностях клиента. Целевой сценарий — помощь в верификации результатов сканирования на секреты в коде в рамках CI/CD пайплайнов.
В прошлой реализации модели у нас был отлаженный, привычный для пользователя процесс, поэтому мы хотели вписать в него новую версию, чтобы не вызывать лишнего трения у пользователя. Трансформеры — это тяжёлая история, и прежде чем двигаться дальше, нужно было честно ответить: можем ли мы запустить это в условиях ограниченных ресурсов по железу клиента и требованиями безопасности с приемлемым качеством UX? После нескольких раундов обсуждений и отсеивания реального и нереального, мы пришли к следующим требованиям:Модель работает строго на машине клиента.
Инференс в рамках анализа должен занимать не более 5 минут для гипотетического проекта, который содержит 1000 секретов, поскольку работа модели над секретами — это самая емкая по времени часть. На практике такие объемы почти не встречаются. Тут также стоит учитывать то, что Секреты не одиноки и будут конкурировать за ресурсы с другими частями продукта и системы.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.





