NanoMind1TR-10M

NanoMind1TR-10M — компактная русскоязычная языковая модель на архитектуре Transformer decoder, обученная с нуля на корпусе технологических новостей и статей. Это основная модель коллекции NanoMind1, предназначенная для локальной генерации текста, экспериментов с маленькими LLM и сравнения архитектур.

Модель не является instruction-tuned чат-ассистентом. Это base model: она продолжает текст, а не выполняет команды пользователя.

Описание

NanoMind1TR-10M обучена на русскоязычном технологическом корпусе, включающем материалы 3DNews, Habr и iXBT. Модель усвоила стиль IT-новостей, обзоров, технических статей и тематическую лексику: смартфоны, ПК, комплектующие, ИИ, разработка, игры и потребительская электроника.

Transformer-версия создана как основная модель линейки NanoMind1. По сравнению с GRU-версией NanoMind1-10M она лучше удерживает контекст, структуру абзаца и тематическую связность при генерации.

Архитектура

Параметр Значение
Архитектура Transformer decoder
Параметров 9.7M
Размер словаря 16,000
Контекст 512 токенов
d_model 256
Голов внимания 8
d_ff 1024
Слоёв 7
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
Warmup steps 1,000
Финальный Val PPL 29.22

Модель обучена с нуля на подготовленном и токенизированном корпусе русскоязычных технологических текстов.

Возможности

Модель может:

  • продолжать текст в стиле русскоязычных 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_transformer import TransformerLM

tokenizer = Tokenizer.from_file("tokenizer.json")

state_dict = load_file("model.safetensors")

model = TransformerLM(
    vocab_size=16000,
    d_model=256,
    n_head=8,
    d_ff=1024,
    num_layers=7,
    seq_len=512,
    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[:]

with torch.no_grad():
    for _ in range(128):
        input_ids = torch.tensor([tokens[-512:]], dtype=torch.long)

        logits, _ = model(input_ids)

        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.15,
  "max_tokens": 256
}

Для более предсказуемого текста используйте temperature: 0.2–0.5 или жадную генерацию.

Файлы

Файл Описание
model.safetensors Веса модели
config.json Конфигурация модели и генерации
tokenizer.json BPE-токенизатор, 16K

Сравнение с GRU-версией

Модель Архитектура Параметры Val PPL Особенности
NanoMind1TR-10M Transformer 9.7M 29.22 Лучше удерживает контекст и структуру текста
NanoMind1-10M GRU 10.2M 55.37 Проще и легче в инференсе

Transformer-версия рекомендуются как основная модель коллекции для генерации связных текстов. GRU-версия подходит для экспериментов с рекуррентными моделями и более лёгкого инференса.

Связанные модели

Лицензия

Модель распространяется по лицензии Apache 2.0.

Downloads last month
88
Safetensors
Model size
13.8M params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support