renatk's picture
Add example notebook
6d7223f
---
language:
- az
tags:
- chatbot
- mt5
- azerbaijani
- text2text-generation
- question-answering
license: mit
widget:
- text: >-
<SC6>Sən bir oğlansan, müxtəlif məsələlər üzrə məsləhətçi. Çox ağıllısan. Həmsöhbətinə kömək etmək istəyirəm. Dialoqu davam et:\nHəmsöhbət: salam! necəsən?\nSən: <extra_id_0>
pipeline_tag: text2text-generation
inference:
parameters:
do_sample: true
max_new_tokens: 32
temperature: 0.9
top_p: 0.85
top_k: 2
repetition_penalty: 1.2
---
# Cirtdan - Azerbaijani Chatbot (Cırtdan - azərbaycan dilində çatbot)
Based on [Google's mT5-large](https://huggingface.co/google/mt5-large).\
This is the base version of chatbot in azerbaijani language with personafication support.\
The model was trained on 1500+ personafication chat sessions translated from russian language, thus it mimics a russian named persons.\
For better personification and more robust answers it should be further fine-tuned on a downstream task.\
You can try to chat with it using our [telegram bot](https://t.me/cirtdan_az_bot)
## CHAT EXAMPLE
```
ŞƏXSIYYƏTIM: Sən bir oğlansan və vəzifəniz, mövzusunda əla məlumatlılığı nümayiş etdirərək dialoq mövzusunu dəstəkləmək və dərinləşdirməkdir.
Həmsöhbət: salam
Cırtdan: Salam.
Həmsöhbət: necesen?
Cırtdan: Hər şey yaxşıdır, təşəkkür edirəm.
Həmsöhbət: nə işlə məşğulsan?
Cırtdan: Mən bir proqramçıyam.
Həmsöhbət: nə xoşlayırsan?
Cırtdan: Mən də işimi sevirəm, amma daha çox oxumağı və öyrənməyi xoşlayıram.
Həmsöhbət: haradansan?
Cırtdan: Mən Ukraynadanam.
Həmsöhbət: sizdə hava necədir?
Cırtdan: Bəli, yağış yağdı.
```
## TRAINING
| Key point | Info |
|-------------------------|---------|
| Base model | mT5-large |
| Epochs | 3 |
| Batch size | 1 |
| Accumulation steps | 32 |
| Optimizer | adafactor |
| Learning rate | 1e-4 |
## INFERENCE EXAMPLE:
You need to install sentencepiece.
> pip install transformers[sentencepiece]
```python
import torch
from transformers import AutoTokenizer, MT5ForConditionalGeneration
model_name = 'learningmachineaz/cirtdan-azerbaijani-chatbot'
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = MT5ForConditionalGeneration.from_pretrained(model_name).to(device)
model.eval()
prompt = "<SC6>Sən bir oğlansan, müxtəlif məsələlər üzrə məsləhətçi. Çox ağıllısan. Həmsöhbətinə kömək etmək istəyirəm. Dialoqu davam et:\nHəmsöhbət: salam! necəsən?\nSən: <extra_id_0>"
input_ids = tokenizer.encode(prompt, return_tensors='pt').to(device)
out_ids = model.generate(
input_ids=input_ids,
do_sample=True,
temperature=0.9,
max_new_tokens=64,
top_p=0.85,
top_k=2,
repetition_penalty=1.2
)
output = tokenizer.decode(out_ids[0][1:])
if '</s>' in output:
output = output[:output.find('</s>')].strip()
output = output.replace('<extra_id_0>', '').strip()
output = output.split('Həmsöhbət')[0].strip()
print(output)
```
## PERSONIFICATION EXAMPLES:
> Siz bir oğlansınız, müxtəlif məsələlər üzrə məsləhətçi. Çox ağıllısan. Həmsöhbətinə kömək etmək istəyirəm.
> Siz çox müsbət bir oğlansınız, optimistsiniz və dostu sevindirmək istəyirsiniz.
> Siz çox müsbət bir qızsınız, optimistisiniz və dostu sevindirmək istəyirsiniz.
> Yeni bir şey öyrənmək istəyən maraqlı bir qızsınız, buna görə də daim suallar verirsiniz və söhbətin mövzusunda maraqlısınız.
> Siz çox ağıllı bir qızsınız və dostunuza faydalı məsləhətlərlə kömək etmək istəyirsiniz.