--- language: ru license: cc-by-nc-4.0 library_name: transformers base_model: Qwen/Qwen3.5-4B-Base tags: - qwen - qwen3.5 - lora - peft - russian - instruct - unsloth - alpaca pipeline_tag: text-generation datasets: - LLiserginov/russian-instructions-10k widget: - messages: - role: user content: "Напиши короткий рассказ о коте и луне." --- # Luqwen-4B **Luqwen-4B** — русскоязычная текстовая модель, полученная дообучением **Qwen3.5-4B-Base** методом **LoRA (QLoRA)** на наборе русскоязычных инструкций. Модель предназначена для следования инструкциям на русском языке. Базовая модель Qwen3.5-4B-Base использует гибридную архитектуру (Gated DeltaNet + Full Attention) с контекстом до 262k токенов, что обеспечивает эффективный инференс при сохранении качества генерации. ## Base model | Свойство | Значение | |---|---| | Архитектура | Qwen3.5 For Causal LM (гибрид Linear/Full Attention) | | Параметров | 4B | | Скрытая размерность | 1024 | | Слоёв | 24 | | Контекст | до 262 144 токенов | | Вокабуляр | 248 320 (padding) | | MTP | 1 слой | Подробнее: [Qwen3.5-4B-Base](https://huggingface.co/Qwen/Qwen3.5-4B-Base) ## Training data Модель дообучалась на датасете [russian-instructions-10k](https://huggingface.co/datasets/LLiserginov/russian-instructions-10k) — ~10k русскоязычных пар инструкция-ответ (CC BY-NC 4.0). **Pipeline подготовки данных:** 1. Фильтрация 10k примеров из [Alpaca Cleaned](https://github.com/gururise/AlpacaDataCleaned) (все coding + math, остальные random) 2. Перевод с английского на русский через **Gemma 4 26B** (llama.cpp API) 3. Очистка от непереведённых примеров (27 записей) 4. Конвертация в ChatML-формат **Состав датасета:** | Категория | Количество | |---|---| | General | ~8 812 | | Math | ~603 | | Coding | ~560 | | **Total** | **~9 975** | ## Training procedure ### Параметры LoRA | Параметр | Значение | |---|---| | rank (r) | 16 | | lora_alpha | 32 | | lora_dropout | 0 | | bias | none | | Целевые модули | `q_proj`, `k_proj`, `v_proj`, `o_proj`, `gate_proj`, `up_proj`, `down_proj`, `in_proj_qkv`, `in_proj_z`, `out_proj`, `in_proj_a`, `in_proj_b` | ### Гиперпараметры обучения | Параметр | Значение | |---|---| | Оптимизатор | AdamW 8-bit | | Precision | BF16 (mixed) | | Batch size | 1 (8 gradient accumulation steps) | | Learning rate | 2e-4 | | Эпохи | 3 | | Warmup steps | 20 | | Max seq length | 4096 токенов | | Обёртка | unsloth (4-bit QLoRA) | ### Слияние весов После обучения LoRA-адаптер был слит с базовой моделью в 16-bit точность (метод `merged_16bit` через unsloth) для удобного использования без дополнительных зависимостей PEFT. ## Usage ```python from transformers import AutoModelForCausalLM, AutoTokenizer model_name = "LLiserginov/Luqwen-4B" tokenizer = AutoTokenizer.from_pretrained(model_name, trust_remote_code=True) model = AutoModelForCausalLM.from_pretrained( model_name, torch_dtype="auto", device_map="auto", trust_remote_code=True, ) messages = [ {"role": "user", "content": "Напиши короткий рассказ о коте и луне."}, ] text = tokenizer.apply_chat_template( messages, tokenize=False, add_generation_prompt=True, ) inputs = tokenizer(text, return_tensors="pt").to(model.device) outputs = model.generate( **inputs, max_new_tokens=1024, temperature=0.7, top_p=0.9, do_sample=True, ) response = tokenizer.decode(outputs[0][inputs.input_ids.shape[1]:], skip_special_tokens=True) print(response) ``` ### Использование с vLLM ```python from vllm import LLM, SamplingParams llm = LLM(model="LLiserginov/Luqwen-4B", trust_remote_code=True) messages = [ {"role": "user", "content": "Объясни разницу между supervised и unsupervised learning."}, ] outputs = llm.chat(messages, sampling_params=SamplingParams(temperature=0.7, max_tokens=1024)) print(outputs[0].outputs[0].text) ``` ## Limitations - Модель дообучена на **малом объёме данных** (~10k примеров), что может ограничивать качество и разнообразие ответов - Датасет переведён машинным способом (Gemma 4 26B) — возможны артефакты, буквализмы и потеря смысла - Модель не проходила RLHF/DPO-калибровку и может генерировать нежелательный или фактически неверный контент - Не предназначена для использования в медицинских, юридических или других критических областях - Это текстовая версия — мультимодальные возможности Qwen3.5 (изображения, видео) не используются ## License Модель распространяется под лицензией **CC BY-NC 4.0** (Creative Commons Attribution Non Commercial 4.0) ввиду ограничений производного датасета. Базовая модель: [Qwen3.5-4B-Base](https://huggingface.co/Qwen/Qwen3.5-4B-Base) — Apache 2.0.