Skip to content

[NLP][Python] Try to Use the Latest Open Source Chatbot "Blender" developed by Facebook AI Team

The Facebook AI team open sourced the chatbot Blender this week. I remembered that this project seemed to have been seen a few years ago? (it to be called ParlAI?)

But since Facebook has announced Blender now, it must have its advantages.

Let me briefly state the advantages that Facebook claims:

  • Blender is the world's largest open domain chatbot
  • Blender uses 9.4 billion parameters
  • Blender can develop 14 rounds of natural dialogue

The above is a description of the specifications. Let’s take a look at FB’s development evaluation of ChatBot in recent years-FB uses manual evaluation, and the evaluation indicator is "like chatting with machines or people":

  • July 2018 KV MemNN: 23% like to chat with robots
  • January 2020 BST Poly-encoder: ~= 40% like to chat with robots
  • May 2020 Blender: 49% like to chat with bots

This is really amazing. As far as I know, there are almost no any chatbots that can chat well with humans.

In any case, it will definitely show an abnormal feeling in some part of the conversation, making people not want to continue talking to the robot.

I once tried to play a dialogue robot, as long as you ask its questions and it doesn't understand what you are saying, then it will change the topic in the way of "asking you questions".

So now that FB is open source, what I am most curious about is how does Blender work? Below, I will introduce the process of using and testing Blender step by step.


Download and Install Blender

First, use the following command to git clone the project. Note that you need administrator rights and a python environment.

git clone https://github.com/facebookresearch/ParlAI.git
cd ParlAI
sudo python3 setup.py develop

Next, we can choose to fine-tune the model (Fine Tuning), automatically evaluate the quality of the model, and most importantly: we can chat with the model.

But the first thing to declare is that to chat with a better model, you may need a better GPU.


Chat with the Blender

There are three models to choose from:

  • 90 M
  • 2.7 B
  • 9.4 B

I think these values represent the number of parameters.

Basically, there is no limit to 90 M, and I’m not sure what level of GPU is needed (or maybe the CPU can run? You can give it a try)

python3 parlai/scripts/safe_interactive.py -t blended_skill_talk -mf zoo:blender/blender_90M/model


As for 2.7 B, the official recommendation is to use at least 16 GB of P100. (I am currently using this model for dialogue)

python3 parlai/scripts/safe_interactive.py -t blended_skill_talk -mf zoo:blender/blender_3B/model


9.4 B is the most exaggerated, it is recommended to use two 32 GB V100.

python3 parlai/scripts/safe_interactive.py -t blended_skill_talk -mf zoo:blender/blender_9B/model


Currently, after I try to chat with Blender, my feeling is: this model is really strong!

Below I will post a conversation between me and Blender (hereafter I will use "me" as the name, and Blender as "B"):

我: Hello
B: How are you doing today? I am just getting ready to go to work. What are you up to?

我: I stay at home all day to play video games.
B: That sounds relaxing. What kind of video game is it? I like playing video games too.

我: Final Fantasy VII.
B: I've heard a lot about that game. It was released in 1997 for the Playstation 2.

Wow! Blender even knows FF7! Hey! Even the year and host (this biography is PS, but the follow-up works are right on PS2)!

If today Blender is a dialogue robot specifically for chatting with "players", then I would not be so surprised - but today Blender is an open chat dialogue robot!

In the past, when trying to make your own dialogue robot, the first step was to set up your own chat theme, then crawl, download your own training data, and perform pre-processing.

But Blender is not the kind of chatbot.

It can answer such detailed questions even if it can talk about any topic. All I can say is that this dialogue robot is really amazing!


References

Leave a Reply