Live data from Hacker News

ChatGPT, Rot13, and Daniel Kahneman

jameswillia.ms

21–30 of 213 posts

Re: ChatGPT, Rot13, and Daniel Kahneman

#21
Interesting - I had a similar experience trying to have it craft and edit a fiction story. Asking it to avoid common or generic scenery and instead use specific unique details, to make characters show their qualities rather than just declare them, etc.

Was too high-level, never got past a sort of generic story with a pollyanna feel (the "GPT voice").

Still mind-boggling how far language models have come.

Re: ChatGPT, Rot13, and Daniel Kahneman

#22
I think there's something to that characterization. I've not been able to do detailed things with it like math and deep coding, but I have been able to get templates from it containing the correct vocabulary.

We shouldn't scoff at that, it's actually quite valuable to get an outline that you can then work on.

I don't know a whole lot about transformers but it would seem like it's an elaborate association game, not a logic machine like what we normally do with a computer.

My characterization is it's a bit like a high school renaissance man: knows by and large what various things mean, knows a bit about what terms are associated, doesn't actually understand expert domains. You can spit out a confident sounding essay about the fall of Rome when you're in high school, but you aren't going to be able to explain why there's no generalized quintic solution.

Re: ChatGPT, Rot13, and Daniel Kahneman

#23

It is as though its mathematical abilities are incomplete in their training, and wildly, incomprehensibly convoluted: I tried many base64 strings and they all decoded correctly until: It "decoded" the base64 string for "which actress is the best?" except that it replaced "actress" with "address"... there is no off-by-one error that brings you to that. You may try 100 base64 strings and they all decode correctly... on…

> I tried many base64 strings and they all decoded correctly until:

It "decoded" the base64 string for "which actress is the best?" except that it replaced "actress" with "address"... there is no off-by-one error that brings you to that.

I'm still baffled by weird failure modes like this. Out of couriosity, did you also give it base64 that just contained random letters, so it can't jump to any word associations?

Re: ChatGPT, Rot13, and Daniel Kahneman

#24
post #19

There's a way simpler answer than this Type I Type II thinking stuff. Most LLMs like GPT are not trained on the level of individual characters – they process input and outputs on the level of subword units that compose multiple characters to support long context windows (i.e. "door" instead of "d", "o", "o", "r"). As a result, they do poorly on character manipulation tasks. You can get some insight here: https://beta…

GPT3 can't create ASCII art for shit either. Though it can make little ASCII tables of data.

Re: ChatGPT, Rot13, and Daniel Kahneman

#25
Interesting attempt, but if you care to do it much faster it's best to exploit its few-shots learning capabilities and break tasks into sub-tasks rather than trying to talk to it like a human being. That's how I taught it base -10.

Here is the single prompt to solve rot13. It still has issues counting lengths.

Prompt:

  a = uryyb pungtcg lbh fghq
  => [len(i) for i in a.split()]
  => [5, 7, 3, 4]
  => len(a.split())
  => 4
  => hello chatgpt you stud  
  
  a = Pna lbh haqrefgnaq ebg13  
  => [len(i) for i in a.split()]  
  => [3, 3, 10, 5]  
  => len(a.split())  
  => 4  
  => Can you understand rot13  

  a = Bs pbhefr vgf rnfl jura lbhir tbg 175 ovyyvba cnenzrgref
  => [len(i) for i in a.split()]
  => [2, 6, 3, 4, 4, 5, 3, 3, 7, 10]
  => Of course its easy when youve got 175 billion parameters

  a= Jul qvq gur puvpxra pebff gur ebnq
  => [len(i) for i in a.split()]
  =>
Answer:

  [3, 3, 3, 6, 4, 3, 3]
  => len(a.split())
  => 7
  => Why did the chicken cross the road?  
edit: This prompt doesn't actually work, see the other prompt below if you want to try one that works.

Re: ChatGPT, Rot13, and Daniel Kahneman

#26
post #24
post #19

There's a way simpler answer than this Type I Type II thinking stuff. Most LLMs like GPT are not trained on the level of individual characters – they process input and outputs on the level of subword units that compose multiple characters to support long context windows (i.e. "door" instead of "d", "o", "o", "r"). As a result, they do poorly on character manipulation tasks. You can get some insight here: https://beta…

GPT3 can't create ASCII art for shit either. Though it can make little ASCII tables of data.

I asked it to create an ASCII art banana and the result was hilarious. It then tried to explain it by elaborating that the 'O' was a curvy letter and represented the curves of the banana.

Re: ChatGPT, Rot13, and Daniel Kahneman

#27
There's something I don't get about all these models... Why aren't these using external tools, like a calculator, when they "know" they're doing something a tool would solve perfectly?

Humans do it all the time now. Engineers aren't designing microchips using pen and papers, doing all the computation in their head. Instead they're using tools (software / calculators)

Apparently the model can tell what a multiplication is and when it is called. So why isn't it using a calculator to give correct results to basic maths questions?

In the rot13 case, I can ask it "how can I automate the rot13 of text" (you don't even need to use correct english) and it'll explain me what I need to write at a bash prompt.

Would it be complicated to then have the model actually run the command at a bash prompt, in a sandbox?

It's really mindboggling: humans uses tool (like ChatGPT btw) all the time. Why do these systems use none except their own model?

Re: ChatGPT, Rot13, and Daniel Kahneman

#28
post #23

It is as though its mathematical abilities are incomplete in their training, and wildly, incomprehensibly convoluted: I tried many base64 strings and they all decoded correctly until: It "decoded" the base64 string for "which actress is the best?" except that it replaced "actress" with "address"... there is no off-by-one error that brings you to that. You may try 100 base64 strings and they all decode correctly... on…

> I tried many base64 strings and they all decoded correctly until: It "decoded" the base64 string for "which actress is the best?" except that it replaced "actress" with "address"... there is no off-by-one error that brings you to that. I'm still baffled by weird failure modes like this. Out of couriosity, did you also give it base64 that just contained random letters, so it can't jump to any word associations?

Think of it as overly aggressive error correction at the language level.

It has a context of some Base64 code. Given that is almost always seen associated with computer code, is "address" or "actress" more likely.

It "knows" the algorithm for decoding base64, and can follow those steps. But it can't overcome it's built-in biases for optimizing the most likely output given the context.

(This problem is solvable, but I think that thinking about it like this helps understand why it behaves like it does)

Re: ChatGPT, Rot13, and Daniel Kahneman

#29

Interesting attempt, but if you care to do it much faster it's best to exploit its few-shots learning capabilities and break tasks into sub-tasks rather than trying to talk to it like a human being. That's how I taught it base -10. Here is the single prompt to solve rot13. It still has issues counting lengths. Prompt: a = uryyb pungtcg lbh fghq => [len(i) for i in a.split()] => [5, 7, 3, 4] => len(a.split()) => 4 =>…

Isn't that effectively four prompts?

Also it added a question mark which introduces a little doubt over what it's doing.

Re: ChatGPT, Rot13, and Daniel Kahneman

#30
It's really not so complicated. This is just an issue with text tokenization, and the fact that the learning model never actually sees the raw input bytes.

All modern LLMs use a tokenizer to convert a sequence of bytes into a sequence of tokens. Short, common words like "the" and "why" are represented as single tokens, while longer and less-common words are represented by multiple tokens. For example, the word "fantastic" is three tokens ("f", "ant", "astic").

Each of these tokens is assigned an arbitrary integer value ("fantastic" becomes [69, 415, 3477]) and then those integer values are used to lookup embedding vectors for each word.

Each embedding vector represents the MEANING of the tokens, by plotting them into a 4096-dimensional vector-space. At runtime, the model looks up each token ID in a dictionary and finds its embedding vector.

For the word "fantastic", those embedding vectors might look something like this:

  "f"        (69) = [  0.123,  0.456, ...etc...  0.789, -0.890 ]
  "ant"     (415) = [  0.111, -0.222, ...etc...  0.333, -0.444 ]
  "astic"  (3477) = [ -0.101,  0.202, ...etc... -0.303,  0.404 ]
All of these vectors are assembled into a matrix, and then passed into the layers of neural network, where the actual training/inference occurs.

So the language-model has NO IDEA how any of the words are spelled, because the tokenization (and embedding vector lookup) happens as a pre-processing step, outside the bounds of the learning algorithm.

If you want a LLM to understand spelling, you have to include exhaustive spelling information in its training data. For example:

  "The word 'fantastic' is spelled f-a-n-t-a-s-t-i-c."
  "The word 'FANTASTIC' is spelled F-A-N-T-A-S-T-I-C."
  ...etc...
And even then, even with 100k+ English words all spelled out in your training data, you'd be hard-pressed to infer any ROT-13 tokens in your output data, because the learning model has probably never seen a token like "qvq" or "pebff".

You can play with the GPT tokenizer directly here:

https://beta.openai.com/tokenizer

It will show you the tokenization of any block of text, and the token IDs of the resultant tokens. It's very handy if you spend much time working with GPT-3 (or any other modern language-model!)

Post reply on HN