--- 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 — позаимствованы у автора файнтюна, в репозиторий не включены.* ## 🚀 Как использовать ```bash 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](https://github.com/QwenLM/Qwen), [HauhauCS](https://huggingface.co/HauhauCS), сообществу [llama.cpp](https://github.com/ggml-org/llama.cpp), ikawrakow за IQ‑методы. ## 📧 Автор и поддержка **Nic22Of2003** – [профиль на Hugging Face](https://huggingface.co/Nic22Of2003) Это любительская сборка. Если ваша версия llama.cpp не поддерживает такой формат квантизации или модель не запускается — напишите в обсуждения репозитория, постараемся помочь. По всем вопросам обращайтесь туда же. Открыт к совместным экспериментам, дообучению и любым идеям — если есть что предложить, не стесняйтесь.