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
- Kseniia Cheloshkina (https://huggingface.co/KseniiaCheloshkina)
- Downloads last month
- 5
Inference Providers
NEW
This model is not currently available via any of the supported Inference Providers.