Davinci-002 fine-tuning completion does not work

I have not used ChatGPT since legacy models were deprecated. However, as far as I know, OpenAI API still supports completion for davinci002 and babbage002. So, I fine-tune them on my old dataset where prompt is article and completion is a place where it takes place. You can see example below:

{“prompt”: “In Prague, a scooter driver was caught who drove under a "brick" in the city center twice. ->”, “completion”: “{"result":["Czech Republic, Prague, city center"]}”}

But when it comes to executing this model, it generates text that does not differ much from non-fine-tuned ones.

What am I doing wrong? How to fix it?

I had a similar issue a few years ago. The problem was the trailing or leading whitespaces in the training dataset. I noticed that when I was turning data to jsonl, I made some mistakes etc.

Second, try to reduce the temperature to very low, such as “0,” and see whether you are still getting the same non-sensical outputs. I use a temperature of around .60 for those models.

Thanks for your help.

  1. Unfortunately, i have also faced such problem due to the whitespaces on the same dataset before, but i fixed it and it worked on legacy models. So my problem may not be related to dataset itself, but I will to review it anyway.
  2. Lower temperature does not change anything :frowning:
1 Like

You can include the prompting that leads to completion output anyway, and just use the fine-tune as a quality improvement.


Here is an AI that reads the input text, and then as output, it performs entity extraction, extracting any unique geographic locations mentioned in the text as a descriptive JSON array of strings result, written as natural language strings (or an empty array for no results). The JSON closes with ]}

// input text:
In Prague, a scooter driver was caught who drove under a “brick” in the city center twice.

// output JSON:
{“locations”: [

The prompt (actual prompt engineering) puts the AI in a mindset of “completing” a task, and we even start writing the output for it as a “prompt” separator, and use the pattern to stop it when it loops the pattern. I even show below using the closing of the JSON as a stop sequence to save you any extra tokens.

You can see the performance still needs your fine tune to be as descriptive as you imagine, identifying a singular location and not filling a list - or to not emit latitudes, or to not keep on writing but instead emit its “stop”.

Thanks for your attention!
I don’t think this is a best solution, because we always have to pass all the instruction to GPT. It looks like we pay more for an instruction than for sentence analysis itself. Moreover, it worked just the way i want on the same dataset for old models