69 lines
2.2 KiB
Markdown
69 lines
2.2 KiB
Markdown
|
|
---
|
|||
|
|
license: gemma
|
|||
|
|
language:
|
|||
|
|
- ru
|
|||
|
|
- en
|
|||
|
|
base_model: unsloth/gemma-3-1b-it
|
|||
|
|
tags:
|
|||
|
|
- gemma
|
|||
|
|
- gemma-3
|
|||
|
|
- saiga
|
|||
|
|
- conversation
|
|||
|
|
- text-generation
|
|||
|
|
- unsloth
|
|||
|
|
datasets:
|
|||
|
|
- IlyaGusev/saiga_scored
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# Ru-Gemma3-1B
|
|||
|
|
|
|||
|
|
## Описание
|
|||
|
|
Это экспериментальная версия модели **Gemma 3 1B**, дообученная на русскоязычном датасете [Saiga-scored](https://huggingface.co/datasets/IlyaGusev/saiga_scored).
|
|||
|
|
Цель дообучения — подтянуть качество общения на русском языке и адаптировать модель под формат "Assistant/User".
|
|||
|
|
|
|||
|
|
**Внимание:**
|
|||
|
|
- Модель обучена всего **1 эпоху** (экспериментальный ран).
|
|||
|
|
- Это **1B** параметров (очень маленькая модель), поэтому не ждите от нее чудес уровня GPT-5.
|
|||
|
|
- В ответах возможна "каша" (смешивание языков, галлюцинации, потеря контекста).
|
|||
|
|
- Используйте на свой страх и риск. Автор не несет ответственности за сгенерированный контент.
|
|||
|
|
|
|||
|
|
## Детали обучения
|
|||
|
|
- **Base Model:** Gemma 3 1B Instruct
|
|||
|
|
- **Dataset:** Saiga Scored (~40k диалогов)
|
|||
|
|
- **Hardware:** NVIDIA RTX 4070
|
|||
|
|
- **Library:** Unsloth (QLoRA)
|
|||
|
|
- **Epochs:** 1
|
|||
|
|
|
|||
|
|
## Как запустить
|
|||
|
|
|
|||
|
|
```python
|
|||
|
|
from transformers import AutoModelForCausalLM, AutoTokenizer
|
|||
|
|
import torch
|
|||
|
|
|
|||
|
|
model_id = "wexyyyyyy/Ru-Gemma3-1B"
|
|||
|
|
|
|||
|
|
tokenizer = AutoTokenizer.from_pretrained(model_id)
|
|||
|
|
model = AutoModelForCausalLM.from_pretrained(
|
|||
|
|
model_id,
|
|||
|
|
torch_dtype=torch.bfloat16,
|
|||
|
|
device_map="auto"
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
messages = [
|
|||
|
|
{"role": "user", "content": "Привет! Расскажи, почему небо голубое?"}
|
|||
|
|
]
|
|||
|
|
|
|||
|
|
input_ids = tokenizer.apply_chat_template(
|
|||
|
|
messages,
|
|||
|
|
add_generation_prompt=True,
|
|||
|
|
return_tensors="pt"
|
|||
|
|
).to(model.device)
|
|||
|
|
|
|||
|
|
outputs = model.generate(
|
|||
|
|
input_ids,
|
|||
|
|
max_new_tokens=512,
|
|||
|
|
temperature=0.6,
|
|||
|
|
top_p=0.9
|
|||
|
|
)
|
|||
|
|
|
|||
|
|
print(tokenizer.decode(outputs[0][input_ids.shape[-1]:], skip_special_tokens=True))
|