I’m experimenting with using GPT-3 to convert some unstructured text into standardized JSON. When I test this with a completion on the text-davinci-003 model, asking it to convert to a JSON schema I provide, the model is intuitively able to complete it and gives very good results.
eg Prompt:
Convert the following text to this JSON schema:
{
"field": "string"
}
Text: <unstructured text>
eg Completion:
{
"field": 123
}
However, when I go to fine-tune a custom model, the only option is to use davinci (which as I understand, is a more basic version of text-davinci-003). I fine tune the custom model using the same unstructured text, with the completion being the JSON I want. When I give it an unseen prompt, the model responds with either an empty string, or some garbled text that’s irrelevant.
eg Fine-tuning:
{"prompt": "<unstructured text>", "completion": " <json>"}]
then running an unseen prompt produces an empty string, or garbled text.
Can anyone point me in the right direction here? text-davinci-003 seems to be more capable out of the box to handle this task. However, for my application, I need to train the model on certain phrases which text-davinci-003 won’t have knowledge of, hence the need for fine tuning. But the base davinci model seems incapable of generating JSON. I’ve only given a small number of training examples, do I need to provide more or change my methodology? What can I do to get this desired completion?