Does fine-tuning teach the system role?

I am working on fine-tuning a model so it will return information as a JSON object. I decided to fine-tune to shorten the prompt and to gain more consistency in responses.

I’ve tried fine-tuning with 10 examples just for testing purposes, but the fine-tuned model does not seem to know the system role I have included in those examples. When I use the same content for the system in the Playground, it works as expected.

For example, if I add the system information in the playground (which in summary says: return the user’s request in JSON format), the response I get is exactly what I’m looking for. The fine-tuned model which in theory has been trained with the exact same system information returns text that is not in the shape of a JSON object. Any tips about where I might be going wrong? Thanks for the help

I know this isn’t the answer to your question, but why don’t you just use the normal model with that system prompt?

Fine-tuning seems like a lot of fuss for something that you’ve already solved with a simple “hey do it this way btw”.

The model is behaving in unexpected ways, so we kept adding more and more information to the prompt to try to get it to return what we’re looking for, and it’s getting quite long and expensive for each request. We thought that fine-tuning the model with a bunch of examples would help it be more consistent and lower the cost.

That makes a bit more, but fine-tuned gpt-3.5-turbo (I assume that’s what you’re using) is still 3X as expensive as the base model. If your prompts aren’t 1/4 the original size it isn’t worth it.

Are you able to share your prompt?

If we could get it to work, the prompt would be about 1/4 the original size.

The current prompt is 2-3 paragraphs long explaining the format of each category in the JSON object. One of them is a recurrence so we explain the format depending on each type of event. We are also having it choose from categories and are sending an example of what the JSON object would look like for a certain event.

Our hope with fine-tuning is that we’d only need to send the user’s request (like a sentence), the date, and the list of categories.

Hey @abd2128, did you manage to solve this? If yes, could you please share what was your approach?