#Davinci fine-tuned results begin with a . period

12 messages · Page 1 of 1 (latest)

stone pasture
#

My model is pretty basic and I've gotten the period or comma at the beginning for both small sets (15 items in json) and large sets (1000)
Here's a line form the json before I converted to jsonl:
{"prompt": "A title of something and a number\n", "completion": " Text about it with unicode\u2018 special characters.\n"}

In addition to results having a period before the content, it's also starting the request over again and writing it another time or adding related but random text to the end, often cutting off. Meanwhile the davinci-003 model doesn't do this with the same input. Help?

random jetty
#

The period is because it's a completion model, so if you give it a prompt it will complete the prompt, which includes completing the punctuation at the end of your prompt sometimes

stone pasture
#

Hmm. Can you clarify which part is completion? davinci-003 works fine, and I'm not finding any other json examples. The docs all use "completion" in the json. Either way I don't understand why it's beginning a paragraph with a period. The training data is written in regular paragraph from.

#

When I enter a prompt describing the transcript I want (the completions are all transcripts), It's beginning the output with period, then a paragraph that appears fine, then the extra stuff at the end. The same prompt is working better on the non-fine-tuned model.

burnt birch
#

To add onto Kaveen. It's incorrect to think it's answering you. It's actually just picking up where you left off. You can prompt it to give the illusion of an answer, but it's good practice to remember that's it's simply completing your prompt. That's the reason you start your completion with a space.

Your fine tuning has taught it to start with a period. We can't say anything without assuming a bunch of things.

You may use a stop sequence such as "/n" to stop it from going off and repeating itself.

Being blunt, your example is bad. Your answers should be exactly what you expect the bot to return.

stone pasture
#

Ok I partly understand. My prompt input didn't end with a period, so the completion output started with a period to complete the sentence in my prompt, but only on my fine-tuned model (so I only halfway understand that). Looking at example at the top of this page: https://beta.openai.com/docs/guides/completion/introduction -- would the completion inputs in the json file resemble the expected completion outputs, "We serve up smiles with every scoop!"? If GPT and Davinci-003 is all built for completion then I'm still not understanding why the same prompts work so well on the Davinci-003 model -- it seems like the model, because the output is so different. My completion input is a database of examples of the content, in complete sentences. Could completion inputs in the JSON that are exact examples of the text I want to produce be the cause of the difference between the Davinvi-003 and my fine trained model? Perhaps I incorrectly made the assumption I could fine-tune with 1000 examples to produce variations of the same content.

#

each completion in the json has a \n at the end.

burnt birch
#

Imagine the model to be conditioned based on a reward. A good answer is one that matches your fine tuning. It doesn't "cheat" by just looking at the fine tuning, but it uses its formulas and compares to see it's reward.

Your fine tuning is what you are saying "this is a high reward answer". It will learn how to formulate it's answers to get those high rewards.

By using fine tuning incorrectly, you are conditioning it in a way that doesn't make sense to you, because it's not your intention. It's like a dog that thinks you want it to roll over but you want a paw. There was some failure of communication.

The Davinci model is pre-trained using a lot of data. Multiple methods of training, including its own fine tuning. It's a general purpose engine that you are now trying to focus on.

Your fine tuning examples should be what you want. That if you were to input the prompt, it would return the completion and you'd go chefs kiss and pat

#

In regard to your full stop issue. You should be using a unique separator to direct to the bot "this is where you begin" or "this is a separated section" the API uses <|endoftext|>, I've found ### to work and also use less tokens

#

Lastly, to prevent it from continuing, because if it can, it will, you ideally would want a stop sequence. "/n" is a great one because it usually prevents the bot from going on a tangent

stone pasture
#

Fantastic reply. Thanks. I've got experience training image models, but language models still perplex me. Sounds like I to understand the prompt writing better in general. It seems that my fine-tuning is like if I overtrain an image model on an image set and it's hard to break it away from that subject. I've set the temperature to 0.2 and that seems to help a bit. The only thing left is to figure out why \n isn't ending the bot like everyone says it should.

burnt birch