22 ms·
The hate this is getting is not justified, it's a very cool idea. I tried the GPT you created and it is impressively consistent. Why do you think that GPT4 so
by zomglings 3y ago
The hate this is getting is not justified, it's a very cool idea. I tried the GPT you created and it is impressively consistent.
Why do you think that GPT4 so consistently respects these instructions?
It's not perfect, though -- I asked it to explain a bit more about functions and it slipped. Its usage examples had function invocations in the form "//f <function_name> <*args>"
I asked it about this and it responded:
In reply to: 3
Thank you for pointing out the discrepancy. You are correct. According to
the //N syntax rules, functions should be invoked using the format
"//<function name>," not "//f <function name>." The "//f" prefix is used for
defining a new function, not for invoking it. Here's the corrected way to
invoke the functions I mentioned earlier:
Anyway, I don't think I would use this exactly the way that you define it, but I really like the idea of basically defining macros to the conversation and invoking them using a special syntax like this. Will have to see if it sticks or not, but it's a valuable idea.
I'm curious - do you know how custom instructions work? A lot of people are implying that the custom instructions simply get prepended to each message, but is that true? Or are they fed into the model as context in a more opaque manner?
- airesearcher 3y agoThanks -- honestly I didn't really notice any "hate" but only a very minor "snark" in some comments, which I fully sympathize with (except that those people are clearly not expert level prompt engineers and didn't even try my code, so take their comments with a huge grain of salt -- it doesn't bother me one bit!) I made some improvements to the GPT to make it behave better. It's extremely difficult to get GPT 4 to follow instructions like these consistently and it takes a lot of tinkering (like hundreds of times) to figure out how to make it obey, and even then it sometimes gets lazy or stubborn... In any case, yes I did notice it was not showing function invocations properly and I fixed that in the GPT version. There is not enough room in the custom instruction 1500 chars to really force it to obey properly. I would suggest you take any parts you like and toss the other ones, and experiment and have fun... but be prepared to lose about 2 days of productivity on other work while you try thousands of word combos if you go down this rabbit hole hahaha. ChatGPT is very temperamental and part of the fun of this is to figure out how to nudge it with the fewest possible words. One thing I have noticed is that you can sometimes appeal to other things GPT knows without writing them in full, and it understands the intent of abbreviations and even non-grammatically correct sentences, all of which can optimize use of space in the 1500 custom instruction limit. Basically this is like a kind of Judo move on ChatGPT -- using it's own energy to direct it where you want -- in other words, figuring out what else it knows already and using that to increase the probability that it will follow this language properly. Not so easy but fun. For example, when I originally defined the ??! (function) command, I simply said "Nesting OK" ... I didn't have to actually explain or define nesting, it just knew. Sometimes you can do that and GPT fills in the rest magically. I also find that using emotional appeals for it to obey helps... but there isn't room in the 1500 chars for that. As for your question about how ChatGPT uses Custom Instructions - I don't know definitively whether they prepend them onto every message or they simply somehow keep them within the token window another way - that's a question I would like to know the answer to if anyone knows the official answer...?