Downloads · 30 days
23
4% of all-time downloads
attn-signs/Zariman-R-7b-v0
Zariman-R-7b-v0 is a text generation model from attn-signs. Use it when you need the model to write or continue text. It is set up for transformers. The card lists the license as apache-2.0.
- [EN] Reasoning model adapted for russian text generation. Based on Watari-7B-v1 - [RU] Модель рассуждений, адаптированная для генерации русскоязычного текста. Построена на Watari-7B-v1
Downloads · 30 days
23
4% of all-time downloads
All-time downloads
580
Public
Parameters
7.6B
15.2 GB on disk
Likes
1
Public
Click a slice to open those files.
.safetensors15.2 GB · 100%
From the Hugging Face model README
https://huggingface.co/mradermacher/Zariman-7b-v0-GGUF
Repo id: mradermacher/Zariman-7b-v0-GGUF
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
Zariman was trained using MyLLM framework (by Attention Signs):
https://github.com/Raumberg/myllm
[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|>"]
[!IMPORTANT] 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>