Анализ ML-инфраструктуры: от конвейера данных до модели
Трассировка потоков данных через конвейер обучения. Верификация AI-сгенерированного кода. Очистка от завершённых экспериментов. Python + C/C++ + Go в едином графе.
Проблемы ML-команд: код растёт быстрее понимания
ML-инфраструктура — это не только модели. Это сотни тысяч строк кода на нескольких языках, которые никто не контролирует целиком
Завершённые эксперименты засоряют кодовую базу
Каждый эксперимент оставляет код: этапы предобработки, конструирование признаков, циклы обучения. Через год 30-40% кодовой базы — заброшенные ветки экспериментов, которые никто не решается удалить.
45% AI-сгенерированного кода содержит уязвимости
Copilot и Claude генерируют код быстро, но не знают контекст вашей системы. Небезопасные десериализации, отсутствие валидации, утечки данных — уязвимости попадают в production незамеченными (Veracode 2025).
Непрозрачность конвейера данных
Данные проходят через десятки функций в разных файлах: загрузка, очистка, трансформация, аугментация, нормализация. Ручная трассировка «откуда берутся данные для обучения?» занимает дни.
Решение: CPG-анализ для ML-инфраструктуры
CodeGraph строит граф свойств кода (CPG) и анализирует потоки данных через весь ML-стек
Трассировка потоков данных
Межпроцедурный анализ прослеживает путь данных от источника (CSV, S3, база данных) через трансформации до использования в модели. Полный путь с файлами и строками — не абстрактный граф, а конкретный код.
Обнаружение мёртвого кода
Граф вызовов выявляет недостижимые функции: заброшенные циклы обучения, неиспользуемые этапы предобработки, неиспользуемые модули конструирования признаков. Многоуровневая фильтрация (V25–V29) сокращает ложные срабатывания.
Верификация AI-сгенерированного кода
190 YAML-правил покрывают OWASP Top 10. Анализ потоков данных верифицирует каждый путь от источника до приёмника. 12% ложных срабатываний — только реальные уязвимости с доказательствами.
Результаты
Возможности для ML-команд
CodeGraph покрывает весь жизненный цикл ML-кода
Мультиязычный ML-стек в едином графе
Python для ML, C/C++ для производительных вычислений, Go для развёртывания моделей — GoCPG анализирует каждый язык и строит единый CPG. Зависимости через FFI, ctypes, pybind11 видны в графе.
21 сценарий анализа
От онбординга до аудита безопасности. Для ML-команд актуальны: анализ архитектуры, обнаружение мёртвого кода, рефакторинг, анализ зависимостей, аудит безопасности AI-кода.
Структурный поиск паттернов
YAML-правила с CPG-ограничениями. Примеры: «найди все функции, которые читают данные из S3, но не проверяют формат», «найди циклы обучения без сохранения чекпоинтов».
On-premise и изолированная среда
ML-код содержит проприетарные алгоритмы и данные. CodeGraph разворачивается полностью on-premise. Docker / Kubernetes. Локальные LLM для изолированных сред. Код не покидает инфраструктуру.
CI/CD интеграция
GitHub Actions, GitLab CI. Анализ на каждый PR: проверка AI-сгенерированного кода, поиск уязвимостей, обнаружение мёртвого кода. Экспорт в SARIF 2.1.0 для интеграции с IDE.
Вопросы об AI/ML Engineering
Да. CodeGraph анализирует Python-код на уровне CPG — строит граф вызовов, потоки данных, зависимости. Это работает с любыми Python-библиотеками: PyTorch, TensorFlow, JAX, scikit-learn. CodeGraph не анализирует веса моделей или вычислительные графы фреймворков, но полностью покрывает инфраструктурный код: циклы обучения, загрузка данных, конвейеры предобработки, API-сервисы моделей.
CodeGraph проверяет AI-сгенерированный код через CPG: анализ потоков данных выявляет уязвимости, которые AI-ассистенты часто вносят — небезопасные десериализации, SQL-инъекции, отсутствие валидации входных данных. 190 YAML-правил из коробки покрывают OWASP Top 10. Результат — конкретные пути от источника до приёмника, а не сопоставление шаблонов.
Да. CodeGraph строит граф потоков данных через весь код: от чтения данных (CSV, S3, база данных) через трансформации (pandas, Spark) до записи результатов. Межпроцедурный анализ прослеживает данные через цепочки вызовов в разных файлах и модулях. Это не замена Airflow/MLflow lineage, а дополнение на уровне исходного кода — показывает, какой именно код обрабатывает данные на каждом этапе.
CodeGraph анализирует граф вызовов и находит недостижимый код: функции обучения, которые никто не вызывает, заброшенные этапы предобработки, неиспользуемые конструирование признаков модули. Многоуровневая фильтрация ложных срабатываний (V25–V29) сокращает шум: class-aware reachability, фильтр вложенных функций, исключение полностью мёртвых модулей. Результат: точный список кода, который можно безопасно удалить.
Нет. Статический анализ кода (парсинг, построение CPG, граф вызовов, анализ потоков данных) работает на CPU. GPU не требуется. LLM-компонент (ответы на вопросы о коде) может использовать GPU для локальных моделей, но также поддерживает облачные API (GigaChat, YandexGPT) без локального GPU.
ML-проекты часто используют Python + C/C++ (через ctypes, pybind11, Cython) или Python + Go (через CGO). GoCPG анализирует каждый язык и строит CPG. 11 языков поддерживаются нативно. Кросс-языковые зависимости видны через единый граф — можно проследить вызов от Python-обёртки до C-реализации.
Да. CodeGraph формирует доказательства соответствия: журнал аудита всех запросов, DLP-защита от утечки кода через LLM, RBAC с разделением прав. Для AI-систем, попадающих под требования 152-ФЗ (обработка ПДн) и ГОСТ Р 56939 (безопасная разработка), CodeGraph предоставляет верифицированные отчёты об уязвимостях с классификацией CWE.
Да. CodeGraph проектировался для больших кодовых баз. GoCPG обрабатывает моно-репозитории с миллионами строк кода. Инкрементальные обновления: после первого парсинга обновляются только изменённые файлы. DuckDB-бэкенд обеспечивает запросы за 2-3 мс даже на больших графах.
Запросить демо для ML-команды
Покажем, как CodeGraph анализирует ваш ML-стек: трассировка конвейера данных, обнаружение завершённых экспериментов, верификация AI-сгенерированного кода. Python + C/C++ + Go в едином графе.