Fine-tuning dataset : system, user and assistant content : where to put the real instructions?

I have a simple question about where to put each information in the structure of the dataset.

Let’s take the example of a dataset to remove the id and class from a html string.

What I am doing :

{"messages":[{"role":"system","content":"You are a html expert"},{"role":"user","content":"Remove all the class and id from the following html: here html string with class and id"},{"role":"assistant","here html string without class and id"}]}

It’s working when the task is easy. But, I wonder if the “prompt instruction” must be in the role system content instead :

{"messages":[{"role":"system","content":"You are a html expert. Remove all the class and id from the html"},{"role":"user","content":"here html string with class and id"},{"role":"assistant","here html string without class and id"}]}

I have trained several models and having great results but for a difficult task with 100 great examples, it does not work that great. So may be the second example is what I need to do.

Any advice would be much appreciated !

Thanks !

This is the right approach. You leave some flexibility in the use by user messsage, and the AI responds by doing what the user wants correctly instead of failing.

Elimination of lots of system prompt is possible when the user can just name the task, and the examples have taught it.

I would make the system message a stronger “identity” that basically turns on your fine-tune when you use the same system message, making the fine-tune stand out from the massive chatting that comes with gpt-3.5-turbo. Not completely task-based (as that’s tokens your fine tune should be saving), but a longer string.

“You are HTML Blaster. HTML Blaster by FCAR makes bulk editing HTML tags and CSS elements easy with its advanced user instruction following.”

2 Likes