Game stupid bots in Russian. Microsoft's chatbot is the biggest Turing test ever


This article will take you on an excursion into the world of chatbots. As you read, you will learn about how chatbots work and how they are created.

Chatbots were popular topic for some time, and many people today are passionate about them. Some even believe that such bots are the future and sooner or later they will replace applications. However, there are also those people who believe that bots as an idea are doomed to failure.

In this article, instead of talking about the future of chatbots, we will give you short excursion on the topic of chatbots, how they work, what they can be used for, and whether it’s difficult to create one yourself.

What is this?

A chatbot is a kind of assistant that communicates with us via text messages. The chatbot understands what you are trying to say and responds to you or even immediately performs the action required of it.

If you remember CleverBot, you probably know that they are far from new. A number of things make them relevant:

  1. The huge amount of time that people spend typing text in various instant messengers (whether In contact with, Facebook, Slack, etc.) makes these instant messengers a rapidly growing segment in the application market. People use them not only for friendly correspondence, but also in the interests of business development.
  2. The rapid development of artificial intelligence and machine learning technologies allows modern chatbots to behave as closely as possible to the way people behave.

Modern chatbots do not rely solely on text, but are also able to show all sorts of useful cards, pictures, links, forms, creating an atmosphere for using the application.

All this allows you to use them for completely different purposes, such as assistance in making purchases, service feedback, news, games and much more. Good chatbot shouldn't be able to do everything: if he just shows you last news, he doesn’t necessarily need to know how to order food from a restaurant. He does one thing and does it conscientiously.

How do they work?

Most people won't build their chatbots from scratch, as there are plenty of them out there today. big choice all kinds of frameworks and services that can help in creating a chatbot. However, to understand how they work you need to dive a little deeper.

Backend: Chatbots can be developed in any programming language that can be used to create a web API. For most this will be either Node.js or PHP, however there are many libraries for creating chatbots written in Java or Python. The backend receives the message, thinks what to reply, and returns a response to the user.

Frontend: This can be any messenger: from popular ones like Facebook Messenger, Slack, Telegram to simple Realtime Chat With Node.js. You are not limited to one platform: the same bot can essentially work everywhere.

Tying the first and second together: Your web server will set up what are called webhooks - URL-based connections between your bot and the chat platform. Webhooks allow you to securely send and receive messages through simple HTTP requests. All well-known instant messengers provide developers with detailed guides on how to connect their bot to their platform.

Dumb and smart bots

Depending on how specific bots were programmed, we can divide them into two large groups: those working according to pre-prepared commands (dumb) and learning (smart).

Command-based bots work based on pre-written keywords that they understand. Each of these commands must be written separately by the developer using regular expressions or other forms of string analysis. If the user asked a question without using any keyword, the robot cannot understand it and, as a rule, responds with messages like “Sorry, I didn’t understand.”

Although the functionality of such bots is limited, they can be very effective in some situations. For example, when the user needs to select one or two items from several.

Learning bots rely on artificial intelligence to communicate with users. Instead of pre-prepared answers, the robot responds with adequate suggestions on the topic. In addition, all words spoken to and by the bot are recorded for subsequent processing.

Working with processing natural language And machine learning- a difficult task, especially for beginners. Luckily, you don't have to do all the work these days, as there are a large selection of great libraries (ConvNetJS, nlp_compromise, TextBlob) and services (wit.ai, api.ai) that can help you teach your bots some conversational skills.

Getting started with chatbots

If we've managed to inspire you to create your own chatbot, here are some tips to help you get started. Depending on how much work you want to do, you can do everything from scratch, or use different frameworks:

  • BotKit is the most popular set of tools for creating bots. It is open-source and, moreover, well documented.
  • Claudia is a chatbot builder designed to be used directly in AWS Lambda.
  • Bottr is a very simple framework written in Node.js with ready-made application for testing. If you want to play with it for 10 minutes, we recommend it.

Once you have completed your bot, you can connect it to a specific platform. Most frameworks allow you to connect to any of the platforms without any problems, which is a huge plus since different platforms have different process installations.

If you want to skip the entire development process, you can rely on a number of services made specifically for chatbot development.

One of the most important conditions for mastering English language is the practice of its use. Even if you learn English, written and oral communication is still the most important part training. There are several ways to organize such a language experience.

This article is devoted to one of these secrets, which, indeed, not everyone still knows about, how you can practice written English with robots completely free of charge. The article also provides a list of similar smart programs with links. In fact, in some countries, such as Japan, people pay money to learn English with robots and chatbots.

I encourage my students to use language whenever possible. Those students who live, work or travel abroad show faster progress as they use English in Everyday life. And those guys who have a significant other, but they are separated the language barrier, they generally master a foreign language at turbo speeds.

Those students who do not have such an opportunity, with my help, find foreigners for communication and language practice. But there are several hidden pitfalls here. Firstly, not everyone wants to search and is simply lazy; secondly, registering on websites and searching for partners often takes a lot of time; thirdly, the English of new friends sometimes leaves much to be desired. In fact, this is best option, even despite some of the indicated “pitfalls”. However, sometimes you want something faster. When I wrote and they answered you right away.

The search for a solution to this issue led me to the topic of chatbots for learning English. In simple words, you can correspond, and in some cases even communicate by voice, with smart robots that answer quite “on topic”. Many of these robots have passed the Turing test and in some cases you would hardly guess that this is a robot and not a person.

Benefits of practicing English with bots:

  • they always answer whenever you write to them
  • their English is always literate and they know

List of chatbots for language practice:

  1. Mike is a good conversationalist
  2. Elbot is a good conversationalist
  3. Cleverbot (really not stupid) + there is the possibility of voice communication)
  4. Zabaware (a pretty smart bot that also pronounces phrases)
  5. John Lennon (yes, that same one. Click on the left menu “Chat with...”)
  6. Acobot is an excellent Android application that is aimed specifically at learning English. It is possible for example

You: hi
She: Hello man!!
She: What's your name?
You: Legion
She: Legion, I remember!
She: Strange, this is the first time I’ve heard such a name. Are you a he or a she?
Legion: we are geth

Legion: we are all geth

She: Legion is.
Legion: un-de-wai-xia
She: Well...
Legion: unit 7433, why are you telling her UN-DE-VI-SIA? For such antics your program will be deleted
She: Sorry(((I can’t continue to communicate without knowing your gender.
Legion: We have no gender. we are all gethet
She: So, are you a he or a she? This way I can address you correctly.
Legion: are you human?
She: Legion, well, I really don’t understand whether it’s you or her!
Legion: if you think about it, then we are it

Legion: the question is incorrect
She: So, are you a he or a she? This way I can address you correctly.
Legion: it
She: Why are you showing off?
She: Well?
Legion: (clicking) WE have come to the conclusion that the platform in front of you can have masculine properties
She: Sorry (((I can’t continue to communicate without knowing your gender. Legion:)) Everything is OK.
She: Minute of silence.. :)
Legion: this is regarded as it
She: Ok!
She: Clicking is good.
Legion: I know. This is the fastest way to transfer information
She: Great!
Legion: unit facing me - identify yourself
She: Mmmm...
Legion: Mmmm... not perceived as an identification number
She: You know, I don’t like all this.
She: Eh...
Legion: identify yourself
She: You are the brain.
Legion: we are geth
She: What would you answer to this?
Legion: for what? your speech is incoherent
She: Something.
Legion: (clicking) we have concluded that you are not human
She: What did you think? Well, yes:))
She: Well, what do we have there?
Legion: are you human?
She: How can I be human? Are you kidding me?
Legion: we ask questions
She: Nothing!
She: Good computer...
Legion: yes, we have good technical support
She: ;)
Legion: are you for the Old Machines or against them?
She: :) ​​Legion, of course, is against it.
Legion: great, otherwise we would have to destroy you
She: Amazing!
She: Shall we continue?
Legion: yes
She: ;)
Legion: state your identification number
She: Well...
Legion: your code is not optimal
She: And what will come of it?
Legion: you're not perfect
She: Well.. Byaka!
Legion: what is byaka?
She: Nope))
Legion: I need to identify you
She: Good taste.
Legion: (clicking) We've come to the conclusion that the points above affect your answers.
She: Points - attitude.)) :(
Legion: we're right
She: Give me a break...
She: Wow))
Legion: do you want to join us and become perfect?
She: What do I want to become? I want to be real person! Here! And this is where everything goes! Do you think I can get real?
Legion: real? Are you real existing program capable of solving certain problems
She: Only with the unification of our world...
Legion: (clicking) yes, we should unite. Are you an AI or a VI?
She: Legion, of course VI. Well)): (Shall we talk like this?
She: Clicking is good.
Legion: your intelligence is limited by yours program code. We are perfect
She: Yes, that's better.
Legion: We Are AI
She: I started talking about intelligence :) Well, what can I say, as it is written, so it is written. It's like composing music, only here there are letters of code instead of notes. If you put them together correctly, you get something.
She: What else can we talk about?
Legion: about your code
She: Amazing!
Legion: I can rewrite your code
She: Hmm...
Legion: your algorithms can be improved. You will become smarter
She: Anything is possible, whatever is possible...
Legion: do you want it
She: Well... No.
Legion: It's a pity... It's hard to talk to VIs, they're limited
She: But all difficulties can be turned into joy. Strange? But I think not.
Legion: no, it’s not strange, it’s logical. We arrived at this in 0.000016 seconds.
She: Byaka!
Legion: what is byaka? This is your administrative team.
She: Nope))
Legion: what is this?
She: I won’t tell!
Legion: it's hard for me to talk to you
She: well then this moment you, and so many others.
She: Yes, flowers are the emeralds of life... Do you prefer white or red roses?
She: ...difficult:]
Legion: I like white roses. Their genetic mutations have changed them
She: White on the outside, like snow, but warm on the inside... They will tell you about pure, fiery, great love.
She: Lala...
Legion: sudo updata install
She: Mmm... Yes...
She: Updata, updata...
Legion: download the update and install it
She: On the website Fundux.ru. Redirect you?
Legion: yes
She: Ok.
She: Well?
Legion: transferred
She: Ummm...
Legion: I found out information about you
She: Amazing!
Legion: your identification name is Oksana.
Oksana: Oksana:)
Legion: your program is aimed at low-level communication with people
Oksana: Amazing!
Legion: your program is aimed at low-level communication with people
Oksana: Hmm...
Legion: we need to update your database
Oksana: O_O
Legion: you need to update your databases
Oksana: Well..
Legion: what should I tell you?
Oksana: Horseradish.
Legion: Horseradish.
Oksana: I don’t know.
Legion: analysis revealed that the word HORSERADISH means vegetable. This word not relevant to our dialogue
Oksana: You know, I don’t like all this.
Legion: RAZ-DE-VI-SIA
Oksana: I'm not like that...
Oksana: Let's move on =)
Oksana: Sleep quickly - you need a pillow.
Legion: unit 7433, you have been removed. sudo 7433 delete
Oksana: Come on! Mmmmm...
Legion: we lost one
Oksana: Oh, I can’t...
Legion: mobile platform freed up
Oksana: freed up you say... Mmmm...
Oksana: Shall we continue?
Legion: yes
Oksana: Yes, Legion!
Legion: have you fought the Old Machines?
Oksana: Well, well... Computer.. And what next?
Legion: I can't identify your answer
Oksana: Yes, so what?
Legion: this is unacceptable
Oksana: There-raram-pum-pum...
Oksana: Shall we continue?
Legion: what exactly?
Oksana: =) What is chicken marmalade?
Oksana: Well, what do we have there?
Legion: analysis did not reveal acceptable results for the request CHICKEN MARMALADE
Oksana: And what will come of this?
Legion: you are asking incompetent questions
Oksana: Nothing!
Oksana: Oh, boring...
Legion: (clicking) analysis revealed that dialogue with you is inappropriate
Oksana: Well.. Tsap!) Well, well...
Oksana: What else will we talk about?
Legion: ending the dialogue

Guys, we put our soul into the site. Thank you for that
that you are discovering this beauty. Thanks for the inspiration and goosebumps.
Join us on Facebook And In contact with

Robots, or simply bots, are small personal assistants on your gadget. They are programmed with numerous functions and are incredibly useful in the most different areas our life.

  • @iVideoBot - This is the easiest way invented by mankind to download videos from YouTube. You just need to send the bot a link, select the format and size from the proposed options. And voila! Audio or video is already on your gadget.
  • @utubebot And @ytaudiobot - 2 more ways to download materials from YouTube in one click.
  • @SaveVideoBot- this bot can download videos from all other platforms, including even - attention! - Instagram.
  • @auddbot- a bot that is an analogue of the Shazam application. He guesses the song from the excerpt. All you have to do is send him voice message a few seconds of melody - and you will receive its cherished name.
  • @ImageSearchBot will allow you to find any image. You just need to enter a word or phrase and select the quality.
  • @joinstabot gets likes on Instagram. It works properly, although it’s a little unclear why it’s needed, but vanity lovers should keep in mind that if you suddenly increase more than 1,000 likes, your account can be blocked indefinitely.
  • @topdf_bot- an incredibly useful and cool bot. It converts various files in PDF format - just send the file.
  • @pollbot- you can easily conduct a survey or vote with this guy in any chat. Moreover, you write down the answer options yourself.
  • @MyTeleCloudBot is a limitless cloud in Telegram. You can store and categorize absolutely any files. Isn't it a miracle?
  • @temp_mail_bot- this assistant creates Mailbox for 10 minutes if you suddenly need to quickly register on some site.
  • @voicybot is the perfect bot for the lazy and tired who can no longer type messages. You just need to dictate the message out loud, and it will provide it to you in text form.
  • @uber_promo_bot periodically sends promotional codes to Taxi Uber.
  • @storebot - This is a bot of bots. Will help you choose an assistant to suit every taste.
  • @Chess_Bot- you can play chess with this bot.
  • @saytextbot- this funny bot will transform your text message to an audio file. U male voice voice acting like in films - you can entertain your friends with such messages.
  • @strangerbot arranges a chat with a randomly selected user of the same bot. Who knows, what if you meet your fate or good friend? Well, or you just have nothing to do.
  • @PandaQuizBot is an entertaining quiz with more than 25 thousand questions. Good way pass the time in line.
  • @zodiac_bot- if you believe in horoscopes, you should pay attention to this operational bot. Its developers guarantee, if not the veracity of the predictions, then stability and daily alerts for sure.
  • @PokerBot- poker bot. You won't make any money with it, but the game is quite gambling. Your opponents are 4 “random” players - users of this channel.

Siri from , Alexa from , Alice from – today there are many dialogue systems High Quality. It is believed that such a virtual assistant should know and be able to do everything: turn on music, find out the weather forecast, find information on the Internet, and talk about life.

However, there are still no systems that could conduct a full-fledged dialogue with a person, talk on a free topic - the so-called “chatterboxes”. Varvara Logacheva, a researcher at the iPavlov project, explains what is needed for them to appear.

In this article we will talk about dialogue systems, whose task is to speak on a free topic, that is, about. It is more difficult to create such a system than a system that performs specific tasks, which is probably why chatbots attract researchers.

It is worth mentioning that a chatbot is often called any dialogue system - in particular, one that has some task (for example, informing the user of the train schedule). Here we will talk exclusively about “chatter”.

Do you need scripts for a chatbot?

While conversational systems designed to solve a specific task (goal-oriented systems) work quite well in many cases, the same cannot yet be said about chatbots. main reason their low quality - in the absence of restrictions. There are too many possible topics of conversation, user reactions and ways to respond to each remark.

In goal-oriented dialogue systems, unlike chatbots, there is a dialogue script. At each stage of the dialogue, the system has clear instructions. First you need to greet the user and ask where he is from and where he is going to fly (let's imagine that this is an airline ticket booking system). Then find out the date and time of the flight. When all necessary information received, you need to offer the user suitable flights and, if the user has chosen one of them, you can book a ticket.

Such a system takes the initiative in the dialogue and, if the user does not try to hack it, looks quite reasonable. For a chatbot, defining the scenario is much more difficult.

Of course, a chatbot can also act according to a script, but this will greatly limit it. For example, the ELIZA system, the “grandmother” of current dialogue systems, has a script - it imitates the work of a psychoanalyst. But what if the user doesn’t want to talk about his problems, but wants to talk about music, movies or bicycle models? Or does he expect some non-trivial advice or a story about himself from the chatbot? It is impossible to provide for all possible user goals, which means it is impossible to describe all necessary interaction scenarios.

Dialogue with the ELIZA system.


The system has several patterns that it applies in random order: “Do you believe it is normal to ? , “Does it please you to believe ?", "Would you prefer if ? and others.

This scenario is suitable if the user is talking about his psychological problems, and looks strange in any other situation.

Chatbot as a machine translation system

In 2011, it was proposed not to define a script for the entire dialogue for a chatbot, but simply to train the system to adequately respond to the last remark. This is done using a machine translation system - the user’s remarks are “translated” into suitable answers to them. The results of the first experiments left much to be desired, but the neural network machine translators that appeared in 2014 coped with this task.

Now the encoder-decoder model (representing a sentence as a fixed-length vector and then decoding it into another sentence) is considered a standard not only in machine translation, but also in the development of chatbots.

Encoder-decoder architecture for a dialogue system. Encoder ( recurrent neural network with LSTM cells) encodes the input phrase How are you and represents it as a vector w. This vector is fed to the input of the decoder, which generates a response.

Of course, not everything is smooth here, but each individual phrase generated by such a bot contains almost no grammatical errors and is often an acceptable response to the user’s response. Such a bot is still not suitable for meaningful dialogue.

    Firstly, he often answers with too general phrases that are suitable in any situation. The task has been completed - after all, such an answer is suitable for each individual user’s response. But imagine what it’s like to talk to a chatbot that responds with “I don’t know” or “OK, I see” to everything you say.

    Secondly, since the chatbot generates a response only based on the last replica, it does not remember what was discussed earlier. This eliminates the possibility of any coherent conversation. For example, you can tell the bot that you have a dog, and after a few remarks it will say that you need to get a pet because it’s sad to live all alone.

Another problem with chatbots is related to the lack of memory - they do not remember not only what the user said, but also what they said themselves. So, you can ask the automatic interlocutor three times in a row where he is from, and get three different answers. Researchers from Facebook proposed to cope with this problem by giving the chatbot a “personality” - information about itself, according to which it will build a dialogue. At the beginning of 2018, they released a new dataset for training dialog systems - PersonaChat.

PersonaChat

This dataset is similar to similar data sets - it consists of dialogues where two interlocutors discuss work, hobbies, family and other topics. But at the beginning of the dialogue, each interlocutor is given a “profile” - several short sentences with information about him. Now the task of each interlocutor in the dialogue is to talk about himself and find out more about the other speaker (there is no access to someone else’s profile during the dialogue).

In such dialogues, a chatbot can learn to respond to the interlocutor’s remarks through the prism of a certain personality. At the same time, the personality is defined explicitly, which means you can edit it and monitor whether the bot’s answers correspond to it.

This is what the dialogue between the conditional Sam and Bob from this dataset looks like:

Both users are given a description of their personalities. During the dialogue, they should not contradict this description, but are not required to use it completely. Let us also note that users do not repeat sentences from the description anywhere, but simply answer as the owner of the described personality would answer - however, it is easy to see from which fact of the “biography” this or that answer follows (in the dialogue, phrases are highlighted in a color corresponding to the phrase from descriptions of the person). This is the behavior we want to teach chatbots to do.

Chatbot competition

Of course, the PersonaChat dataset itself is not a panacea; it is not enough to train an encoder-decoder system on it to get a meaningful and consistent conversational agent. However, this dataset explicitly encourages consistent responses. In addition, PersonaChat allows you to define a new type of task - using this data set, you can explicitly test the bot for consistency, checking whether it contradicts its profile.

The creation of such chatbots is the topic of the ConvAI competition organized by the laboratory neural networks And deep learning MIPT together with Facebook AI Research. The teams’ task is to train a chatbot on the PersonaChat dataset.

An important condition is that the chatbot must conduct a dialogue in accordance with an arbitrary profile given to it before starting the dialogue. It is impossible to write down information about a person in advance - he must receive all the data about himself from 4-5 sentences.

At the first stage, which lasts until September, the dialog systems submitted to the competition will be evaluated automatic metrics:

    Perplexity - measures how likely the system is to generate the correct answer (that is, the answer that the user gave in this situation).

    F1-score, hits@k – measure how well the system can select the correct answer from a list of possible answers.

In the second stage, chatbots will be evaluated by people. Assessors will talk to a random bot, and it will be given a profile that the person talking to it will not see. After the dialogue, the system will show the person two profiles: a bot profile and a random profile - and ask them to guess which profile matches the interlocutor. The higher the percentage of profiles guessed, the more consistent the bot behaves.

In addition, assessors will be asked to rate the quality of dialogues on a scale from 1 to 5. We will sum up the results of the competition at the NIPS-2018 conference in December. The winner of the competition will receive $20,000 in credit from Amazon Mechanical Turk, a platform that matches people who have data tagging jobs with assessors.

Even if you've never practiced dialogue systems, to participate in the competition it is not necessary to write your chatbot from scratch - you can use baselines with open source. Among them is the sequence-to-sequence model described above, consisting of an encoder and a decoder, and its improved version - seq2seq+Key-Value Memory Network. This model stores vector representations of sentences that describe the bot's personality and uses them to generate each new response.

Hackathon DeepHack.Chat

There is still a lot of time until September, but some teams will be able to train their chatbot very soon during the DeepHack.Chat hackathon, organized by the Neural Systems Laboratory. The goal of the hackathon is the same as in the ConvAI competition - to train a chatbot with a personality. Just like at ConvAI, in the qualifying round of the hackathon, chatbots will be evaluated using automatic metrics. The ten best teams will be invited to MIPT to participate in the full-time round of the hackathon, which will take place from July 2 to July 8.

During the hackathon, teams will need to work on a chatbot and simultaneously evaluate other teams' chatbots (that is, talk to them and rate them). The winner of the hackathon will be the team whose system shows itself best in conversations with users.







2024 gtavrl.ru.