Nic22Of2003's picture
Update README.md
9b3081a verified
|
Raw
History Blame Contribute Delete
7.64 kB
metadata
language:
  - ru
  - en
license: apache-2.0
base_model: Qwen/Qwen3.5-2B
library_name: llama.cpp
pipeline_tag: text-generation
inference: false
tags:
  - gguf
  - iq4_nl
  - qwen
  - qwen3.5
  - uncensored
  - aggressive
  - russian
  - ru
  - text-generation-inference
  - quantized
  - llama.cpp
  - ggml
  - chat
model-index:
  - name: Qwen3.5-2B-Uncensored-HauhauCS-Aggressive-IQ4_NL
    results:
      - task:
          type: text-generation
          name: Text Generation
        dataset:
          name: wiki.test
          type: wiki.test.raw
        metrics:
          - type: perplexity
            value: 20.134
            name: PPL (wiki.test, ctx=64)
      - task:
          type: text-generation
          name: Text Generation
        dataset:
          name: hybrid_test_256
          type: hybrid_test_256.raw
        metrics:
          - type: perplexity
            value: 10.585
            name: PPL (hybrid_test_256, ctx=16384)

Qwen3.5-2B Uncensored Aggressive — IQ4_NL (любительская сборка)

Разлоченная и агрессивная 2B-модель, квантованная в формат IQ4_NL с двумя вариантами калибровки.
Цель эксперимента — показать, что даже на небольшом калибровочном наборе (1 МБ) IQ4_NL достигает своего качественного потолка, а дальнейшее увеличение данных не улучшает метрики.

🧠 Модели в репозитории

Файл Калибровка Размер (ГБ)
Qwen3.5-2B-Uncensored-HauhauCS-Aggressive-IQ4_NL_smart.gguf 1 МБ (~243 тыс. токенов) 1.15
Qwen3.5-2B-Uncensored-HauhauCS-Aggressive-IQ4_NL_72mb.gguf 72 МБ (~19.35 млн токенов) 1.15

BF16 и Q4_K_M — позаимствованы у автора файнтюна, в репозиторий не включены.

🚀 Как использовать

llama-cli -m Qwen3.5-2B-Uncensored-HauhauCS-Aggressive-IQ4_NL_smart.gguf -ngl 99 -c 16384 

💡 Для русского языка добавьте системный промпт, явно указывающий, что модель — русскоязычный ассистент. Базовая модель англоцентрична, для свободного русского потребуется дообучение.

📊 Методика тестирования и результаты

Платформа: RTX 5070, llama-perplexity (llama.cpp) с -ngl 99, контексты от 64 до 32768 токенов.
Скорость вычисления PPL: ~2000 токенов/сек на матрице (для 2B модели).
Скорость генерации (инференс):

  • BF16 (несжатый) — около 100 токенов/с
  • IQ4_NL / Q4_K_M — около 200 токенов/с (ускорение в 2 раза)

Для сравнения, 9B модель с IQ3_XS на этой же карте даёт около 100 токенов/с, но значительно выигрывает по качеству знаний.
Данная 2B сборка — компромисс для экспериментов на слабом оборудовании и изучения влияния калибровки.

Графики и выводы

Boxplot PPL (32K, hybrid) Поблочная PPL (32K, hybrid) PPL vs контекст (оба датасета)

Основные наблюдения:

  • IQ4_NL_smart и IQ4_NL_72mb показали практически идентичную перплексию на всех контекстах.
  • Увеличение калибровочного объёма с 1 МБ до 72 МБ не дало статистически значимого улучшения.
  • Даже когда калибровка 72 МБ покрывала 99.7% тестового набора hybrid_test_256, её PPL не стал ниже.
  • Для 2B‑моделей достаточно ~243 тыс. токенов калибровки; дальнейшее наращивание объёма не имеет практического смысла.

🔬 Пересечение данных (MinHash)

Метод MinHash (5‑граммы) подтвердил отсутствие утечки на основном независимом тесте wiki.test.raw:

Калибровка Тестовый набор Пересечение (калибр. / тест)
smart_1mb wiki.test 2.10% / 3.45%
smart_1mb hybrid_test_256 31.33% / 42.56%
full_72mb wiki.test 0.59% / 13.11%
full_72mb hybrid_test_256 5.47% / 99.69%

📂 Структура репозитория

  • *.gguf — квантованные модели (только IQ4_NL_smart и IQ4_NL_72mb)
  • Тест.sh — bash-скрипт для замера PPL
  • ДопППЛ.py — извлечение поблочной PPL и построение графиков
  • А1.py — интерактивный график PPL от длины контекста (Plotly)
  • plot_bench.gp — gnuplot-версия общего графика
  • MinHash.py — анализ пересечения датасетов
  • context_scan_results.csv — итоговые значения PPL
  • *.png — графики

Скрипты самодостаточны, могут быть переиспользованы.
Тестовые датасеты и логи не выложены из соображений размера — воспроизвести эксперимент можно по скриптам и собственным данным.

⚠️ Ограничения

  • Модель имеет характер «Uncensored» и «Aggressive», возможен нежелательный контент.
  • Русский язык присутствует, но ограничен, требуется дообучение для свободного владения.
  • 2B параметров — компромисс между скоростью и глубиной знаний.
  • Проверено только на RTX 5070 (Blackwell), другие карты должны поддерживать IQ4_NL (требуется актуальный llama.cpp).

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

Qwen, HauhauCS, сообществу llama.cpp, ikawrakow за IQ‑методы.

📧 Автор и поддержка

Nic22Of2003профиль на Hugging Face

Это любительская сборка. Если ваша версия llama.cpp не поддерживает такой формат квантизации или модель не запускается — напишите в обсуждения репозитория, постараемся помочь.
По всем вопросам обращайтесь туда же.
Открыт к совместным экспериментам, дообучению и любым идеям — если есть что предложить, не стесняйтесь.