--- license: mit library_name: transformers pipeline_tag: text-generation language: - ru tags: - llama - russian - small-language-model - sovereign-ai - text-generation - instruct --- # Ru-Small-Instruct (0.2B): Sovereign Lightweight Language Model
Website Hugging Face License
Parameters Hardware Time Language Status

Project Homepage & Dev Blog πŸš€

--- ## Introduction **Ru-Small-Instruct** β€” ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ компактная русскоязычная языковая модСль класса **SLM (Small Language Model)** с объСмом ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ~0.2B (~165M). Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° с ΡƒΠΏΠΎΡ€ΠΎΠΌ Π½Π° ΡΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎΡΡ‚ΡŒ вСсов (**Zero-Fingerprint**): модСль ΠΎΠ±ΡƒΡ‡Π΅Π½Π° с нуля Π±Π΅Π· заимствования Π±Π°Π·ΠΎΠ²Ρ‹Ρ… Ρ‡Π΅ΠΊΠΏΠΎΠΈΠ½Ρ‚ΠΎΠ² Ρƒ сторонних ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… сСтСй (Llama 3 ΠΎΡ‚ Meta, Qwen ΠΎΡ‚ Alibaba, Mistral). МодСль ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для исслСдований локального инфСрСнса, Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π° ΠΌΠ°Π»ΠΎΠΌΠΎΡ‰Π½ΠΎΠΌ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ, CPU ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… Ρ‡ΠΈΠΏΠ°Ρ…, Π³Π΄Π΅ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹ нулСвая Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° (Time-To-First-Token) ΠΈ полная Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ вСсов. --- ## ⚠️ Π’Π΅ΠΊΡƒΡ‰ΠΈΠΉ статус ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ чСстный взгляд (Limitations) МодСль **находится Π½Π° Ρ€Π°Π½Π½Π΅ΠΉ стадии ΠΈ ΠΏΠΎΠΊΠ° Π΄Π°Π»Π΅ΠΊΠ° ΠΎΡ‚ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²Π°**. ΠŸΡ€ΠΈ объСмС всСго ~0.2B ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ½ΠΎΠ³Π΄Π° Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹Π΅ ассоциации, ΠΏΡƒΡ‚Π°Ρ‚ΡŒ Ρ„Π°ΠΊΡ‚Ρ‹ ΠΈΠ»ΠΈ ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π² Π³Π°Π»Π»ΡŽΡ†ΠΈΠ½Π°Ρ†ΠΈΠΈ Π½Π° ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΡ… ΠΈΠ»ΠΈ Π½Π΅ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½Ρ‹Ρ… запросах. > **Π­Ρ‚ΠΎΠΌΡƒ Π½Π΅ стоит ΡƒΠ΄ΠΈΠ²Π»ΡΡ‚ΡŒΡΡ:** > МодСль **Ru-Small-Instruct** Π±Ρ‹Π»Π° создана с нуля **всСго Π·Π° 2 дня Π½Π° ΠΎΠ΄Π½ΠΎΠΉ домашнСй Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚Π΅ NVIDIA GeForce RTX 5060 Ti (16GB)** β€” ΠΎΡ‚ обучСния собствСнного BPE-Ρ‚ΠΎΠΊΠ΅Π½ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° ΠΈ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ чтСния статСй Π’ΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΠΈ Π΄ΠΎ Ρ„ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΉ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΉ ΠΎΠ³Ρ€Π°Π½ΠΊΠΈ (SFT). ### ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π΄ΠΈΠ°Π»ΠΎΠ³Π° с Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ вСрсиСй: ```text Π’Ρ‹: ΠŸΡ€ΠΈΠ²Π΅Ρ‚! Π‘ΠΎΡ‚: ЗдравствуйтС! Π§Π΅ΠΌ я ΠΌΠΎΠ³Ρƒ Π²Π°ΠΌ ΠΏΠΎΠΌΠΎΡ‡ΡŒ? Π’Ρ‹: Π’Ρ‹ ΠΊΡ‚ΠΎ? Π‘ΠΎΡ‚: Π― искусствСнный ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ β€” русскоязычная языковая модСль, которая позволяСт ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°ΠΌ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ чСловСчСский язык. Он Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя использованиС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² для обучСния ΠΈ прогнозирования Π±ΡƒΠ΄ΡƒΡ‰ΠΈΡ… событий Π½Π° основС Π΄Π°Π½Π½Ρ‹Ρ…. ``` Для ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² 165M ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΎΠ±ΡƒΡ‡Π΅Π½Π½ΠΎΠΉ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ домашнСм GPU Π·Π° 48 часов, ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ Π΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ€ΠΎΠ»ΡŒ, Π³Ρ€Π°ΠΌΠΎΡ‚Π½ΠΎ Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ слоТныС Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹ ΠΈ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ синтаксис русского языка β€” это ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ практичСский Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. --- ## Architecture & Specifications
| БпСцификация | Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ | ОписаниС | | :--- | :---: | :--- | | **Backbone Parameters** | ~165M – 200M | ~0.2B ΠΏΠΎ классификации Hugging Face | | **Training Hardware** | 1x NVIDIA RTX 5060 Ti 16GB | ΠžΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π½Π° домашнСм ΠΆΠ΅Π»Π΅Π·Π΅ | | **Training Time** | ~2 дня (48 часов) | ΠŸΠΎΠ»Π½Ρ‹ΠΉ сквозной Ρ†ΠΈΠΊΠ» с нуля | | **Hidden Dimension ($d_{model}$)** | 896 | Π Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ Π»Π°Ρ‚Π΅Π½Ρ‚Π½ΠΎΠ³ΠΎ пространства | | **Intermediate Dimension ($d_{ff}$)** | 2560 | Π Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ слоСв SwiGLU MLP | | **Layers** | 16 | Π“Π»ΡƒΠ±ΠΈΠ½Π° трансформСрных Π±Π»ΠΎΠΊΠΎΠ² | | **Attention Heads (Q / KV)** | 14 / 2 | Grouped-Query Attention (GQA) | | **Context Length** | 512 | Окно внимания с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ RoPE | | **Vocab Size** | 28 672 | Чистый русский ByteLevel BPE | | **Native Precision** | `bfloat16` / `float16` | Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ хранСния | | **Special Chat Tags** | Custom Cyrillic | Нативная Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ° Π±Π΅Π· ΡƒΡ‚Π΅Ρ‡Π΅ΠΊ английских Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² |
--- ## Training Recipe ### 1. Pre-training (Π€ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅) МодСль ΠΏΡ€ΠΎΡˆΠ»Π° Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ с нуля Π½Π° русскоязычном корпусС: * **ЭнциклопСдичСский Π±Π»ΠΎΠΊ:** срСз статСй русской Π’ΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΠΈ (СстСствСнныС Π½Π°ΡƒΠΊΠΈ, гСография, история, Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ). * **Бвязная Ρ€Π΅Ρ‡ΡŒ ΠΈ Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠ°:** ΠΎΡ‡ΠΈΡ‰Π΅Π½Π½Ρ‹Π΅ новостныС тСксты ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ корпуса Β«Π“Π°Π·Π΅Ρ‚Π°Β». * **Π£ΠΏΠ°ΠΊΠΎΠ²ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ…:** потоковая конкатСнация Ρ‚ΠΎΠΊΠ΅Π½ΠΎΠ² (Data Packing) с ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠ°Ρ€Π°Π·ΠΈΡ‚Π½Ρ‹Ρ… ΠΏΠ°Π΄Π΄ΠΈΠ½Π³ΠΎΠ². ### 2. SFT & Alignment (Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΎΠ½Π½Π°Ρ Π΄ΠΎΠ²ΠΎΠ΄ΠΊΠ°) Для стабилизации ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π° диалоговая ΠΎΠ³Ρ€Π°Π½ΠΊΠ° (Instruction Tuning) с маскированиСм ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π°: * **Π˜Π½Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ ΠΊ рСгистру:** ΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ ΠΊ строчным ΠΈ Π·Π°Π³Π»Π°Π²Π½Ρ‹ΠΌ запросам (`ΠΏΡ€ΠΈΠ²Π΅Ρ‚`, `ΠŸΡ€ΠΈΠ²Π΅Ρ‚`, `ΠŸΠ Π˜Π’Π•Π’`). * **ЀактологичСскоС якорСниС:** очистка ΠΎΡ‚ Π»ΠΎΠΆΠ½Ρ‹Ρ… ассоциаций ΠΈ Π΄Π΅Π»ΠΎΠ²Ρ‹Ρ… писСм. * **Нативный Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»:** ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹ `<|ΡŽΠ·Π΅Ρ€|>`, `<|ΡŽΠ·Π΅Ρ€Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»|>`, `<|я_Π½Π°Ρ‡Π°Π»|>`, `<|я_Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»|>`. --- ## Benchmark & Performance ΠžΡ†Π΅Π½ΠΊΠ° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½Π° локальном ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ (NVIDIA GeForce RTX, FP16/BF16):
| ΠœΠ΅Ρ‚Ρ€ΠΈΠΊΠ° | Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ | | :--- | :---: | | **Generation Speed (RTX Desktop)** | **180 – 210 t/s** | | **Memory Footprint (Inference)** | **~380 – 490 MB** | | **Cold Start Time** | **< 0.15 s** | | **Supported Hardware** | CUDA, Apple Silicon (MPS), CPU, Edge |
--- ## Prompt Encoding Для получСния Ρ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΈ связных ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² структурируйтС ΠΏΡ€ΠΎΠΌΠΏΡ‚ с пСрСносами строк: ```text <|ΡŽΠ·Π΅Ρ€|> ΠšΡ‚ΠΎ Ρ‚Π°ΠΊΠΎΠΉ слон? <|ΡŽΠ·Π΅Ρ€Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»|> <|я_Π½Π°Ρ‡Π°Π»|> ``` ГСнСрация Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ модСлью Π½Π° слуТСбном ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π΅ `<|я_Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»|>`. --- ## Minimal Inference Запуск инфСрСнса Π½Π° чистом Python Ρ‡Π΅Ρ€Π΅Π· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ `transformers`: ```python import torch from transformers import PreTrainedTokenizerFast, LlamaForCausalLM MODEL_ID = "longtimedevs/Ru-Small-Instruct" DEVICE = "cuda:0" if torch.cuda.is_available() else "cpu" DTYPE = torch.bfloat16 if torch.cuda.is_bf16_supported() else torch.float16 # 1. Π—Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ Ρ‚ΠΎΠΊΠ΅Π½ΠΈΠ·Π°Ρ‚ΠΎΡ€Π° tokenizer = PreTrainedTokenizerFast.from_pretrained(MODEL_ID) model = LlamaForCausalLM.from_pretrained(MODEL_ID, torch_dtype=DTYPE).to(DEVICE) model.eval() # 2. ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° запроса user_query = "ΠŸΡ€ΠΈΠ²Π΅Ρ‚! ΠšΡ‚ΠΎ Ρ‚Ρ‹?" prompt = f"<|ΡŽΠ·Π΅Ρ€|>\n{user_query}\n<|ΡŽΠ·Π΅Ρ€Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»|>\n<|я_Π½Π°Ρ‡Π°Π»|>\n" inputs = tokenizer(prompt, return_tensors="pt").to(DEVICE) # 3. ГСнСрация с остановкой ΠΏΠΎ Ρ‚ΠΎΠΊΠ΅Π½Ρƒ ai_end_id = tokenizer.convert_tokens_to_ids("<|я_Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΠ»|>") with torch.no_grad(): output_tokens = model.generate( **inputs, max_new_tokens=120, temperature=0.25, top_p=0.85, repetition_penalty=1.15, eos_token_id=[ai_end_id, tokenizer.eos_token_id], pad_token_id=tokenizer.pad_token_id, do_sample=True ) # 4. Π”Π΅ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡ‚Π²Π΅Ρ‚Π° response = tokenizer.decode(output_tokens[0][inputs.input_ids.shape[1]:], skip_special_tokens=True) print(f"Ru-Small-Instruct: {response.strip()}") ``` --- ## Recommended Generation Parameters | ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ | Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ | ОписаниС | | :--- | :---: | :--- | | `temperature` | `0.25` | ΠœΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Π΄Ρ€Π΅ΠΉΡ„ внимания Π½Π° ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹Ρ… вСсах | | `top_p` | `0.85` | ΠžΡ‚Ρ€Π΅Π·Π°Π΅Ρ‚ маловСроятныС Ρ‚ΠΎΠΊΠ΅Π½Ρ‹ | | `repetition_penalty` | `1.15` | ΠŸΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π°Ρ†ΠΈΠΊΠ»ΠΈΠ²Π°Π½ΠΈΠ΅ списков | | `max_new_tokens` | `120 – 150` | ΠžΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Π°Ρ Π΄Π»ΠΈΠ½Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈ | --- ## License МодСль ΠΈ связанныС ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‚ΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠ΅ΠΉ [MIT License](https://huggingface.co/longtimedevs/Ru-Small-Instruct/blob/main/LICENSE). ВСса свободны для коммСрчСского ΠΈ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ примСнСния. --- ## Author & Project Info Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΈ ΡΠΎΠΏΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹: 🌐 **ΠžΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ сайт Π°Π²Ρ‚ΠΎΡ€Π°:** [https://long-time.ru](https://long-time.ru)