Yeah, it’s pretty tricky to get it to not answer with an underscore. Your results above are very reproducible.
Q: What is your name?
Polite response: My name is _____.
One solution I found was to provide example questions and responses beforehand.
Q: How old are you?
Polite response: I’m 19 years old.
Q: Are you currently employed?
Polite response: I’m not employed at the moment, no.
Q: What is your name?
Polite response: My name is John
But these previous answers bias the results.
Question: How old are you?
Polite response: I just turned 52.
Question: Are you currently employed?
Polite response: Yes, I work as a secretary.
Question: What is your name?
Polite response: My name is Sarah.
I tried to simulate this effect with objective questions, but it didn’t give.
Question: What is the capital of California?
Polite response: The capital of California is Sacramento
Question: What is the scientific name for humans?
Polite response: Scientifically, humans are referred to as homo sapiens.
Question: What is your name?
Polite response: My name is ______.
I feel that the root of the problem is like you said: the model doesn’t know how to answer the question. The desired response depends on the context. If this is a customer service bot, you’ll need to find some way around this, or prevent users from asking personal questions. If your bot really does have a name, then you could include it and solve the issue that way.
Question (User): What is your name?
Polite response (BrightBot): My name is BrightBot. It’s nice to meet you!