oluwatosin adewumi
Wolof model modified 2.
90e9b80
metadata
thumbnail: https://huggingface.co/front/thumbnails/dialogpt.png
language:
  - en
license: cc-by-4.0
tags:
  - conversational
  - transformers
datasets:
  - multi_woz_v22 and AfriWOZ
metrics:
  - perplexity
widget:
  - text: dedet li rek la soxla. jerejef. ba benen yoon.

DialoGPT_AfriWOZ

This is a fine-tuned model of DialoGPT (small) on the AfriWOZ dataset. It is intended to be used as a conversational system in Wolof language. The dataset it's trained on is limited in scope, as it covers only certain domains such as restaurants, hotel, taxi, and booking.

The perplexity achieved on the test and validation sets are 20.74 and 11.66, respectively.

  • Generation example from an interactive environment:
Role Response
User sowwu bi la bëg
Bot waw, ndax mën ngan ma jox ay leeral si bërëb buñu feetee ak lekkukaay bi
User soxla na dem gawu. ngir leeral rek bëg na joggee peterborough di dem cambridge
Bot soxlu na dem ginaw jurrom ñenti waxtu ak ñaar fukki simili ak jurrom ben.
User waw jiss sal ma ben bu seer si njëg si toluway
Bot jënd bi baaxna. jerejef. ba benen yoon.

Please find the information about preprocessing, training and full details of the DialoGPT in the original DialoGPT repository

The paper for this work can be found on arXiv: https://arxiv.org/pdf/2204.08083.pdf

How to use

Now we are ready to try out how the model works as a chatting partner!

from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
tokenizer = AutoTokenizer.from_pretrained("tosin/dialogpt_afriwoz_wolof")
model = AutoModelForCausalLM.from_pretrained("tosin/dialogpt_afriwoz_wolof")
# Let's chat for 5 lines
for step in range(5):
    # encode the new user input, add the eos_token and return a tensor in Pytorch
    new_user_input_ids = tokenizer.encode(input(">> User:") + tokenizer.eos_token, return_tensors='pt')
    # append the new user input tokens to the chat history
    bot_input_ids = torch.cat([chat_history_ids, new_user_input_ids], dim=-1) if step > 0 else new_user_input_ids
    # generated a response while limiting the total chat history to 1000 tokens, 
    chat_history_ids = model.generate(bot_input_ids, max_length=1000, pad_token_id=tokenizer.eos_token_id)
    # pretty print last ouput tokens from bot
    print("DialoGPT_wolof_Bot: {}".format(tokenizer.decode(chat_history_ids[:, bot_input_ids.shape[-1]:][0], skip_special_tokens=True)))