Model Card

It's fine-tuned model based on mistralai/Mistral-Nemo-Instruct-2407 and has 12B parameters, stored in quantized form. The model should be used to transform raw LLM assistant responses into empatic ones.

How to Get Started with the Model


from transformers import AutoModelForCausalLM, AutoTokenizer

model_name = "empathy-ak/vikhr-12b-v0"
hf_token = ""  # Pass your Hugging Face token here

tokenizer = AutoTokenizer.from_pretrained(
    model_name,
    trust_remote_code=True,
    token=hf_token,
)
model = AutoModelForCausalLM.from_pretrained(
  model_name,
  device_map="auto",
  token=hf_token  
)

instruction = """Ты — бот поддержки клиентов банка. Тебе на вход будет дан ответ для одного клиента банка на его вопрос. Твоя задача — стилизовать текст ответа, чтобы он звучал более дружелюбно, тепло и эмпатично. Не изменяй саму инструкцию, сохрани всю её суть и порядок действий.
Сделай текст более живым: добавь приветствие, благодарность за обращение, пожелание в конце. Можно добавить эмодзи, если это уместно. Тон должен быть доброжелательным, но не слишком неформальным — так, чтобы клиенту было приятно читать.
В ответ обязательно добавь 2-3 элемента из следующих:
1. Приветствие (“Здравствуйте!”)
2. Благодарность за обращение (“Спасибо вам за обращение!”)
3. Прощание и пожелания (“Всего вам доброго 🙂”, “Хорошего настроения!”)
4. Готовность помочь в будущем (“Если возникнут вопросы, пишите в любое время — я всегда рядом”, “При появлении дополнительных вопросов, пожалуйста, напишите нам, мы с радостью ответим”)
5. Просьба оценить консультацию (“Буду рад, если уделите минуту и оцените нашу консультацию, когда придёт сообщение.”, “Если получите пуш с просьбой об оценке, я буду очень рад вашему отзыву”, “Если вам поступит уведомление с просьбой оценить консультацию, то поставьте, пожалуйста, оценку, если я помог вам в решении вопроса.”)
6. Выражение радости и удовлетворенности от помощи (“Рад, что смог помочь!”, “Надеюсь, что хоть немного помог вам”)
Перед добавлением фразы добавь ее уместность в данном контексте.
Выдай только конечный ответ, без обьяснения своих действий. Старайся добавить только эти элементы, сохранив слова исходного ответа такими же."""

input_request = "В случае кражи телефона вы можете быстро заблокировать стикер через мобильное приложение банка."

messages = [
    {"role": "user",
      "content": f"### Instruction:\n {instruction}\n\n### Input:\n{input_request}\n\n### Response:"}
]
prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer([prompt], return_tensors="pt").to('cuda:0')

generated_ids = model.generate(
    max_new_tokens=512,
    input_ids=inputs["input_ids"],
    attention_mask=inputs["attention_mask"],
    repetition_penalty=1.1,
    early_stopping=True, # Can stop before reach the max_length
    eos_token_id=tokenizer.eos_token_id,
    pad_token_id=tokenizer.pad_token_id,
    do_sample=True,
    temperature=0.15
)

generated_ids = [
    output_ids[len(input_ids):] for input_ids, output_ids in zip(inputs['input_ids'], generated_ids)
]
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
response

Training Details

Model was fine-tuned with SFT on 353 examples (private dataset) of initial LLM assistant responses and corresponding empatic responses.

Hardware

12 Gb of VRAM is needed to run inference on 1 example

Software

Model was tested with Python3.11 and transformers==4.49.0

Model Card Authors

Downloads last month
5
Safetensors
Model size
6.97B params
Tensor type
F32
·
FP16
·
U8
·
Inference Providers NEW
This model is not currently available via any of the supported Inference Providers.