You can create a fine-tune by creating a jsonl file with example prompts and completions. So a file with hundreds or thousands of lines like this:
{âpromptâ: âYour company is awesome.\n\n###\n\nâ, âcompletionâ: " 1"}
{âpromptâ: âYour company is bad.\n\n###\n\nâ, âcompletionâ: " 0"}
Note the space before the completion output. Also, the '\n\n###\n\n" is what I used as a stop word, which is the same one recommended by OpenAI.
Then to create the fine-tune, follow along with the docs:
https://beta.openai.com/docs/guides/fine-tuning
Here would then be the parameters you would send when you call your fine-tuned model. The important ones being the temperature of 0, and in my case, since I am just outputting single character labels, I set max_tokens to 1.
{âtemperatureâ: 0, âmax_tokensâ: 1, âtop_pâ: 1, âlogprobsâ: 2, âfrequency_penaltyâ: 0, âpresence_penaltyâ: 0}
Be sure to append the stop word of â\n\n###\n\nâ to the input prior to sending it off to the trained fine-tune.
Note: You can only fine-tune base models right now. So âdavinciâ and not âtext-davinci-003â.
For fine-tunes with a lot of training data, you can get away with using ada or babbage for classification. But you can train various versions and see which ones work better for you. The higher end models such as curie or davinci would be used if you have limited training data.
Thatâs basically the high level advice on creating a fine-tune.
Good luck!