NanoMind1-10M
NanoMind1-10M — компактная русскоязычная языковая модель на архитектуре GRU, обученная с нуля на корпусе технологических новостей и статей. Это экспериментальная модель из коллекции NanoMind1, предназначенная для локальной генерации текста, сравнения архитектур и экспериментов с маленькими language models.
Модель не является instruction-tuned чат-ассистентом. Это base model: она продолжает текст, а не выполняет команды пользователя.
Описание
NanoMind1-10M обучена на русскоязычном технологическом корпусе, включающем материалы 3DNews, Habr и iXBT. Модель усвоила стиль IT-новостей, обзоров, технических статей и тематическую лексику: смартфоны, ПК, комплектующие, ИИ, разработка, игры и потребительская электроника.
GRU-версия создана как лёгкая альтернатива Transformer-модели NanoMind1TR-10M. Она проще в инференсе и может быть интересна для экспериментов с рекуррентными языковыми моделями.
Архитектура
| Параметр | Значение |
|---|---|
| Архитектура | GRU |
| Параметров | 10.2M |
| Размер словаря | 16,000 |
| Контекст | 512 токенов |
| Embedding | 256 |
| Hidden size | 768 |
| Слоёв GRU | 2 |
| Dropout | 0.1 |
| Токенизатор | BPE |
| Тип весов | bfloat16 |
Embedding и выходной слой используют tied weights.
Обучение
| Параметр | Значение |
|---|---|
| Корпус | ~210M токенов |
| Эпохи | 2 |
| Batch size | 32 |
| Контекст | 512 |
| Learning rate | 6e-4 |
| Optimizer | AdamW |
| Weight decay | 0.1 |
| Gradient clipping | 1.0 |
| Финальный Val PPL | 55.37 |
Модель обучена с нуля на подготовленном и токенизированном корпусе русскоязычных технологических текстов.
Возможности
Модель может:
- продолжать текст в стиле русскоязычных IT-новостей;
- генерировать заголовки и тематические абзацы;
- имитировать стиль Habr, обзоров и технологических публикаций;
- использоваться для экспериментов с sampling и fine-tuning;
- работать как очень маленькая base model для локальных экспериментов.
Ограничения
Это экспериментальная base model, поэтому она:
- не следует инструкциям как чат-ассистент;
- может выдумывать факты, даты, характеристики и названия;
- может повторяться или уходить от темы;
- не предназначена для критически важных задач;
- обучена преимущественно на технологическом контенте;
- имеет небольшой контекст — 512 токенов.
Пример использования
import torch
from tokenizers import Tokenizer
from safetensors.torch import load_file
from modeling_nanomind_gru import GRULM
tokenizer = Tokenizer.from_file("tokenizer.json")
state_dict = load_file("model.safetensors")
model = GRULM(
vocab_size=16000,
embedding_dim=256,
hidden_size=768,
num_layers=2,
dropout=0.1,
tie_embeddings=True,
)
model.load_state_dict(state_dict, strict=False)
model.eval()
prompt = "Компания Nvidia представила"
encoded = tokenizer.encode(prompt, add_special_tokens=False)
tokens = encoded.ids[:]
hidden = None
with torch.no_grad():
for _ in range(128):
input_ids = torch.tensor([tokens[-512:]], dtype=torch.long)
logits, hidden = model(input_ids, hidden)
next_token = torch.argmax(logits[0, -1]).item()
tokens.append(next_token)
print(tokenizer.decode(tokens))
Рекомендуемая генерация
{
"temperature": 0.8,
"top_k": 20,
"top_p": 0.9,
"repetition_penalty": 1.2,
"max_tokens": 256
}
Для более предсказуемого текста используйте temperature: 0.2–0.5 или жадную генерацию.
Файлы
| Файл | Описание |
|---|---|
model.safetensors |
Веса модели |
config.json |
Конфигурация модели и генерации |
tokenizer.json |
BPE-токенизатор, 16K |
Связанные модели
- NanoMind1TR-10M — Transformer-версия из коллекции NanoMind1.
- NanoMind0.5-23M — предыдущая модель.
Лицензия
Модель распространяется по лицензии Apache 2.0.
- Downloads last month
- 86