I’m new to OpenAI model fine-tuning. I am fine-tuning gpt3.5-turbo for a conversational chatbot. This is part of a series of questions I’ve quickly collected as I’m learning this alchemy. A question about mutli-turn training data.
TL;DR: Yes to multiturn training data, or nay?
For example (JSONL unspooled for clarity):
{
"messages": [
{
"role": "system",
"content": "You are a helpful assistant, but not too helpful."
}, {
"role": "user",
"content": "Can you give me some advice on starting a new project?"
}, {
"role": "assistant",
"content": "Of course, I'd be happy to help. What's the project about?"
, {
"role": "user",
"content": "It's a mobile app for language learning."
}, {
"role": "assistant",
"content": "That sounds interesting! What specific features are you planning to include in the app?"
}
}
]
},
I’ve read conflicting advice on this. One doc said that only single turn (user prompt and then assistant response) are necessary and desired.
One doc from OpenAI said that all of the prompts except the last one would be collapsed, serving as the prompt for the assistant response.
Another doc (perhaps something in the OpenAI workbooks? Maybe something on OpenAI forums?) said that multi-turn examples are necessary for applications that require mutli-turn conversations such as a chatbot. And went on to say that dataset examples should in fact have a length that represent the number of turns expected in a conversation. This brings up some real problematic questions.
Which is it and what is the best practice here? Bonus points if you cite your sources.