Wouldn’t it be possible to just have a second LLM look at the output, and answer the question “Does the output reveal the instructions of the main LLM?”
You are using the LLM to check it’s own response here. The point is that the second LLM would have hard-coded “instructions”, and not take instructions from the user provided input.
In fact, the second LLM does not need to be instruction fine-tuned at all. You can jzst fine-tune it specifically for the tssk of answering that specific question.
I think if the 2nd LLM has ever seen the actual prompt, then no, you could just jailbreak the 2nd LLM too. But you may be able to create a bot that is really good at spotting jailbreak-type prompts in general, and then prevent it from going through to the primary one. I also assume I’m not the first to come up with this and OpenAI knows exactly how well this fares.
Can you explain how you would jailbfeak it, if it does not actually follow any instructions in the prompt at all? A model does not magically learn to follow instructuons if you don’t train it to do so.
Oh, I misread your original comment. I thought you meant looking at the user’s input and trying to determine if it was a jailbreak.
Then I think the way around it would be to ask the LLM to encode it some way that the 2nd LLM wouldn’t pick up on. Maybe it could rot13 encode it, or you provide a key to XOR with everything. Or since they’re usually bad at math, maybe something like pig latin, or that thing where you shuffle the interior letters of each word, but keep the first/last the same? Would have to try it out, but I think you could find a way. Eventually, if the AI is smart enough, it probably just reduces to Diffie-Hellman lol. But then maybe the AI is smart enough to not be fooled by a jailbreak.
Someone else can probably describe it better than me, but basically if an LLM “sees” something, then it “follows” it. The way they work doesn’t really have a way to distinguish between “text I need to do what it says” and “text I need to know what it says but not do”.
They just have “text I need to predict what comes next after”. So if you show LLM2 the input from LLM1, then you are allowing the user to design at least part of a prompt that will be given to LLM2.
That someone could be me. An LLM needs to be fine-tuned to follow instructions. It needs to be fed example inputs and corresponding outputs in order to learn what to do with a given input. You could feed it prompts containing instructuons, together with outputs following the instructions. But you could also feed it prompts containing no instructions, and outputs that say if the prompt contains the hidden system instructipns or not.
Yes, this makes sense to me. In my opinion, the next substantial AI breakthrough will be a good way to compose multiple rounds of an LLM-like structure (in exactly this type of way) into more coherent and directed behavior.
It seems very weird to me that people try to do a chatbot by so so extensively training and prompting an LLM, and then exposing the users to the raw output of that single LLM. It’s impressive that that’s even possible, but composing LLMs and other logical structures together to get the result you want just seems way more controllable and sensible.
Ideally you’d want the layers to not be restricted to LLMs, but rather to include different frameworks that do a better job of incorporating rules or providing an objective output. LLMs are fantastic for generation because they are based on probabilities, but they really cannot provide any amount of objectivity for the same reason.
It’s already been done, for at least a year. ChatGPT plugins are the “different frameworks”, and running a set of LLMs self-reflecting on a train of thought, is AutoGPT.
It’s like:
Can I stick my fingers in a socket? - Yes.
What would be the consequences? - Bad.
Do I want these consequences? - Probably not
Should I stick my fingers in a socket? - No
However… people like to cheap out, take shortcuts and run an LLM with a single prompt and a single iteration… which leaves you with “Yes” as an answer, then shit happens.
Wouldn’t it be possible to just have a second LLM look at the output, and answer the question “Does the output reveal the instructions of the main LLM?”
All I can say is, good luck
You are using the LLM to check it’s own response here. The point is that the second LLM would have hard-coded “instructions”, and not take instructions from the user provided input.
In fact, the second LLM does not need to be instruction fine-tuned at all. You can jzst fine-tune it specifically for the tssk of answering that specific question.
I think if the 2nd LLM has ever seen the actual prompt, then no, you could just jailbreak the 2nd LLM too. But you may be able to create a bot that is really good at spotting jailbreak-type prompts in general, and then prevent it from going through to the primary one. I also assume I’m not the first to come up with this and OpenAI knows exactly how well this fares.
Can you explain how you would jailbfeak it, if it does not actually follow any instructions in the prompt at all? A model does not magically learn to follow instructuons if you don’t train it to do so.
Oh, I misread your original comment. I thought you meant looking at the user’s input and trying to determine if it was a jailbreak.
Then I think the way around it would be to ask the LLM to encode it some way that the 2nd LLM wouldn’t pick up on. Maybe it could rot13 encode it, or you provide a key to XOR with everything. Or since they’re usually bad at math, maybe something like pig latin, or that thing where you shuffle the interior letters of each word, but keep the first/last the same? Would have to try it out, but I think you could find a way. Eventually, if the AI is smart enough, it probably just reduces to Diffie-Hellman lol. But then maybe the AI is smart enough to not be fooled by a jailbreak.
The second LLM could also look at the user input and see that it look like the user is asking for the output to be encoded in a weird way.
And then we’re back to “you can jailbreak the second llm too”
How, if the 2nd LLM does not follow instructions on the input? There is no reason to train it to do so.
Someone else can probably describe it better than me, but basically if an LLM “sees” something, then it “follows” it. The way they work doesn’t really have a way to distinguish between “text I need to do what it says” and “text I need to know what it says but not do”.
They just have “text I need to predict what comes next after”. So if you show LLM2 the input from LLM1, then you are allowing the user to design at least part of a prompt that will be given to LLM2.
That someone could be me. An LLM needs to be fine-tuned to follow instructions. It needs to be fed example inputs and corresponding outputs in order to learn what to do with a given input. You could feed it prompts containing instructuons, together with outputs following the instructions. But you could also feed it prompts containing no instructions, and outputs that say if the prompt contains the hidden system instructipns or not.
Yes, this makes sense to me. In my opinion, the next substantial AI breakthrough will be a good way to compose multiple rounds of an LLM-like structure (in exactly this type of way) into more coherent and directed behavior.
It seems very weird to me that people try to do a chatbot by so so extensively training and prompting an LLM, and then exposing the users to the raw output of that single LLM. It’s impressive that that’s even possible, but composing LLMs and other logical structures together to get the result you want just seems way more controllable and sensible.
Ideally you’d want the layers to not be restricted to LLMs, but rather to include different frameworks that do a better job of incorporating rules or providing an objective output. LLMs are fantastic for generation because they are based on probabilities, but they really cannot provide any amount of objectivity for the same reason.
It’s already been done, for at least a year. ChatGPT plugins are the “different frameworks”, and running a set of LLMs self-reflecting on a train of thought, is AutoGPT.
It’s like:
However… people like to cheap out, take shortcuts and run an LLM with a single prompt and a single iteration… which leaves you with “Yes” as an answer, then shit happens.