
Криминалистический анализ LLM на уровне весов: сравнение весов моделей, обнаружение дообучений, слияний и замаскированных производных моделей, а также выявление токенов, которые дообучение продвигает или подавляет, с оценкой по нулевой базовой линии.
Криминалистический анализ на уровне весов для причинных языковых моделей. Укажите ей две модели, и она расскажет, как они связаны — и чему научили одну из них.
| Вопрос | Анализ |
|---|---|
| Насколько и где дообучение (fine-tune) сдвинуло веса? | Weight Diff |
| Какие токены продвигают, подавляют или на которые реагируют наиболее сильные обновления? | Token Shifts |
| Как модель с Hub соотносится со своим заявленным родителем и потомками? | Hub Lineage |
| Является ли эта модель производной от другой, даже незаявленной или замаскированной? | Provenance |
| Где различаются предсказания двух моделей и что записывает дообучение? | Behaviour Probe |
Она читает полные модели, объединённые дообучения, LoRA-адаптеры, контрольные точки обучения, файлы GGUF и 4/8-битные контрольные точки bitsandbytes — локально или напрямую из Hugging Face Hub, загружая только нужные тензоры. Каждый анализ сохраняется как самодостаточный HTML-отчёт и JSON-отчёт.
Мотивация — безопасность: аудит происхождения модели, обнаружение незаявленных производных и понимание того, чему состязательное дообучение научило модель. Каждая мера сходства приводится в сравнении с нулевым базовым уровнем (null baseline), так что число можно читать как доказательство, а не как ощущение. Инструмент проверен на реальных моделях, включая состязательное дообучение, внедрённую полезную нагрузку которого выявляет Behaviour Probe.
Python 3.11+ (разработано на 3.12, Windows 11; код не зависит от ОС).
python -m venv venv
venv\Scripts\activate # Linux/macOS: source venv/bin/activate
# torch first, from the wheel index matching your hardware
pip install torch --index-url https://download.pytorch.org/whl/cpu # CPU
# or a CUDA build: https://pytorch.org/get-started/locally/
pip install -r requirements.txt
python run.py check # what this machine can do
Приватные или закрытые модели Hub: задайте HF_TOKEN или войдите один раз через huggingface-cli login.
python run.py # interactive terminal interface (default)
python run.py web # browser interface on http://127.0.0.1:5000 (address set in Setup)
python run.py check # platform, GPU, packages and available features
Оба интерфейса предлагают одни и те же меню — Weight Diff, Token Shifts, Hub Lineage, Provenance,
Behaviour Probe, Reports, Environment, Setup. Везде, где запрашивается модель, укажите id в Hub
(Qwen/Qwen2.5-Coder-1.5B) или локальный путь (папка safetensors, контрольная точка, файл .gguf или
LoRA-адаптер). Веса в формате pickle (.bin, .pt) никогда не загружаются — исследуемые модели
считаются недоверенными.
Веб-интерфейс привязан к loopback и не имеет аутентификации: не выставляйте его в сеть.
Выбор подозрительной модели и источника для сравнения с ней:

Выполняющийся анализ с индикатором прогресса в реальном времени:

Сводный отчёт — резюме для руководства над разделами по каждому анализу:

Каждый анализ сохраняется; экран Reports позволяет открывать, повторно отображать, скачивать и удалять их:

Token Shifts — наиболее сильные обновления и токены, которые они продвигают, подавляют или на которые реагируют:

Автор: Renaud Bidou ([email protected])
Лицензировано по лицензии MIT — см. LICENSE.