Luqwen-4B / README.md
LLiserginov's picture
Update README.md
b43a201 verified
|
Raw
History Blame Contribute Delete
6.06 kB
---
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.