Zariman 7B Reason (V0)

  • [EN]
    Reasoning model adapted for russian text generation.
    Based on Watari-7B-v1
  • [RU]
    Модель рассуждений, адаптированная для генерации русскоязычного текста.
    Построена на Watari-7B-v1

Static quants available on / Квантизация модели доступна на

https://huggingface.co/mradermacher/Zariman-7b-v0-GGUF
Repo id: mradermacher/Zariman-7b-v0-GGUF

Model Details / Детализация модели

  • [EN]
    LoRA SFT version of base Watari-7B-v1 to invoke reasoning capabilities on a specific system prompt. May be instable (especially when large context size is used), may enter infinite loops. Model is designed for deep understanding and futher GRPO alignment.
  • [RU]
    SFT на низкоранговых адаптерах базовой модели Watari-7B-v1 для возможностей размышления и глубокого понимания запроса на конкретный системный промпт. Может быть нестабильна (особенно при больших контекстных окнах), может входить в бесконечные циклы рассуждений. Модель создана для будущего алайнмента с алгоритмом GRPO

Model Description / Описание модели

  • Developed by: [Reisen Raumberg (Attention Signs team)]
  • Language(s) (NLP): [RU/EN]
  • Finetuned from model: [Watari-7B-v1]

Utilized DeepSpeed (Stage 3), HF.Accelerator for distributed training and fused AdamW.
GPU hours: ~64h of NVIDIA A100

Для обучения использовались HuggingFace Accelerator с Microsoft DeepSpeed (Stage 3) для распределения параметров и стейта оптимизатора, а так же зафьюженный AdamW
GPU часы: ~64 часа NVIDIA A100

Training Framework

Zariman was trained using MyLLM framework (by Attention Signs):
https://github.com/Raumberg/myllm

Model configuration (MyLLM Framework)

[model]
model_name_or_path = "attn-signs/Watari-7b-v1"

[datasets]
dataset = "attn-signs/russian-reasoning"
conversation_field = "conversation"
generate_eval_examples = false
evaluation_strategy = "steps"
eval_steps = 300
dataloader_num_workers = 2
remove_unused_columns = true
test_size = 0.01

[run]
save_strategy = "steps"
save_steps = 300
save_total_limit = 3
run_name = "sft-zariman-7"
report_to = "wandb"
logging_first_step = true
logging_steps = 1
output_dir = "models/attn-signs-zariman-7"
project_name = "sft-zariman"

[training]
train_only_on_completions = true
per_device_train_batch_size = 1
per_device_eval_batch_size = 1
num_train_epochs = 1
learning_rate = 0.00004
gradient_accumulation_steps = 8
gradient_checkpointing = true
warmup_steps = 10
bf16 = true
seed = 42
use_peft = true
attn_implementation = "flash_attention_2"

[lora]
lora_target_modules = [
    "k_proj",
    "v_proj",
    "q_proj",
    "o_proj",
    "gate_proj",
    "up_proj",
    "down_proj",
]
lora_r = 128
lora_alpha = 256

[tokenizer]
system_prompt = "Ты полезный ассистент. Отвечай на вопросы, сохраняя следующую структуру: <Thought> Твои мысли и рассуждения </Thought> <output> Твой конечный ответ </output>"
assistant_message_template =  "<|im_start|>assistant<|im_sep|>"
pad_token =  "<|endoftext|>"
eos_token =  "<|im_end|>"
chat_template = "{% set loop_messages = messages %}{% for message in loop_messages %}{% set content = '<|im_start|>' + message['role'] + '<|im_sep|>'+ message['content'] | trim + '<|im_end|>' %}{{ content }}{% endfor %}{% if add_generation_prompt %}{{ '<|im_start|>assistant<|im_sep|>' }}{% endif %}"
force_chat_template =  true
added_special_tokens =  ["<|im_sep|>"]

Using the model / Как запустить?

To invoke Reasoning, the specific prompt is used. Consider using the system prompt in the example below. Для того, чтобы использовать режим рассуждений, модель использует специальный промпт. Пожалуйста, обратите внимание на системный промпт в примере ниже.

from transformers import AutoTokenizer, AutoModelForCausalLM

repo = 'attn-signs/Zariman-7b-v1'

model = AutoModelForCausalLM.from_pretrained(repo)
tokenizer = AutoTokenizer.from_pretrained(repo)

model.to('cuda')

prompt = 'Как мне обучить свою языковую модель?'
messages = [
    {"role": "system", "content": "Ты полезный ассистент. Отвечай на вопросы, сохраняя следующую структуру: <Thought> Твои мысли и рассуждения </Thought> <output> Твой конечный ответ </output>"},
    {"role": "user", "content": prompt}
]
text = tokenizer.apply_chat_template(
    messages,
    tokenize=False,
    add_generation_prompt=True
)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)

generated_ids = model.generate(
    **model_inputs,
    max_new_tokens=4096
)
generated_ids = [
    output_ids[len(input_ids):] for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]

response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]

print(response)
<Thought> Обучение языковой модели - это сложный процесс, который требует понимания нескольких ключевых аспектов.
Во-первых, необходимо выбрать подходящий алгоритм обучения, который может варьироваться от простых моделей, таких как n-граммные модели,
до более сложных нейронных сетей, таких как трансформеры. Во-вторых, важно собрать достаточное количество данных для обучения модели.
Это могут быть текстовые данные из книг, статей, новостей или других источников, которые должны быть репрезентативными для целевой области.
В-третьих, нужно определиться с метриками качества, по которым будет оцениваться модель, такими как точность, полнота, F1-мера и другие.
Наконец, необходимо учитывать вычислительные ресурсы, так как обучение больших моделей требует значительной мощности.
Исходя из этих факторов, можно сформулировать шаги для обучения языковой модели. </Thought> <output>
1. Выберите алгоритм обучения (например, трансформер).
2. Соберите достаточное количество текстовых данных.
3. Определите метрики качества для оценки модели.
4. Настройте вычислительные ресурсы (например, GPU).
5. Запустите процесс обучения модели.
6. Оцените качество модели и при необходимости доработайте ее. </output>
Downloads last month
300
Safetensors
Model size
7.61B params
Tensor type
BF16
·
Inference Providers NEW
This model is not currently available via any of the supported Inference Providers.

Model tree for attn-signs/Zariman-R-7b-v0

Finetuned
(1)
this model
Quantizations
3 models

Dataset used to train attn-signs/Zariman-R-7b-v0

Collection including attn-signs/Zariman-R-7b-v0