HNHacker News
TopNewBestAskShowJobs

jmmcd

1,378 karma · joined September 30, 2009

I'm a lecturer and researcher in computer science and AI in Ireland. I'm into music, computer music, programs, and programs that write programs.
submissionscomments
jmmcd··on Teuken-7B-Base and Teuken-7B-Instruct: Towards European LLMs
This important paper from Anthropic includes evidence that part (but only part) of reasoning is cross-lingual:

https://www.anthropic.com/research/tracing-thoughts-language...

jmmcd··on Baby Steps into Genetic Programming
No, you're confusing GA with GP.
jmmcd··on Baby Steps into Genetic Programming
> in genetic programming the goal is to find/optimize dataset to fit given algorithm

No. Possibly you're confused between GAs and GP, a common confusion. In GP, the goal is to find an algorithm - in a real programming language, not as weights - to optimise an objective function. Often that is specified by input-output pairs, similar to supervised learning.

jmmcd··on Zoom bias: The social costs of having a 'tinny' sound during video conferences
Yes indeed. This is because it's very disconcerting to see yourself non-mirrored.
jmmcd··on Zoom bias: The social costs of having a 'tinny' sound during video conferences
> "During videoconferencing, of course, you know how you look, since you can see yourself too," Walter-Terrill noted. "But on a call with dozens of people, you may be the only one who doesn't know how you sound to everyone else: you may hear yourself as rich and resonant, while everyone else hears a tinny voice."

Not quite! You don't really know how you look, because you see yourself before transmission.

jmmcd··on Athena landed in a dark crater where the temperature was -280° F / -173° C
> The Athena spacecraft was not exactly flying blind as it approached the lunar surface one week ago. The software on board did a credible job of recognizing nearby craters, even with elongated shadows over the terrain. However, the lander's altimeter had failed.

> So while Athena knew where it was relative to the surface of the Moon, the lander did not know how far it was above the surface.

This is really crappy writing. That second paragraph sounds like a self-contradiction. Unless "the lander" is a separate entity from "Athena"? Some publications refuse to use the same term twice, even if it introduces ambiguity as here.

jmmcd··on Using GRPO to Beat o1, o3-mini and R1 at “Temporal Clue”
I've said several times that according to your definition, humans do not reason. You haven't really responded to that and I guess you're not going to. I can't quite parse your overall position, ie specifically, as I already said, whether you genuinely think LLMs should output code for most problems, or whether you were using that as a reductio against my initial statement. So, I will stop here and thank you for the discussion.
jmmcd··on Using GRPO to Beat o1, o3-mini and R1 at “Temporal Clue”
> What some people do is «not reasoning», for lack of training, or for lack of resources (e.g. time - Herbert Simon's "satisficing"), or for lack of ability.

According to your definition of reasoning, which involves surely getting the right answer, no human does reasoning. Probably less than 1% of published mathematics meets the definition.

> Important problems are those which require correct responses.

There are many important problems where formal reasoning is not possible, and yet a decision is required, and both humans and LLMs can provide answers. "Should I accept this proposed business deal / should I declare war / what diagnostic test should I order?" We would like to have correct responses for these problems, but it is not possible, even in principle, to guarantee correctness. So yes, we use heuristics and approximate reasoning for such problems. Is an LLM "unreliable" or "dangerous" in such problems? Maybe yes, and maybe more so than humans, but maybe not, it depends on the case. To try to keep the point of the thread in focus, an LLM should probably not try to solve such problems by writing code.

jmmcd··on Using GRPO to Beat o1, o3-mini and R1 at “Temporal Clue”
I can't reply to your new post below, I guess the thread is too deep. But you've bit the bullet and stated that what humans do is not reasoning, I think.

You didn't like "what colour is the sky" (without looking), ok. "Given the following [unseen during training] page of text, can you guess what emotion the main character is feeling at the end?" This is a problem that a human can solve, and many LLMs can solve, even if they can't solve the detective puzzle. In case it doesn't sound important, this can be reframed as a customer-service sentiment-recognition problem.

jmmcd··on Using GRPO to Beat o1, o3-mini and R1 at “Temporal Clue”
> Reasoning properly is at least operating through processes that output correct results.

Human "reasoning" (ie speech or self-talk that sounds a bit like reasoning) often outputs correct results. Does "often" fit the definition?

> Which problems that demand producing correct solutions could be solved by a processor which could not solve a "detective game"?

For example, "what colour is the sky right now?". A lot of people could solve this (even if they haven't looked outside), and so could a lot of language models, which can't solve this detective game.

jmmcd··on Using GRPO to Beat o1, o3-mini and R1 at “Temporal Clue”
> Without proper reasoning you can get some "heuristic"

Right, but the question is whether this is good enough. And what counts as "proper". A lot of what we call proper reasoning is still quite informal, and even mathematics is usually not formal enough to be converted directly into a formal language like Coq.

So this is a deep question: is talking reasoning? Humans talk (out loud, or in their heads). Are they then reasoning? Sure, some of what happens internally is not just self-talk, but the thought experiment goes: if the problem is not completely ineffable, then (a bit like Borges' library) there is some 1000-word text which is the best possible reasoned, witty, English-language 1000-word solution to the problem. In principle, an LLM can generate that.

If your goal is a reductio, ie my statement must be false since it implies models should write code for every problem - then I disagree, because while the ability to solve these problems might be a requirement to be deemed "an intelligence", nonetheless many other problems which require an intelligence don't require the ability to solve these problems.

jmmcd··on Using GRPO to Beat o1, o3-mini and R1 at “Temporal Clue”
> since the issue is general

I'm not sure what that means specifically. I don't agree overall. Only certain types of problems encountered by LLMs map cleanly to well-understood problems where existing solvers are perfect.

jmmcd··on Using GRPO to Beat o1, o3-mini and R1 at “Temporal Clue”
These puzzles probably have more in common with "Zebra puzzles" (eg https://www.zebrapuzzles.com/) than Cluedo (USA Clue) itself. I've been doing some one-off experiments with Zebra puzzles recently. All the reasoning models generate an enormous batch of text, trying out possibilities, backtracking, and sometimes getting confused.

From what I can see (not rigorous): Claude 3.7 fails, ChatGPT with reasoning succeeds, DeepSeek with reasoning succeeds.

But of course the best way for a model to solve a problem like this is to translate it into a constraint satisfaction problem, and write out Python code to call a CSP solver.

jmmcd··on OpenEuroLLM
Nonsense, you don't know what you're talking about.
jmmcd··on Metacognitive laziness: Effects of generative AI on learning motivation
In my recent programming exam (in an MSc in AI), I asked students to reflect on how generative AI has changed their coding. Almost all remarked that it's a great time-saver, but it makes them lazy and worse at coding.

And yes indeed, their ability to answer basic questions about coding on the same exam has drastically dropped versus last year.

jmmcd··on A common urban intersection in the Netherlands (2018)
> "being one of those bicycle people"

What really amazes me is motorists' dislike of cyclists (common here in Ireland, also). If that cyclist you see wasn't cycling, they'd be in a car in front of you, and your traffic queue would be worse. Every cyclist is doing every motorist a favour.

jmmcd··on You could have designed state of the art positional encoding
This is a good idea! The answer to my knowledge is no-one does this, we just the simplest, stupidest, possible method, which is to concatenate all the text in the world. That is during training, of course. At runtime, there is the system prompt.

The second simplest method might indeed use something like a system prompt with metadata like that, injected before the current window of text. But what would happen at runtime, when that metadata is not present? Probably performance would be much worse.

jmmcd··on You could have designed state of the art positional encoding
Well, yes, I deserved that reply! And yes the code is printing True. It's not that I disbelieved you... but something is wrong here. Investigation below, thanks to Claude.ai for walking me through it!

    In [10]: o1[0, :, :3]
    Out[10]:
    tensor([[ 0.0053,  0.0017, -0.0012],
        [ 0.0053,  0.0017, -0.0012],
        [ 0.0053,  0.0017, -0.0012],
        [ 0.0053,  0.0017, -0.0012],
        [ 0.0053,  0.0017, -0.0012],
        [ 0.0053,  0.0017, -0.0012]],       grad_fn=<SliceBackward0>)
Every token has the same attention values. I expect attention(cat, everything) to differ from attention(dog, everything), even without positional encoding.

Further, the attention weights are uniform and identical for both sentences:

    In [46]: o1, aw1 = mha(W_q(e1), W_k(e1), W_v(e1))
    In [47]: o2, aw2 = mha(W_q(e2), W_k(e2), W_v(e2))
    In [48]: aw1.shape
    Out[48]: torch.Size([1, 6, 6])
    In [49]: aw2.shape
    Out[49]: torch.Size([1, 6, 6])
    In [50]: aw1
    Out[50]:
    tensor([[[0.1667, 0.1667, 0.1667, 0.1667, 0.1667, 0.1667],
         [0.1667, 0.1667, 0.1667, 0.1667, 0.1667, 0.1667],
         [0.1667, 0.1667, 0.1667, 0.1667, 0.1667, 0.1667],
         [0.1667, 0.1667, 0.1667, 0.1667, 0.1667, 0.1667],
         [0.1667, 0.1667, 0.1667, 0.1667, 0.1667, 0.1667],
         [0.1667, 0.1667, 0.1667, 0.1667, 0.1667, 0.1667]]],
       grad_fn=<MeanBackward1>)

    In [51]: aw2
    Out[51]:
    tensor([[[0.1667, 0.1667, 0.1667, 0.1667, 0.1667, 0.1667],
         [0.1667, 0.1667, 0.1667, 0.1667, 0.1667, 0.1667],
         [0.1667, 0.1667, 0.1667, 0.1667, 0.1667, 0.1667],
         [0.1667, 0.1667, 0.1667, 0.1667, 0.1667, 0.1667],
         [0.1667, 0.1667, 0.1667, 0.1667, 0.1667, 0.1667],
         [0.1667, 0.1667, 0.1667, 0.1667, 0.1667, 0.1667]]],
       grad_fn=<MeanBackward1>)
That is not expected. It's because the Linear layers are initialised with such small values. And the softmax causes a collapse.

Trying random weights on a larger scale:

    In [52]: W_q.weight.data *= 100
         W_k.weight.data *= 100
         W_v.weight.data *= 100

    In [55]: o1, aw1 = mha(W_q(e1), W_k(e1), W_v(e1))
    In [56]: o2, aw2 = mha(W_q(e2), W_k(e2), W_v(e2))
    In [57]: aw1
    Out[57]:
    tensor([[[0.2049, 0.1606, 0.1256, 0.1095, 0.1723, 0.2270],
         [0.0883, 0.2047, 0.1544, 0.2776, 0.1405, 0.1345],
         [0.1196, 0.1719, 0.1831, 0.1541, 0.1374, 0.2339],
         [0.1413, 0.2399, 0.1617, 0.2056, 0.1634, 0.0880],
         [0.1455, 0.1432, 0.2432, 0.1239, 0.1494, 0.1948],
         [0.1897, 0.1817, 0.1920, 0.1478, 0.1618, 0.1270]]],
       grad_fn=<MeanBackward1>)

    In [58]: aw2
    Out[58]:
    tensor([[[0.2049, 0.1606, 0.2270, 0.1095, 0.1723, 0.1256],
         [0.0883, 0.2047, 0.1345, 0.2776, 0.1405, 0.1544],
         [0.1897, 0.1817, 0.1270, 0.1478, 0.1618, 0.1920],
         [0.1413, 0.2399, 0.0880, 0.2056, 0.1634, 0.1617],
         [0.1455, 0.1432, 0.1948, 0.1239, 0.1494, 0.2432],
         [0.1196, 0.1719, 0.2339, 0.1541, 0.1374, 0.1831]]],
       grad_fn=<MeanBackward1>)

    In [60]: o1[:, :, :5]
    Out[60]:
    tensor([[[ 0.0145,  0.3128, -0.3659, -0.1884,  0.1724],
         [-0.2319,  0.1407, -0.6010, -0.4064,  0.4259],
         [-0.3231,  0.1622, -0.6351, -0.1711,  0.4014],
         [-0.0596,  0.2610, -0.7388, -0.2987,  0.3214],
         [-0.2750,  0.0676, -0.4140, -0.2024,  0.3383],
         [-0.1434,  0.0871, -0.3154, -0.0755,  0.3314]]],
       grad_fn=<SliceBackward0>)

    In [61]: o2[:, :, :5]
    Out[61]:
    tensor([[[ 0.0145,  0.3128, -0.3659, -0.1884,  0.1724],
         [-0.2319,  0.1407, -0.6010, -0.4064,  0.4259],
         [-0.1434,  0.0871, -0.3154, -0.0755,  0.3314],
         [-0.0596,  0.2610, -0.7388, -0.2987,  0.3214],
         [-0.2750,  0.0676, -0.4140, -0.2024,  0.3383],
         [-0.3231,  0.1622, -0.6351, -0.1711,  0.4014]]],
       grad_fn=<SliceBackward0>)

    In [62]: print("Matches: ", torch.allclose(o1, o2, atol=1e-6))
    Matches:  False
jmmcd··on You could have designed state of the art positional encoding
But u/imjonse's reasoning seems right. I haven't run either version of the code, but when reading it I expected that to be False. The output is still a list with an order.

the dog chased the cat: position 1 in the output is attention(dog, everything)

the cat chased the dog: position 1 in the output is attention(cat, everything)

jmmcd··on The Intelligence Age
Certainly, it's an exaggeration / simplification. I don't feel it is really a dishonest one, in context [*]. It feels weird for me to "defend" him here, because in general Altman is a stupendous, egregious, world-leading liar.

[*] Ok, we can differ on that. My feeling is partly because the types of distributions that can't be learned - eg hash functions - are generally the kind of functions we don't really want to learn. Underneath this are deeper questions related to no free lunch and how "nice"/"well-behaved" this universe is.

jmmcd··on The Intelligence Age
Yes, he's handwaving in this general area, but no, he's not really relying on the UAT. If you talked to most NN people 2 decades ago and asked about this, they might well answer in terms of the UAT. But nowadays, most people, including here Altman, would answer in terms of practical experience of success in learning a surprisingly diverse array of distributions using a single architecture.
jmmcd··on Apple mobile processors are now made in America by TSMC
Good news doesn't have to mean overwhelming good news. Directionally, it is clearly good, not bad, and not nothing.
jmmcd··on Breaking Bell's Inequality with Monte Carlo Simulations in Python
This was really excellent - for many of us, code helps to make mechanisms concrete, and it forces every single thing to be pinned down, and not hand-waved away.

(Like another commenter, I was also hoping for a direct/standalone explanation for why the red matrix is transposed.)

jmmcd··on iPhone 16 Pro and iPhone 16 Pro Max
You see a cute dog in the park, and click the special button to find out what breed it is - amazing!

But I know what Steve Jobs would have said to this. Just go up and ask the girl what breed her dog is, and get to know her.

jmmcd··on Diffusion Is Spectral Autoregression
Right. Or to put it the other way around, the same leaf might be 1 pixel wide in one image, and 100 pixels wide in another image.
jmmcd··on Diffusion Is Spectral Autoregression
> that the visual spectrum is very narrow (just 1 order of magnitude from red to blue) compared to audio (4 orders of magnitude from 20Hz to 20kHz)

I was talking nonsense here - confusing the visual spectrum of light from red to blue with the visual spectrum of images, as in "how quickly the image changes as you move across the image". The article illustrates the latter concept well.

jmmcd··on Diffusion Is Spectral Autoregression
I was struck by the comparison between audio spectra and image spectra. Image spectra have a strong power law effect, but audio spectra have more power in middle bands. Why? One part of the issue is that the visual spectrum is very narrow (just 1 order of magnitude from red to blue) compared to audio (4 orders of magnitude from 20Hz to 20kHz).

But another issue not mentioned in the article is that in images we can zoom in/out arbitrarily. So the width of a pixel can change – it might be 1mm in one image, or 1cm in another, or 1m or 1km. Whereas in audio, the “width of a pixel” (the time between two audio samples) is a fixed amount of time – usually 1/44.1kHz, but even if it’s at a different sample rate, we would convert all images to have the same sample rate before training an NN. The equivalent of this for images would be rescaling all images so that a picture of a cat is say 100x100 pixels, while a picture of a tiger is 300x300.

Which, come to think of it, would be potentially an interesting thing to do.

jmmcd··on Ask HN: Determine sound quality of a file, objectively?
Yes. But this is also the kind of thing that should be googled, or queried to an LLM, as a first pass.
jmmcd··on Want to spot a deepfake? Look for the stars in their eyes
They love saying things like "generative AI doesn't know physics". But the constraint that both eyes should have consistent reflection patterns is just another statistical regularity that appears in real photographs. Better training, larger models, and larger datasets, will lead to models that capture this statistical regularity. So this "one weird trick" will disappear without any special measures.
jmmcd··on AI-generated sad girl with piano performs the text of the MIT License
Which of "purposes such as criticism, comment, news reporting, teaching (including multiple copies for classroom use), scholarship, or research" do you think applies?
← PreviousPage 2 of 19Next →