Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
llm-circuit-finder — Я воспроизвёл метод RYS Нг и обнаружил, что дублирование 3 конкретных слоёв в Qwen2.5-32B повышает способность к рассуждению на 17%, а дублирование слоёв 12–14 в Devstral-24B улучшает логическую дедукцию с 0.22→0.76 на BBH — без обучения, без изменения весов, просто прогоняя скрытые состояния через одну и ту же схему дважды. Инструменты прилагаются. Два GPU AMD, один вечер. | Kitploit
Инструменты/GitHubGitHub/alainnothere/llm-circuit-finder
ЭксплуатацияОбратная инженерияМашинное ОбучениеСтатьи и ИсследованияОбучение и ОбразованиеБезопасность ИИ
GitHubalainnothere/llm-circuit-finder

llm-circuit-finder

Репозиторий

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →

Описание

242185 месяцев назадПроверено Kitploit

Я воспроизвёл метод RYS Нг и обнаружил, что дублирование 3 конкретных слоёв в Qwen2.5-32B повышает способность к рассуждению на 17%, а дублирование слоёв 12–14 в Devstral-24B улучшает логическую дедукцию с 0.22→0.76 на BBH — без обучения, без изменения весов, просто прогоняя скрытые состояния через одну и ту же схему дважды. Инструменты прилагаются. Два GPU AMD, один вечер.

Поделиться

llm-circuit-finder

Я воспроизвёл метод RYS от Ng и обнаружил, что дублирование 3 конкретных слоёв в Qwen2.5-32B повышает рассуждение на 17%, а дублирование слоёв 12–14 в Devstral-24B улучшает логическую дедукцию с 0,22 до 0,76 на BBH — без обучения, без изменения весов, просто маршрутизация скрытых состояний через один и тот же контур дважды. Инструменты прилагаются. Два AMD GPU, один вечер.

llm-circuit-finder

Дублируйте 3 слоя. Без обучения. Логическая дедукция с ~0,22 → 0,76.

Этот набор инструментов находит и использует «контуры рассуждения», скрытые внутри трансформерных моделей. Идея: определенные последовательные блоки слоёв действуют как неделимые когнитивные единицы. Продублируйте их в прямом проходе — те же веса, без обучения, без слияния — и модель становится измеримо умнее в конкретных способностях.

Создано на основе метода RYS Дэвида Нга и расширено новыми открытиями. Всё здесь было обнаружено на двух потребительских AMD GPU (RX 7900 XT + RX 6950 XT) за один вечер.

Результаты

Devstral-Small-2-24B: Слои 12, 13, 14 дублированы один раз

Я запустил полные тесты на инстансе H200 на Vast.ai и сравнил базовый Devstral с моделью после «хирургии». Результаты таковы: хирургия действительно даёт реальный и специфический эффект: она повышает математическое и каузальное рассуждение, но ценой следования инструкциям и генерации кода. Модель думает усерднее, но менее точно следует указаниям.

В папке results вы можете увидеть результаты в eval_base и eval_surgery. Я также добавил в репозиторий vastai_rys_eval.sh — это скрипт, использованный для запуска всего «винегрета» на Vast.ai. Инстанс Vast.ai создан командой

vastai create instance somenumberhere --image vastai/base-image:cuda-12.8.1-cudnn-devel-ubuntu22.04 --disk 80 --direct --ssh

root@kitploit:~
=================================================================================
lm_eval Results Comparison
=================================================================================
Metric                                              base  rys_12_15 Δ(last-first)
---------------------------------------------------------------------------------
bbh/causal_judgement [exact_match]                0.5775     0.6364     +0.0588

bbh/date_understanding [exact_match]              0.9440     0.9000     -0.0440

bbh/logical_deduction_five_objects [exact_match]     0.7440     0.7320     -0.0120

bbh/navigate [exact_match]                        0.9600     0.9440     -0.0160

gsm8k_cot [flexible-extract]                      0.8650     0.8787     +0.0136
gsm8k_cot [strict-match]                          0.8408     0.8704     +0.0296

ifeval [inst_level_loose_acc]                     0.7446     0.7206     -0.0240
ifeval [inst_level_strict_acc]                    0.6990     0.6595     -0.0396
ifeval [prompt_level_loose_acc]                   0.6728     0.6488     -0.0240
ifeval [prompt_level_strict_acc]                  0.6229     0.5767     -0.0462

mbpp [pass_at_1]                                  0.7000     0.6700     -0.0300
=================================================================================

Average (all metrics)                             0.7610     0.7488     -0.0122

Qwen2.5-Coder-32B: Слои 7, 8, 9 дублированы один раз

Измерено на кастомном наборе проб (на основе BBH + стиль EQ-Bench + GSM8K):

ProbeBase+3 слояИзменение
Рассуждение (каузальное + логика + навигация)76.5%94.1%+23%

Что происходит

Трансформеры в процессе обучения организуются в функциональные контуры — многослойные блоки обработки, которые выполняют полные когнитивные операции. Эти контуры неделимы: дублирование одного слоя почти не даёт эффекта, но дублирование правильного блока из 3–4 слоёв даёт модели второй проход через её конвейер рассуждений.

У разных моделей разные контуры в разных местах:

  • Devstral-24B (40 слоёв): контур рассуждения на слоях 12–14
  • Qwen2.5-32B (64 слоя): контур рассуждения на слоях 7–9

Границы чёткие. Если сдвинуть блок на один слой в любую сторону, улучшение исчезает или меняет знак.

Открытие «режимов»

Различные схемы дублирования создают различные когнитивные профили из одних и тех же весов:

Те же веса на диске. Тот же VRAM для базовой модели. Просто разная маршрутизация.

Быстрый старт

Найдите контуры в своей модели

root@kitploit:~
pip install gguf requests tqdm

python sweep.py \
    --model /path/to/model.gguf \
    --llama-server /path/to/llama-server \
    --tmpdir /dev/shm/rys \
    --results pass.jsonl \
    --block-sizes 3 4 5 \
    --stride 1 \
    --start-min 10 --start-max 20 \
    --skip-baseline \
    --port 8099 \
    --server-args --device Vulkan1,Vulkan2

Примените известный контур

root@kitploit:~
# Дублировать слои 12–14 в Devstral (результат, подтверждённый выше)
python layer_path.py model.gguf improved.gguf \
    -p "0..14,12,13,14,15..39" -v

# Дублировать слои 7–9 в Qwen2.5-32B
python layer_path.py model.gguf improved.gguf \
    -p "0..9,7,8,9,10..63" -v

# Экспериментируйте: тройной проход, перемежающийся, пропуск слоёв — что угодно
python layer_path.py model.gguf experiment.gguf \
    -p "0..16,13,14,15,16,13,14,15,16,17..39" -v

Валидация с помощью установленных бенчмарков

root@kitploit:~
# Запустите сервер с модифицированной моделью
llama-server -m improved.gguf --port 8089 -ngl 99 --device Vulkan1,Vulkan2

# Запустите lm-evaluation-harness
lm_eval --model local-chat-completions \
    --model_args model=test,base_url=http://localhost:8089/v1/chat/completions,num_concurrent=1,max_retries=3,tokenized_requests=False \
    --tasks gsm8k_cot,ifeval,mbpp,bbh_cot_fewshot_logical_deduction_five_objects \
    --apply_chat_template --limit 50 \
    --output_path ./eval_results

# Сравните результаты
python compare_eval.py ./eval_base ./eval_improved

Файлы

Как работает sweep

  1. Для каждой конфигурации слоёв (i, j):

    • GGUF surgery создаёт модель, где слои i..j-1 физически дублированы
    • Новый прямой проход: layers 0..j-1 → layers i..j-1 снова → layers j..N-1
    • llama-server загружает модифицированную модель
    • Запускаются три набора проб: математика, EQ, рассуждение (на основе BBH)
    • Оценки сравниваются с базовой линией, результаты выводятся в реальном времени
    • Сервер убивается, модифицированный GGUF удаляется, следующая конфигурация
  2. Стратегия поиска:

    • Проход 1: Большие блоки (8 слоёв), широкий шаг → найти горячую зону
    • Проход 2: Маленькие блоки (3–5 слоёв), шаг 1 внутри горячей зоны → найти точные границы
    • Проход 3: Попробовать многопроходные, перемежающиеся и составные конфигурации

Модифицированные GGUF записываются в tmpfs (/dev/shm) и удаляются после каждого теста. Веса базовой модели остаются на диске.

Требования

  • Linux с собранным llama.cpp (CPU, CUDA, Vulkan или Metal)
  • Python 3.10+ с gguf, requests, tqdm
  • Достаточно VRAM/ОЗУ для запуска модели + несколько дополнительных продублированных слоёв
  • Опционально: lm-eval для валидации бенчмарков, matplotlib для тепловых карт

Часто задаваемые вопросы

Это потребляет больше VRAM? Да, дублированные слои — это физические копии в GGUF. Для 3 дополнительных слоёв на модели 24B ожидайте ~1.5 GiB дополнительно. Патч прямого прохода llama.cpp (с использованием указателей вместо копий) устранил бы это — вклады приветствуются.

Это замедляет инференс? Да, пропорционально количеству дополнительных слоёв. 3 дополнительных слоя на 40-слойной модели = примерно на 7.5% медленнее. Улучшение рассуждения того стоит.

Будет ли это работать на моей модели? Вероятно. Мы тестировали на архитектурах Mistral (Devstral) и Qwen2. Оригинальная работа Ng была на Qwen2-72B. Контуры существуют во всех трансформерных моделях — вопрос в том, где они и какого размера. Запустите sweep и узнайте.

Почему не сделать fine-tune вместо этого? Это ортогонально fine-tune. Можно делать и то, и другое. Фактически, модели RYS Ng позже были дообучены другими и возглавили лидерборд HuggingFace. Дублирование слоёв меняет архитектуру; fine-tune меняет веса. Стекируйте их.

Благодарности

  • David Ng за метод RYS и прозрение, что трансформеры имеют функциональную нейроанатомию
  • llama.cpp за то, что сделал локальный инференс практичным
  • lm-evaluation-harness за валидацию бенчмарков

Лицензия

MIT

Скачать инструмент
EQ (эмоциональный интеллект)
92.1
93.6
+1.6%
СхемаМатематикаEQХарактер
Двойной проход 13–16↑↑↑Специалист по математике
Тройной проход 13–16↑↑↑Специалист по EQ
Перемежающийся 13,13,14,14,15,15,16↑↑↑↓Чистый математический режим
Четверной проход 13–16—↑↑Режим EQ, математика нейтральна
ФайлНазначение
sweep.pyОсновной обвязчик sweep — находит оптимальные конфигурации дублирования слоёв
layer_path.pyСоздаёт любой GGUF с явным путём выполнения слоёв
gguf_surgery.pyНизкоуровневое дублирование слоёв GGUF (используется sweep.py)
math_probe.pyЖёсткая арифметическая проба (частичное оценивание Ng)
eq_probe.pyПроба эмоционального интеллекта (в стиле EQ-Bench)
reasoning_probe.pyТекстовые задачи на основе BBH: каузальные, логические, навигация, математика
compare_eval.pyСравнение результатов lm-evaluation-harness между запусками
visualize.pyТекстовые и PNG тепловые карты результатов sweep