How to train davinci to be person with the name Alex

Hi all,
I’m trying to figure out how I can fine tune a davinci model to be a person and e.g. answer questions like:

Q: What’s your name
A: Alex

(at the moment it answer Sarah (for me)). I would also like to give the model more input to be the person Alex like, age, date of birth, location, etc.

Any ideas or proposals?

Thanks
Cheers
Tiny

1 Like

Welcome to the forum.

Are you familiar with fine-tuning in general?

I would generate a bunch of examples of your Q/A format, all of them including that it’s Alex. You might look at some of the examples on the OpenAI site too if you haven’t yet. It might be better to use ALEX: as the start of the chat. So…

INTERVIEWER: What is your name?
ALEX: My name is Alex…
INTERVIEWER: Where are you from?
ALEX: I’m from Sofia, Bulgaria
INTERVIEWER: What is the date today?
ALEX: Today is Wednesday the 14th of June, it is nine o’clock in the morning
INTERVIEWER: Tell me what happened to you.
ALEX:

And so on… You can use the Playground to whip up the examples you need…

You’ll need at least 200 samples to fine-tune.

It might be better to start with prompt engineering to get good content coming out.

Another idea is to have a block at the beginning (again, check the example library if you haven’t…)… Here’s an example…

For yours you could change it…

The following is a conversation with an assistant named Alex. The assistant is helpful, creative, clever, and very friendly. Alex was born in New York, New York on the upper East Side. Alex is thirty-four years old, he really likes lemons, and he has brown hair. He’s in a mischievous mood today and might tell a lot of jokes.

HUMAN: Hello, who are you?
ALEX: I am Alex, I like lemons!
HUMAN: I’d like to cancel my subscription.
ALEX: Excuse me?

Hope that helps. Let me know if you have any other questions. Good luck!

1 Like

cool thanks I will try that.

Yes, very helpful indeed.

1 Like

Thanks again I’m experimenting with the playground atm.

So for the training data for the fine tune. Is a Q/A dialog for you a new row (excel speaking) or would you put the whole dialog in one cell?

1 Like

I would probably put the first part (description) and one line of dialogue in the “prompt” of the fine-tune data then put the rest of the lines in the “response”… There’s some fine-tune examples out there, I believe. I can look for some if you can’t find any.

Look into stop words too … to stop the output when you want.

Happy experimenting!

ETA: Good primer here…

2 Likes

Thanks PaulBellow that is really helpful and I got a good conversation going with “Alex” already so will do more conversation and will train a model and see where it goes thank you

1 Like

I just built a prompt for this exact purpose.

Simply copy your entire linkedin profile info, add “My name is (your profile name) and here is my profile:” at the beginning.
Then add “Ask me anything you like” at the end.

Then write something like “Hi (name) do you work as a …”

Paste it all into the playground and experiment. :slight_smile:

2 Likes

Hi guys,

As a general thought, I would try to give Alex some memory and a set of general beliefs ( using something like this: https://weaviate.io/ )

The idea would be when the human reply is received:

  1. try to identify the human’s intention (for example “get an answer to the question”, “get a list of ideas”, “reply to Alex’s statement or question”, “express disappointment” etc.)
  2. Then find the most relevant Alex’s beliefs/general facts in the vector DB as a context
  3. Find the most relevant dialog parts from Alex’s memory (same vector DB)
  4. summarize the previous conversation
    5 get the new prompt:
    {{Bot instructions (not changing)}}
    Alex’s beliefs: {{list of facts, beliefs found in #2}}
    Alex’s past answers: {{summary of dialogs from #3}}
    Conversation summary: {{summary from #4}}
    Human intention: {{intention from #1}}
    Human: {{the last statement}}
    Alex:

Once Alex replies, save the conversations in the following format:

Date: {{date}}
Time: {{time}}
Alex’s beliefs: {{list of facts and/or Alex’s beliefs}}
Conversation summary: {{summary}}
Human intention: {{intention}}
Human: {{the last statement}}
Alex: {{Alex’s reply}}

I know sounds complex, but the result will be definitely more stable and meaningful.

Oh, and BTW, I saw much better results in fine-tuning when the complete prompt is provided as an example, not just parts of the prompt.