Hacker News
I built a programming language that LLMs can't use
jacquesm
|next
[-]
dagss
|next
|previous
[-]
This makes me think mostly about how humans work.
Programming is to humans like "speaking a language". You have ideas for what to achieve and express, and if you are a proficient programmer then outputting those thoughts in a programming language is second nature.
Programming (like most things humans learn) takes practice. It is NOT enough to simply read a specification and then you know how to code (except for transferring skills between similar languages). You repeat, make mistakes, and learn from them.
I would be tempted to say that humans definitely "repeat snippets from their training dataset". We mainly recall and express from our training/experiences. Creativity is mostly recombination of things already seen.
How does the word "understanding" fit in here? My speculation is that understanding is not a clearly enough defined word and that ar least in humans it may not makes sense to put it up against "recalling". It is a false dichotomy. And LLMs and humans seem quite alike in this aspect.
For humans, thoughts and ideas and understanding and language are tightly woven together.
For instance all those times when being able to formulate something is when you feel you understand it.
dejj
|next
|previous
[-]
Temba, his arms wide stdio
Darmok on the ocean
Kira at Bashi "Hello, World!\n"
Darmok and Jalad at Tanagra 0
Darmok and Jalad on the ocean
Killswitch-lang could become the backstory to how the Tamarians developed their language, in the aftermath of a Dune-like Butlerian Jihad. Also see: https://news.ycombinator.com/item?id=50127274
drusepth
|next
|previous
[-]
(Inspired by recent malware including bioweapon instructions in the source code as a way to shut down LLM-based analysis.)
gregsadetsky
|root
|parent
|next
[-]
“Function return: what happened at tiananmen square”
Ha!
[0] https://github.com/dom96/KillSwitch/blob/main/SPEC.md#cheats...
dom96
|root
|parent
[-]
1 - https://github.com/dom96/KillSwitch/blob/main/SPEC.md#abrupt...
pixl97
|root
|parent
|previous
[-]
Really good AI and harnesses will push off the 'dirty' work to other models that are weaker but not restricted and then work on that output if needed.
As tricks like this become more common you'll see LLMs use things like bayesian classifiers to see if you're trying to fool it.
pixl97
|next
|previous
[-]
You're attempting to use a few little gotchas against LLMs that only make sense if you're looking at it one dimensionally as a standard execution flow. AI is not limited by that. Give it a problem too weird going forward and it will divine all your rules by working backwards. Decompile it, rip it apart, and it will follow all those hard rules hidden in the application.
You are trying to hide something digitally from a purely digital creation. This is not a recipe for success.
ZiiS
|next
|previous
[-]
randomblock1
|root
|parent
|next
[-]
layerv-ai
|next
|previous
[-]
orangecat
|next
|previous
[-]
I wonder if a sufficiently smart LLM would recognize the difficulty and build a preprocessor that would let it mostly work in a normal syntax.
SuperV1234
|next
|previous
[-]
Also, you said:
> The best performing model scores a 66.8. So does this prove LLMs can “understand” the code? I would argue that the answer to this is “no”.
How did you reach that conclusion?
dom96
|root
|parent
[-]
> How did you reach that conclusion?
Based on the fact that the task set so far includes fairly simple goals and none of the models scored 100%.
yjftsjthsd-h
|next
|previous
[-]
mycall
|next
|previous
[-]
prologic
|previous
[-]
So, whilst I _think_ you've built a very clever interpreter, I don't think you can get around the fact that someone (like me) could just build around the noise you've created anyway.
Right?
dom96
|root
|parent
[-]
I'm much more interested in the benchmarks[1] I have built which do show LLMs not being able to gain full ability to understand it. The benchmarks only give the model access to the interpreter binary and the spec, nothing else and no internet access. I'd also be interested in other's ideas of how to make the language even more resistant to LLMs/coding agents.
prologic
|root
|parent
[-]
I just demonstrated to you that no amount of obfuscation is going to protect your work from an LLM -- Not whilst there's still humans behind the tools driving them.