I am wondering what others ideas are on extracting ‘personalities’ using past conversations as training data. For example, suppose we are only interested in one persons personality based in N past conversation transcripts they have had.
Here is a simple example:
Let’s say I want to replicate a bot that responds like Dieter (Mike Meyers) from the SNL skit “Sprockets!”.
There are 14 “Sprockets” skits from 1989 to 1997. So not a lot of data, although there is also a movie screenplay out there too (a bit more data). When I ask GPT-3 to emulate “Deiter from Sprockets” it does a poor job IMO … probably because a lack of data … so just using basic GPT-3 prompting is out. Also, I’m thinking of the case of a random person GPT-3 doesn’t know about, so GPT-3 basic prompting is out in this case too.
So to solve these problems, let’s just say I have tons of conversational data, think all the Johnny Carson transcripts, where the person of interest is talking to another person. This isn’t just a question/answer session, but a conversation.
So with this data, where the person of interest is talking to other people … and you have lots of conversations on record and in text format … what would be the best way to encode this person in a model?
Here is what I wish … Just upload all the conversations with “Dieter” and “Person X” and let the network train itself on how Dieter typically responds to people.
Now I already know what some of the responses might be … here is what you might answer with:
- Use prompts with examples of “Deiter” and “Person X” and then ask GPT-3 to complete it for new incoming text.
My concern with this is more information theoretic … the prompt size is too small to really capture the entire personality of someone. You can get a decent response, but not a very accurate one.
- Use embeddings to get the most relevant selections of “Dieter” and then feed these more accurate and/or relevant details to the prompt and ask GPT-3 to complete it.
Again, my concern is information theoretic … the amount of bits in someones personality is much bigger than the prompt size of GPT-3. But this technique should give a better answer than (1) since the prompt is more relevant to the input.
OK, so the only option it seems like I am left with is a fine-tune, where I can influence a large set of network parameters (OK, so I’m feeling better about not having enough information). And this is where I get stuck. Fine-tuning seems to be a one way thing … and the direction is always “answering” or “concluding” something from the input prompt. The only way I can think around this is to have multiple fine tunes going in both directions (questioning and answering) and somehow having a metric decide if this is incoming our outgoing and then use the appropriate fine-tune respond.
Maybe I answered my own question, but who knows, curious as to what others have tried.
And oh, if there is a way to upload conversations and let the network train and extract how the person of interest would respond, it would make this extraction process much more straightforward!